【STM32】HardFault_Handler问题解决的一种办法

2023-11-01

好久没写技术博客了,这次就把农历新年前遇到的问题在这里说一下吧。
在用STM32F4写程序,调试时候会遇到程序在调试的时候死在某一段代码上。一直在一段代码上死循环。

调试时的错误情况

经过百度以后发现了一些造成这个错误的原因:

STM32出现HardFault_Handler故障的原因主要有两个方面:

1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。

2、堆栈溢出。增加堆栈的大小。

经过排查发现应该是堆栈溢出造成的程序错误。因为我的程序中对子函数的调用比较多,而且需要的临时参数和变量很多容易造成堆栈的不够用的问题。

解决方法:只要增加堆栈的大小就行了。

STM32的库文件

打开官方的startup_stm32f40_41xxx.s(也可能是其他的) 找到Stack_Size EQU 设置点
将改堆栈大小设置改大一点就可以了 。但是不能改的很大,改很大也会报错的。

这篇文章只是很粗略的解决了这个问题,具体的原因大家想了解的话还是要去看看M4或者M3的内核分析一下。
2016.3.19 晚 于旺园

参考资料:http://blog.csdn.net/zyboy2000/article/details/7668331

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【STM32】HardFault_Handler问题解决的一种办法 的相关文章

  • 51单片机 数码管中断操作

    实践目的 1 掌握中断的概念和思想 2 掌握51单片机中断系统和相关软硬件设计 实践内容 1 利用单片机的P0口接数码管的字段脚 P1 0脚接共阴极 P3 2 P3 3引脚接独立按键产生外部中断信号 编写程序 当程序正常运行时数码管显示H字
  • 如何让printf在STM32F103上工作?

    我是 STM32F103 世界的新手 我有一个STM32F103的演示代码 我正在使用arm none eabi来编译它 我尝试了在谷歌上可以找到的内容 但到目前为止没有任何效果 我已经花了三天时间来解决这个问题 任何人都可以给我一个运行良
  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • rt-thread studio中新建5.02版本报错

    先吐槽一下 rt thread studio出现BUG真多 好多时间都是在找BUG 但里面用好多控件还是挺好用的 真是又爱又恨 所以一般使用功能不多的话还是用keil多一点 创建5 02版本工程之后直接进行编译 直接会报下面这个错误 资源
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • STM32F103

    提示 来源正点原子 参考STM32F103 战舰开发指南V1 3PDF资料 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 开发环境硬件普中科技 接线图在g
  • 物联网网关

    物联网网关是 连接物联网设备和互联网的重要桥梁 它负责将物联网设备采集到的数据进行处理 存储和转发 使其能够与云端或其它设备进行通信 物联网网关的作用是实现物联网设备与云端的无缝连接和数据交互 物联网网关功能 数据采集 物联网网关可以从物联
  • HAL库学习

    CMSIS简介 CMSIS Cortex Microcontroller Software Interface Standard 微控制器软件接口标准 由ARM和其合作的芯片厂商 ST NXP 软件工具厂商 KEIL IAR 共同制定的标准
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • 无法使用 OpenOCD 找到脚本文件

    我正在尝试按照本教程将 OpenOCD 与我的 ST 发现板一起使用 https japaric github io discovery README html https japaric github io discovery READM
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 在 Contiki 程序中使用 malloc

    考虑以下 Contiki 程序 include
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE

