<?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 S32K144 in S32K</title>
    <link>https://community.nxp.com/t5/S32K/S32K144/m-p/1689391#M25218</link>
    <description>&lt;P&gt;i am building a bootloader project , in others projrct based infineon&amp;nbsp; TC233&amp;nbsp; ,i see the app address in pflash is&amp;nbsp;0x80020020,&amp;nbsp; but&amp;nbsp; when system reset ,the&amp;nbsp; jump address&amp;nbsp; for app is&amp;nbsp;0x80020000, the two address is different ,i want to know ,why they are not the same address ??????&lt;/P&gt;&lt;P&gt;now i am building a bootloader based on s32k144 ,the adderss jump app is&amp;nbsp;0x00010000,how should i set the app start address in pflash???&lt;/P&gt;&lt;DIV&gt;void Appl_JumpApp(uint32_t add)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; static void (*jump_to_application)(void);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; static uint32_t stack_pointer;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; uint32_t appEntry, appStack;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; appStack = *(uint32_t *)(add);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; appEntry = *(uint32_t *)(add + 4);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /*把应用程序入口地址赋值给函数指针*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; jump_to_application = (void (*)(void))appEntry;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; stack_pointer = appStack;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /* 重新定向中断向量表 */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; S32_SCB-&amp;gt;VTOR = (uint32_t)add;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /* 设置栈指针&amp;nbsp; */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; __asm volatile ("MSR msp, %0\n" : : "r" (stack_pointer) : "sp");&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; __asm volatile ("MSR psp, %0\n" : : "r" (stack_pointer) : "sp");&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /*跳转*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; jump_to_application();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
    <pubDate>Thu, 20 Jul 2023 11:19:52 GMT</pubDate>
    <dc:creator>zq1</dc:creator>
    <dc:date>2023-07-20T11:19:52Z</dc:date>
    <item>
      <title>S32K144</title>
      <link>https://community.nxp.com/t5/S32K/S32K144/m-p/1689391#M25218</link>
      <description>&lt;P&gt;i am building a bootloader project , in others projrct based infineon&amp;nbsp; TC233&amp;nbsp; ,i see the app address in pflash is&amp;nbsp;0x80020020,&amp;nbsp; but&amp;nbsp; when system reset ,the&amp;nbsp; jump address&amp;nbsp; for app is&amp;nbsp;0x80020000, the two address is different ,i want to know ,why they are not the same address ??????&lt;/P&gt;&lt;P&gt;now i am building a bootloader based on s32k144 ,the adderss jump app is&amp;nbsp;0x00010000,how should i set the app start address in pflash???&lt;/P&gt;&lt;DIV&gt;void Appl_JumpApp(uint32_t add)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; static void (*jump_to_application)(void);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; static uint32_t stack_pointer;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; uint32_t appEntry, appStack;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; appStack = *(uint32_t *)(add);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; appEntry = *(uint32_t *)(add + 4);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /*把应用程序入口地址赋值给函数指针*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; jump_to_application = (void (*)(void))appEntry;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; stack_pointer = appStack;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /* 重新定向中断向量表 */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; S32_SCB-&amp;gt;VTOR = (uint32_t)add;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /* 设置栈指针&amp;nbsp; */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; __asm volatile ("MSR msp, %0\n" : : "r" (stack_pointer) : "sp");&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; __asm volatile ("MSR psp, %0\n" : : "r" (stack_pointer) : "sp");&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; /*跳转*/&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; jump_to_application();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
      <pubDate>Thu, 20 Jul 2023 11:19:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144/m-p/1689391#M25218</guid>
      <dc:creator>zq1</dc:creator>
      <dc:date>2023-07-20T11:19:52Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144</title>
      <link>https://community.nxp.com/t5/S32K/S32K144/m-p/1690204#M25269</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/219920"&gt;@zq1&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Standard reset vector is always placed at address 0x4. This is used by your bootloader.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lukaszadrapa_0-1689925328613.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/232957iE12A8E70D982FFFB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="lukaszadrapa_0-1689925328613.png" alt="lukaszadrapa_0-1689925328613.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;If you shift user application to 0x10000, the reset vector can be found at 0x10004 and initial value of stack pointer at 0x10000. That's what your code shows (add is the base address 0x10000):&lt;/P&gt;
&lt;P&gt;appStack = *(uint32_t *)(add);&lt;BR /&gt;appEntry = *(uint32_t *)(add + 4);&lt;/P&gt;
&lt;P&gt;If you are asking how to shift application to 0x10000 then just change this in your linker file:&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 = 0x00000410, LENGTH = 0x0007FBF0&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;to this:&lt;/P&gt;
&lt;P&gt;MEMORY&lt;BR /&gt;{&lt;BR /&gt;/* Flash */&lt;BR /&gt;m_interrupts (RX) : ORIGIN = 0x00010000, LENGTH = 0x00000400&lt;BR /&gt;m_flash_config (RX) : ORIGIN = 0x00010400, LENGTH = 0x00000010&lt;BR /&gt;m_text (RX) : ORIGIN = 0x00010410, LENGTH = 0x0007FBF0-0x10000&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Lukas&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jul 2023 07:51:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144/m-p/1690204#M25269</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2023-07-21T07:51:12Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144</title>
      <link>https://community.nxp.com/t5/S32K/S32K144/m-p/1690309#M25280</link>
      <description>&lt;P&gt;i want to know ,the origin&amp;nbsp; &amp;nbsp; m_interrupts (RX) : ORIGIN = 0x00000000&amp;nbsp; &amp;nbsp;must be same with&amp;nbsp;APP_START_ADDR ????&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jul 2023 09:33:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144/m-p/1690309#M25280</guid>
      <dc:creator>zq1</dc:creator>
      <dc:date>2023-07-21T09:33:00Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144</title>
      <link>https://community.nxp.com/t5/S32K/S32K144/m-p/1691171#M25332</link>
      <description>&lt;P&gt;Yes, that's correct.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jul 2023 08:00:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K144/m-p/1691171#M25332</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2023-07-24T08:00:55Z</dc:date>
    </item>
  </channel>
</rss>

