[arch][arm-m] add generic header/footer for arm-m handlers
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
#include <arch.h>
|
||||
#include <arch/ops.h>
|
||||
#include <arch/arm.h>
|
||||
#include <kernel/thread.h>
|
||||
#include <platform.h>
|
||||
#include <arch/arm/cm.h>
|
||||
|
||||
@@ -121,3 +122,18 @@ void _arm_cm_set_irqpri(uint32_t pri)
|
||||
}
|
||||
}
|
||||
|
||||
void arm_cm_irq_entry(void)
|
||||
{
|
||||
inc_critical_section();
|
||||
|
||||
THREAD_STATS_INC(interrupts);
|
||||
}
|
||||
|
||||
void arm_cm_irq_exit(bool reschedule)
|
||||
{
|
||||
if (reschedule)
|
||||
arm_cm_trigger_preempt();
|
||||
|
||||
dec_critical_section();
|
||||
}
|
||||
|
||||
|
||||
@@ -165,5 +165,13 @@ void arm_cm_systick_set_periodic(uint32_t systick_clk_freq, lk_time_t period);
|
||||
void arm_cm_systick_cancel_periodic(void);
|
||||
/* extern void _systick(void); // override this */
|
||||
|
||||
/* interrupt glue */
|
||||
/*
|
||||
* Platform code should put this as the first and last line of their irq handlers.
|
||||
* Pass true to reschedule to request a preempt.
|
||||
*/
|
||||
void arm_cm_irq_entry(void);
|
||||
void arm_cm_irq_exit(bool reschedule);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user