HardFault_Handler异常

2019-03-23 17:27发布

请教各位,最近用MDK5.11编写STM32F103RC的程序,但是却莫名其妙进入HardFault_Handler异常中断,现在本人完全一头雾水,还请大神指点迷津!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
bobde163
1楼-- · 2019-03-25 05:01
 精彩回答 2  元偷偷看……
shipeng
2楼-- · 2019-03-25 06:03
lcofjp 发表于 2017-11-8 09:21
你的栈空间设置的多大?你的局部变量太大了,会不会溢出了

是不是堆栈空间一定要大于我的局部变量?
shipeng
3楼-- · 2019-03-25 10:48
本帖最后由 shipeng 于 2017-11-8 09:49 编辑
shipeng 发表于 2017-11-8 09:36
是不是堆栈空间一定要大于我的局部变量?

各位问题解决了原因是堆栈溢出,感谢大家的热心回复,特别感谢lcofjp的7楼提醒,之前堆栈空间是默认的Stack_Size      EQU     0x00000400后来通过查资料怀疑过这方面的原因改过一次Stack_Size      EQU     0x00000800也还是不行,最后隐隐约约想起临时变量都是定义在堆栈中的,我的大数组临时变量大小为0x1400因此之前的0x400和0x800都是不够的,改为Stack_Size      EQU     0x00002000后完美解决!
lcofjp
4楼-- · 2019-03-25 11:46
 精彩回答 2  元偷偷看……
Li_Lei
5楼-- · 2019-03-25 13:27
你这个应该优化一下,没必要搞这么多局部变量
shipeng
6楼-- · 2019-03-25 18:22
huo_hu 发表于 2017-11-8 10:33
你这个应该优化一下,没必要搞这么多局部变量

我感觉一个都不能少啊,我这个程序是用在一款:可导出数据至U盘的温湿度计上面的,温湿度数据存储在25Q16上,而我的25Q16数据存储是按照4096Byte为存储单元存的,因此有一个读取25Q16的4096字节的数组。还有一个1024Byte的数组是用作CH376的写入缓存,写入数据累积满整数个扇区(512字节的整数倍)再写入CH376可以大幅提升U盘的读写效率以及节约擦写寿命。

一周热门 更多>