山月知 发表于 2016-3-7 17:39:46

求助!!stm32f100+STLINk调试老是出现HardFault

求助各位,我刚接触STM32,利用keil+stlink实现led点灯功能,然后总是经常进入HardFault Handler中,
有时候是还在systeminit()时就进入,有时候是进入main函数后,这几天看了些文档以及网上一些相关资料,依旧没有办法解决。。



能不能麻烦各位抽空看看,多谢多谢!

liu553824989 发表于 2016-3-9 08:43:49

之前我也出现这样的问题,可以先按照前辈们的想法先查找问题。不过我也说说我之前遇到的问题,是由于指针读地址出现跑死的。

山月知 发表于 2016-3-9 09:37:41

liu553824989 发表于 2016-3-9 08:43
之前我也出现这样的问题,可以先按照前辈们的想法先查找问题。不过我也说说我之前遇到的问题,是由于指针 ...

谢谢~但是我每次遇到的问题都各种不同,给我的感觉就是 硬件方面不稳定之类的,而且基本上调用的都是库函数,实在不明白为什么出现这种情况。

xmshao 发表于 2016-3-9 11:16:27

用户代码里没什么东西,就是空循环,不像你用户代码问题。

你把硬件线路连接好,应该不会频繁出HARDFAULT.

问题可能跟你的启动代码有关.尽量找个最新的库代码来玩。

richyhuang 发表于 2016-3-9 11:21:45

用汇编写个简单的试试看行不行.

发表于 2016-3-9 15:23:13

楼主把工程发上来,大家帮你测试一下。

山月知 发表于 2016-3-9 16:21:39

多谢各位。

山月知 发表于 2016-3-9 16:23:31

还有有时候在调试过程中会出现下面这种情况,不知道是为什么。

山月知 发表于 2016-3-10 15:13:59

我发现启动文件选错了,我用的是STM32F100系列,启动文件选择是的startup_stm32f10x_md.s,应该用startup_stm32f10x_md_vl.s
但是重新选择启动文件了,发现现在完全不能进入main()了,新建工程试过了,还是不行,不知道为什么

山月知 发表于 2016-3-10 16:53:25

最后仔细看了下启动代码,发现问题是进入SetSysClock()函数中执行完SetSysClockTo24()后不能正常返回_main,所以我直接把SetSysClock()注释掉了,就可以执行到main函数了,并且LED点灯功能也能工作了。
所以有点不太明白SetSysClock()为什么会导致不能返回_main。有朋友知道这个么,能否告知下?
页: [1] 2
查看完整版本: 求助!!stm32f100+STLINk调试老是出现HardFault