From 09e89c867c8dc14adee298176a0a4c72d8f32245 Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Tue, 7 Aug 2012 16:54:36 +0200 Subject: Split out reusable parts into the laks project. --- hal/interrupt.h | 121 -------------------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 hal/interrupt.h (limited to 'hal/interrupt.h') diff --git a/hal/interrupt.h b/hal/interrupt.h deleted file mode 100644 index 34651f2..0000000 --- a/hal/interrupt.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef INTERRUPT_H -#define INTERRUPT_H - -#include "stm32.h" - -namespace Interrupt { - enum Exception { - NMI = 2, - HardFault = 3, - MemManage = 4, - BusFault = 5, - UsageFault = 6, - SVCall = 11, - PendSV = 14, - SysTick = 15 - }; - - enum IRQ { - WWDG, - PVD, - TAMPER, - RTC, - FLASH, - RCC, - EXTI0, - EXTI1, - EXTI2, - EXTI3, - EXTI4, - DMA1_Channel1, - DMA1_Channel2, - DMA1_Channel3, - DMA1_Channel4, - DMA1_Channel5, - DMA1_Channel6, - DMA1_Channel7, - ADC1_2, - USB_HP_CAN_TX, - USB_LP_CAN_RX0, - CAN_RX1, - CAN_SCE, - EXTI9_5, - TIM1_BRK, - TIM1_UP, - TIM1_TRG_COM, - TIM1_CC, - TIM2, - TIM3, - TIM4, - I2C1_EV, - I2C1_ER, - I2C2_EV, - I2C2_ER, - SPI1, - SPI2, - USART1, - USART2, - USART3, - EXTI15_10, - RTCAlarm, - USBWakeup, - TIM8_BRK, - TIM8_UP, - TIM8_TRG_COM, - TIM8_CC, - ADC3, - FSMC, - SDIO, - TIM5, - SPI3, - UART4, - UART5, - TIM6, - TIM7, - DMA2_Channel1, - DMA2_Channel2, - DMA2_Channel3, - DMA2_Channel4_5, - NUM_IRQs - }; - - inline void enable(IRQ n) { - NVIC.ISER[n >> 5] = 1 << (n & 0x1f); - } - - inline void set_priority(Exception n, uint8_t priority) { - SCB.SHPR[n - 4] = priority; - } - - 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 -void interrupt(); - -template -void interrupt(); - -#endif -- cgit v1.2.3