STM32程序进入hardfault_handler()

背景:

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

导致程序反复复位。

查找原因:

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

很奇怪!

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

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

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

相关推荐
一路往蓝-Anbo7 小时前
【第13期】中断机制详解 :从向量表到ISR
c语言·开发语言·stm32·单片机·嵌入式硬件
ArrebolJiuZhou8 小时前
00 arm开发环境的搭建
linux·arm开发·单片机·嵌入式硬件
易水寒陈8 小时前
使用J-Link RTT Viewer
stm32·单片机
少一倍的优雅9 小时前
hi3863(ws63)智能小车 (三)PWM驱动马达
单片机·嵌入式硬件·hi3863
xingzhemengyou19 小时前
STM32 内存空间中的选项字节
stm32·单片机
v先v关v住v获v取10 小时前
椰子采摘机械臂设计cad9张+三维图+设计说明书
科技·单片机·51单片机
就是蠢啊11 小时前
51单片机——TFTLCD显示器(一)
嵌入式硬件·计算机外设·51单片机
qq_4480111611 小时前
嵌入式中IO、GPIO、专用IO
单片机·嵌入式硬件
xingzhemengyou112 小时前
STM32 Boot0 与 Boot1 [当 Flash 被误操作锁死或 SWD/JTAG 无法连接时,很有用]
stm32·单片机·嵌入式硬件
恒锐丰小吕12 小时前
屹晶微 EG27710 600V耐压、高性能、快速开关的半桥驱动芯片技术解析
嵌入式硬件·性能优化·硬件工程