<?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>i.MX RT Crossover MCUsのトピックBootloader configuration</title>
    <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890293#M30911</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We implemented custom bootloader, its working, fine.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Case1:working&lt;/P&gt;&lt;P&gt;When i configure the Boot project and Application project same configuration , its jumping to the specified application but we observed a execution delay.&lt;/P&gt;&lt;P&gt;Note: We are using SDAM configuration its configured using DCD config tool.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Case 2: Not working&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When boot project and application project has different configuration. i mean if i did not configure SDRAM in boot project , i will configure SDRAM config only in application, in this scenario application is not working.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My question is it mandatary of having boot project and application same configuration ? If not how can i debug this issue.&lt;/P&gt;&lt;P&gt;Can you verify below snippet code.&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;JumpApplicationOne&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/*! @brief Jump to application function pointer &lt;/SPAN&gt;&lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;typedef&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt; (*&lt;/SPAN&gt;&lt;SPAN&gt;F_Bootloader_Jump_t&lt;/SPAN&gt;&lt;SPAN&gt;)(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"jump_application :1\n\r"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//NOTE: Don't modify the below code and no Debug &lt;/SPAN&gt;&lt;SPAN&gt;printf&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Disable both D and I caches, Application will enable them back.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SCB_DisableDCache();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SCB_DisableICache();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Data memory barrier.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__DMB();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;DisableGlobalIRQ();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Relocate vector table.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SCB-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;VTOR&lt;/SPAN&gt;&lt;SPAN&gt; = (__IOM &lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;)APP1_BASE_ADDRESS;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Define Application function.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; jumpAddress = *(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*)(APP1_BASE_ADDRESS + 4U );&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;F_Bootloader_Jump_t&lt;/SPAN&gt;&lt;SPAN&gt; jump = (&lt;/SPAN&gt;&lt;SPAN&gt;F_Bootloader_Jump_t&lt;/SPAN&gt;&lt;SPAN&gt;)jumpAddress;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Set stack pointers to the Application stack pointer.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__set_MSP(*(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__set_PSP(*(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Jump to Application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;jump();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/3577"&gt;@bootloader&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/61445"&gt;@nxp&lt;/a&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;sandeep C&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 19 Jun 2024 10:15:48 GMT</pubDate>
    <dc:creator>sandeepc</dc:creator>
    <dc:date>2024-06-19T10:15:48Z</dc:date>
    <item>
      <title>Bootloader configuration</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890293#M30911</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We implemented custom bootloader, its working, fine.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Case1:working&lt;/P&gt;&lt;P&gt;When i configure the Boot project and Application project same configuration , its jumping to the specified application but we observed a execution delay.&lt;/P&gt;&lt;P&gt;Note: We are using SDAM configuration its configured using DCD config tool.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Case 2: Not working&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When boot project and application project has different configuration. i mean if i did not configure SDRAM in boot project , i will configure SDRAM config only in application, in this scenario application is not working.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My question is it mandatary of having boot project and application same configuration ? If not how can i debug this issue.&lt;/P&gt;&lt;P&gt;Can you verify below snippet code.&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;JumpApplicationOne&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/*! @brief Jump to application function pointer &lt;/SPAN&gt;&lt;SPAN&gt;datatype&lt;/SPAN&gt;&lt;SPAN&gt;. */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;typedef&lt;/SPAN&gt; &lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt; (*&lt;/SPAN&gt;&lt;SPAN&gt;F_Bootloader_Jump_t&lt;/SPAN&gt;&lt;SPAN&gt;)(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"jump_application :1\n\r"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//NOTE: Don't modify the below code and no Debug &lt;/SPAN&gt;&lt;SPAN&gt;printf&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Disable both D and I caches, Application will enable them back.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SCB_DisableDCache();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SCB_DisableICache();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Data memory barrier.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__DMB();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;DisableGlobalIRQ();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Relocate vector table.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SCB-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;VTOR&lt;/SPAN&gt;&lt;SPAN&gt; = (__IOM &lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;)APP1_BASE_ADDRESS;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Define Application function.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; jumpAddress = *(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*)(APP1_BASE_ADDRESS + 4U );&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;F_Bootloader_Jump_t&lt;/SPAN&gt;&lt;SPAN&gt; jump = (&lt;/SPAN&gt;&lt;SPAN&gt;F_Bootloader_Jump_t&lt;/SPAN&gt;&lt;SPAN&gt;)jumpAddress;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Set stack pointers to the Application stack pointer.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__set_MSP(*(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__set_PSP(*(&lt;/SPAN&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Jump to Application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;jump();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/60336"&gt;@kerryzhou&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/3577"&gt;@bootloader&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/61445"&gt;@nxp&lt;/a&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;sandeep C&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jun 2024 10:15:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890293#M30911</guid>
      <dc:creator>sandeepc</dc:creator>
      <dc:date>2024-06-19T10:15:48Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader configuration</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890339#M30912</link>
      <description>&lt;P&gt;DCD commands are processed by boot ROM prior to jumping to your image. Since bootloader starts first, only bootloaders DCD is processed, DCD specified in application is ignored, unless you equip your bootloader with DCD interpreter.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jun 2024 11:16:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890339#M30912</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2024-06-19T11:16:05Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader configuration</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890413#M30913</link>
      <description>&lt;P&gt;Thanks for the reply&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i am storing build bin file in external nor flash, it will work in XIP mode.&lt;/P&gt;&lt;P&gt;App address:0x30025000&lt;/P&gt;&lt;P&gt;How can we configure the DCD interpreter?&lt;/P&gt;&lt;P&gt;because we application jumping to the specified application correctly. but we are encountering delay in&amp;nbsp; response for given input.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example if i am transmitting CAN messages with 10ms but we are getting CAN response in about 13-15ms sec.&lt;/P&gt;&lt;P&gt;Response can visualize in LVGL display.&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/59129"&gt;@kef2&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sandeep C&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jun 2024 15:13:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1890413#M30913</guid>
      <dc:creator>sandeepc</dc:creator>
      <dc:date>2024-06-19T15:13:55Z</dc:date>
    </item>
    <item>
      <title>Re: Bootloader configuration</title>
      <link>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1891297#M30931</link>
      <description>&lt;P&gt;DCD format is explained in your device Reference Manual. For IMXRT1064, it is chapter 9.7.2 Device Configuration Data (DCD). DCD format is very simple, just write command, check command and NOP command. So you DIY you DCD interpreter, or just decode your self DCD binary data into sequence of memory write, bit set, bit clear or wait for bit pattern commands. Perhaps your SDRAM configuration tool allows to output C statements instead of DCD.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Jun 2024 09:27:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Bootloader-configuration/m-p/1891297#M30931</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2024-06-20T09:27:29Z</dc:date>
    </item>
  </channel>
</rss>

