<?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 Re: IMXRT1050 USB examples fail to run from OCRAM in MCUXpresso SDK</title>
    <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960334#M1756</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jing,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there documentation on how to do this?&amp;nbsp; I don't know what the control and data exchange blocks are.&amp;nbsp; Is the developer expected to make changes to the MCUXpresso SDK code directly?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the dev_hid_mouse_bm example, the buffer is already defined to use non-cached memory:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;mouse.c&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;/*******************************************************************************
 * Variables
 ******************************************************************************/
USB_DMA_NONINIT_DATA_ALIGN(USB_DATA_ALIGN_SIZE) static uint8_t s_MouseBuffer[USB_HID_MOUSE_REPORT_LENGTH];&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the thread: &lt;A href="https://community.nxp.com/thread/512042" rel="nofollow noopener noreferrer" target="_blank"&gt;MCUX on RT1050 - MMC stack won't initialize&lt;/A&gt;&amp;nbsp; &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/drodgers" rel="nofollow noopener noreferrer" target="_blank"&gt;drodgers&lt;/A&gt; had a similar issue with ENET which seems to require a change to the SDK code, although the USB stack config and comments seem to suggest that caching should be taken care of automatically when configured correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is already cache handling code around the USB config buffer in usb_device_dci.c, are you suggesting that this is not sufficient to allow using cached memory for USB?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_device_dci.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;#if (defined(USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE) &amp;amp;&amp;amp; (USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE &amp;gt; 0U))
            if (length)
            {
                DCACHE_CleanByRange((uint32_t)buffer, length);
            }
