CMSIS RTOSV1 RTX4 IAP APP用户程序无法正常运行
本帖最后由 829xuming 于 2023-5-11 16:34 编辑用GD32F303RCT6 芯片,boot采用裸机程序,app 用户程序采用rtx时 用户程序 无法正常运行,经仿真,断点无法进入main函数
用户程序起始地址为 ADD_ADDR=0x08002800
void driver_boot_jump_to_app(void)
{
uint32_t boot_sp_init_val;
uint32_t boot_jump_addr;
void (*p_boot_fun)(void);
//关中断
__disable_irq();
boot_sp_init_val = *(uint32_t*)APP_ADDR;//SP地址
boot_jump_addr = *(uint32_t*)(APP_ADDR + 4);//reset 地址
if((boot_sp_init_val & 0x2FFE0000)==0x20000000)//检查栈顶地址是否合法
{
__set_MSP(boot_sp_init_val);
p_boot_fun = (void (*)(void))boot_jump_addr;
(*p_boot_fun)();
}
}
经测试 app采用裸机时,boot跳转正常,app正常运行
网络上也有人碰到类似的,但没解决
STM32F429 IAP+App(RTX kernel) 无法跳转到APP的问题-CSDN社区
RTX5有个例子,供参考。
分享个基于STM32H7的BOOT和APP代码都使用RTX5的案例,相互之间任意跳转
https://www.armbbs.cn/forum.php?mod=viewthread&tid=97247&fromuid=58
(出处: 硬汉嵌入式论坛)
页:
[1]