查看: 3317|回复: 3

关于IAP跳转不成功的原因

[复制链接]

1

主题

2

帖子

87

积分

中级工程师

Rank: 2

积分
87
发表于 2021-12-31 11:28:13 | 显示全部楼层 |阅读模式
芯片FM33LC025NBoot区应用:执行跳转指令,地址0xA000

App区:Led闪烁
现阶段说明:①最大疑点Jump函数问题,表现为Boot区代码执行了跳转,调试确认执行了跳转函数
怀疑是因为在boot区执行Jump(0)后,Boot区代码没有正常运行。void App_Jump(uint32_t AppAddress)
{
        __disable_irq();
         /* 跳转到应用程序位置 */
        uint32_t JumpAddress = *(__IO uint32_t*) (AppAddress + 4);
        __set_MSP(*(__IO uint32_t*) AppAddress);
        (*( void (*)( ) )JumpAddress) ();
}
②App区代码没有正常执行,地址为0时确认程序可执行

③确认烧写选择

④Boot和App区编译文件的hex对应地址正确


问题:问程序跳转失败的原因。

回复

使用道具 举报

155

主题

847

帖子

4701

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4701
发表于 2022-1-4 08:57:38 | 显示全部楼层
用的bootload例程试的么。可以参考bootload例程里自带的AN说明的3.5章节修改。例程的引导程序与用户程序都是可以直接仿真的。相互不影响。 仿真用户程序时,需要先将引导程序用keil或iar下载进去就好。
回复

使用道具 举报

155

主题

847

帖子

4701

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4701
发表于 2022-1-4 09:03:41 | 显示全部楼层
修改了跳转的地址。程序需要修改哪些,AN文档里也有说明需要修改哪些地方,确保都修改到位了。
回复

使用道具 举报

1

主题

2

帖子

87

积分

中级工程师

Rank: 2

积分
87
 楼主| 发表于 2022-1-10 13:16:26 | 显示全部楼层
找到原因了,是编译器版本的问题,用5就可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表