STM32程序进入hardfault_handler()

news/2024/10/21 22:57:15/

背景:

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

导致程序反复复位。

查找原因:

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

很奇怪!

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

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

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


http://www.ppmy.cn/news/1459470.html

相关文章

java使用正则表达式

这段Java代码首先定义了一个正则表达式,用于检查输入字符串formName是否符合特定格式。接下来,代码执行以下操作: Pattern pattern Pattern.compile("^1111(12|21)22[TF][0-9]{4}$");: 创建一个Pattern对象,该对象根据…

Unity 性能优化之UI和模型优化(九)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、选择UI二、UGUI的优化1.Raycast Target2.UI控件的重叠3.TextMeshPro 二、模型优化1.Model选项卡Mesh CompressionRead/Write Enabled设置Optimize Ga…

从零开始学习MySQL 事务处理

事务处理与ACID特性 事务是数据库操作的基本单元,它确保一组操作要么全部成功,要么全部失败,以此来维护数据库的一致性。这四个字母缩写ACID代表了事务的四大特性: 原子性(Atomicity)**:事务被…

NLP经典入门论文

1.基础部分 Word2Vec Efficient Estimation of Word Representations in Vector Space https://arxiv.org/abs/1301.3781v3 Transformer attention is all you need https://arxiv.org/abs/1706.03762 BERT Pre-training of Deep Bidirectional Transformers for Langua…

c#---多态

在 C#语言中体现多态有三种方式:虚方法,抽象类, 接口 一、虚方法 什么是虚方法? 在父类中使用 virtual 关键字修饰的方法, 就是虚方法。在子类中可以使用 override 关键字对该虚方法进行重写。 class Animal {public…

Ubuntu24.04安装中文输入法

Ubuntu24.04安装中文输入法 为了更好的体验,请访问个人博客 www.huerpu.cc:7000 一、添加中文语言支持 在安装中文输入法之前,首选要添加中文语言支持。选择System,点击Region & Language。 点击Manage Install Languages。 点击Insta…

uniapp日期区间选择器

uniapp日期区间选择器 在 uniapp 中创建一个简单的自定义日期范围的日期区间选择器: - 限制有效日期范围开始日期为 2024-01-01,结束日期为当日; - 默认日期区间为当日向前计算的7日区间; - 选择开始时间后,判断不可大…

(三)Appdesigner-界面转换及数据导入和保存

提示:文章为系列文章,可以在对应学习专栏里面进行学习。对应资源已上传 目录 前言 一、Appdesigner是什么? 二、界面切换 三、数据导入及保存 (一)数据导入 (二)数据保存 总结 前言 Appd…