在单片机中,经常会出现硬件错误。跳转到HardFault_Handler()错误中断

void HardFault_Handler(void)
{/* USER CODE BEGIN HardFault_IRQn 0 *//* USER CODE END HardFault_IRQn 0 */while (1){/* USER CODE BEGIN W1_HardFault_IRQn 0 *//* USER CODE END W1_HardFault_IRQn 0 */}
}

在cubeide中会自动暂停,这时候打开故障分析器窗口。典型如下:

双击,lr或者pc则会跳转到异常除的代码,例如双击pc后:

LR、PC、SP寄存器的功能及使用

LR(R14)
子程序的返回地址:从子程序返回后,主程序继续执行的指令的地址称为子程序的返回地址
LR也叫链接寄存器,用于存放子程序的返回地址。在要进入子程序之前,先将子程序的返回地址存入LR

PC(R15)
PC也叫计数寄存器,用于存放下一条要执行的指令的地址,因此在子程序返回后,要将LR中的地址存入PC,即mov PC LR。

SP(R13)
SP也叫堆栈寄存器,用于存放要执行的数据。在跳转到子程序之前,应该先将子程序的返回地址存入SP,即进行入栈操作,也叫保护现场(把子程序的返回地址保存在堆栈中就将返回地址保护起来了);在子程序执行完,要返回继续执行主程序,这是就需要恢复现场,即进行出栈操作;在出栈完成后,再将LR存入PC,继续执行下一条指令。

参考链接:https://blog.csdn.net/m0_49155898/article/details/123290241

CubeIDE stm32硬件错误调试相关推荐

  1. STM32硬件错误HardFault_Handler的处理方法

    在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中.这说明STM32出现了硬件错误. STM32出现硬件错误可 ...

  2. STM32硬件错误(HardFault_Handler)位置判断

    1.在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处时点击"STOP"停止仿真. 1.2 在Keil菜单栏点击"View ...

  3. FM1722/02NL+STM32硬件SPI调试笔记

    1.介绍 FM17XX 系列通用非接触读卡机芯片是复旦微电子股份有限公司设计的,基于 ISO14443 标准的系 列通用非接触卡读卡机芯片,采用 0.6 微米 CMOS EEPROM 工艺. FM17 ...

  4. 基于ESP32智能车竞赛比赛系统硬件初步调试-5-6

    简 介: 给出了对于基于ESP32设计的智能车竞赛的の比赛系统的硬件调试过程.基本上验证了硬件设计的合理与正确性.在第一部分的"修改建议"中也给出了硬件电路的修改意见. 关键词: ...

  5. STM32硬件IIC的BUG问题

    问题描述 大概是这样,使用STM32硬件IIC作为主机通讯,只要不发送错误的从机地址, 通讯一直都是没问题的,因为验证程序的关系,所以在程序中修改了一下从机地址, 这时候就出现了问题,下面直接看图把 ...

  6. STM32硬件SPI控制TM1638 按键数码管LED显示模块

    STM32硬件SPI控制TM1638按键数码管LED显示模块   从淘宝买来的,TM1638专门是控制LED的,LED组合起来就可以变成数码管,还有按键,这个我就没管了,不想管了,发这个帖子只是为了记 ...

  7. 使用STM32+硬件IIC+DMA驱动GT系列触摸屏(GT911)

    使用STM32+硬件IIC+DMA驱动GT系列触摸屏(GT911) 初始化代码 /** @brief GT911 初始化程序* @param None* @retval None*/ void GT9 ...

  8. STM32之QSPI调试记录

    STM32之QSPI调试记录 先声明一下,STM32的QSPI外设同样支持单线模式(兼容普通spi),只是相比普通的spi少了一些特性(比如只支持模式0和3.不能LSB发送等),但是用来操作flash ...

  9. 几种Linux段错误调试方法

    一.产生段错误的原因 段错误就是指某一进程访问了不属于它权限范围的内存空间,比如:访问了不存在的内存,访问了受系统保护的内存,访问了只读的内存等.下面是一段会产生段错误的实例代码:main.c #in ...

最新文章

  1. html购物车内部处理样式,第4期学习班-1.23作业-【JQuery-attr方法】-【JQuery-切换CSS效果】-【JQuery-插入元素】-【JQuery-加入购物车】...
  2. 半监督分类算法_用图网络进行半监督分类
  3. 生产者、消费者问题之闹钟
  4. 微信小程序之redirectTo、switchTab和navigateTo
  5. Tensorflow模型加载与保存、Tensorboard简单使用
  6. java中计算明年今天的日期_计算今天之后的下一个周年日
  7. 毕设题目:Matlab数字信号去噪
  8. 161128、Redis 4.0发布及其新功能介绍
  9. 公链生态周报:BI指数周涨幅超4%,以太坊POS代码即将完成 | 链塔智库
  10. 笔记本 无线网联网 win10系统 ,台式机木有无线网卡,通过一根网线连接两台电脑,使台式机联网。...
  11. 5.4.4. Primary Keys
  12. 2020年国赛A题目思路(高教杯全国大学生数学建模竞赛)
  13. 整理了MariaDB和MySQL数据库历年发布版本和对应关系,方便记忆命令。
  14. 改变世界的17个方程式,你认识几个?
  15. mac如何升级node版本
  16. FreeBSD安装中文字体和中文输入法
  17. 【通信原理】学习笔记----理解信道
  18. Jmeter进行压力测试的一个案例
  19. 李弘毅机器学习笔记:第十章:Keras2.0
  20. 通达oa php漏洞,通达OA系统傻逼上传漏洞分析,可以直接getshell附EXP

热门文章

  1. 基于Jrtplib的流媒体技术解析
  2. 【Error】Error running process: CreateProcess failed. Code 2
  3. android开发我的新浪微博客户端-登录页面功能篇
  4. 考研复试7 汇编语言、编程语言
  5. 4月更新!EasyOps®全平台27项新功能一口气来袭~
  6. 转行退路?后端开发人员可选12个职业方向
  7. 4.2 里氏替换原则
  8. freemarker.core.ParseException:Unexpected end of file reached
  9. Max Sum Plus Plus(dp解题)
  10. 嵌入式linux内核oops,Linux系统Oops