初级会员

- 积分
- 96
- 金钱
- 96
- 注册时间
- 2017-7-4
- 在线时间
- 14 小时
|
10金钱
最近遇到一个问题,在STM32F103RC芯片上,从Boot跳转到App时,App的多个非零全局变量初始化出现错误。工程基于Keil 5.29进行,调试过程的一些发现:
1、Boot和App的全局变量都非常大(包含划分的栈空间),Boot大小为27K,App大小为35K。芯片的总RAM大小为48K。
2、工程使用了microLib,在取消使用microlib后测试初始化正常;
3、Boot和App都使用了看门狗,在boot关闭看门狗功能后,测试初始化正常;
4、因为大部分全局变量都放到同一个文件管理,所以有的初始化、有的未初始化,根据功能进行排列,之后调整将所有初始化的放到文件靠前位置,测试初始化正常;
5、代码是4个连续的u8类型变量初始化为1,但实际为0,在main()函数的第一条语句加断点查看:
U8 bt_ok = 0;
U8 led_ok = 1;
U8 AutoShut = 1;
U8 uarts = 0;
请教,大家有没有什么好的解决方法?或者理论解释问题原因?
|
|