<?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 RT1176 controller reset issue in MCUXpresso IDE</title>
    <link>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1929117#M9965</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm using an RT1176 controller with a custom bootloader. My application code is configured to boot from the memory address 0x30025000. Occasionally, after calling NVIC_SystemReset() for a software reset, the application fails to jump correctly to the application start address (0x30025000). This sinerio ocuurs once in 10 times.&lt;/P&gt;&lt;P&gt;In my bootloader code, I'm performing the following steps to jump to the application:&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Disable both D and I caches, Application will enable them back.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;SCB_DisableDCache();&lt;/P&gt;&lt;P&gt;SCB_DisableICache();&lt;/P&gt;&lt;P&gt;__DMB();&lt;/P&gt;&lt;P&gt;DisableGlobalIRQ();&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Relocate vector table to application base address.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;SCB-&amp;gt;VTOR = (__IOM &lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;)APP1_BASE_ADDRESS;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Define Application function.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt; jumpAddress = *(&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;*)(APP1_BASE_ADDRESS + &lt;SPAN class=""&gt;4U&lt;/SPAN&gt; );&lt;/P&gt;&lt;P&gt;F_Bootloader_Jump_t jump = (F_Bootloader_Jump_t)jumpAddress;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Set stack pointers to the Application stack pointer.&lt;/SPAN&gt; __set_MSP((&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/P&gt;&lt;P&gt;__set_PSP(*(&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Jump to Application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;jump();&lt;/P&gt;&lt;P&gt;Where APP1_BASE_ADDRESS is defined as (0x30000000 + (0x1000 * 37)).&lt;/P&gt;&lt;P&gt;Could you please advise if there's any mistake in my jump sequence that could cause this intermittent issue? What steps can I take to ensure reliable application booting after a software reset?&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
    <pubDate>Fri, 09 Aug 2024 13:09:57 GMT</pubDate>
    <dc:creator>Pavankumar1</dc:creator>
    <dc:date>2024-08-09T13:09:57Z</dc:date>
    <item>
      <title>RT1176 controller reset issue</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1929117#M9965</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm using an RT1176 controller with a custom bootloader. My application code is configured to boot from the memory address 0x30025000. Occasionally, after calling NVIC_SystemReset() for a software reset, the application fails to jump correctly to the application start address (0x30025000). This sinerio ocuurs once in 10 times.&lt;/P&gt;&lt;P&gt;In my bootloader code, I'm performing the following steps to jump to the application:&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Disable both D and I caches, Application will enable them back.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;SCB_DisableDCache();&lt;/P&gt;&lt;P&gt;SCB_DisableICache();&lt;/P&gt;&lt;P&gt;__DMB();&lt;/P&gt;&lt;P&gt;DisableGlobalIRQ();&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Relocate vector table to application base address.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;SCB-&amp;gt;VTOR = (__IOM &lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;)APP1_BASE_ADDRESS;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Define Application function.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt; jumpAddress = *(&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;*)(APP1_BASE_ADDRESS + &lt;SPAN class=""&gt;4U&lt;/SPAN&gt; );&lt;/P&gt;&lt;P&gt;F_Bootloader_Jump_t jump = (F_Bootloader_Jump_t)jumpAddress;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Set stack pointers to the Application stack pointer.&lt;/SPAN&gt; __set_MSP((&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/P&gt;&lt;P&gt;__set_PSP(*(&lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt;*)APP1_BASE_ADDRESS);&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;// Jump to Application.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;jump();&lt;/P&gt;&lt;P&gt;Where APP1_BASE_ADDRESS is defined as (0x30000000 + (0x1000 * 37)).&lt;/P&gt;&lt;P&gt;Could you please advise if there's any mistake in my jump sequence that could cause this intermittent issue? What steps can I take to ensure reliable application booting after a software reset?&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Fri, 09 Aug 2024 13:09:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1929117#M9965</guid>
      <dc:creator>Pavankumar1</dc:creator>
      <dc:date>2024-08-09T13:09:57Z</dc:date>
    </item>
    <item>
      <title>Re: RT1176 controller reset issue</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1936734#M9994</link>
      <description>&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;Hello &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/222340"&gt;@Pavankumar1&lt;/a&gt;,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;Sorry for taking a while to get back to you. In order to support you better, can you provide me more information about your application?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;-Are you running in XIP mode?&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;-can you provide more context about your application and in which cases uses NVIC_SystemReset()?&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;-what is the memory that is used in your application?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;Also, I understand that you are currently using a secondary bootloader, if this is the case the SDK (version 2.16) provides an example of this called "mcuboot_opensource". I highly recommend look into in this example in order to know how it works.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;BR&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="arial,helvetica,sans-serif" size="3"&gt;Habib.&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Aug 2024 21:26:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1936734#M9994</guid>
      <dc:creator>Habib_MS</dc:creator>
      <dc:date>2024-08-20T21:26:13Z</dc:date>
    </item>
    <item>
      <title>Re: RT1176 controller reset issue</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1938996#M10000</link>
      <description>Thank you for the replay .@Habib_MS&lt;BR /&gt;1. -Are you running in XIP mode?&lt;BR /&gt;Yes I am running in XIP mode.&lt;BR /&gt;2. -can you provide more context about your application and in which cases uses NVIC_SystemReset()?&lt;BR /&gt;Based on the CAN message received from I am using NVIC_SystemReset() to restart the MCU.&lt;BR /&gt;3. -what is the memory that is used in your application?&lt;BR /&gt;External 16MB flash and 16MB external SDRAM.</description>
      <pubDate>Fri, 23 Aug 2024 06:05:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1938996#M10000</guid>
      <dc:creator>Pavankumar1</dc:creator>
      <dc:date>2024-08-23T06:05:58Z</dc:date>
    </item>
    <item>
      <title>Re: RT1176 controller reset issue</title>
      <link>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1940583#M10006</link>
      <description>&lt;P&gt;&lt;FONT size="3"&gt;&lt;SPAN&gt;Hello again &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/222340"&gt;@Pavankumar1&lt;/a&gt;,&lt;BR /&gt;When performing a software reset, the FLASH must also be reset, this is because when the primary bootloader runs it will initialize the communication in single line 1-1-1 mode to get the FCB (FlexSPI Configuration Block) first. However, the flash was previously initialized and is not communicating over single line and is throwing an error. in order to try and pinpoint if that is the problem, can you reset the FLASH before a NVIC_SystemReset()?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;Also, in this &lt;A href="https://www.nxp.com/docs/en/application-note/AN12604.pdf" target="_blank"&gt;app note&lt;/A&gt;&amp;nbsp;shows how "Implement Second Bootloader on i.MX RT10xx Series", although this app note uses RT10xx series, is the same concept for the RT1176&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;BR&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;Habib&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 26 Aug 2024 18:07:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCUXpresso-IDE/RT1176-controller-reset-issue/m-p/1940583#M10006</guid>
      <dc:creator>Habib_MS</dc:creator>
      <dc:date>2024-08-26T18:07:00Z</dc:date>
    </item>
  </channel>
</rss>

