为什么每次进入Fault的时候,都会进入HardFault
因为系统Handler控制及状态寄存器没有设置,使用的是默认值,见下图:
文章图片
所以,即使发生了用法,总线或存储器管理Fault,由于其没使能,也不能进入其异常处理函数中,最后系统将其上访成HardFault,所以最后看的现象是每次的Fault都是HardFault引起的一样。但是,HardFault状态寄存器(HFSR)中提供了状态指示,通过它我们可以知道到底是谁真正引起Fault的源头,见下图:
文章图片
当30bit为1说明是总线,存储器管理或用法上访的结果导致的,到底是谁产生的将读各自的状态寄存器方可确定,见下图:
文章图片
【为什么每次进入Fault的时候,都会进入HardFault】
文章图片
推荐阅读
- 为什么你的路演总会超时()
- 财商智慧课(六)
- 吃了早餐,反而容易饿(为什么?)
- 其实你就是个普通人
- 为什么越花钱的人越有钱,越舍不得花钱的人却越穷()
- dubbo基本认识
- 为什么985/211的学生能胜任工作获得老板的青睐。
- 年轻人,干了孤独这杯酒
- 2018-09-03(李克富视角点评训练营81/90)|2018-09-03(李克富视角点评训练营81/90) 那只蛙从“井”爬出来又进入了“隧道”
- 为什么孩子一定要学会可视化思维!