<?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 Issue in Jumping Bootloader to Application in NXP Designs</title>
    <link>https://community.nxp.com/t5/NXP-Designs/Issue-in-Jumping-Bootloader-to-Application/m-p/1034145#M373</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&amp;nbsp;&lt;/P&gt;&lt;P&gt;i am using S32K144, i have&amp;nbsp;separate custom boot loader and Application projects. I have Reset vector address in my boot loader project . so after some condition the control should go to Application project from bootloader..&lt;/P&gt;&lt;P&gt;I used this logic for jumping&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define&amp;nbsp;&lt;SPAN&gt;APP_START_ADDRESS&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x1000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;if(Boot_flag) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(userSP == 0xFFFFFFFF){&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; disable_intterupts();&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S32_SCB-&amp;gt;VTOR = (uint32_t)APP_START_ADDRESS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JumpToUserApplication(*((uint32_t*)APP_START_ADDRESS), *((uint32_t*)(APP_START_ADDRESS + 4)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void JumpToUserApplication( unsigned int userSP, unsigned int userStartup)&lt;BR /&gt;{&lt;BR /&gt;/* Set up stack pointer */&lt;BR /&gt; __asm("msr msp, r0");&lt;BR /&gt; __asm("msr psp, r0");&lt;/P&gt;&lt;P&gt;/* Relocate vector table */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Jump to application PC (r1) */&lt;BR /&gt; __asm("mov pc, r1");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Using this it is jumping to ASW startup code but stucks in address 0x1478&lt;/P&gt;&lt;P&gt;Boot loader linker script :&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; /* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00000E000, LENGTH = 0x0001FFFF&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt; m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Application linker :&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;/* Flash */&lt;BR /&gt;m_interrupts (RX) : ORIGIN = 0x00001000, LENGTH = 0x00000400&lt;BR /&gt;m_flash_config (RX) : ORIGIN = 0x00001400, LENGTH = 0x00000010&lt;BR /&gt;m_text (RX) : ORIGIN = 0x000001410, LENGTH = 0x0000CFFF&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt;m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt;m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;where i did the mistake ?&lt;/P&gt;&lt;P&gt;Please help me to sort out this issue.&lt;/P&gt;&lt;P&gt;Thanks in Advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 16 Mar 2020 07:42:16 GMT</pubDate>
    <dc:creator>veerajuvh619</dc:creator>
    <dc:date>2020-03-16T07:42:16Z</dc:date>
    <item>
      <title>Issue in Jumping Bootloader to Application</title>
      <link>https://community.nxp.com/t5/NXP-Designs/Issue-in-Jumping-Bootloader-to-Application/m-p/1034145#M373</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&amp;nbsp;&lt;/P&gt;&lt;P&gt;i am using S32K144, i have&amp;nbsp;separate custom boot loader and Application projects. I have Reset vector address in my boot loader project . so after some condition the control should go to Application project from bootloader..&lt;/P&gt;&lt;P&gt;I used this logic for jumping&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define&amp;nbsp;&lt;SPAN&gt;APP_START_ADDRESS&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x1000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;main()&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;if(Boot_flag) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if(userSP == 0xFFFFFFFF){&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; disable_intterupts();&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S32_SCB-&amp;gt;VTOR = (uint32_t)APP_START_ADDRESS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JumpToUserApplication(*((uint32_t*)APP_START_ADDRESS), *((uint32_t*)(APP_START_ADDRESS + 4)));&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void JumpToUserApplication( unsigned int userSP, unsigned int userStartup)&lt;BR /&gt;{&lt;BR /&gt;/* Set up stack pointer */&lt;BR /&gt; __asm("msr msp, r0");&lt;BR /&gt; __asm("msr psp, r0");&lt;/P&gt;&lt;P&gt;/* Relocate vector table */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* Jump to application PC (r1) */&lt;BR /&gt; __asm("mov pc, r1");&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;Using this it is jumping to ASW startup code but stucks in address 0x1478&lt;/P&gt;&lt;P&gt;Boot loader linker script :&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt; /* Flash */&lt;BR /&gt; m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400&lt;BR /&gt; m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010&lt;BR /&gt; m_text (RX) : ORIGIN = 0x00000E000, LENGTH = 0x0001FFFF&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt; m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt; m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Application linker :&lt;/P&gt;&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;/* Flash */&lt;BR /&gt;m_interrupts (RX) : ORIGIN = 0x00001000, LENGTH = 0x00000400&lt;BR /&gt;m_flash_config (RX) : ORIGIN = 0x00001400, LENGTH = 0x00000010&lt;BR /&gt;m_text (RX) : ORIGIN = 0x000001410, LENGTH = 0x0000CFFF&lt;/P&gt;&lt;P&gt;/* SRAM_L */&lt;BR /&gt;m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000&lt;/P&gt;&lt;P&gt;/* SRAM_U */&lt;BR /&gt;m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;where i did the mistake ?&lt;/P&gt;&lt;P&gt;Please help me to sort out this issue.&lt;/P&gt;&lt;P&gt;Thanks in Advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Mar 2020 07:42:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NXP-Designs/Issue-in-Jumping-Bootloader-to-Application/m-p/1034145#M373</guid>
      <dc:creator>veerajuvh619</dc:creator>
      <dc:date>2020-03-16T07:42:16Z</dc:date>
    </item>
    <item>
      <title>Re: Issue in Jumping Bootloader to Application</title>
      <link>https://community.nxp.com/t5/NXP-Designs/Issue-in-Jumping-Bootloader-to-Application/m-p/1034146#M374</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can see this question is duplicated here: &lt;A href="https://community.nxp.com/thread/527198"&gt;https://community.nxp.com/thread/527198&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please follow that one.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Mar 2020 08:05:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/NXP-Designs/Issue-in-Jumping-Bootloader-to-Application/m-p/1034146#M374</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2020-03-18T08:05:53Z</dc:date>
    </item>
  </channel>
</rss>

