S32K148 Bootloader jump application, but application does not run after flash erase + copy

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32K148 Bootloader jump application, but application does not run after flash erase + copy

526件の閲覧回数
kavyakoney
Contributor II

I am developing a bootloader + application setup on S32K148.

  1. Bootloader is located at flash start (0x00000000)
  2. Application is located at 0x00022000
  3. Application has its own vector table and linker script
  4. Application runs perfectly when flashed standalone

When the bootloader performs flash erase and copy of the application, the jump to application does not work.

However:

  1. If I skip erase and copy, the jump works correctly
  2. jump_to_application() is entered in both cases
  3. No application print is seen after jump when erase + copy is enabled

 

Stack pointer and reset handler values look valid

Application vector table is correct

Application runs fine without bootloader

I did not explicitly enable the watchdog in application code

What additional steps are required after flash erase + copy before jumping to the application on S32K148?

Anyone help me with this.

I have attached my linker file script and jump application code below.

Thank you.

Bootloader linker file

MEMORY
{
int_flash_interrupts : ORIGIN = 0x00000000, LENGTH = 0x00000400 /* 1K */ /* Do not change this section */
int_flash_config : ORIGIN = 0x00000400, LENGTH = 0x00000010 /* 16bytes */ /* Do not change this section */
int_flash : ORIGIN = 0x00000410, LENGTH = 0x0001FBF0 /* 128KB total - 0x410 = 0x1FBF0 bytes for bootloader code */
int_sram_results : ORIGIN = 0x1FFE0000, LENGTH = 0x00000100 /* 256bytes */
int_sram : ORIGIN = 0x1FFE0100, LENGTH = 0x0003DF00 /* ~248K */
int_sram_stack_c0 : ORIGIN = 0x2001E000, LENGTH = 0x00001000 /* 4K */
ram_rsvd2 : ORIGIN = 0x2001F000, LENGTH = 0 /* End of SRAM */
}

Application linker file

MEMORY
{
int_flash_interrupts : ORIGIN = 0x00022000, LENGTH = 0x00000400 /* 1K - Application interrupt vectors at 0x00022000 */
int_flash_config : ORIGIN = 0x00022400, LENGTH = 0x00000010 /* 16bytes - Application flash config */
int_flash : ORIGIN = 0x00022410, LENGTH = 0x00063BF0 /* 400KB application area (0x64000 - 0x410 = 0x63BF0 bytes) */
int_sram_results : ORIGIN = 0x1FFE0000, LENGTH = 0x00000100 /* 256bytes */
int_sram : ORIGIN = 0x1FFE0100, LENGTH = 0x0003DF00 /* ~248K */
int_sram_stack_c0 : ORIGIN = 0x2001E000, LENGTH = 0x00001000 /* 4K */
ram_rsvd2 : ORIGIN = 0x2001F000, LENGTH = 0 /* End of SRAM */
}

main.c

EraseApplication();
CopyApplication(DOWNLOADED_APP_START_ADDRESS,APPLICATION_START_ADDRESS,APPLICATION_SIZE);

jump_to_application();

jump_to_application() function

void jump_to_application(void)
{
uint32 app_msp;
application_entry_t app_reset_handler;

/* Print message before jumping */
// printf("jumping to application\r\n");

/* Small delay to ensure message is sent */
// volatile uint32 delay = 100000U;
// while(delay--);

/* Disable all interrupts */
__asm volatile ("cpsid i");

/* Set vector table offset to application's vector table */
S32_SCB->VTOR = APPLICATION_START_ADDRESS;


/* Load application's MSP from first word of vector table */
app_msp = *((volatile uint32*)APPLICATION_START_ADDRESS);

/* Load application's Reset_Handler address from second word of vector table */
app_reset_handler = (application_entry_t)(*((volatile uint32*)(APPLICATION_START_ADDRESS + 4U)));

/* Set the stack pointer to application's MSP */
__asm volatile ("msr msp, %0" : : "r" (app_msp));

// /* Memory barrier */
// __asm volatile ("dsb");
// __asm volatile ("isb");

/* Jump to application's Reset_Handler */
app_reset_handler();

/* Should never reach here */
while(1)
{
/* Infinite loop */
}
}

 

