STM32程序进入hardfault_handler()

背景:

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

导致程序反复复位。

查找原因:

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

很奇怪!

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

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

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

相关推荐
钟佩颖2 小时前
STM32
stm32·单片机·嵌入式硬件
平凡灵感码头2 小时前
天天在用的芯片:78L05 电源稳压器详解
单片机·嵌入式硬件
Zeku2 小时前
20251228 - Linux 驱动开发硬件管理机制笔记
stm32·freertos·linux驱动开发·linux应用开发
恶魔泡泡糖3 小时前
51单片机动态数码管应用2
单片机·嵌入式硬件·51单片机
mastercoder--3 小时前
速通51单片机————数码管显示与模块化编程
单片机·嵌入式硬件·51单片机
benjiangliu5 小时前
STM32教程-02-STM32复习C语言
c语言·stm32·嵌入式硬件
Nautiluss5 小时前
一起调试XVF3800麦克风阵列(三)
linux·人工智能·嵌入式硬件·音频·语音识别·dsp开发·智能音箱
LCG米5 小时前
嵌入式Python开发:MicroPython在物联网硬件上的实战应用案例
python·单片机·物联网
云山工作室6 小时前
基于zigbee的广告牌安全监测系统设计与实现(论文+源码)
单片机·毕业设计·毕设
DIY机器人工房6 小时前
简单理解:为什么错误计数器一般要选 uint32_t 类型?
stm32·单片机·嵌入式硬件·嵌入式·diy机器人工房