当前位置: 首页 > news >正文

HardFault_Handler调试及问题方法

我在keil编译代码,程序执行一断时间卡住了,我使用debug进行调试,之后全速运行,可以看到如下图所示程序进入HardFault异常,进入了while循环中。

注意,HardFault_Handler的存在意义是为了帮你解决程序的问题!

一、查找LR寄存器的值

1.我们进入Debug,运行到HardFault_Handler中

2.然后找到Registers界面

3.找到LR寄存器的值(然后参考下文)

二、根据LR寄存器的值,确定是要查找MSP还是PSP寄存器的值

根据LR的寄存器的值判断是主栈还是线程栈导致的问题,如果是主栈就继续查看MSP寄存器,如器果是进程栈,那么就查看PSP寄存。(我的LR寄存器的值是0xFFFFFFFD,在进程栈中,所以要查看PSP的值)

三、将MSP/PSP寄存器的值放入Memory中具体查找到两个08

在Memory1中搜(PSP的值,上面已经根据情况选择PSP或者MSP了,我这里是PSP)0x200012B8,回车键查看

注意两红色方框,有两个连续08开头的,这是两个地址,第一个地址是卡住的具体函数08001e4d,第二个是卡住的具体位置08002370注意从后面开始

四、根据地址查找到代码异常的具体位置

在show code at address中输入0x08002370(前面要输入0x),点击go to就跳转找到出现异常的代码段了。

http://www.xdnf.cn/news/618589.html

相关文章:

  • vue——v-pre的使用
  • Redis 面经
  • 开发指南118-背景渐变特效
  • SOC-ESP32S3部分:8-GPIO输出LED控制
  • 如何做好一份技术文档?
  • JavaSE核心知识点03高级特性03-01(集合框架)
  • AbMole| MG132(133407-82-6,M1902,蛋白酶体抑制剂)
  • 西北某县智慧水务系统新升级:能预判·会听话·秒响应的智能“水管家”上岗
  • 探索常识性概念图谱:构建智能生活的知识桥梁
  • YOLOv4论文超详细精讲(翻译+学习笔记)
  • 文章记单词 | 第112篇(六级)
  • Flask框架全方位深度解析
  • Python |GIF 解析与构建(2):状态机解析
  • 2000-2023年各地级市进出口总额/地级市对外经济贸易数据
  • queue和priority_queue及其函数
  • ld: cpu type/subtype in slice (arm64e.old) does not match fat header (arm64e)
  • mysql连接池druid监控配置
  • 2025年工会考试题库及答案
  • MyBatis 中 parameterType 属性
  • AutoCAD Electrical 自定义多极元件
  • 反本能---如何对抗你的习以为常
  • 二分算法(灵神边界处理复习)
  • 电子电路:能认为电抗也是在做功吗?
  • 软件测试(4) 白盒测试
  • 归一化与标准化
  • 频率分布直方图
  • halcon初始
  • 深度剖析并发I/O模型select、poll、epoll与IOCP核心机制
  • 计算机组成原理-基本运算部件定点数的运算
  • 【安全攻防与漏洞​】​​Heartbleed漏洞复现与修复