程序jlink调试正常,下载上电无法运行
本帖最后由 红娃子 于 2018-10-15 09:45 编辑硬件环境:stm32f303 32k ram128k flash
软件环境: IAR FOR ARM 8.20
现象:程序使用jlink现在可以正常运行,但是上电重启就感觉程序没有跑起来
已经做的测试:
1.屏蔽掉程序的某个比较大的函数调用(减小ROM和RAM的使用量),jlink调试和上电都没有问题
2.通过map,icf文件已经确认STACK,HEAP都是足够的,我是查看map文件max call stack,选择最大的值+一定的余量,jlink调试没有报栈溢出。
3.在启动文件中systeminit里面点亮一个灯,在main中去关闭,jlink调试的时候,灯可以显示完全符合操作,但是在上电的时候却发现灯一直亮着,应该是没有进入到main函数,应该是在__iar_program_start里面出现了问题
4.在系统的所有异常中断中加入关闭led的代码,在HardFault_Handler关闭led代码会被执行
5.出现栈溢出现象是,没有拔掉jlink的时候出现的,如果在拔掉jlink,真正实现断电,则led灯一直亮,说明执行了systeminit,但是卡死在__iar_program_start
按理还没有进入到main函数对栈的需求应该不大吧。为什么会出现这样的问题,请各位大侠指点下,谢谢!
先测试一下MCU的工作环境,比如工作电压。。。还有boot脚是否符合要求的链接。。。在线测试OK,应该是没啥问题的!!!感觉MCU工作条件可能达不到!!! MrJiu 发表于 2018-10-15 13:47
先测试一下MCU的工作环境,比如工作电压。。。还有boot脚是否符合要求的链接。。。在线测试OK,应该是没啥 ...
谢谢,这个应该没有问题吧,因为我去掉一部分代码,就可以上电运行了。感觉是固件太大的缘故。我现在把固件缩小后就没有这个问题了。
页:
[1]