<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic RTOS SDCard USB and local access  in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888914#M35630</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I need to create a LPC54xxx project with FreeRTOS that in addition to serial USB, exposes its SDCard through USB after the user pushes a button. I also need the capability to locally read and write the SDCard. I saw the SDK example lpcxpresso54018_dev_composite_cdc_msc_sdcard_freertos but did not see any local write or read functionality. Can I somehow use the USB calls locally? When I tried just adding the fatfs files (may have not added all of them) the it takes a ton of ram - SRAMX:190540B 192KB 96.91%.&amp;nbsp; Is there a low ram RTOS example with fatfs that I could add the USB stuff? The project must use a lot of other resources including several non USB serial channels , ADC, PWM.&lt;SPAN style="font-size: 10.0pt; color: black; background: yellow;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=============================================================================&lt;/P&gt;&lt;P&gt;OK I ran the lpcxpresso54018_fatfs_sdcard () project on the LPCXpresso54018 board with a SDCard and it works fine.&lt;/P&gt;&lt;P&gt;I wanted to integrate this demo into my FreeRTOS code in a task for accessing the SDCard.&lt;/P&gt;&lt;P&gt;I copied the fatfs and sdmmc folders and compiled and saw that the&amp;nbsp;sdmmc port was not for FreeRTOS so I copied the sdmmc port from the&amp;nbsp;lpcxpresso54018_dev_composite_cdc_msc_sdcard_freertos() project.&lt;/P&gt;&lt;P&gt;I copied the pin initializations and run my test function ami_sdcard_Int().&lt;/P&gt;&lt;P&gt;It gets stuck in the SDMMC_GoIdle() function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ami_sdcard_Int()&lt;BR /&gt;&amp;nbsp;--------------------------------&lt;BR /&gt;&amp;nbsp;if (f_mkfs(driverNumberBuffer, FM_ANY, 0U, work, sizeof work))&lt;BR /&gt;&amp;nbsp;&amp;nbsp; sd_disk_initialize()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_Success != SD_CardInit(&amp;amp;g_sd))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SD_ProbeBusVoltage(card) == kStatus_SDMMC_SwitchVoltageFail)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ..&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* card go idle */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_Success != SD_GoIdle(card))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SDMMC_GoIdle(card-&amp;gt;host.base, card-&amp;gt;host.transfer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_Success != transfer(base, &amp;amp;content))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ..&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((error != kStatus_Success) ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (false == SDMMCEVENT_Wait(kSDMMCEVENT_TransferComplete, SDMMCHOST_TRANSFER_COMPLETE_TIMEOUT)) ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (!s_sdifTransferSuccessFlag))&lt;/P&gt;&lt;P&gt;It never returns from the SDMMCEVENT_Wait() function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could anyone please help me?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Both demo projects work separately lpcxpresso54018_fatfs_sdcard () &amp;amp; lpcxpresso54018_dev_composite_cdc_msc_sdcard_freertos()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 26 Feb 2019 04:29:35 GMT</pubDate>
    <dc:creator>kiryat8</dc:creator>
    <dc:date>2019-02-26T04:29:35Z</dc:date>
    <item>
      <title>RTOS SDCard USB and local access</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888914#M35630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I need to create a LPC54xxx project with FreeRTOS that in addition to serial USB, exposes its SDCard through USB after the user pushes a button. I also need the capability to locally read and write the SDCard. I saw the SDK example lpcxpresso54018_dev_composite_cdc_msc_sdcard_freertos but did not see any local write or read functionality. Can I somehow use the USB calls locally? When I tried just adding the fatfs files (may have not added all of them) the it takes a ton of ram - SRAMX:190540B 192KB 96.91%.&amp;nbsp; Is there a low ram RTOS example with fatfs that I could add the USB stuff? The project must use a lot of other resources including several non USB serial channels , ADC, PWM.&lt;SPAN style="font-size: 10.0pt; color: black; background: yellow;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=============================================================================&lt;/P&gt;&lt;P&gt;OK I ran the lpcxpresso54018_fatfs_sdcard () project on the LPCXpresso54018 board with a SDCard and it works fine.&lt;/P&gt;&lt;P&gt;I wanted to integrate this demo into my FreeRTOS code in a task for accessing the SDCard.&lt;/P&gt;&lt;P&gt;I copied the fatfs and sdmmc folders and compiled and saw that the&amp;nbsp;sdmmc port was not for FreeRTOS so I copied the sdmmc port from the&amp;nbsp;lpcxpresso54018_dev_composite_cdc_msc_sdcard_freertos() project.&lt;/P&gt;&lt;P&gt;I copied the pin initializations and run my test function ami_sdcard_Int().&lt;/P&gt;&lt;P&gt;It gets stuck in the SDMMC_GoIdle() function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ami_sdcard_Int()&lt;BR /&gt;&amp;nbsp;--------------------------------&lt;BR /&gt;&amp;nbsp;if (f_mkfs(driverNumberBuffer, FM_ANY, 0U, work, sizeof work))&lt;BR /&gt;&amp;nbsp;&amp;nbsp; sd_disk_initialize()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_Success != SD_CardInit(&amp;amp;g_sd))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SD_ProbeBusVoltage(card) == kStatus_SDMMC_SwitchVoltageFail)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ..&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* card go idle */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_Success != SD_GoIdle(card))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return SDMMC_GoIdle(card-&amp;gt;host.base, card-&amp;gt;host.transfer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (kStatus_Success != transfer(base, &amp;amp;content))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ..&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((error != kStatus_Success) ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (false == SDMMCEVENT_Wait(kSDMMCEVENT_TransferComplete, SDMMCHOST_TRANSFER_COMPLETE_TIMEOUT)) ||&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (!s_sdifTransferSuccessFlag))&lt;/P&gt;&lt;P&gt;It never returns from the SDMMCEVENT_Wait() function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could anyone please help me?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Both demo projects work separately lpcxpresso54018_fatfs_sdcard () &amp;amp; lpcxpresso54018_dev_composite_cdc_msc_sdcard_freertos()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Feb 2019 04:29:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888914#M35630</guid>
      <dc:creator>kiryat8</dc:creator>
      <dc:date>2019-02-26T04:29:35Z</dc:date>
    </item>
    <item>
      <title>Re: RTOS SDCard USB and local access</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888915#M35631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I finally found my problem. In the FreeRTOS converted version, you need to set the SD_HOST_IRQ Interrupt priority or the vPortValidateInterruptPriority() function will throw an assertion.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So I just added in the demo code's sdcardWaitCardInsert() function the following snippet before calling SD_HostInit():&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define SDCARD_DEVICE_INTERRUPT_PRIORITY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;BR /&gt;#if defined(__GIC_PRIO_BITS)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GIC_SetPriority(SD_HOST_IRQ, (SDCARD_DEVICE_INTERRUPT_PRIORITY - 1U));&lt;BR /&gt;#else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_SetPriority(SD_HOST_IRQ, (SDCARD_DEVICE_INTERRUPT_PRIORITY - 1U));&lt;BR /&gt;#endif&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2019 10:11:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888915#M35631</guid>
      <dc:creator>kiryat8</dc:creator>
      <dc:date>2019-03-04T10:11:50Z</dc:date>
    </item>
    <item>
      <title>Re: RTOS SDCard USB and local access</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888916#M35632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for your input&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sol&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Mar 2019 03:12:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888916#M35632</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2019-03-05T03:12:49Z</dc:date>
    </item>
    <item>
      <title>Re: RTOS SDCard USB and local access</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888917#M35633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi David !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same issues , but i add&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;SD_HOST_IRQ Interrupt&lt;SPAN&gt;&amp;nbsp; in my main function, but it still error,&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;I found this problem,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;SD_CardInit() -&amp;gt; SD_ProbeBusVoltage() -&amp;gt;&amp;nbsp;SD_SendInterfaceCondition()&amp;nbsp; caused&amp;nbsp; keep in this function&amp;nbsp; &amp;nbsp;"SD_ApplicationSendOperationCondition()" ,then&amp;nbsp; sd_Init will error until timeout&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Can you give me more information, Thx !!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Jun 2019 09:55:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/RTOS-SDCard-USB-and-local-access/m-p/888917#M35633</guid>
      <dc:creator>larry_hung</dc:creator>
      <dc:date>2019-06-03T09:55:26Z</dc:date>
    </item>
  </channel>
</rss>

