126 Star 1.1K Fork 451

侯巽杰 (Dino) / mOTA

 / 详情

栈顶跳转判断

待办的
创建于  
2023-12-06 09:39

对于多内存或者内存比较大芯片 在跳转时如果只是0x20000000会导致失败,下面我这个是多内存的 。后面这个应该搞到宏定义出来。
FM_ERR_CODE FM_CheckFirmwareIntegrity(uint32_t addr)
{
uint32_t value = *(volatile uint32_t *)addr;
FM_ERR_CODE fw_integrity = FM_ERR_JUMP_TO_APP_ERR;

BSP_Printf("0x%.8X address data: 0x%.8X\r\n", addr, value);

if (APP_ADDRESS == addr)
{
    /*判断栈顶地址*/
    fw_integrity = (((value & 0x2FF00000) == 0x24000000)||((value & 0x2FF00000) == 0x20000000))? FM_ERR_OK : FM_ERR_JUMP_TO_APP_ERR;
}

评论 (2)

ouxueguo 创建了任务

谢谢你的反馈,这里的代码确实考虑不周,下个版本将修复。

你好,你所提的问题已修复,增加了 FIRMWARE_HEAD_DATA 和 FIRMWARE_HEAD_DATA_MASK 宏。改动点位于 source/bootloader/Core/firmware_manage.csource/bootloader/Config/bootloader_config.h ,谢谢你的提议。

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
2187803 dinohaw 1694768793 7500401 ouxueguo 1701910689
C
1
https://gitee.com/DinoHaw/mOTA.git
git@gitee.com:DinoHaw/mOTA.git
DinoHaw
mOTA
mOTA

搜索帮助

344bd9b3 5694891 D2dac590 5694891