STM32程序进入hardfault_handler()

背景:

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

导致程序反复复位。

查找原因:

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

很奇怪!

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

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

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

相关推荐
上海合宙LuatOS3 小时前
LuatOS核心库API——【i2c】I2C 操作
linux·运维·单片机·嵌入式硬件·物联网·计算机外设·硬件工程
总结所学5 小时前
Typora最新版破解教程
嵌入式硬件
上海合宙LuatOS7 小时前
LuatOS核心库API——【io】 io操作(扩展)
java·服务器·前端·网络·单片机·嵌入式硬件·物联网
sweetone7 小时前
AMYSH折叠电动滑板车轮子倒转故障快修
经验分享·单片机·嵌入式硬件
嵌入式×边缘AI:打怪升级日志8 小时前
解决硬件复位后按键响应变慢的问题 —— 嵌入式容错设计实战
单片机·嵌入式硬件
czhaii11 小时前
定时器三时段输出自动控制器
单片机·嵌入式硬件
Neil今天也要学习13 小时前
永磁同步电机控制算法--基于数据驱动的超局部无模型预测电流控制MFPC及改进
单片机·嵌入式硬件·算法
在岸上走的鱼14 小时前
ISE 14.7安装到80%(82%或者83%)卡主
嵌入式硬件·硬件工程
Python小老六14 小时前
STM32(ARM32)烧录方式详解:串口、JTAG、SWD
stm32·单片机·嵌入式硬件
CHENG-JustDoIt15 小时前
嵌入式开发 | ARM Cortex-M 系列中M3、M4、M23 和 M33四款处理器的深度对比分析
arm开发·单片机·嵌入式硬件·arm