diff options
Diffstat (limited to 'src/generic/armcm_boot.h')
-rw-r--r-- | src/generic/armcm_boot.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/generic/armcm_boot.h b/src/generic/armcm_boot.h new file mode 100644 index 00000000..10b17e18 --- /dev/null +++ b/src/generic/armcm_boot.h @@ -0,0 +1,20 @@ +#ifndef __GENERIC_ARMCM_BOOT_H +#define __GENERIC_ARMCM_BOOT_H + +#include "ctr.h" // DECL_CTR_INT + +// Declare an IRQ handler +#define DECL_ARMCM_IRQ(FUNC, NUM) \ + DECL_CTR_INT("DECL_ARMCM_IRQ " __stringify(FUNC), (NUM)) + +// Statically declare an IRQ handler and run-time enable it +#define armcm_enable_irq(FUNC, NUM, PRIORITY) do { \ + DECL_ARMCM_IRQ(FUNC, (NUM)); \ + NVIC_SetPriority((NUM), (PRIORITY)); \ + NVIC_EnableIRQ((NUM)); \ + } while (0) + +// Vectors created by scripts/buildcommands.py from DECL_ARMCM_IRQ commands +extern const void * const VectorTable[]; + +#endif // armcm_boot.h |