12#ifndef ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_EXCEPTION_H_
13#define ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_EXCEPTION_H_
23#define Z_EXC_PRIO(pri) (((pri) << (8 - NUM_IRQ_PRIO_BITS)) & 0xff)
43#if defined(CONFIG_CPU_CORTEX_M_HAS_PROGRAMMABLE_FAULT_PRIOS)
44#define _EXCEPTION_RESERVED_PRIO 1
46#define _EXCEPTION_RESERVED_PRIO 0
49#define _EXC_FAULT_PRIO 0
50#define _EXC_ZERO_LATENCY_IRQS_PRIO 0
51#define _EXC_SVC_PRIO COND_CODE_1(CONFIG_ZERO_LATENCY_IRQS, \
52 (CONFIG_ZERO_LATENCY_LEVELS), (0))
53#define _IRQ_PRIO_OFFSET (_EXCEPTION_RESERVED_PRIO + _EXC_SVC_PRIO)
54#define IRQ_PRIO_LOWEST (BIT(NUM_IRQ_PRIO_BITS) - (_IRQ_PRIO_OFFSET) - 1)
56#define _EXC_IRQ_DEFAULT_PRIO Z_EXC_PRIO(_IRQ_PRIO_OFFSET)
59#define _EXC_PENDSV_PRIO 0xff
60#define _EXC_PENDSV_PRIO_MASK Z_EXC_PRIO(_EXC_PENDSV_PRIO)
63#ifndef CONFIG_USE_SWITCH
73#if defined(CONFIG_FPU) && defined(CONFIG_FPU_SHARING)
84#ifdef CONFIG_VFP_FEATURE_REGS_S64_D32
98#if defined(CONFIG_EXTRA_EXCEPTION_INFO)
99struct __extra_esf_info {
100 _callee_saved_t *callee;
107#define sys_define_gpr_with_alias(name1, name2) \
109 uint32_t name1, name2; \
123#if defined(CONFIG_FPU) && defined(CONFIG_FPU_SHARING)
126#if defined(CONFIG_EXTRA_EXCEPTION_INFO)
127 struct __extra_esf_info extra_info;
131extern uint32_t z_arm_coredump_fault_sp;
133#ifdef CONFIG_USE_SWITCH
134static inline void z_arm_exc_exit(
void)
139extern void z_arm_exc_exit(
void);
Cortex-M context-switch support helpers.
static void arm_m_exc_tail(void)
ISR-tail helper that patches the stacked LR for deferred switch fixup.
Definition arm-m-switch.h:156
#define sys_define_gpr_with_alias(name1, name2)
Definition exception.h:58
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 r14
Definition exception.h:73
uint32_t xpsr
Definition exception.h:75
uint32_t r3
Definition exception.h:71
uint32_t lr
Definition exception.h:73
uint32_t r2
Definition exception.h:70
uint32_t r1
Definition exception.h:69
uint32_t a2
Definition exception.h:69
uint32_t pc
Definition exception.h:74
uint32_t a3
Definition exception.h:70
uint32_t r0
Definition exception.h:68
uint32_t ip
Definition exception.h:72
uint32_t a1
Definition exception.h:68
uint32_t a4
Definition exception.h:71
uint32_t r12
Definition exception.h:72
uint32_t r15
Definition exception.h:74
Exception Stack Frame.
Definition exception.h:60
struct arch_esf::__basic_sf basic
struct __fpu_sf fpu
Definition exception.h:65