From d834303f5e642266874b1c99be04dcb9149fefb1 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Fri, 15 Jan 2021 13:04:35 +0100 Subject: interrupt: Removed mf_vectors. --- interrupt/interrupt.cpp | 12 ------------ interrupt/interrupt.h | 20 -------------------- 2 files changed, 32 deletions(-) (limited to 'interrupt') diff --git a/interrupt/interrupt.cpp b/interrupt/interrupt.cpp index ebda829..b50c01e 100644 --- a/interrupt/interrupt.cpp +++ b/interrupt/interrupt.cpp @@ -1,20 +1,8 @@ #include "interrupt.h" -namespace Interrupt { - MFP mf_vectors[16 + NUM_IRQs]; -}; - void entry(); -void member_function_interrupt_gate() { - uint32_t interrupt_num; - asm ("mrs %0, ipsr" : "=r" (interrupt_num)); - - Interrupt::mf_vectors[interrupt_num].func_p(Interrupt::mf_vectors[interrupt_num].instance_p); -} - extern "C" void unused_interrupt() { - member_function_interrupt_gate(); //while(1); } diff --git a/interrupt/interrupt.h b/interrupt/interrupt.h index 80ccb76..0851c87 100644 --- a/interrupt/interrupt.h +++ b/interrupt/interrupt.h @@ -120,26 +120,6 @@ namespace Interrupt { inline void set_priority(IRQ n, uint8_t priority) { NVIC.IPR[n] = priority; } - - struct MFP { - void (*func_p)(void*); - void* instance_p; - }; - - extern MFP mf_vectors[]; - - template - inline void set_handler(IRQ n, void (T::*f)(), T* i) { - MFP& mfp = mf_vectors[16 + n]; - mfp.func_p = reinterpret_cast(f); - mfp.instance_p = i; - } - - template - inline void enable(IRQ n, void (T::*f)(), T* i) { - set_handler(n, f, i); - enable(n); - } }; template -- cgit v1.2.3