aboutsummaryrefslogtreecommitdiffstats
path: root/src/generic/armcm_boot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/generic/armcm_boot.h')
-rw-r--r--src/generic/armcm_boot.h20
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