打印
[STM32L1]

bootloader升级app后进入hardfault

[复制链接]
1994|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
free_tend|  楼主 | 2016-5-20 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我也遇见了这个么个问题。
如果用keil下载程序就会出现hardfault, 复位也解决不了问题。
但是如果直接拔掉电源重新上电就怎么压力测试都不会有问题。

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

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

那么这么看 好像问题出在bootloader的上面。
但是如果bootloader升级app后, 重新上电就没有问题。
对此我怀疑问题可能出在ymodem的部分。 但是我仔细看过代码, 也没有什么可以调节的部分。

描述有点乱, 有人能帮忙解答一下吗
沙发
huangcunxiake| | 2016-5-20 10:02 | 只看该作者
STM32 ST-LINK Utility 这个软件用过吗?这个编程给力,ST专门做的烧录软件。

使用特权

评论回复
板凳
yklstudent| | 2016-5-20 11:30 | 只看该作者
多半程序的问题,多看看代码是否存在BUG

使用特权

评论回复
地板
free_tend|  楼主 | 2016-5-20 11:54 | 只看该作者
yklstudent 发表于 2016-5-20 11:30
多半程序的问题,多看看代码是否存在BUG

我也觉得是, 但是重新上电又好了  
考虑是不是中断或者堆栈的问题。但是呢,就是开始把APP 和bootloader都是刷下去 然后升级又不会有这样的问题。所以很费解

使用特权

评论回复
5
量子纠缠| | 2016-5-20 13:15 | 只看该作者
程序问题可能性比较大,堆栈或者指针跳转或操作了不当的地址。
再检查一下程序。

使用特权

评论回复
6
free_tend|  楼主 | 2016-5-20 16:03 | 只看该作者
量子纠缠 发表于 2016-5-20 13:15
程序问题可能性比较大,堆栈或者指针跳转或操作了不当的地址。
再检查一下程序。
...

拔掉jlink就没有任何问题了 。  但是我用jlink只是用来下载程序 并未用作调试
没有继续纠结了。

使用特权

评论回复
7
xmshao| | 2016-5-20 16:13 | 只看该作者
真是看得头晕啊。

注意APP的中断矢量的重定义,IAP跳转到APP的地址要正确。目前来看,ST官方都有成熟的例程了,参考下吧。

使用特权

评论回复
8
量子纠缠| | 2016-5-20 17:41 | 只看该作者
检查JLINK复位脚,看是否拉低处于一直复位状态。

使用特权

评论回复
9
江枫渔火| | 2016-5-21 08:05 | 只看该作者
更新完程序一般是要重新启动的!不重新启动的话,当前执行的映像访问的内存可能还是之前的内存,可能因为映像的变动而出错,然根本原因可能还是某个执行函数对内存的访问,对参数的值,或指针没有做条件约束。

使用特权

评论回复
10
free_tend|  楼主 | 2019-7-18 10:12 | 只看该作者
回头看这个帖子无限感慨。 这几年干过rf驱动, android  BT WIFI。
  差点去做了telecom  就是协议分析。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

182

帖子

0

粉丝