#endif
            /* Call the controller send interface, the callbackFn is initialized in
            USB_DeviceGetControllerInterface */
            error = deviceHandle-&amp;gt;controllerInterface-&amp;gt;deviceSend(deviceHandle-&amp;gt;controllerHandle, endpointAddress,
                                                                  buffer, length);
        }
        else
        {
#if (defined(USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE) &amp;amp;&amp;amp; (USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE &amp;gt; 0U))
            if (length)
            {
                DCACHE_CleanInvalidateByRange((uint32_t)buffer, length);
            }
#endif&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Sep 2019 12:50:24 GMT</pubDate>
    <dc:creator>jackking</dc:creator>
    <dc:date>2019-09-24T12:50:24Z</dc:date>
    <item>
      <title>IMXRT1050 USB DEVICE examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960331#M1753</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Similar to other issues I have had with other SDK samples (FatFS/SDcard), it seems that caching causes problems with USB device samples.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If I switch one of the samples (such as: dev_hid_mouse_bm) to use SRAM_OC as location of global vars, then USB will fail to enumerate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have also tried setting the config buffer to be cacheable in usb_device_config.h, but that causes USB device initialization to fail completely.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can I use the USB stack when running from OCRAM?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Banners_and_Alerts_and_Properties_for_evkmimxrt1060_dev_hid_mouse_bm.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/88023iBCD2DCB094356182/image-size/large?v=v2&amp;amp;px=999" role="button" title="Banners_and_Alerts_and_Properties_for_evkmimxrt1060_dev_hid_mouse_bm.jpg" alt="Banners_and_Alerts_and_Properties_for_evkmimxrt1060_dev_hid_mouse_bm.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="workspace_-_evkmimxrt1060_dev_hid_mouse_bm_source_usb_device_config_h_-_MCUXpresso_IDE.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/88148i5C543C7C62547DDF/image-size/large?v=v2&amp;amp;px=999" role="button" title="workspace_-_evkmimxrt1060_dev_hid_mouse_bm_source_usb_device_config_h_-_MCUXpresso_IDE.jpg" alt="workspace_-_evkmimxrt1060_dev_hid_mouse_bm_source_usb_device_config_h_-_MCUXpresso_IDE.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Sep 2019 16:49:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960331#M1753</guid>
      <dc:creator>jackking</dc:creator>
      <dc:date>2019-09-23T16:49:51Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960332#M1754</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried defining sections to match what is in the USB macros of usb_misc.h, but it still didn't fix the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="workspace_-_evkmimxrt1060_dev_hid_mouse_bm_usb_include_usb_misc_h_-_MCUXpresso_IDE.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/91162i8815950EB2E5A5FF/image-size/large?v=v2&amp;amp;px=999" role="button" title="workspace_-_evkmimxrt1060_dev_hid_mouse_bm_usb_include_usb_misc_h_-_MCUXpresso_IDE.jpg" alt="workspace_-_evkmimxrt1060_dev_hid_mouse_bm_usb_include_usb_misc_h_-_MCUXpresso_IDE.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Properties_for_evkmimxrt1060_dev_hid_mouse_bm.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/91233i897550D1ABD2263F/image-size/large?v=v2&amp;amp;px=999" role="button" title="Properties_for_evkmimxrt1060_dev_hid_mouse_bm.jpg" alt="Properties_for_evkmimxrt1060_dev_hid_mouse_bm.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Sep 2019 23:58:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960332#M1754</guid>
      <dc:creator>jackking</dc:creator>
      <dc:date>2019-09-23T23:58:41Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960333#M1755</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jack,&lt;/P&gt;&lt;P&gt;In fact, not only USB, but also ENET has this phenomenon. This is because these bus masters put their control and data exchange blocks in RAM, for example, USB Periodic Frame List. Since TCM do not need cache, anything written by USB/ENET peripheral can be read by MCU directly. But if you put these blocks in OCRAM, MCU will not know if the data is changed by other master. MCU will still read data from cache but not refresh it. So, if you hope to make full use of OCRAM, you should keep these control and data exchange blocks in DTCM, or close cache function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jing&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Sep 2019 06:20:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960333#M1755</guid>
      <dc:creator>jingpan</dc:creator>
      <dc:date>2019-09-24T06:20:10Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960334#M1756</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jing,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there documentation on how to do this?&amp;nbsp; I don't know what the control and data exchange blocks are.&amp;nbsp; Is the developer expected to make changes to the MCUXpresso SDK code directly?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the dev_hid_mouse_bm example, the buffer is already defined to use non-cached memory:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;mouse.c&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;/*******************************************************************************
 * Variables
 ******************************************************************************/
USB_DMA_NONINIT_DATA_ALIGN(USB_DATA_ALIGN_SIZE) static uint8_t s_MouseBuffer[USB_HID_MOUSE_REPORT_LENGTH];&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the thread: &lt;A href="https://community.nxp.com/thread/512042" rel="nofollow noopener noreferrer" target="_blank"&gt;MCUX on RT1050 - MMC stack won't initialize&lt;/A&gt;&amp;nbsp; &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/drodgers" rel="nofollow noopener noreferrer" target="_blank"&gt;drodgers&lt;/A&gt; had a similar issue with ENET which seems to require a change to the SDK code, although the USB stack config and comments seem to suggest that caching should be taken care of automatically when configured correctly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is already cache handling code around the USB config buffer in usb_device_dci.c, are you suggesting that this is not sufficient to allow using cached memory for USB?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_device_dci.c:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;#if (defined(USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE) &amp;amp;&amp;amp; (USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE &amp;gt; 0U))
            if (length)
            {
                DCACHE_CleanByRange((uint32_t)buffer, length);
            }
#endif
            /* Call the controller send interface, the callbackFn is initialized in
            USB_DeviceGetControllerInterface */
            error = deviceHandle-&amp;gt;controllerInterface-&amp;gt;deviceSend(deviceHandle-&amp;gt;controllerHandle, endpointAddress,
                                                                  buffer, length);
        }
        else
        {
#if (defined(USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE) &amp;amp;&amp;amp; (USB_DEVICE_CONFIG_BUFFER_PROPERTY_CACHEABLE &amp;gt; 0U))
            if (length)
            {
                DCACHE_CleanInvalidateByRange((uint32_t)buffer, length);
            }
#endif&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Sep 2019 12:50:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960334#M1756</guid>
      <dc:creator>jackking</dc:creator>
      <dc:date>2019-09-24T12:50:24Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960335#M1757</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Jing,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My biggest issue with the RT1050 SDK software right now is that this software has been provided in a state where much of the middleware (USB, lwIP, FatFS)&amp;nbsp;&lt;SPAN style="text-decoration: underline;"&gt;does not function correctly&lt;/SPAN&gt; on a platform where any memory other than (non-cacheable) SRAM_DTC is used for global data.&amp;nbsp; For a chip where the official eval board has 32 MB of SDRAM, forcing all global data into 128 KB is incredibly constraining and for many use cases impossible.&amp;nbsp; It is frustrating to NXP's customers to provide them this RT1050 software as-is, then only provide general advice when those customers inevitably incur multiple hours of development cost while discovering, reporting, and mitigating these issues.&amp;nbsp; SDK examples need to function correctly regardless of what memory region is used for global data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/Hui_Ma"&gt;Hui_Ma&lt;/A&gt;‌ / Mike has done a great job &lt;A _jive_internal="true" href="https://community.nxp.com/thread/512042#comment-1209323"&gt;investigating these issues and fielding my concerns&lt;/A&gt;; it is my hope you will work closely with him and the rest of the SDK team to resolve these deficiencies in the SDK software, rather than leaving these issues as an exercise for the reader.&amp;nbsp; Thanks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David R.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Sep 2019 15:31:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960335#M1757</guid>
      <dc:creator>dmarks_ls</dc:creator>
      <dc:date>2019-09-24T15:31:38Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960336#M1758</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello guys,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In cases when a cacheable RAM region is being used as main RAM for the application it&amp;nbsp;will be necessary to&amp;nbsp;relocate the USB descriptors and data to a non cacheable memory. The following changes in the project will take care of this relocation:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;In the &lt;STRONG&gt;usb_misc.h&lt;/STRONG&gt; file update these definitions to the following, changes in bold:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;#else&lt;BR /&gt;#define USB_GLOBAL USB_LINK_USB_GLOBAL_BSS&lt;BR /&gt;#define USB_BDT USB_LINK_USB_BDT_BSS&lt;BR /&gt;#define USB_DMA_DATA_NONINIT_SUB &lt;STRONG&gt;USB_LINK_NONCACHE_NONINIT_DATA&lt;/STRONG&gt;&lt;BR /&gt;#define USB_DMA_DATA_INIT_SUB&lt;BR /&gt;#define USB_CONTROLLER_DATA &lt;STRONG&gt;USB_LINK_NONCACHE_NONINIT_DATA&lt;/STRONG&gt;&lt;BR /&gt;#endif&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;In the project properties, inside the managed linker script configurations add the following Extra linker script input sections:&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/83161i946430F500C2E572/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With the above configuration, the&amp;nbsp;USB descriptors and data will be placed in the &lt;STRONG&gt;SRAM_DTC&lt;/STRONG&gt; region, the same changes apply if you want to use the Non cacheable SDRAM region, you just need to change the region you want to use in the configuration above.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Carlos Mendoza&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Sep 2019 21:46:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960336#M1758</guid>
      <dc:creator>Carlos_Mendoza</dc:creator>
      <dc:date>2019-09-26T21:46:21Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960337#M1759</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Carlos.&amp;nbsp; I appreciate the clarification regarding .bss and .data for non-cacheable data (I was missing the .init section definition).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Will these source code modifications&amp;nbsp;&lt;SPAN style="text-decoration: underline;"&gt;and&lt;/SPAN&gt; linker script changes be incorporated into future SDK revisions and example projects, for USB and all other peripherals and middleware that are affected by RT1050 cache issues?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EDIT: I missed Jing's reply above.&amp;nbsp; I'm glad that NXP acknowledges that there is considerable work to be done, and I look forward to seeing this platform working at its full potential.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;David R.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Sep 2019 23:10:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960337#M1759</guid>
      <dc:creator>dmarks_ls</dc:creator>
      <dc:date>2019-09-26T23:10:55Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB DEVICE examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960338#M1760</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/carlosmendoza"&gt;carlosmendoza&lt;/A&gt;‌ It looks like this change only works for the USB device examples.&amp;nbsp;&amp;nbsp; Do you know the corresponding change that is necessary for the USB host examples?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 06 Oct 2019 15:43:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960338#M1760</guid>
      <dc:creator>jackking</dc:creator>
      <dc:date>2019-10-06T15:43:07Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB DEVICE examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960339#M1761</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Carlos - that answer was super helpful for me to get stated. I just would like another option. The NonCacheable section could also assigned to the OCRAM memory region.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Set up another region of OCRAM (note - 0x10000 is really much more than is needed)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Memoryedit.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/98434i6521F35C17007694/image-size/large?v=v2&amp;amp;px=999" role="button" title="Memoryedit.png" alt="Memoryedit.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Like Carlos, use the "NonCacheable" description on the new region&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="NonCacheable Region.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/98435iD49C5BEFA604A6A5/image-size/large?v=v2&amp;amp;px=999" role="button" title="NonCacheable Region.png" alt="NonCacheable Region.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Setup the MPU to block cache access to a MPU region in board.c&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Region 5 setting */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MPU-&amp;gt;RBAR = ARM_MPU_RBAR(5, 0x20210000);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 0, 1, 0, ARM_MPU_REGION_SIZE_64KB);&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Then follow Carlos' first step and add &lt;STRONG&gt;USB_LINK_NONCACHE_NONINIT_DATA&lt;/STRONG&gt; in usb_misc.h&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This example kind of fragments the memory, but it should work well enough to get started running the USB demo completely in OCRAM.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2019 20:33:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/960339#M1761</guid>
      <dc:creator>mark_byrnes1</dc:creator>
      <dc:date>2019-12-19T20:33:25Z</dc:date>
    </item>
    <item>
      <title>Re: IMXRT1050 USB DEVICE examples fail to run from OCRAM</title>
      <link>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/1396136#M3508</link>
      <description>&lt;P&gt;were you able to run the USB code on SRAM_OC with the above changes?.&amp;nbsp;&lt;BR /&gt;i have been trying the above changes, but the USB enumeration is failing.&lt;BR /&gt;&lt;BR /&gt;this is my board.c changes&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="c"&gt;/* Region 5 setting: Memory with Normal type, not shareable, outer/inner write back */
    MPU-&amp;gt;RBAR = ARM_MPU_RBAR(5, 0x00000000U);
    MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);

    /* Region 6 setting: Memory with Normal type, not shareable, outer/inner write back */
    MPU-&amp;gt;RBAR = ARM_MPU_RBAR(6, 0x20000000U);
    MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);

    /* Region 7 setting: Memory with Normal type, not shareable, outer/inner write back */
    MPU-&amp;gt;RBAR = ARM_MPU_RBAR(7, 0x20200000U);
    MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256B-ARM_MPU_REGION_SIZE_32KB);

    /*Region 11 for sram oc non cache area */
    MPU-&amp;gt;RBAR = ARM_MPU_RBAR(11, 0x20238000U);
    MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 0, 1, 0, ARM_MPU_REGION_SIZE_32KB);


    /* Region 8 setting: Memory with Normal type, not shareable, outer/inner write back */
    MPU-&amp;gt;RBAR = ARM_MPU_RBAR(8, 0x80000000U);
    MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_32MB);

    while ((size &amp;gt;&amp;gt; i) &amp;gt; 0x1U)
    {
        i++;
    }

    if (i != 0)
    {
        /* The MPU region size should be 2^N, 5&amp;lt;=N&amp;lt;=32, region base should be multiples of size. */
        assert(!(nonCacheStart % size));
        assert(size == (uint32_t)(1 &amp;lt;&amp;lt; i));
        assert(i &amp;gt;= 5);

        /* Region 9 setting: Memory with Normal type, not shareable, non-cacheable */
        MPU-&amp;gt;RBAR = ARM_MPU_RBAR(9, nonCacheStart);
        MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1);
    }

    /* Region 10 setting: Memory with Device type, not shareable, non-cacheable */
    MPU-&amp;gt;RBAR = ARM_MPU_RBAR(10, 0x40000000);
    MPU-&amp;gt;RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, ARM_MPU_REGION_SIZE_4MB);

    /* Enable MPU */
    ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my usb_misc.h changes&lt;/P&gt;&lt;LI-CODE lang="c"&gt;#define USB_CONTROLLER_DATA      USB_LINK_NONCACHE_NONINIT_DATA
