summaryrefslogtreecommitdiff
path: root/interrupt
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2015-03-29 21:37:03 +0200
committerVegard Storheil Eriksen <zyp@jvnv.net>2016-08-18 23:36:07 +0200
commit7b2d322df819e8a339cdb534e69d8e205765d3b2 (patch)
treec18a85a712285d6f3939113824eb2f2636833992 /interrupt
parent29d8f1b4e89f31e2f3b448c4d40c6c2518629686 (diff)
Added STM32L0 support.
Diffstat (limited to 'interrupt')
-rw-r--r--interrupt/fault.cpp4
-rw-r--r--interrupt/interrupt.cpp4
2 files changed, 7 insertions, 1 deletions
diff --git a/interrupt/fault.cpp b/interrupt/fault.cpp
index 016b74b..0a0410b 100644
--- a/interrupt/fault.cpp
+++ b/interrupt/fault.cpp
@@ -3,6 +3,8 @@
#include <os/time.h>
inline void __attribute__((naked)) switch_context() {
+ #if ! defined(STM32L0) // TODO: cortex-m0/+ unsupported for now.
+
asm volatile ("cpsid i");
// Save unsaved registers.
@@ -21,6 +23,8 @@ inline void __attribute__((naked)) switch_context() {
// Load registers and return.
asm volatile ("pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}" ::: "memory");
+
+ #endif
}
template<>
diff --git a/interrupt/interrupt.cpp b/interrupt/interrupt.cpp
index 611b09c..ebda829 100644
--- a/interrupt/interrupt.cpp
+++ b/interrupt/interrupt.cpp
@@ -89,8 +89,10 @@ template<> void interrupt<Interrupt::DMA2_Channel4_5>() __attribute__ ((weak, al
typedef void (*vector_t)();
+extern uint32_t _ram_end;
+
vector_t vectors[] __attribute__((section(".vectors"))) = {
- (vector_t)0x20004ffc,
+ (vector_t)&_ram_end,
entry,
interrupt<Interrupt::NMI>,
interrupt<Interrupt::HardFault>,