stm32cubeide出现HardFault调试日志

今天调试代码时出现了HardFault错误并跳转到了HardFault_Handle
在调试模式下,打开Registers窗口,Windows->Show View->Registers在这里插入图片描述
我看网上说,如果LR = 0xFFFFFFE9,继续查看MSP(主堆栈指针)的值,如果LR = 0xFFFFFFFD,继续查看PSP(进程栈指针)的值。但是我发现我的PSP的值很明显违法了,我就继续查看了MSP的值,然后通过Windows->Show View->Memory,查看MSP的值,可是把地址值使用Hex Integer方式来显示,如果是不是Hex Integer,可以先X掉,然后就会出现选择数据显示的方式了
在这里插入图片描述
从我们的这个地址向后数第六个就是出现跑飞的地方的程序的执行地址,把地址复制下来,然后打开汇编窗口,Windows->Show View->Disassembly,填入地址,需要加上0x开头。定位到出错的地方
在这里插入图片描述

我出错的地方为prvPortStartFirstTask();这个函数,选中右键,Move To Line
然后根据实际情况解决,通常如果是在prvPortStartFirstTask()处跑飞,基本是因为任务栈设置小了,我的项目因为是跑在103RCT6上的,项目内容较多,所以都抠的比较小
找到原因后,加大任务栈,解决。

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值