diff options
author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2021-01-15 13:04:35 +0100 |
---|---|---|
committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2021-01-15 13:04:35 +0100 |
commit | d834303f5e642266874b1c99be04dcb9149fefb1 (patch) | |
tree | b27d485646e983ea579cee6a5ce46ad76d824c46 /interrupt | |
parent | 082db0c6b5b70df45ef16b7124a982df3054e3c8 (diff) |
interrupt: Removed mf_vectors.
Diffstat (limited to 'interrupt')
-rw-r--r-- | interrupt/interrupt.cpp | 12 | ||||
-rw-r--r-- | interrupt/interrupt.h | 20 |
2 files changed, 0 insertions, 32 deletions
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<class T> - inline void set_handler(IRQ n, void (T::*f)(), T* i) { - MFP& mfp = mf_vectors[16 + n]; - mfp.func_p = reinterpret_cast<void (*)(void*)>(f); - mfp.instance_p = i; - } - - template<class T> - inline void enable(IRQ n, void (T::*f)(), T* i) { - set_handler(n, f, i); - enable(n); - } }; template<Interrupt::Exception> |