代码拉取完成,页面将自动刷新
对于多内存或者内存比较大芯片 在跳转时如果只是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;
}
谢谢你的反馈,这里的代码确实考虑不周,下个版本将修复。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
你好,你所提的问题已修复,增加了 FIRMWARE_HEAD_DATA 和 FIRMWARE_HEAD_DATA_MASK 宏。改动点位于 source/bootloader/Core/firmware_manage.c
和 source/bootloader/Config/bootloader_config.h
,谢谢你的提议。
登录 后才可以发表评论