Issue in Jumping Bootloader to Application

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Issue in Jumping Bootloader to Application

1,059 次查看
veerajuvh619
Contributor III

hi 

i am using S32K144, i have 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..

I used this logic for jumping 

#define APP_START_ADDRESS           0x1000

main()

{

   if(Boot_flag) {

       if(userSP == 0xFFFFFFFF){
          disable_intterupts();

          S32_SCB->VTOR = (uint32_t)APP_START_ADDRESS;

          JumpToUserApplication(*((uint32_t*)APP_START_ADDRESS), *((uint32_t*)(APP_START_ADDRESS + 4)));

      }

}

}

void JumpToUserApplication( unsigned int userSP, unsigned int userStartup)
{
/* Set up stack pointer */
__asm("msr msp, r0");
__asm("msr psp, r0");

/* Relocate vector table */

/* Jump to application PC (r1) */
__asm("mov pc, r1");
}

Using this it is jumping to ASW startup code but stucks in address 0x1478

Boot loader linker script :

MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x00000E000, LENGTH = 0x0001FFFF

/* SRAM_L */
m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000

/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000
}

Application linker :

MEMORY
{
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00001000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00001400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x000001410, LENGTH = 0x0000CFFF

/* SRAM_L */
m_data (RW) : ORIGIN = 0x1FFF8000, LENGTH = 0x00008000

/* SRAM_U */
m_data_2 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007000
}

where i did the mistake ?

Please help me to sort out this issue.

Thanks in Advance.

0 项奖励
回复
1 回复

936 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi,

I can see this question is duplicated here: https://community.nxp.com/thread/527198 

Please follow that one.

Regards,

Lukas

0 项奖励
回复