S32K344 BOOT to APP MATLAB generated project in Design Studio

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

S32K344 BOOT to APP MATLAB generated project in Design Studio

1,805 次查看
AJLFD
Contributor I

Hello all,

I have a S32K344 bootloader application running on a custom board that I've used to jump to applications that were generated in design studio with no prior issues. I now have a MATLAB generated application that I've been trying to jump to but with no success as it keeps hitting the application's hard fault handler or the debugger crashes (J-Trace). 

Boot Flash Start: 0x00400000

App Flash Start: 0x00600000

App VTABLE: 0x0060800

App Jump: 0x00600804

*** This is how I've been jumping that has worked for me and that has appeared on other forums ***

typedef void(*voidFunPtr)(void);

void AppJump(void){

uint32_t pAppJump = (voidFunPtr)(*(uint32_t *) 0x00600804);

S32_SysTick->CSRr = 0;

S32_SCB->VTOR = (uint32_t)0x00600800;

( pAppJump )();

}

Actions I've done:

- Checked the map file generated from the application for the correct jump location, I've confirmed this through the disassembly

- Relocated the vector table to the application's table before the jump ( S32_SCB->VTOR )

- Disabled FreeRTOS and peripheral interrupts before the jump

- DeInit all active peripherals

- Disabled the Systick

- Configured the stack pointer

Are there any configurations going on with the MATLAB generated projects that I have to change? Is there some reinitialization I must do? I've searched through forum posts with boot troubles and tried their solutions but nothing has worked yet. I can jump to the application's startup_cm7.s code but I believe the fault occurs here at some point.

0 项奖励
回复
3 回复数

782 次查看
rathi_tg
Contributor III

Hi @lukaszadrapa  

 

I want to jump from application code to Boot code using matlab code. I have used custom code as follows 

if(userSP == 0xFFFFFFFF){
return;
}
 
/* Set up stack pointer */
__asm("msr msp, r0");
__asm("msr psp, r0");
 
/* Relocate vector table */
S32_SCB->VTOR = (uint32_t)BOOT_START_ADDRESS;
 
/* Jump to BootPC (r1) */
__asm("mov pc, r1");
 
But when i try to build the application i am facing issues with assemble commands. The Boot Address is 0x000000.
 
Regards 
Gopal
 
0 项奖励
回复

1,753 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @AJLFD 

I'm not aware of specific difference in MATLAB project but I guess that something more needs to be deinitialized. That's the most common problem. If I'm not able to find it, I use following approach: reset the device by debugger and dump the peripheral registers to a file(s). Run the bootloader until you reach jump instruction. Now dump the registers again, compare the files and analyze the differences. Don't forget to check also core registers, especially MPU and NVIC - I would start with this.

Regards,

Lukas

0 项奖励
回复

