Hello I'm using fragments of the kboot for my own Bootloader. I'm using the jump_to_application(applicationAddress, stackPointer) function in the same way as you do. I get some strange behaviour now. If I start my application from the Bootloader the application is started correctly. If I just increase the size of a global Array of chars by one the application is not started anymore and it is stopped in an Hardware fault.
works with:
uint8_t wert[5];
does not work with:
uint8_t wert[4];
The problem seems to be in the zero initialize. The crash happens before reaching the main routine, in the Reset_Handler of the application. The System_init is called and executed correctly. The difference in the *.map file from the working version on the right of the picture and the non working on the left
:
If I put the section to noInit in the target dialog it also works with the array of 4 Bytes. Might there be a problem with the aligning and how can I manage that?