STM32程序进入hardfault_handler()

背景:

假期前一直在修改代码,没有边改边测。节后回来测试代码,发现程序上电后很快就进入hardfault_handler()中断。

导致程序反复复位。

查找原因:

在程序的_it.c文件里有几句代码,如果注释掉不执行,就不会进入hardfault_handler()中断。

很奇怪!

后来才发现,这几句代码里使用了一个变量,这个变量是在其他文件中定义的,所以在_it.c文件里是通过extern关键字引入的。引入的时候,后面的数据类型是uint16_t。而实际上变量定义的地方数据类型是uint8_t

这样一来,不就访问越界了吗!所以进入.hardfault_handler()。

要是keil软件能提示下这种错误就好了!

相关推荐
Rousson20 小时前
硬件学习笔记--93 静电防护方案(电阻、磁珠、电感、TVS等)
笔记·单片机·学习
happyhappy没有句号21 小时前
嵌入式单片机一套通关学习笔记
笔记·单片机·嵌入式硬件·学习
悠哉悠哉愿意21 小时前
【嵌入式学习笔记】工程模板建立
笔记·嵌入式硬件·学习
d111111111d1 天前
STM32外设基地址与寄存器偏移地址的深度解析
笔记·stm32·单片机·嵌入式硬件·学习
快乐的划水a1 天前
nanoMODBUS 库
stm32
无聊到发博客的菜鸟1 天前
使用STM32对SD卡进行性能测试
stm32·单片机·rtos·sd卡·fatfs
许商1 天前
【stm32】cmake脚本(一)
stm32·单片机·嵌入式硬件
polarislove02141 天前
8.1 时钟树-嵌入式铁头山羊STM32笔记
笔记·stm32·嵌入式硬件
染予1 天前
对开漏输出的理解
单片机·嵌入式硬件