你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
wudianjun2001 发表于 2018-7-5 11:20 没看出啥问题来,我都是这样跳的 void execute_user_code(uint32_t Addr) {
everkimage 发表于 2018-7-5 13:17 boot_jump()代码是怎么样的?
安 发表于 2018-7-5 14:01 可能是楼主优化代码以后,部分问题导致。建议楼主仿真测试一下。带有boot的程序也可以仿真的 ...
wudianjun2001 发表于 2018-7-5 13:40 __asm void boot_jump( uint32_t address ) { LDR SP, [R0] ;Load new stack pointer address
everkimage 发表于 2018-7-5 16:24 你是直接设置SP。 我是调用__set_MSP()设置的。还有一个函数__set_PSP(),不知道是不是跟这个有关系。 ...
void execute_user_code(uint32_t Addr)
{
/* Change the Vector Table to the USER_FLASH_START
in case the user application uses interrupts */
SCB->VTOR = Addr & 0x1FFFFF80;
boot_jump(Addr);
}
评分
查看全部评分
boot_jump()代码是怎么样的?
__asm void boot_jump( uint32_t address )
{
LDR SP, [R0] ;Load new stack pointer address
LDR PC, [R0, #4] ;Load new program counter address
}
评分
查看全部评分
仿真可以的。
就是最优化后bootloader跳不过去,应该没有执行到APP的初始化代码,因为出来的是bootloader的HardFault处理打印信息。
后来我降低优化等级就可以了,然后再最优化编译,也可以了。不知道怎么地。
你是直接设置SP。
我是调用__set_MSP()设置的。还有一个函数__set_PSP(),不知道是不是跟这个有关系。
像HardFault的处理,就需要判断MSP和PSP,这部分机制有点忘了,哪位大神提示一下?跳入APP时设置MSP还是PSP,还是都可以?
评分
查看全部评分