做网站公司599,网站备案怎么转入,淘宝客网站做百度竞价,重庆忠县网站建设公司推荐文章目录 问题背景Cortex-M33 Fault 寄存器介绍xPSR (程序状态寄存器)CFSR (可配置故障状态寄存器)HFSR (硬件故障状态寄存器)BFAR (总线故障地址寄存器)MMFAR (内存管理故障地址寄存器) 问题背景
由于在RA4M2#xff08;Cortex-M33#xff09;移植RT-Thread OS的时候遇到了… 文章目录 问题背景Cortex-M33 Fault 寄存器介绍xPSR (程序状态寄存器)CFSR (可配置故障状态寄存器)HFSR (硬件故障状态寄存器)BFAR (总线故障地址寄存器)MMFAR (内存管理故障地址寄存器) 问题背景
由于在RA4M2Cortex-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 (总线故障地址寄存器) 当 BFSR 的 BFARVALID 位被设置时BFAR 寄存器包含了导致总线故障的地址。
MMFAR (内存管理故障地址寄存器) 当 MMFSR 的 MMARVALID 位被设置时MMFAR 寄存器包含了导致内存管理故障的地址。