arch: arm: Unconditionally compile IRQ_ZERO_LATENCY flag
Flag was present only when ZLI was enabled. That resulted in additional ifdefs needed whenever code supports ZLI and non-ZLI mode. Removed ifdefs, added build assert to irq connections to fail at compile time if IRQ_ZERO_LATENCY is set but ZLI is disabled. Additional clean up made which resulted from removing the ifdef. Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
parent
2324617d4a
commit
8bee027ec4
5 changed files with 20 additions and 27 deletions
|
@ -48,14 +48,9 @@
|
|||
#endif
|
||||
|
||||
#define _EXC_FAULT_PRIO 0
|
||||
#ifdef CONFIG_ZERO_LATENCY_IRQS
|
||||
#define _EXC_ZERO_LATENCY_IRQS_PRIO 0
|
||||
#define _EXC_SVC_PRIO 1
|
||||
#define _IRQ_PRIO_OFFSET (_EXCEPTION_RESERVED_PRIO + 1)
|
||||
#else
|
||||
#define _EXC_SVC_PRIO 0
|
||||
#define _IRQ_PRIO_OFFSET (_EXCEPTION_RESERVED_PRIO)
|
||||
#endif
|
||||
#define _EXC_SVC_PRIO COND_CODE_1(CONFIG_ZERO_LATENCY_IRQS, (1), (0))
|
||||
#define _IRQ_PRIO_OFFSET (_EXCEPTION_RESERVED_PRIO + _EXC_SVC_PRIO)
|
||||
|
||||
#define _EXC_IRQ_DEFAULT_PRIO Z_EXC_PRIO(_IRQ_PRIO_OFFSET)
|
||||
|
||||
|
|
|
@ -85,14 +85,12 @@ extern void z_arm_interrupt_init(void);
|
|||
#define CONCAT(x, y) DO_CONCAT(x, y)
|
||||
|
||||
/* Flags for use with IRQ_CONNECT() */
|
||||
#ifdef CONFIG_ZERO_LATENCY_IRQS
|
||||
/**
|
||||
* Set this interrupt up as a zero-latency IRQ. It has a fixed hardware
|
||||
* priority level (discarding what was supplied in the interrupt's priority
|
||||
* argument), and will run even if irq_lock() is active. Be careful!
|
||||
*/
|
||||
#define IRQ_ZERO_LATENCY BIT(0)
|
||||
#endif
|
||||
|
||||
|
||||
/* All arguments must be computable by the compiler at build time.
|
||||
|
@ -107,12 +105,16 @@ extern void z_arm_interrupt_init(void);
|
|||
*/
|
||||
#define ARCH_IRQ_CONNECT(irq_p, priority_p, isr_p, isr_param_p, flags_p) \
|
||||
{ \
|
||||
BUILD_ASSERT(IS_ENABLED(CONFIG_ZERO_LATENCY_IRQS) || !(flags_p & IRQ_ZERO_LATENCY), \
|
||||
"ZLI interrupt registered but feature is disabled"); \
|
||||
Z_ISR_DECLARE(irq_p, 0, isr_p, isr_param_p); \
|
||||
z_arm_irq_priority_set(irq_p, priority_p, flags_p); \
|
||||
}
|
||||
|
||||
#define ARCH_IRQ_DIRECT_CONNECT(irq_p, priority_p, isr_p, flags_p) \
|
||||
{ \
|
||||
BUILD_ASSERT(IS_ENABLED(CONFIG_ZERO_LATENCY_IRQS) || !(flags_p & IRQ_ZERO_LATENCY), \
|
||||
"ZLI interrupt registered but feature is disabled"); \
|
||||
Z_ISR_DECLARE(irq_p, ISR_FLAG_DIRECT, isr_p, NULL); \
|
||||
z_arm_irq_priority_set(irq_p, priority_p, flags_p); \
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue