STM32之HardFault的诊断

本文介绍了如何通过JTAG仿真和异常信息定位程序中的HardFault问题。当程序停止在rt_hw_hard_fault_exception,通过查找关键值pc,可以发现异常函数入口地址。HardFault可能由指针非法访问、非对齐访问或除零异常引起。通过深入分析这些异常,可以有效解决这类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:出现这种错误都是由于非法操作导致,找到异常代码并解决掉,即可修改这类问题

  • 问题追踪步骤

  1. 进入JTAG仿真状态,并触发异常,串口打印如下信息,程序停止在rt_hw_hard_fault_exception中
  2. 找出关键值是pc:0x0800833a,在MDK的command窗口输入pc=0x0800833a回车,就会指向异常函数入口地址
  3. 出现HardFault的原因有如下几种
    1. 指针访问非法地址
    2. 指针非对齐访问(默认4字节对齐,你访问*(0x08003001)就会报错)
    3. 除零异常

如果对您有帮助,麻烦动一下您发财的小手,帮忙点个赞,谢谢!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值