1,760 次查看
AJLFD
Contributor I
There may also be a problem with FreeRTOS. In some attempts using xCreateTask() will also set the hard fault handler or crash the debugger after it has made the jump. Some variables for the pxTaskCode, pcName, pxStack are replaced with 0xA5A5A5A5.
0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1816882%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K344%20%E5%90%AF%E5%8A%A8%E5%88%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20MATLAB%20%E5%9C%A8%20Design%20Studio%20%E4%B8%AD%E7%94%9F%E6%88%90%E7%9A%84%E9%A1%B9%E7%9B%AE%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1816882%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%20S32K344%20%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%9C%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9D%BF%E4%B8%8A%E8%BF%90%E8%A1%8C%EF%BC%8C%E6%88%91%E6%9B%BE%E7%BB%8F%E7%94%A8%E5%AE%83%E8%B7%B3%E8%BD%AC%E5%88%B0%E5%9C%A8%E8%AE%BE%E8%AE%A1%E5%B7%A5%E4%BD%9C%E5%AE%A4%E7%94%9F%E6%88%90%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E4%B9%8B%E5%89%8D%E6%B2%A1%E6%9C%89%E5%87%BA%E7%8E%B0%E4%BB%BB%E4%BD%95%E9%97%AE%E9%A2%98%E3%80%82%E6%88%91%E7%8E%B0%E5%9C%A8%E6%9C%89%E4%B8%80%E4%B8%AA%20MATLAB%20%E7%94%9F%E6%88%90%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E6%88%91%E4%B8%80%E7%9B%B4%E5%9C%A8%E5%B0%9D%E8%AF%95%E8%B7%B3%E8%BD%AC%E5%88%B0%E8%AF%A5%E7%A8%8B%E5%BA%8F%EF%BC%8C%E4%BD%86%E6%B2%A1%E6%9C%89%E6%88%90%E5%8A%9F%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%AE%83%E4%B8%80%E7%9B%B4%E4%BC%9A%E8%A7%A6%E5%8F%91%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%A1%AC%E6%95%85%E9%9A%9C%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E6%88%96%E8%B0%83%E8%AF%95%E5%99%A8%E5%B4%A9%E6%BA%83%EF%BC%88J-Trace%EF%BC%89%E3%80%82%20%3C%2FP%3E%3CP%3E%E5%90%AF%E5%8A%A8%20Flash%20%E5%90%AF%E5%8A%A8%EF%BC%9A0x00400000%3C%2FP%3E%3CP%3E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E9%97%AA%E5%AD%98%E5%90%AF%E5%8A%A8%EF%BC%9A0x00600000%3C%2FP%3E%3CP%3E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%20VTABLE%EF%BC%9A%200x0060800%3C%2FP%3E%3CP%3E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%B7%B3%E8%BD%AC%EF%BC%9A0x00600804%3C%2FP%3E%3CP%3E%3CSTRONG%3E***%20%E8%BF%99%E6%98%AF%E6%88%91%E8%B7%B3%E4%BC%9E%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%8C%E5%AF%B9%E6%88%91%E5%BE%88%E6%9C%89%E6%95%88%EF%BC%8C%E4%B9%9F%E6%9B%BE%E5%9C%A8%E5%85%B6%E4%BB%96%E8%AE%BA%E5%9D%9B%E4%B8%8A%E5%87%BA%E7%8E%B0%E8%BF%87%E3%80%82%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3Etypedef%20void(*voidFunPtr)(void)%EF%BC%9B%3C%2FP%3E%3CP%3Evoid%20AppJump(void)%7B%3C%2FP%3E%3CP%3Euint32_t%20pAppJump%20%3D%20(voidFunPtr)(*(uint32_t%20*)%200x00600804)%EF%BC%9B%3C%2FP%3E%3CP%3ES32_SysTick-%26gt%3BCSRr%20%3D%200%EF%BC%9B%3C%2FP%3E%3CP%3ES32_SCB-%26gt%3BVTOR%20%3D%20(uint32_t)0x00600800%EF%BC%9B%3C%2FP%3E%3CP%3E(%20pAppJump%20)()%EF%BC%9B%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3E%3CSTRONG%3E%E6%88%91%E7%9A%84%E8%A1%8C%E5%8A%A8%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E-%20%E6%A3%80%E6%9F%A5%E4%BA%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%94%9F%E6%88%90%E7%9A%84%E5%9C%B0%E5%9B%BE%E6%96%87%E4%BB%B6%EF%BC%8C%E4%BB%A5%E7%A1%AE%E5%AE%9A%E8%B7%B3%E8%BD%AC%E4%BD%8D%E7%BD%AE%E6%98%AF%E5%90%A6%E6%AD%A3%E7%A1%AE%E3%80%82%3C%2FP%3E%3CP%3E-%20%E5%9C%A8%E8%B7%B3%E8%BD%AC%E4%B9%8B%E5%89%8D%E5%B0%86%E5%90%91%E9%87%8F%E8%A1%A8%E9%87%8D%E6%96%B0%E5%AE%9A%E4%BD%8D%E5%88%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%A1%A8%20(%20S32_SCB-%26gt%3BVTOR%20)%3C%2FP%3E%3CP%3E-%20%E8%B7%B3%E8%BD%AC%E5%89%8D%E7%A6%81%E7%94%A8%20FreeRTOS%20%E5%92%8C%E5%A4%96%E8%AE%BE%E4%B8%AD%E6%96%AD%3C%2FP%3E%3CP%3E-%20%E6%B3%A8%E9%94%80%E6%89%80%E6%9C%89%E6%B4%BB%E5%8A%A8%E5%A4%96%E8%AE%BE%3C%2FP%3E%3CP%3E-%20%E7%A6%81%E7%94%A8%20Systick%3C%2FP%3E%3CP%3E-%20%E9%85%8D%E7%BD%AE%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%3C%2FP%3E%3CP%3EMATLAB%20%E7%94%9F%E6%88%90%E7%9A%84%E9%A1%B9%E7%9B%AE%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E6%88%91%E5%BF%85%E9%A1%BB%E6%9B%B4%E6%94%B9%E7%9A%84%E9%85%8D%E7%BD%AE%EF%BC%9F%E6%88%91%E5%BF%85%E9%A1%BB%E9%87%8D%E6%96%B0%E5%88%9D%E5%A7%8B%E5%8C%96%E5%90%97%EF%BC%9F%E6%88%91%E6%90%9C%E7%B4%A2%E4%BA%86%E6%9C%89%E5%90%AF%E5%8A%A8%E9%97%AE%E9%A2%98%E7%9A%84%E8%AE%BA%E5%9D%9B%E5%B8%96%E5%AD%90%E5%B9%B6%E5%B0%9D%E8%AF%95%E4%BA%86%E4%BB%96%E4%BB%AC%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%8C%E4%BD%86%E8%BF%98%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E6%95%88%E6%9E%9C%E3%80%82%E6%88%91%E5%8F%AF%E4%BB%A5%E8%B7%B3%E8%BD%AC%E5%88%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%20startup_cm7.s%E4%BB%A3%E7%A0%81%EF%BC%8C%E4%BD%86%E6%88%91%E7%9B%B8%E4%BF%A1%E6%95%85%E9%9A%9C%E5%8F%91%E7%94%9F%E5%9C%A8%E8%BF%99%E9%87%8C%E7%9A%84%E6%9F%90%E4%B8%AA%E7%82%B9%E4%B8%8A%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2267911%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K344%20BOOT%20to%20APP%20MATLAB%20generated%20project%20in%20Design%20Studio%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2267911%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F37795%22%20target%3D%22_blank%22%3E%40lukaszadrapa%3C%2FA%3E%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E6%88%91%E6%83%B3%E4%BD%BF%E7%94%A8matlab%E4%BB%A3%E7%A0%81%E4%BB%8E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%BB%A3%E7%A0%81%E8%B7%B3%E8%BD%AC%E5%88%B0%E5%90%AF%E5%8A%A8%E4%BB%A3%E7%A0%81%E3%80%82%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%A3%E7%A0%81%E5%A6%82%E4%B8%8B%20%3C%2FP%3E%3CDIV%3E%E5%A6%82%E6%9E%9C%EF%BC%88userSP%20%3D%3D%200xFFFFFFFF%EF%BC%89%7B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%E8%BF%94%E5%9B%9E%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%7D%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20%E8%AE%BE%E7%BD%AE%E5%A0%86%E6%A0%88%E6%8C%87%E9%92%88%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__asm(%22msr%20msp%2C%20r0%22)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__asm(%22msr%20psp%2C%20r0%22)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20%E9%87%8D%E6%96%B0%E5%AE%9A%E4%BD%8D%E7%9F%A2%E9%87%8F%E8%A1%A8%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3ES32_SCB-%26gt%3BVTOR%20%3D%20(uint32_t)BOOT_START_ADDRESS%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%2F*%20%E8%B7%B3%E8%BD%AC%E5%88%B0%20BootPC%20(r1)%20*%2F%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E__asm(%22mov%20pc%2C%20r1%22)%EF%BC%9B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%E4%BD%86%E6%98%AF%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E8%BF%9B%E8%A1%8C%E7%89%88%E6%9C%AC%E6%97%B6%EF%BC%8C%E6%88%91%E9%81%87%E5%88%B0%E4%BA%86%E6%B1%87%E7%BC%96%E5%91%BD%E4%BB%A4%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%E5%90%AF%E5%8A%A8%E5%9C%B0%E5%9D%80%E6%98%AF%200x000000%E3%80%82%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%E6%AD%A4%E8%87%B4%E6%95%AC%E7%A4%BC%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3E%E6%88%88%E5%B8%95%E5%B0%94%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1818995%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K344%20BOOT%20to%20APP%20MATLAB%20generated%20project%20in%20Design%20Studio%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1818995%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F227269%22%20target%3D%22_blank%22%3E%40AJLFD%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E6%88%91%E4%B8%8D%E7%9F%A5%E9%81%93%20MATLAB%20%E9%A1%B9%E7%9B%AE%E4%B8%AD%E7%9A%84%E5%85%B7%E4%BD%93%E5%B7%AE%E5%BC%82%EF%BC%8C%E4%BD%86%E6%88%91%E7%8C%9C%E9%9C%80%E8%A6%81%E5%8E%BB%E5%88%9D%E5%A7%8B%E5%8C%96%E6%9B%B4%E5%A4%9A%E7%9A%84%E4%B8%9C%E8%A5%BF%E3%80%82%E8%BF%99%E6%98%AF%E6%9C%80%E5%B8%B8%E8%A7%81%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%E5%A6%82%E6%9E%9C%E6%89%BE%E4%B8%8D%E5%88%B0%E5%AE%83%EF%BC%8C%E6%88%91%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E6%96%B9%E6%B3%95%EF%BC%9A%E9%80%9A%E8%BF%87%E8%B0%83%E8%AF%95%E5%99%A8%E6%89%A7%E8%A1%8CRESET%E8%AE%BE%E5%A4%87%E5%B9%B6%E5%B0%86%E5%A4%96%E8%AE%BE%E5%AF%84%E5%AD%98%E5%99%A8%E8%BD%AC%E5%82%A8%E5%88%B0%E6%96%87%E4%BB%B6%E4%B8%AD%E3%80%82%E8%BF%90%E8%A1%8C%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%EF%BC%8C%E7%9B%B4%E5%88%B0%E6%89%A7%E8%A1%8C%E8%B7%B3%E8%BD%AC%E6%8C%87%E4%BB%A4%E3%80%82%E7%8E%B0%E5%9C%A8%E5%86%8D%E6%AC%A1%E8%BD%AC%E5%82%A8%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%8C%E6%AF%94%E8%BE%83%E6%96%87%E4%BB%B6%E5%B9%B6%E5%88%86%E6%9E%90%E5%B7%AE%E5%BC%82%E3%80%82%E4%B8%8D%E8%A6%81%E5%BF%98%E8%AE%B0%E6%A3%80%E6%9F%A5%E6%A0%B8%E5%BF%83%E5%AF%84%E5%AD%98%E5%99%A8%EF%BC%8C%E5%B0%A4%E5%85%B6%E6%98%AF%20MPU%20%E5%92%8C%20NVIC%20-%20%E6%88%91%E4%BC%9A%E4%BB%8E%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%AF%84%E5%AD%98%E5%99%A8%E5%BC%80%E5%A7%8B%E6%A3%80%E6%9F%A5%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3ELukas%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1818870%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K344%20BOOT%20to%20APP%20MATLAB%20generated%20project%20in%20Design%20Studio%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1818870%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFreeRTOS%20%E4%B9%9F%E5%8F%AF%E8%83%BD%E6%9C%89%E9%97%AE%E9%A2%98%E3%80%82%E5%9C%A8%E6%9F%90%E4%BA%9B%E5%B0%9D%E8%AF%95%E4%B8%AD%EF%BC%8C%E4%BD%BF%E7%94%A8%20xCreateTask()%20%E8%BF%98%E4%BC%9A%E8%AE%BE%E7%BD%AE%E7%A1%AC%E6%95%85%E9%9A%9C%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%EF%BC%8C%E6%88%96%E5%9C%A8%E8%B0%83%E8%AF%95%E5%99%A8%E5%AE%8C%E6%88%90%E8%B7%B3%E8%BD%AC%E5%90%8E%E5%B4%A9%E6%BA%83%E3%80%82%E9%83%A8%E5%88%86%20pxTaskCode%E3%80%81pcName%20%E5%92%8C%20pxStack%20%E5%8F%98%E9%87%8F%E8%A2%AB%E6%9B%BF%E6%8D%A2%E4%B8%BA%200xA5A5A5%E3%80%82%3C%2FLINGO-BODY%3E