38typedef enum : uintptr_t {
56typedef enum : uint32_t {
83 return (
volatile uint32_t*)addr;
90 static const char*
const tag =
"ra8_scb";
Annotation-attribute framework macros for ra8-firmware.
#define RA8_HW_REGISTER_ACCESS
Mark an MMIO accessor function (returns volatile register pointer).
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
Validation and Error-Checking Macros for ra8-firmware.
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
Reject nullptr pointer, returning k_ra8_err_null_ptr.
Error Code Definitions for ra8-firmware.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
uintptr_t ra8_scb_get_vtor(void)
Read the current vector-table base from SCB->VTOR.
bool ra8_scb_trace_enabled(void)
Report whether DEMCR.TRCENA (trace subsystem enable) is set.
static volatile uint32_t * internal_scb_reg(ra8_scb_reg_addr_t addr)
Typed pointer to a 32-bit SCB register.
void ra8_scb_set_vtor(uintptr_t base)
Relocate the vector table by writing SCB->VTOR.
ra8_scb_reg_addr_t
Arm v8-M SCB register addresses (PPB window 0xE000EDxx).
@ k_ra8_scb_dfsr
Debug Fault Status Register (DFSR).
@ k_ra8_scb_hfsr
HardFault Status Register (HFSR).
@ k_ra8_scb_demcr
Debug Exception + Monitor Ctrl (DEMCR).
@ k_ra8_scb_sfsr
SecureFault Status (SFSR, S-banked).
@ k_ra8_scb_afsr
Auxiliary Fault Status (AFSR).
@ k_ra8_scb_vtor
Vector Table Offset Register (VTOR).
@ k_ra8_scb_mmfar
MemManage Fault Address (MMFAR).
@ k_ra8_scb_sfar
SecureFault Address (SFAR, S-banked).
@ k_ra8_scb_bfar
BusFault Address Register (BFAR).
@ k_ra8_scb_cfsr
Configurable Fault Status (CFSR).
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.
ra8_scb_bits_t
Named bit fields within the SCB registers this driver touches.
@ k_ra8_scb_demcr_trcena
DEMCR.TRCENA – bit 24.
void ra8_scb_trace_enable(void)
Set DEMCR.TRCENA to power up the trace subsystem.
Cortex-M85 System Control Block: VTOR relocation + fault-status decode.
One snapshot of the Cortex-M85 SCB fault-status registers.
uint32_t mmfar
MemManage Fault Address Register (if CFSR.MMARVALID).
uint32_t dfsr
Debug Fault Status Register.
uint32_t hfsr
HardFault Status Register.
uint32_t afsr
Auxiliary Fault Status Register.
uint32_t cfsr
Configurable Fault Status Register (MMFSR|BFSR|UFSR).
uint32_t sfsr
SecureFault Status Register (Secure-banked, RAZ NS).
uint32_t bfar
BusFault Address Register (if CFSR.BFARVALID).
uint32_t sfar
SecureFault Address Register (if SFSR.SFARVALID).