#else
#define USB_GLOBAL USB_LINK_USB_GLOBAL_BSS
#define USB_BDT    USB_LINK_USB_BDT_BSS
#define USB_DMA_DATA_NONINIT_SUB USB_LINK_NONCACHE_NONINIT_DATA
#define USB_DMA_DATA_INIT_SUB
#define USB_CONTROLLER_DATA	USB_LINK_NONCACHE_NONINIT_DATA
#endif&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my linker setttings&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="slimSHA_0-1641555736991.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/167018i46072CC384658953/image-size/medium?v=v2&amp;amp;px=400" role="button" title="slimSHA_0-1641555736991.png" alt="slimSHA_0-1641555736991.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;my mcu settings&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="slimSHA_1-1641555885335.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/167019i0D901BB022DC8091/image-size/medium?v=v2&amp;amp;px=400" role="button" title="slimSHA_1-1641555885335.png" alt="slimSHA_1-1641555885335.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;am I missing anything?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Jan 2022 11:45:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-SDK/IMXRT1050-USB-DEVICE-examples-fail-to-run-from-OCRAM/m-p/1396136#M3508</guid>
      <dc:creator>slimSHA</dc:creator>
      <dc:date>2022-01-07T11:45:37Z</dc:date>
    </item>
  </channel>
</rss>

