12#ifndef ZEPHYR_INCLUDE_ARCH_ARM_AARCH32_CORTEX_M_EXC_H_
13#define ZEPHYR_INCLUDE_ARCH_ARM_AARCH32_CORTEX_M_EXC_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;
122typedef struct __esf z_arch_esf_t;
124extern void z_arm_exc_exit(
void);
#define sys_define_gpr_with_alias(name1, name2)
Definition: arch.h:23
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