summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--ports/mimxrt/pendsv.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/ports/mimxrt/pendsv.c b/ports/mimxrt/pendsv.c
index 7638b160d8..11f2ef5e1c 100644
--- a/ports/mimxrt/pendsv.c
+++ b/ports/mimxrt/pendsv.c
@@ -27,23 +27,16 @@
#include <stdlib.h>
#include "py/runtime.h"
-#include "shared/runtime/interrupt_char.h"
#include "pendsv.h"
-#include "lib/nxp_driver/sdk/CMSIS/Include/core_cm7.h"
#define NVIC_PRIORITYGROUP_4 ((uint32_t)0x00000003)
#define IRQ_PRI_PENDSV NVIC_EncodePriority(NVIC_PRIORITYGROUP_4, 15, 0)
#if defined(PENDSV_DISPATCH_NUM_SLOTS)
-uint32_t pendsv_dispatch_active;
pendsv_dispatch_t pendsv_dispatch_table[PENDSV_DISPATCH_NUM_SLOTS];
#endif
void pendsv_init(void) {
- #if defined(PENDSV_DISPATCH_NUM_SLOTS)
- pendsv_dispatch_active = false;
- #endif
-
// set PendSV interrupt at lowest priority
NVIC_SetPriority(PendSV_IRQn, IRQ_PRI_PENDSV);
}
@@ -51,11 +44,10 @@ void pendsv_init(void) {
#if defined(PENDSV_DISPATCH_NUM_SLOTS)
void pendsv_schedule_dispatch(size_t slot, pendsv_dispatch_t f) {
pendsv_dispatch_table[slot] = f;
- pendsv_dispatch_active = true;
SCB->ICSR = SCB_ICSR_PENDSVSET_Msk;
}
-void pendsv_dispatch_handler(void) {
+void PendSV_Handler(void) {
for (size_t i = 0; i < PENDSV_DISPATCH_NUM_SLOTS; ++i) {
if (pendsv_dispatch_table[i] != NULL) {
pendsv_dispatch_t f = pendsv_dispatch_table[i];
@@ -64,10 +56,4 @@ void pendsv_dispatch_handler(void) {
}
}
}
-
-void PendSV_Handler(void) {
- if (pendsv_dispatch_active) {
- pendsv_dispatch_handler();
- }
-}
#endif