12#ifndef ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_EXCEPTION_H_
13#define ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_EXCEPTION_H_
20#define Z_EXC_PRIO(pri) (((pri) << (8 - NUM_IRQ_PRIO_BITS)) & 0xff)
40#if defined(CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS)
41#define _EXCEPTION_RESERVED_PRIO 1
43#define _EXCEPTION_RESERVED_PRIO 0
46#define _EXC_FAULT_PRIO 0
47#define _EXC_ZERO_LATENCY_IRQS_PRIO 0
48#define _EXC_SVC_PRIO COND_CODE_1(CONFIG_ZERO_LATENCY_IRQS, \
49 (CONFIG_ZERO_LATENCY_LEVELS), (0))
50#define _IRQ_PRIO_OFFSET (_EXCEPTION_RESERVED_PRIO + _EXC_SVC_PRIO)
51#define IRQ_PRIO_LOWEST (BIT(NUM_IRQ_PRIO_BITS) - (_IRQ_PRIO_OFFSET) - 1)
53#define _EXC_IRQ_DEFAULT_PRIO Z_EXC_PRIO(_IRQ_PRIO_OFFSET)
56#define _EXC_PENDSV_PRIO 0xff
57#define _EXC_PENDSV_PRIO_MASK Z_EXC_PRIO(_EXC_PENDSV_PRIO)
68#if defined(CONFIG_FPU) && defined(CONFIG_FPU_SHARING)
79#ifdef CONFIG_VFP_FEATURE_REGS_S64_D32
93#if defined(CONFIG_EXTRA_EXCEPTION_INFO)
94struct __extra_esf_info {
95 _callee_saved_t *callee;
112#if defined(CONFIG_FPU) && defined(CONFIG_FPU_SHARING)
115#if defined(CONFIG_EXTRA_EXCEPTION_INFO)
116 struct __extra_esf_info extra_info;
120extern uint32_t z_arm_coredump_fault_sp;
122extern void z_arm_exc_exit(
void);
irp nz macro MOVR cc s mov cc s endm endr irp aw macro LDR aa s
Definition: asm-macro-32-bit-gnu.h:17
irp nz macro MOVR cc d
Definition: asm-macro-32-bit-gnu.h:11
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
uint32_t xpsr
Definition: exception.h:72
sys_define_gpr_with_alias(a1, r0)
sys_define_gpr_with_alias(ip, r12)
sys_define_gpr_with_alias(a2, r1)
sys_define_gpr_with_alias(lr, r14)
sys_define_gpr_with_alias(pc, r15)
sys_define_gpr_with_alias(a3, r2)
sys_define_gpr_with_alias(a4, r3)
Exception Stack Frame.
Definition: exception.h:57
struct arch_esf::__basic_sf basic
unsigned long a4
Definition: exception.h:68
unsigned long a3
Definition: exception.h:38
uint32_t r2
Definition: exception.h:20
uint32_t pc
Definition: exception.h:21
uint32_t r3
Definition: exception.h:21
unsigned long a1
Definition: exception.h:36
uint32_t r1
Definition: exception.h:19
struct __fpu_sf fpu
Definition: exception.h:62
uint32_t r15
Definition: exception.h:33
uint32_t r12
Definition: exception.h:30
uint64_t lr
Definition: exception.h:47
unsigned long a2
Definition: exception.h:37
uint32_t r14
Definition: exception.h:32