[STM32L1] bootloader升级app后进入hardfault

[复制链接]
4677|17
 楼主| jlyuan 发表于 2021-6-2 23:48 | 显示全部楼层 |阅读模式
如果用keil下载程序就会出现hardfault, 复位也解决不了问题。
但是如果直接拔掉电源重新上电就怎么压力测试都不会有问题。

同样直接用bootloader下载app后会出现这个问题。但是 重新上电就没了。

还有, 如果我有keil把app重新烧写到app区域, 再用bootloader升级app擦拭flash,就没有这个问题了。
另外的条件是, 如果我单独把app烧写到开始位置 ,直接启动app也不会有问题。

那么这么看 好像问题出在bootloader的上面。
但是如果bootloader升级app后, 重新上电就没有问题。
对此我怀疑问题可能出在ymodem的部分。 但是我仔细看过代码, 也没有什么可以调节的部分。
wyjie 发表于 2021-6-2 23:51 | 显示全部楼层
STM32 ST-LINK Utility 这个软件用过吗?这个编程给力,ST专门做的烧录软件。
chuxh 发表于 2021-6-2 23:53 | 显示全部楼层
多半程序的问题,多看看代码是否存在BUG
 楼主| jlyuan 发表于 2021-6-2 23:55 | 显示全部楼层
我也觉得是, 但是重新上电又好了  
 楼主| jlyuan 发表于 2021-6-2 23:57 | 显示全部楼层
考虑是不是中断或者堆栈的问题。但是呢,就是开始把APP 和bootloader都是刷下去 然后升级又不会有这样的问题。所以很费解
xxrs 发表于 2021-6-2 23:58 | 显示全部楼层
程序问题可能性比较大,堆栈或者指针跳转或操作了不当的地址。
再检查一下程序。
zwll 发表于 2021-6-3 20:38 | 显示全部楼层
拔掉jlink就没有任何问题了
 楼主| jlyuan 发表于 2021-6-3 20:41 | 显示全部楼层
但是我用jlink只是用来下载程序 并未用作调试
heweibig 发表于 2021-6-3 20:43 | 显示全部楼层
真是看得头晕啊。
jiajs 发表于 2021-6-3 20:45 | 显示全部楼层
注意APP的中断矢量的重定义,IAP跳转到APP的地址要正确。
zhenykun 发表于 2021-6-3 20:47 | 显示全部楼层
目前来看,ST官方都有成熟的例程了,参考下吧。
zwll 发表于 2021-6-3 20:49 | 显示全部楼层
检查JLINK复位脚,看是否拉低处于一直复位状态。
stly 发表于 2021-6-3 20:50 | 显示全部楼层
更新完程序一般是要重新启动的!
xxrs 发表于 2021-6-3 20:52 | 显示全部楼层
不重新启动的话,当前执行的映像访问的内存可能还是之前的内存,可能因为映像的变动而出错
jiajs 发表于 2021-6-3 20:54 | 显示全部楼层
然根本原因可能还是某个执行函数对内存的访问,对参数的值,或指针没有做条件约束。
 楼主| jlyuan 发表于 2021-6-3 20:57 | 显示全部楼层

嗯,预料中的结果,多谢大家啦
weifeng90 发表于 2021-6-3 21:32 来自手机 | 显示全部楼层
堆栈和指针溢出
kfawj 发表于 2021-6-10 21:53 | 显示全部楼层
小心中断向量表重新加载的问题,或程序起始位置和内存起始位置再核对一下!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部