Example S32K324 Bootloader to Application Jump DS3.5 RTD300

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Example S32K324 Bootloader to Application Jump DS3.5 RTD300

Example S32K324 Bootloader to Application Jump DS3.5 RTD300

*******************************************************************************

 The purpose of this demo application is to present a usage of the
Bootloader Jump to Application.


 ------------------------------------------------------------------------------
* Test HW: S32K3X4EVB-Q172
* MCU: S32K324
* Compiler: S32DS3.5
* SDK release: RTD 3.0.0
* Debugger: PE micro
* Target: internal_FLASH
********************************************************************************

Jump is decided based on the boot_header, size we use to jump to the RESET handler:--

Dinesh_Guleria_0-1711002521870.pngDinesh_Guleria_1-1711002609276.png

 

Cortex M-7 Interrupt vector table, RESET handler is 4 byte offset from starting of vector table :--

Dinesh_Guleria_2-1711002629763.png

 

Dinesh_Guleria_3-1711002630207.png

 

 


How to burn elf file of both application & bootloader code :--

Dinesh_Guleria_4-1711002684831.png

 

Bootloader Linker file used :--

Dinesh_Guleria_5-1711002777353.png

 

Application Linker file used :--

This linker file has provision to distribute RAM to both the cores

Dinesh_Guleria_6-1711002777358.png

 

Application & bootloader both commented this, as CORE-1 should be started in CORE-0 main() function if required  :--

Dinesh_Guleria_7-1711002777393.png

 

System.c file this changed (as in RTD-3.0.0 bug in startup file because of which HARDfault occurs in startup process for S32K324) :--

Dinesh_Guleria_8-1711002777414.png

 

Attachments
%3CLINGO-SUB%20id%3D%22lingo-sub-1832649%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EExample%20S32K324%20Bootloader%20to%20Application%20Jump%20DS3.5%20RTD300%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1832649%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CP%3E%3CSPAN%3E*******************************************************************************%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%26nbsp%3BThe%20purpose%20of%20this%20demo%20application%20is%20to%20present%20a%20usage%20of%20the%3C%2FSPAN%3E%3CBR%20%2F%3EBootloader%20Jump%20to%20Application.%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CSPAN%3E%26nbsp%3B------------------------------------------------------------------------------%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E*%20Test%20HW%3A%20S32K3X4EVB-Q172%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E*%20MCU%3A%20S32K324%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E*%20Compiler%3A%20S32DS3.5%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E*%20SDK%20release%3A%20RTD%203.0.0%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E*%20Debugger%3A%20PE%20micro%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E*%20Target%3A%20internal_FLASH%3C%2FSPAN%3E%3CBR%20%2F%3E%3CSPAN%3E********************************************************************************%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3EJump%20is%20decided%20based%20on%20the%26nbsp%3B%3CSTRONG%3Eboot_header%3C%2FSTRONG%3E%2C%20size%20we%20use%20to%20jump%20to%20the%20RESET%20handler%3A--%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_0-1711002521870.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_0-1711002521870.png%22%20style%3D%22width%3A%20397px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269666i6D6D25CA7D1E1ABC%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_0-1711002521870.png%22%20alt%3D%22Dinesh_Guleria_0-1711002521870.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_1-1711002609276.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_1-1711002609276.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269668iC5408C63A6D4809D%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_1-1711002609276.png%22%20alt%3D%22Dinesh_Guleria_1-1711002609276.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3ECortex%20M-7%20Interrupt%20vector%20table%2C%20RESET%20handler%20is%204%20byte%20offset%20from%20starting%20of%20vector%20table%20%3A--%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_2-1711002629763.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_2-1711002629763.png%22%20style%3D%22width%3A%20399px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269670i6CB0E1DF911F1E23%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_2-1711002629763.png%22%20alt%3D%22Dinesh_Guleria_2-1711002629763.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_3-1711002630207.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_3-1711002630207.png%22%20style%3D%22width%3A%20193px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269671i126EBC9F885FBD96%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_3-1711002630207.png%22%20alt%3D%22Dinesh_Guleria_3-1711002630207.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CBR%20%2F%3EHow%20to%20burn%20elf%20file%20of%20both%20application%20%26amp%3B%20bootloader%20code%20%3A--%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_4-1711002684831.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_4-1711002684831.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269672iC4D4D8BAD7EA0DBC%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_4-1711002684831.png%22%20alt%3D%22Dinesh_Guleria_4-1711002684831.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBootloader%20Linker%20file%20used%20%3A--%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_5-1711002777353.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_5-1711002777353.png%22%20style%3D%22width%3A%20336px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269673i842CD29B02F1E4B5%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_5-1711002777353.png%22%20alt%3D%22Dinesh_Guleria_5-1711002777353.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3EApplication%20Linker%20file%20used%20%3A--%3C%2FP%3E%0A%3CP%3EThis%20linker%20file%20has%20provision%20to%20distribute%20RAM%20to%20both%20the%20cores%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_6-1711002777358.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_6-1711002777358.png%22%20style%3D%22width%3A%20290px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269674iEC49F16FC372EB80%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_6-1711002777358.png%22%20alt%3D%22Dinesh_Guleria_6-1711002777358.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3EApplication%20%26amp%3B%20bootloader%20both%20commented%20this%2C%20as%20CORE-1%20should%20be%20started%20in%20CORE-0%20main()%20function%20if%20required%20%26nbsp%3B%3A--%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_7-1711002777393.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_7-1711002777393.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269675iD230E960A86D38DA%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_7-1711002777393.png%22%20alt%3D%22Dinesh_Guleria_7-1711002777393.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3ESystem.c%20file%20this%20changed%20(as%20in%20RTD-3.0.0%20bug%20in%20startup%20file%20because%20of%20which%20HARDfault%20occurs%20in%20startup%20process%20for%20S32K324)%20%3A--%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Dinesh_Guleria_8-1711002777414.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Dinesh_Guleria_8-1711002777414.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F269676i780F61A7B0AD6C65%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Dinesh_Guleria_8-1711002777414.png%22%20alt%3D%22Dinesh_Guleria_8-1711002777414.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3C%2FLINGO-BODY%3E
No ratings
Version history
Last update:
‎03-20-2024 11:45 PM
Updated by: