你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

程序jlink调试正常,下载上电无法运行

[复制链接]
红娃子 提问时间:2018-10-15 09:32 /
本帖最后由 红娃子 于 2018-10-15 09:45 编辑

硬件环境:stm32f303   32k ram  128k 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函数对栈的需求应该不大吧。为什么会出现这样的问题,请各位大侠指点下,谢谢!






收藏 评论2 发布时间:2018-10-15 09:32

举报

2个回答
MrJiu 回答时间:2018-10-15 13:47:20
先测试一下MCU的工作环境,比如工作电压。。。还有boot脚是否符合要求的链接。。。在线测试OK,应该是没啥问题的!!!感觉MCU工作条件可能达不到!!!

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

红娃子 回答时间:2018-10-15 15:26:27
MrJiu 发表于 2018-10-15 13:47
先测试一下MCU的工作环境,比如工作电压。。。还有boot脚是否符合要求的链接。。。在线测试OK,应该是没啥 ...

谢谢,这个应该没有问题吧,因为我去掉一部分代码,就可以上电运行了。感觉是固件太大的缘故。我现在把固件缩小后就没有这个问题了。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版