AnsweredAssumed Answered

KEA128 bootloader:How to jump to user applicaiton

Question asked by Jason Zhang on Mar 2, 2016
Latest reply on Mar 4, 2016 by Jason Zhang

Hi,

My bootloader cannot jump to user applicaiton.

 

1.The user applicaiton can work well when I flash to board derectly by Multilink.

    Pls refer to KEA128_APP_3.zip.

 

2. I flash the KEA128_APP_3 S19 by my bootloader , when the flashing complete,

    I use the code below to jump to user app, but it was failed.

    It always gose back to 

   void __thumb_startup(void)  // Setup registers

    __init_registers();

 

           typedef void(*JumpToPtr)(void);

           unsigned long int *pNewAppEntry = 0x4004;

          JumpToPtr pJumpTo;

 

           if(updata_end_flag)

          {                              

               EnterCritical();           /* Disable interrupts */         

               pJumpTo = *pNewAppEntry;

               pJumpTo();

               for(;;);

           }

3. I have checked the memory by Codewarrior 10.6 in the debug mode, it was ok.

    Pls refer to memory.s19 which export by codewarror.

 

4. When the flah programming was complete, the disassembly code is as below,

    How to check the monitor PC ?

               267               pJumpTo = *pNewAppEntry;

0000121e:   ldr r3,[pc,#68]

00001220:   ldr r3,[r3,#0]

00001222:   ldr r3,[r3,#0]

00001224:   mov r2,r3

00001226:   ldr r3,[pc,#64]

00001228:   str r2,[r3,#0]

268               pJumpTo();

0000122a:   ldr r3,[pc,#60]

0000122c:   ldr r3,[r3,#0]

0000122e:   blx r3

 

Thank you very much!

Original Attachment has been moved to: memory.s19.zip

Original Attachment has been moved to: KEA128_APP_3.zip

Outcomes