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

ARM Coretex-M核心单片机(STM32)找到hardfault的原因,与hardfault解决方法

1. 前提基础知识(ARM异常 压栈流程)M核栈增长是地址逐渐减小的
在这里插入图片描述

进入hardfult后看MSP或者SP的值,看下边第二章图如果hardfult里边啥都没有,就只有个while(1){} 可以用第二张图判断SP+20里边存储的就是LR寄存器的值,也就是产生hardfault前导致的问题的地方,把这个值像第一张图一样写给PC就能定位到因为哪里产生的hardfault,

现在还在推出来个类似的公式解决方法,发现函数里边写的东西越多函数栈指针会变化,也就不能直接取*(SP+24)|(SP+23)|(SP+22)|*(SP+21),拼凑出来的值就是LR的值可以直接赋值给PC,定义个函数指针给赋值了,在调用在hardfault里边直接就可以跳过去

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

还在研究公式化的方法

相关文章:

  • rk3588增加独立分区
  • 【自学笔记】Vue基础知识点总览-持续更新
  • 智能运维语义标注体系技术框架与工程化实践
  • 【嵌入式原理设计】实验六:倒车控制设计
  • 深入Linux序列:进程的终止与等待
  • Python Cookbook-2.13 使用C++的类iostream语法
  • SSD网络预测与训练阶段总结
  • mysql多表查询
  • 【嵌入式Linux应用开发基础】网络编程(4):UDP协议
  • 数字可调控开关电源设计(论文+源码)
  • Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(七)
  • ubuntu安装docker compose
  • 2015-2025大连社保年度缴费基数
  • 说一下类装载的执行过程?
  • JxBrowser 7.42.1 版本发布啦!
  • 对话式AI引擎:DeepSeek技术引领多模态交互新篇章
  • 刚充值Deepseek账号,但接入官方的API却遇到了问题【VSCode Cline Cursor Deepseek deepseek-reasoner】
  • 表单验证和正则表达式
  • debain12.9安装unsloth大模型微调环境
  • 为什么用match case 而不用if else
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • 名帅大挪移提前开启,意属皇马的阿隆索会是齐达内第二吗
  • 玉渊谭天丨一艘航母看中国稀土出口管制为何有效
  • 国家卫健委:有条件的二级及以上综合医院要开设老年医学科
  • 苹果Safari浏览器上的搜索量首次下降
  • 外交部答澎湃:美方攻击抹黑中加关系与合作的卑劣图谋不会得逞