ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_scb_fault_status_t Struct Reference

One snapshot of the Cortex-M85 SCB fault-status registers. More...

#include <ra8_scb.h>

Data Fields

uint32_t cfsr
 Configurable Fault Status Register (MMFSR|BFSR|UFSR).
uint32_t hfsr
 HardFault Status Register.
uint32_t dfsr
 Debug Fault Status Register.
uint32_t mmfar
 MemManage Fault Address Register (if CFSR.MMARVALID).
uint32_t bfar
 BusFault Address Register (if CFSR.BFARVALID).
uint32_t afsr
 Auxiliary Fault Status Register.
uint32_t sfsr
 SecureFault Status Register (Secure-banked, RAZ NS).
uint32_t sfar
 SecureFault Address Register (if SFSR.SFARVALID).

Detailed Description

One snapshot of the Cortex-M85 SCB fault-status registers.

Mirrors the eight registers a fault decoder reads to attribute a HardFault / MemManage / BusFault / UsageFault / SecureFault. Every field is the verbatim 32-bit register value at the moment ra8_scb_read_fault_status ran; interpretation of the individual cause bits is left to the caller.

sfsr / sfar are the ARMv8-M Security Extension pair, banked to the Secure state: from the Secure world they carry the SecureFault cause bits (INVEP, INVTRAN, AUVIOL, ...) and the faulting address, from Non-secure they read as zero. bfar / mmfar / sfar are only meaningful when the matching "address valid" bit in cfsr / sfsr is set.

Invariant
Populated only by ra8_scb_read_fault_status; every field holds a raw register value (no field is a derived / decoded quantity).
// fs.cfsr, fs.hfsr, ... now hold the live SCB fault state.
}
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
Definition ra8_err.h:119
ra8_err_t ra8_scb_read_fault_status(ra8_scb_fault_status_t *out)
Read the Cortex-M85 SCB fault-status registers into one struct.
Definition ra8_scb.c:86
One snapshot of the Cortex-M85 SCB fault-status registers.
Definition ra8_scb.h:86
See also
ra8_scb_read_fault_status
Since
0.1.0

Definition at line 86 of file ra8_scb.h.

Field Documentation

◆ afsr

uint32_t ra8_scb_fault_status_t::afsr

Auxiliary Fault Status Register.

Definition at line 92 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ bfar

uint32_t ra8_scb_fault_status_t::bfar

BusFault Address Register (if CFSR.BFARVALID).

Definition at line 91 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ cfsr

uint32_t ra8_scb_fault_status_t::cfsr

Configurable Fault Status Register (MMFSR|BFSR|UFSR).

Definition at line 87 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ dfsr

uint32_t ra8_scb_fault_status_t::dfsr

Debug Fault Status Register.

Definition at line 89 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ hfsr

uint32_t ra8_scb_fault_status_t::hfsr

HardFault Status Register.

Definition at line 88 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ mmfar

uint32_t ra8_scb_fault_status_t::mmfar

MemManage Fault Address Register (if CFSR.MMARVALID).

Definition at line 90 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ sfar

uint32_t ra8_scb_fault_status_t::sfar

SecureFault Address Register (if SFSR.SFARVALID).

Definition at line 94 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().

◆ sfsr

uint32_t ra8_scb_fault_status_t::sfsr

SecureFault Status Register (Secure-banked, RAZ NS).

Definition at line 93 of file ra8_scb.h.

Referenced by ra8_exception_capture_diagnostics(), ra8_scb_read_fault_status(), and scb_demo_probe_and_report().


The documentation for this struct was generated from the following file: