#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); } template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); template<> void interrupt() __attribute__ ((weak, alias ("unused_interrupt"))); typedef void (*vector_t)(); vector_t vectors[] __attribute__((section(".vectors"))) = { (vector_t)0x20004ffc, entry, interrupt, interrupt, interrupt, interrupt, interrupt, 0, 0, 0, 0, interrupt, 0, 0, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, interrupt, };