829xuming 发表于 2023-5-11 16:09:33

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社区

eric2013 发表于 2023-5-11 20:48:21

RTX5有个例子,供参考。

分享个基于STM32H7的BOOT和APP代码都使用RTX5的案例,相互之间任意跳转
https://www.armbbs.cn/forum.php?mod=viewthread&tid=97247&fromuid=58
(出处: 硬汉嵌入式论坛)
页: [1]
查看完整版本: CMSIS RTOSV1 RTX4 IAP APP用户程序无法正常运行