From 2a2cf1f536f985330054cf47f47ec7d2455e35fa Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Wed, 21 Aug 2019 12:05:56 -0400 Subject: armcm_boot: Add generic code for early board init on armcm machines Add basic ARM Cortex-M C init code and build linker scripts to src/generic/ code. This can be used to simplify the various ARM board code. Signed-off-by: Kevin O'Connor --- src/generic/armcm_boot.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/generic/armcm_boot.h (limited to 'src/generic/armcm_boot.h') 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 -- cgit v1.2.3-70-g09d2