STM32程序进入hardfault_handler()

背景:

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

导致程序反复复位。

查找原因:

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

很奇怪!

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

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

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

相关推荐
方案开发PCBA抄板芯片解密7 分钟前
什么是FIB,芯片解密为什么需要做FIB
单片机·嵌入式硬件
双古37 分钟前
单片机调试,Ozone的使用
单片机·嵌入式硬件
飞凌嵌入式1 小时前
AIoT出海背景下,嵌入式主控的国际认证之路与价值思考
大数据·人工智能·嵌入式硬件·区块链·嵌入式
进阶的猪1 小时前
stm32 GPIO输出-使用固件库点亮LED灯 Q&A
c语言·笔记·stm32·单片机
沐欣工作室_lvyiyi1 小时前
基于STM32单片机的冷链运输监测系统(论文+源码)
stm32·单片机·毕业设计·冷链运输监测系统
IT方大同2 小时前
KEY(按键)&BUZZ(蜂鸣器)
单片机·嵌入式硬件
zd8451015002 小时前
STM32多路步进电机控制板
单片机·嵌入式硬件
进阶的猪2 小时前
stm32 USART-中断回显实验 Q&A
stm32·单片机·嵌入式硬件
应用市场2 小时前
基于 C# WinForms 的 Windows 系统监控工具开发实战
windows·单片机·c#
@good_good_study2 小时前
STM32 通用定时器基础中断配置函数及实验
stm32·单片机