<?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: S32K144: Bootloader not jumping to application in S32 Design Studio</title>
    <link>https://community.nxp.com/t5/S32-Design-Studio/S32K144-Bootloader-not-jumping-to-application/m-p/1830509#M12047</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/230893"&gt;@Estelle13&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;Are you following&amp;nbsp;&lt;A href="https://www.nxp.com/docs/en/application-note/AN12218.pdf" target="_blank"&gt;AN12218&lt;/A&gt; for the bootloader implementation?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please look into the following community posts, as there has been a similar discussion about this topic:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K/How-to-jump-to-APP-code-from-BOOT/m-p/1577933" target="_blank"&gt;Solved: How to jump to APP code from BOOT. - NXP Community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K/S32K148-Bootloader-not-jumping-to-application/m-p/1220538" target="_blank"&gt;S32K148: Bootloader not jumping to application - NXP Community&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 18 Mar 2024 18:58:27 GMT</pubDate>
    <dc:creator>Julián_AragónM</dc:creator>
    <dc:date>2024-03-18T18:58:27Z</dc:date>
    <item>
      <title>S32K144: Bootloader not jumping to application</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/S32K144-Bootloader-not-jumping-to-application/m-p/1827089#M12029</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I want to download the bootloader onto the S32K144 board.The following error occurred after running the startup code, provided for reference.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;No source available for "0xfffffffe" &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BusFault: A bus fault has occurred on exception entry.&lt;BR /&gt;MemManage: The processor attempted an instruction fetch from a location that does not permit execution.&lt;BR /&gt;HardFault: A fault has been escalated to a hard fault. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include "timeout.h"&lt;/P&gt;&lt;P&gt;#include "comm.h"&lt;/P&gt;&lt;P&gt;#include "clock.h"&lt;/P&gt;&lt;P&gt;#include&amp;nbsp;&amp;lt;stdio.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include "power_rcm_hw_access.h"&lt;/P&gt;&lt;P&gt;#include "uart.h"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define APP_START_ADDRESS 0x00008000&lt;/P&gt;&lt;P&gt;uint8_t boot_from_comm = 0;&lt;/P&gt;&lt;P&gt;static void JumpToUserApplication( unsigned int userSP, unsigned int userStartup);&lt;/P&gt;&lt;P&gt;void Bootup_Application(uint32_t appEntry, uint32_t appStack);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;int main(void) {&lt;/P&gt;&lt;P&gt;uint32_t time = 50000;&lt;/P&gt;&lt;P&gt;uint32_t appEntry, appStack;&lt;/P&gt;&lt;P&gt;uint8_t bootCount = 0;&lt;/P&gt;&lt;P&gt;uint8_t bootInfo = 0;&lt;/P&gt;&lt;P&gt;uint8_t DOWN_LINK = 0;&lt;/P&gt;&lt;P&gt;clock_initi();&lt;/P&gt;&lt;P&gt;init_comm();&lt;/P&gt;&lt;P&gt;init_timeout();&lt;/P&gt;&lt;P&gt;do{&lt;/P&gt;&lt;P&gt;if(comm_status_rx())&lt;/P&gt;&lt;P&gt;bootInfo = UART_GetChar(UART_PORT);&lt;/P&gt;&lt;P&gt;if(bootInfo == 0x2A)&lt;/P&gt;&lt;P&gt;bootCount++;&lt;/P&gt;&lt;P&gt;else&lt;/P&gt;&lt;P&gt;bootCount = 0;&lt;/P&gt;&lt;P&gt;if(bootCount&amp;gt;=4) {&lt;/P&gt;&lt;P&gt;DOWN_LINK = 1;&lt;/P&gt;&lt;P&gt;UART_PutChar(UART_PORT, LINKED); }&lt;/P&gt;&lt;P&gt;} while(!timeout() &amp;amp;&amp;amp; (!DOWN_LINK));&lt;/P&gt;&lt;P&gt;if(DOWN_LINK) {&lt;/P&gt;&lt;P&gt;do{&lt;/P&gt;&lt;P&gt;uint8_t word_received = comm_status_rx();&lt;/P&gt;&lt;P&gt;if(word_received){&lt;/P&gt;&lt;P&gt;boot_from_comm = 1;&lt;/P&gt;&lt;P&gt;comm_download_app(); }&lt;/P&gt;&lt;P&gt;} while(!boot_from_comm);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;disable_timeout();&lt;/P&gt;&lt;P&gt;disable_comm();&lt;/P&gt;&lt;P&gt;reset_clock();&lt;/P&gt;&lt;P&gt;while(time--);&lt;/P&gt;&lt;P&gt;appStack = *(uint32_t *)(APP_START_ADDRESS);&lt;/P&gt;&lt;P&gt;appEntry = *(uint32_t *)(APP_START_ADDRESS + 4);&lt;/P&gt;&lt;P&gt;Bootup_Application(appEntry, appStack);&lt;/P&gt;&lt;P&gt;for (;;) {};&lt;/P&gt;&lt;P&gt;return 0; }&lt;/P&gt;&lt;P&gt;void JumpToUserApplication( unsigned int userSP, unsigned int userStartup) {&lt;/P&gt;&lt;P&gt;if(userSP == 0xFFFFFFFF){ return; }&lt;/P&gt;&lt;P&gt;__asm("msr msp, r0");&lt;/P&gt;&lt;P&gt;__asm("msr psp, r0");&lt;/P&gt;&lt;P&gt;S32_SCB-&amp;gt;VTOR = (uint32_t)APP_START_ADDRESS;&lt;/P&gt;&lt;P&gt;__asm("mov pc, r1"); }&lt;/P&gt;&lt;P&gt;void Bootup_Application(uint32_t appEntry, uint32_t appStack) {&lt;/P&gt;&lt;P&gt;static void (*jump_to_application)(void);&lt;/P&gt;&lt;P&gt;static uint32_t stack_pointer;&lt;/P&gt;&lt;P&gt;jump_to_application = (void (*)(void))appEntry;&lt;/P&gt;&lt;P&gt;stack_pointer = appStack;&lt;/P&gt;&lt;P&gt;S32_SCB-&amp;gt;VTOR = (uint32_t)APP_START_ADDRESS;&lt;/P&gt;&lt;P&gt;__asm volatile ("MSR msp, %0\n" : : "r" (stack_pointer) : "sp");&lt;/P&gt;&lt;P&gt;__asm volatile ("MSR psp, %0\n" : : "r" (stack_pointer) : "sp");&lt;/P&gt;&lt;P&gt;jump_to_application(); }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Mar 2024 10:28:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/S32K144-Bootloader-not-jumping-to-application/m-p/1827089#M12029</guid>
      <dc:creator>Estelle13</dc:creator>
      <dc:date>2024-03-13T10:28:01Z</dc:date>
    </item>
    <item>
      <title>Re: S32K144: Bootloader not jumping to application</title>
      <link>https://community.nxp.com/t5/S32-Design-Studio/S32K144-Bootloader-not-jumping-to-application/m-p/1830509#M12047</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/230893"&gt;@Estelle13&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;Are you following&amp;nbsp;&lt;A href="https://www.nxp.com/docs/en/application-note/AN12218.pdf" target="_blank"&gt;AN12218&lt;/A&gt; for the bootloader implementation?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please look into the following community posts, as there has been a similar discussion about this topic:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K/How-to-jump-to-APP-code-from-BOOT/m-p/1577933" target="_blank"&gt;Solved: How to jump to APP code from BOOT. - NXP Community&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K/S32K148-Bootloader-not-jumping-to-application/m-p/1220538" target="_blank"&gt;S32K148: Bootloader not jumping to application - NXP Community&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 18 Mar 2024 18:58:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32-Design-Studio/S32K144-Bootloader-not-jumping-to-application/m-p/1830509#M12047</guid>
      <dc:creator>Julián_AragónM</dc:creator>
      <dc:date>2024-03-18T18:58:27Z</dc:date>
    </item>
  </channel>
</rss>

