【ARMv8M Cortex-M33 系列 7.1 -- xPSR | CFSR | HFSR | BFAR | MMFAR 寄存器】

请阅读【嵌入式开发学习必备专栏 之 ARM Cortex-Mx专栏】


文章目录

问题背景

由于在RA4M2(Cortex-M33)移植RT-Thread OS的时候遇到了 Hardfault,不知道如何分析错误原因,后参考以前写的文章【ARM Cortex-M 系列 2.1 -- RT-Thread Cortex-M7 异常处理及 hardfault 处理分析】 来查找原因。

Cortex-M33 Fault 寄存器介绍

在 ARM Cortex-M33 微控制器上,当发生异常或错误时,一些特殊的寄存器提供了用于调试和错误处理的关键信息。这些寄存器包括程序状态寄存器 (xPSR )、可配置故障状态寄存器 (CFSR )、硬件故障状态寄存器 (HFSR )、总线故障地址寄存器 (BFAR ) 和内存管理故障地址寄存器 (MMFAR ) 以及 UFSR(UsageFault Status Register)。

xPSR (程序状态寄存器)

xPSR 寄存器包含多个状态字段,包括程序状态、中断或异常返回状态以及其他系统状态。

其中最重要的字段是:

  • APSR (应用程序状态子字段): 包括 Negative, Zero, Carry, Overflow 和 Saturation 状态标志。
  • IPSR (中断程序状态子字段): 表示当前激活的异常编号。
  • EPSR (执行程序状态子字段): 包括 Thumb状态位,它应始终被设置为1,因为 Cortex-M33 只能执行 Thumb 指令集。

CFSR (可配置故障状态寄存器)

32-bit read/write-one-to-clear register located at 0xE000ED28.

CFSR 寄存器用于提供有关内存管理、总线和使用错误的详细信息。它分为三个部分:

  • MFSR (内存管理故障状态寄存器子字段): 提供内存管理故障信息,例如违反内存保护单元 (MPU) 规则。
  • BFSR (总线故障状态寄存器子字段): 提供总线访问故障信息,如非法地址访问或总线错误。
  • UFSR (使用错误状态寄存器子字段) : 提供特定错误的信息,例如非法指令、未对齐的访问或除零操作。
    Secure software can access the Non-secure version of this register via UFSR_NS located at 0xE002ED2A.
    The location 0xE002ED2A is RES0 to software executing in Non-secure state and the debugger.

HFSR (硬件故障状态寄存器)

HFSR 寄存器提供有关所有硬件故障的信息。它包括字段,如调试事件或向量表硬故障。

BFAR (总线故障地址寄存器)

BFSRBFARVALID 位被设置时,BFAR 寄存器包含了导致总线故障的地址。

MMFAR (内存管理故障地址寄存器)

MMFSRMMARVALID 位被设置时,MMFAR 寄存器包含了导致内存管理故障的地址。

相关推荐
小刘爱玩单片机33 分钟前
【stm32简单外设篇】-4×4 薄膜键盘
stm32·单片机·计算机外设
小白嘎嘎1 小时前
ESP8266:Arduino学习
单片机·嵌入式硬件
源远流长jerry2 小时前
STM32之Systick与基础定时器
c语言·stm32·单片机·嵌入式硬件
爱睡觉的王宇昊4 小时前
GD32和STM32的区别在哪里?
stm32·单片机·嵌入式硬件
代码总长两年半6 小时前
STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---AT固件篇(二)
stm32·单片机·物联网
点灯小铭7 小时前
基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测
stm32·单片机·嵌入式硬件·毕业设计·课程设计
代码总长两年半9 小时前
STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---MQTT篇(三)
stm32·单片机·物联网
世微 如初16 小时前
内置高压MOS的智能调光方案:AP5126 LED降压恒流驱动芯片
stm32·单片机·嵌入式硬件·led电源驱动·降压恒流ic·多功能·大功率
剑之所向16 小时前
[灵动微电子 霍尔FOC MM32BIN560C]从引脚到应用
单片机·嵌入式硬件
2006yu16 小时前
从零开始学习单片机13
单片机·嵌入式硬件·学习