タグ(1)
0 件の賞賛
返信
2 返答(返信)

345件の閲覧回数
danielmartynek
NXP TechSupport
NXP TechSupport

Hi @kavyakoney,

There may be a flash access collision, because both the bootloader and the application are currently placed inside Flash Block 0 on the S32K148.
The S32K148 device contains three 512 KB flash blocks (Block 0, Block 1, Block 2). Flash programming operations (erase/program) can only be performed on a block that the CPU is not executing code from.
If the bootloader is running from Block 0 and attempts to erase or program memory that is also inside Block 0, the core may execute invalid data, preventing a proper jump to the application.
To avoid this, you should place the application into Flash Block 1 or Flash Block 2, while keeping the bootloader solely in Block 0.

 

Thank you,

BR, Daniel

 

0 件の賞賛
返信

423件の閲覧回数
Robin_Shen
NXP TechSupport
NXP TechSupport

Please note that during the Christmas holiday period, our support response times may be longer than usual. In some cases, your request might be addressed after the New Year. Thank you for your understanding.

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2267413%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K148%20%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E6%B6%88%E5%8E%BB%20%2B%20%E3%82%B3%E3%83%94%E3%83%BC%E5%BE%8C%E3%81%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267413%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ES32K148%20%E4%B8%8A%E3%81%A7%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%20%2B%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%92%E9%96%8B%E7%99%BA%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3COL%3E%3CLI%3E%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%81%AF%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%EF%BC%880x00000000%EF%BC%89%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%3C%2FLI%3E%3CLI%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF0x00022000%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%3C%2FLI%3E%3CLI%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%81%AF%E7%8B%AC%E8%87%AA%E3%81%AE%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%A8%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%3C%2FLI%3E%3CLI%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%89%E3%82%A2%E3%83%AD%E3%83%B3%E3%81%A7%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%81%99%E3%82%8B%E3%81%A8%E5%AE%8C%E7%92%A7%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%81%8C%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E6%B6%88%E5%8E%BB%E3%81%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%94%E3%83%BC%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%B8%E3%81%AE%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%97%E3%81%8B%E3%81%97%EF%BC%9A%3C%2FP%3E%3COL%3E%3CLI%3E%E6%B6%88%E5%8E%BB%E3%81%A8%E3%82%B3%E3%83%94%E3%83%BC%E3%82%92%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%3C%2FLI%3E%3CLI%3E%E4%B8%A1%E6%96%B9%E3%81%AECASE%E3%81%A7jump_to_application()%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%82%8B%3C%2FLI%3E%3CLI%3E%E6%B6%88%E5%8E%BB%2B%E3%82%B3%E3%83%94%E3%83%BC%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%80%81%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E5%BE%8C%E3%81%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%8D%B0%E5%88%B7%E3%81%AF%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%3C%2FLI%3E%3C%2FOL%3E%3CBR%20%2F%3E%3CP%3E%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%81%A8%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%83%8F%E3%83%B3%E3%83%89%E3%83%A9%E3%81%AE%E5%80%A4%E3%81%AF%E6%9C%89%E5%8A%B9%E3%81%AE%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%84%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AA%E3%81%97%E3%81%A7%E3%82%82%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%BE%E3%81%99%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%82%A6%E3%82%A9%E3%83%83%E3%83%81%E3%83%89%E3%83%83%E3%82%B0%E3%82%92%E6%98%8E%E7%A4%BA%E7%9A%84%E3%81%AB%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%AA%E3%81%8B%E3%81%A3%E3%81%9F%3C%2FP%3E%3CP%3ES32K148%20%E4%B8%8A%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%81%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E6%B6%88%E5%8E%BB%20%2B%20%E3%82%B3%E3%83%94%E3%83%BC%E5%BE%8C%E3%81%AB%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E8%BF%BD%E5%8A%A0%E6%89%8B%E9%A0%86%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E8%AA%B0%E3%81%8B%E3%81%93%E3%82%8C%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%E3%80%82%3C%2FP%3E%3CP%3E%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%20%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A8%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%20%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E4%BB%A5%E4%B8%8B%E3%81%AB%E6%B7%BB%E4%BB%98%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%83%BC%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%E3%83%A1%E3%83%A2%E3%83%AA%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20int_flash_interrupts%20%3A%20ORIGIN%20%3D%200x00000000%2C%20LENGTH%20%3D%200x00000400%20%2F*%201K%20*%2F%20%2F*%20%E3%81%93%E3%81%AE%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%AA%E3%81%84%E3%81%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%20*%2F%3CBR%20%2F%3E%20int_flash_config%20%3A%20ORIGIN%20%3D%200x00000400%2C%20LENGTH%20%3D%200x00000010%20%2F*%2016%E3%83%90%E3%82%A4%E3%83%88%20*%2F%20%2F*%20%E3%81%93%E3%81%AE%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%AA%E3%81%84%E3%81%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%20*%2F%3CBR%20%2F%3E%20int_flash%20%3A%20ORIGIN%20%3D%200x00000410%2C%20LENGTH%20%3D%200x0001FBF0%20%2F*%20%E5%90%88%E8%A8%88%20128KB%20-%200x410%20%3D%20%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%82%B3%E3%83%BC%E3%83%89%E7%94%A8%E3%81%AE%200x1FBF0%20%E3%83%90%E3%82%A4%E3%83%88%20*%2F%3CBR%20%2F%3E%20int_sram_results%20%3A%20ORIGIN%20%3D%200x1FFE0000%E3%80%81LENGTH%20%3D%200x00000100%20%2F*%20256%E3%83%90%E3%82%A4%E3%83%88%20*%2F%3CBR%20%2F%3E%20int_sram%3A%20ORIGIN%20%3D%200x1FFE0100%E3%80%81LENGTH%20%3D%200x0003DF00%20%2F*%20~248K%20*%2F%3CBR%20%2F%3E%20int_sram_stack_c0%20%3A%20ORIGIN%20%3D%200x2001E000%E3%80%81LENGTH%20%3D%200x00001000%20%2F*%204K%20*%2F%3CBR%20%2F%3E%20ram_rsvd2%20%3A%20ORIGIN%20%3D%200x2001F000%2C%20LENGTH%20%3D%200%20%2F*%20SRAM%E3%81%AE%E7%B5%82%E3%82%8F%E3%82%8A%20*%2F%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%AA%E3%83%B3%E3%82%AB%E3%83%BC%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%E3%83%A1%E3%83%A2%E3%83%AA%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20int_flash_interrupts%20%3A%20ORIGIN%20%3D%200x00022000%2C%20LENGTH%20%3D%200x00000400%20%2F*%201K%20-%200x00022000%20%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%20*%2F%3CBR%20%2F%3E%20int_flash_config%20%3A%20ORIGIN%20%3D%200x00022400%2C%20LENGTH%20%3D%200x00000010%20%2F*%2016%E3%83%90%E3%82%A4%E3%83%88%20-%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E8%A8%AD%E5%AE%9A%20*%2F%3CBR%20%2F%3E%20int_flash%20%3A%20ORIGIN%20%3D%200x00022410%2C%20LENGTH%20%3D%200x00063BF0%20%2F*%20400KB%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%A0%98%E5%9F%9F%20(0x64000%20-%200x410%20%3D%200x63BF0%20%E3%83%90%E3%82%A4%E3%83%88)%20*%2F%3CBR%20%2F%3E%20int_sram_results%20%3A%20ORIGIN%20%3D%200x1FFE0000%E3%80%81LENGTH%20%3D%200x00000100%20%2F*%20256%E3%83%90%E3%82%A4%E3%83%88%20*%2F%3CBR%20%2F%3E%20int_sram%3A%20ORIGIN%20%3D%200x1FFE0100%E3%80%81LENGTH%20%3D%200x0003DF00%20%2F*%20~248K%20*%2F%3CBR%20%2F%3E%20int_sram_stack_c0%20%3A%20ORIGIN%20%3D%200x2001E000%E3%80%81LENGTH%20%3D%200x00001000%20%2F*%204K%20*%2F%3CBR%20%2F%3E%20ram_rsvd2%20%3A%20ORIGIN%20%3D%200x2001F000%2C%20LENGTH%20%3D%200%20%2F*%20SRAM%E3%81%AE%E7%B5%82%E3%82%8F%E3%82%8A%20*%2F%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3E%3CSTRONG%3Emain.c%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%B6%88%E5%8E%BB%E3%81%97%E3%81%BE%E3%81%99()%3B%3CBR%20%2F%3E%20CopyApplication(DOWNLOADED_APP_START_ADDRESS%E3%80%81APPLICATION_START_ADDRESS%E3%80%81APPLICATION_SIZE)%3B%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97()%3B%3C%2FP%3E%3CP%3E%3CSTRONG%3Ejump_to_application()%20%E9%96%A2%E6%95%B0%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Evoid%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%B8%E3%81%AE%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97(void)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20uint32%20app_msp%3B%3CBR%20%2F%3E%20application_entry_t%20app_reset_handler%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E5%8D%B0%E5%88%B7%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20%2F%2F%20printf(%22%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%5Cr%5Cn%22)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%8C%E7%A2%BA%E5%AE%9F%E3%81%AB%E9%80%81%E4%BF%A1%E3%81%95%E3%82%8C%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E5%B0%91%E3%81%97%E9%81%85%E5%BB%B6%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20%2F%2F%20%E6%8F%AE%E7%99%BA%E6%80%A7%20uint32%20%E9%81%85%E5%BB%B6%20%3D%20100000U%3B%3CBR%20%2F%3E%20%2F%2F%20while(delay--)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%20*%2F%3CBR%20%2F%3E%20__asm%20volatile%20(%22cpsid%20i%22)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%B8%E3%81%AE%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20S32_SCB-%26gt%3BVTOR%20%3D%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E5%A7%8B%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%3B%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%2F*%20%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E6%9C%80%E5%88%9D%E3%81%AE%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AEMSP%E3%82%92%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20app_msp%20%3D%20*((%E6%8F%AE%E7%99%BA%E6%80%A7%20uint32*)APPLICATION_START_ADDRESS)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%83%99%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE2%E7%95%AA%E7%9B%AE%E3%81%AE%E3%83%AF%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AEReset_Handler%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20app_reset_handler%20%3D%20(application_entry_t)(*((volatile%20uint32*)(APPLICATION_START_ADDRESS%20%2B%204U)))%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%82%92%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AEMSP%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%20*%2F%3CBR%20%2F%3E%20__asm%20volatile%20(%22msr%20msp%2C%20%250%22%20%3A%20%3A%20%22r%22%20(app_msp))%3B%3C%2FP%3E%3CP%3E%2F%2F%20%2F*%20%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%90%E3%83%AA%E3%82%A2%20*%2F%3CBR%20%2F%3E%20%2F%2F%20__asm%20volatile%20(%22dsb%22)%3B%3CBR%20%2F%3E%2F%2F%20__%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA%20volatile%20(%22isb%22)%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%20Reset_Handler%20%E3%81%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%97%E3%81%BE%E3%81%99%20*%2F%3CBR%20%2F%3E%20app_reset_handler()%3B%3C%2FP%3E%3CP%3E%2F*%20%E3%81%93%E3%81%93%E3%81%AB%E3%81%AF%E7%B5%B6%E5%AF%BE%E3%81%AB%E5%88%B0%E9%81%94%E3%81%97%E3%81%AA%E3%81%84%E3%81%AF%E3%81%9A%E3%81%A7%E3%81%99%20*%2F%3CBR%20%2F%3E%E3%81%AA%E3%81%8C%E3%82%89(1)%3CBR%20%2F%3E%20%7B%3CBR%20%2F%3E%20%2F*%20%E7%84%A1%E9%99%90%E3%83%AB%E3%83%BC%E3%83%97%20*%2F%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2269040%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K148%20Bootloader%20jump%20application%2C%20but%20application%20does%20not%20run%20after%20flash%20erase%20%2B%20copy%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2269040%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%9E%E3%82%B9%E4%BC%91%E6%9A%87%E6%9C%9F%E9%96%93%E4%B8%AD%E3%81%AF%E3%80%81%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E5%BF%9C%E7%AD%94%E6%99%82%E9%96%93%E3%81%AF%E9%80%9A%E5%B8%B8%E3%82%88%E3%82%8A%E9%95%B7%E3%81%8F%E3%81%AA%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%AE%E3%81%A7%E3%81%94%E4%BA%86%E6%89%BF%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E5%A0%B4%E5%90%88%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%81%AF%E3%80%81%E3%81%94%E8%A6%81%E6%9C%9B%E3%81%B8%E3%81%AE%E5%AF%BE%E5%BF%9C%E3%81%8C%E6%96%B0%E5%B9%B4%E4%BB%A5%E9%99%8D%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%93%E3%81%A8%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E3%81%94%E7%90%86%E8%A7%A3%E3%81%AE%E3%81%BB%E3%81%A9%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2269392%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K148%20Bootloader%20jump%20application%2C%20but%20application%20does%20not%20run%20after%20flash%20erase%20%2B%20copy%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2269392%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F256520%22%20target%3D%22_blank%22%3E%40kavyakoney%3C%2FA%3E%20%E3%80%81%3C%2FP%3E%0A%3CP%3E%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%81%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%8C%E7%8F%BE%E5%9C%A8%20S32K148%20%E3%81%AE%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%200%20%E5%86%85%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%AE%E8%A1%9D%E7%AA%81%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3ES32K148%20%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AB%E3%81%AF%E3%80%813%20%E3%81%A4%E3%81%AE%20512%20KB%20%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%20(%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%200%E3%80%81%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%201%E3%80%81%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%202)%20%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E6%93%8D%E4%BD%9C%20(%E6%B6%88%E5%8E%BB%2F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0)%20%E3%81%AF%E3%80%81CPU%20%E3%81%8C%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%E3%81%AE%E3%81%BF%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%81%8C%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%200%20%E3%81%8B%E3%82%89%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%80%81%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%200%20%E5%86%85%E3%81%AB%E3%81%82%E3%82%8B%E3%83%A1%E3%83%A2%E3%83%AA%E3%82%92%E6%B6%88%E5%8E%BB%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%82%B3%E3%82%A2%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%AA%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%B8%E3%81%AE%E9%81%A9%E5%88%87%E3%81%AA%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%81%8C%E5%A6%A8%E3%81%92%E3%82%89%E3%82%8C%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%81%93%E3%82%8C%E3%82%92%E5%9B%9E%E9%81%BF%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81%E3%83%96%E3%83%BC%E3%83%88%E3%83%AD%E3%83%BC%E3%83%80%E3%82%92%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%200%20%E3%81%AE%E3%81%BF%E3%81%AB%E4%BF%9D%E6%8C%81%E3%81%97%E3%81%AA%E3%81%8C%E3%82%89%E3%80%81%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%201%20%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%20%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%202%20%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%E3%80%81%E3%83%80%E3%83%8B%E3%82%A8%E3%83%AB%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E