1.不要把跳转函数放在中断中,如此导致在跳转后的app或者bootloder都是在中断状态,只要你一开启该中断,就可能出现硬件中断了
2.如果你的APP使用了ucos系统,在跳转函数中还需要增加__set_CONTROL(0);//把psp修改成msp;这样是为了把ucos系统中的psp置回msp,否则容易出现硬件中断
MSP和PSP 的含义是Main_Stack_Pointer 和Process_Stack_Pointer,在逻辑地址上他们都是R13
这意味着同一个逻辑地址,实际上有两个物理寄存器,一个为MSP,一个为PSP,在不同的工作模式调用不同的物理寄存器
没有操作系统内核PSP与MSP模式:
R13的值与MSP值相同,内核使用MSP
带UCOSII操作系统内核PSP与MSP模式: