打印
[STM32H7]

boot与app的跳转,存在一个小问题

[复制链接]
48|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梧桐uuu|  楼主 | 2025-2-28 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经过测试,能够从boot到app的跳转,使用Keil V5。自定义引导加载程序位于IROM 0x08000000。应用程序位于IROM 0x08020000。需要在Keil设置的boot和app两个内存地址。现在的棘手部分是Keil在指定的内存地址的开始处使用一块内存来完成一些工作。在引导加载程序应用程序中进行调试时,在重置处理程序中加载到R0的__main指针将是0x08001AD而不是预期的0x08000000。因此,boot跳转例程是:JumpAddress = 0x080201AD; // 应用程序地址偏移 + ''Keil偏移''Jump_To_Application = (pFunction) JumpAddress;NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x20000); // 应用程序地址偏移__set_MSP((__IO uint32_t) 0x08020000); // 初始化用户应用程序的堆栈指针Jump_To_Application();即使改变boot中app的地址,Keil偏移仍然是0x1AD。在BTL和app中使用相同的时钟。在app中使用了RTX,但在BTL中未启用,如果在BTL中启用RTX,则跳转失败。我的问题是为什么Keil有这个“常量”地址偏移?能否在boot中带有RTX启用的BTL跳转?如何做...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