被f103c8T6的hardfault困扰请求解惑(问题解决啦,低级错误)

2019-12-27 18:44发布

本帖最后由 lgc150 于 2017-7-5 10:44 编辑

写了个测试程序,烧录进去的时候是可以正常运行的,但是一旦通过jlink调试,就立刻跑到hardfault里面,而且进入的位置也不一样,有的时候是从几条语句就hardfault,有时候是一点调试就立刻进入。之前是一直调试正常的,就因为改了Rx = vol1*1000/50.1f/vol2;,  把50.1f改为100.1f编译一下,在调试就变成这样子,改回来也不行。 真是头大啊~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
xianghaisha
1楼-- · 2019-12-27 22:42
 精彩回答 2  元偷偷看……
lgc150
2楼-- · 2019-12-28 00:28
问题已经解决,在别的头文件声明了不属于这头文件的函数,导致这奇怪的现象真是低级错误啊
擦鞋匠
3楼-- · 2019-12-28 03:02
如果是我的话,我肯定先看下错误寄存器,看看到底这个harddefault到底是由什么引起的,确定下大致方向...是总线错误,是使用错误,还是堆栈错误等...说不定还能告诉你错误地址...然后再通过分析栈内存,想办法知道是从哪里进入hardfault中断的...
lgc150
4楼-- · 2019-12-28 04:35
xianghaisha 发表于 2017-7-5 10:42
这样的话会不会是由于程序时序上的问题,导致乱跑,查看一下进入hardfault之前的寄存器状态吧 ...

找到问题了,请看l楼下~~
security
5楼-- · 2019-12-28 07:28
擦鞋匠 发表于 2017-7-5 10:45
如果是我的话,我肯定先看下错误寄存器,看看到底这个harddefault到底是由什么引起的,确定下大致方向...是总 ...

我跟你说一个无关此问题的建议:
我注意到你的发言,标点符号,都是用英文的,而且还没有 space,这样子字符挨得太紧密了,我看得有点费力。
书写中文的话,最好还是标配中文标点符号,正统一点。
你也可以去看看英文的书籍,看看人家怎么写的(人家标点后面,都是要空一个 space,没有紧密挨在一起的)。
lcl
6楼-- · 2019-12-28 09:42
 精彩回答 2  元偷偷看……

一周热门 更多>