嵌入式技术论坛
直播中

李敏

8年用户 1444经验值
私信 关注
[问答]

qboot跳转APP,APP声明全局变量时无法初始化?

1、程序添加了kawaii_mqtt软件包
2、声明全局变量时进行初始化,程序无法跳转
2.jpg
3.jpg
3、声明全局变量时不初始化,在函数中初始化,则程序正常跳转
2.jpg
3.jpg

回帖(5)

王磊

2023-3-6 10:39:32
如果没用boot,那么这个问题首先应该检查启动代码中对data的搬运是否正确。
你这里用了boot,但问题看起来和boot没直接关系。
建议明确是否不用boot时,同样的代码就没问题。(代码上至少链接地址不同)
万古不变的方法:指令级单步调试解君愁
举报

李敏

2023-3-6 10:39:48
不使用boot,程序正常运行。
2.jpg
单步调试到这里就没法继续跟踪了,后边就是无限循环
3.jpg
4.jpg
举报

王磊

2023-3-6 10:39:57
app_func() 和 b Infinite_Loop 之间可能发生了点儿什么
举报

张静

2023-3-6 10:40:05
看下IPSR就知道哪个ISR没写了,中断没关清完,提前触发了中断。
应该是APP的改动,造成启动时间的差异,然后刚好提前来了中断。
因和时间相关,先重点检查systick。
举报

王静

2023-3-6 10:40:13
你的FAL分区表中,onchip部分的offset怎么都是0x00000000?这里不对呀。
看一看你的QBOOT_APP_ADDR设置的对不对?是不是真的对应在你期望的APP地址。
确认一下你的Application工程中,LDS文件的设置,起始地址不能从0x08000000开始了,要修改成128KB开始的扇区地址。
我之前写过一个Tencent Tiny OS开发板EVB MX+(STM32L431)上使用Qboot的过程,你确认一下自己的步骤,先从Boot正常跳转到App,再去讨论其他问题,不然都搅在一起了,调试起来会很累。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分