STM32程序进入hardfault_handler()

背景:

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

导致程序反复复位。

查找原因:

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

很奇怪!

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

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

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

相关推荐
leo__5202 小时前
STM32 MAX30102 心率血氧测量代码
stm32·单片机·嵌入式硬件
金色光环6 小时前
【DSP学习】DSP28335 点亮LED
嵌入式硬件·学习·dsp开发
yuan199976 小时前
STM32 IAP 电量计源码
stm32·单片机·嵌入式硬件
学不懂飞行器6 小时前
从小白到国奖:全国大学生电子设计竞赛(电赛)高质量备赛全攻略
stm32·单片机·嵌入式硬件
perseverance527 小时前
STM32F405 ADC+DMA双缓冲规则组采集
stm32·adc
高翔·权衡之境7 小时前
缓存一致性——多核系统的默契之约
驱动开发·嵌入式硬件·安全·缓存·系统安全·信息与通信
念恒123068 小时前
STM(GPIO)上篇
stm32·单片机·嵌入式硬件
时空自由民.9 小时前
嵌入式MCU+RTOS软件框架设计方案
单片机·嵌入式硬件
yanlaifan12 小时前
STM32L011中map文件中内存分析
stm32
嵌入式-老费12 小时前
esp32开发与应用(esp-idf开发)
嵌入式硬件