随机推荐

  • STL迭代器简介

    标准模板库 The Standard Template Library STL 定义了五种迭代器 下面的图表画出了这几种 input output forward bidirectional random access 要注意 上面这图表并
  • 实现简易版——MyLinkedList

    class Node String val Node pre 双向 Node next Node String val this val val public class MyLinkedList private Node head 头结点
  • 视频号短视频创作需要注意的6个剪辑技巧(细节提高推荐率)

    昨天 老蒋有在 视频号短视频创作不能做的8件事情 文章中总结到我们在视频号创作短视频的时候几个不应该做的事情可能会导致账户被封 作品被限流的问题 继续接着这个话题 我们来聊一聊短视频需要注意的几个剪辑技巧 这些细节可能会提高用户的阅读体验
  • 频繁读写文件导致内存使用率过高

    最近接到一个客户反馈 说是服务器内存使用过高 总内存16G 使用top命令查看可用内存已经不足1G了 客户环境服务器为linux 部署了3个tomcat 每个tomcat均有大量的日志产生 让客户使用free m检查一下 此处有必要解释一下
  • 【IKE协商第二阶段快速模式协商过程】

    今天带大家了解一下IKE协商第二阶段快速模式协商过程 IKE协商第二阶段快速模式协商过程 第二阶段共产生3个交互报文 都是被第一阶段的ISAKMP IKE SA中的加密算法 验证算法所保护 IKE协商第二阶段的目的是产生最终用于加密和验证I
  • 常见DML语句汇总

    DML操作是指对数据中表记录的操作 主要包括表记录的插入 insert 更新 update 删除 delete 和查询 select 是开发人员日常使用最频繁的操作 下面依次对它们进行介绍 1 插入记录 INSERT INTO tablen
  • iOS进阶_WebDav(五.WebDav的上传进度&多线程下载思路)

    WebDav的上传进度 import ViewController h interface ViewController
  • 实用的自然码双拼口诀

    今天给大家介绍一个实用的自然码双拼口诀 来无蛙双拼口诀 掌握自然码双拼输入法的难点是将其26个韵母对应的字母键位记忆到脑海中 比如 ai韵母对应于L键 an韵母对应于J键 假如你没记住对应关系 那么双拼输入也就无从谈起了 通过背诵双拼口诀
  • linux+eclipse+CDT 多线程编译问题

    linux eclipse CDT编译多线程程序 出现这样的问题 undefined reference to pthread create undefined reference to pthread join 原因是 pthread库不
  • Ubuntu9.04双网卡配置

    新手没怎么用过Ubuntu 所以走了不少弯路 网上找了很多方法 大都没对我起到帮助作用 所以把自己的配置方法写一写 环境 VPC2007SP1 Ubuntu9 04 Ubuntu上连了两块网卡 eth0为外网的eth1为内网的 VPC的特点
  • zabbix 配置企业微信告警群机器人告警

    一 企业微信端配置 1 创建微信群机器人 在需要接收告警信息的企业微信群上右键 注意群里成员至少要3人以上 选择 添加群机器人 设置机器人名称 系统自动生成此机器人的webhook地址 请记住该地址 不要随便给其他人 以免无关人员通过此地址
  • 基于RFID技术的智能仓储管理系统解决方案—铨顺宏

    一 行业背景 简单 静态的传统仓储管理模式普遍存的物资库存量巨大 物资跟踪困难 资金和物资周转效率较低 人力成本偏高 物流管理的信息和手段落后等缺点 已不能适应新的仓储管理需求 破除传统的仓储管理模式 积极探讨新的信息管理技术 在适应企业原
  • 转行学IT:零基础学什么技术好?

    最近在微博上看到一段话 他说 想要赚钱不惜命 IT是首选 我认为 如果真的对代码感兴趣 想赚钱 这个行业确实是个好的行业 而且现在经济形态不好 很多传统行业工作难找 工资也低 很多应届毕业生费尽心思找到的工作工资也少的可怜 转行学IT 零基
  • 基于光谱成像的柑橘黄龙病检测

    目录 前言 研究现状 室内检测 室外检测 移动地面传感器平台 多光谱 无人机 多光谱 讨论 参考文献 前言 柑橘黄龙病 又称绿化 是一种由病原菌介导的免疫疾病 因其危害性和快速传播的特点成为影响柑橘生长的最具破坏性的疾病 由于现阶段没有针对
  • 2023更新版大厂面经

    主要提供两个方向 一个是漏洞挖掘 一个是红队 面了之后 直观感受是 面试也是有套路可言的 这里的套路指的不是所谓的出题套路 而是涉及的技术栈 都是大同小益的 无非就是那么几样 java 域为主体 其他为辅助 虽然技术栈不变 但是面试的问题每
  • 国外11个高质量免费的3D素材网站-建筑设计/室内设计/效果图渲染

    Renderbus瑞云效果图云渲染小编小瑞又来给大家分享国内外效果图及云渲染行业的前沿资讯啦 今天给大家分享11个国外免费的3D素材网站 帮助建筑设计 室内设计 效果图渲染的小伙伴 在 Photoshop Revit Sketchup Au
  • 文件服务器登录格式,服务器公共库开发--读取ini文件格式的类

    created 2008 07 28 filename config h author Lichuang purpose 封装读取ini格式的配置文件操作 include config h include comdef h include
  • c++输出字符数组乱码_c++输出中文乱码解决方案

    问题的原因应该在cmd的编码和c 程序编码 源文件编码 的不同 cmd默认的是gbk编码 而我用的vs code默认是utf 8编码 因而在输出中文文本时会出现乱码 但我也遇到了一个比较怪异的情况 就是cmd和cpp文件编码都是gbk的情况
  • java8常用新特性

    该段代码复制后根据自己需求调整运行 import javax print DocFlavor import java util import java util stream Collectors public class Maim pub
  • 【STM32】HardFault_Handler问题解决的一种办法

    好久没写技术博客了 这次就把农历新年前遇到的问题在这里说一下吧 在用STM32F4写程序 调试时候会遇到程序在调试的时候死在某一段代码上 一直在一段代码上死循环 经过百度以后发现了一些造成这个错误的原因 STM32出现HardFault H