aboutsummaryrefslogtreecommitdiff
path: root/wirish/boards.cpp
diff options
context:
space:
mode:
authormlundinse <lundin@mlu.mine.nu>2013-04-23 20:33:40 +0200
committermlundinse <lundin@mlu.mine.nu>2013-04-23 20:33:40 +0200
commitb15b9224d7df27b09e91e27947371d22a056c27e (patch)
tree670919f4248ce8846c1992fe574f9939c0c8e6ee /wirish/boards.cpp
parentff9eb47233369712316cc853296ebee67e1e9327 (diff)
Added weak _exit function
Diffstat (limited to 'wirish/boards.cpp')
-rw-r--r--wirish/boards.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/wirish/boards.cpp b/wirish/boards.cpp
index dbc308e..864e37f 100644
--- a/wirish/boards.cpp
+++ b/wirish/boards.cpp
@@ -70,7 +70,7 @@ void init(void) {
wirish::priv::board_setup_gpio();
setup_adcs();
setup_timers();
- wirish::priv::board_setup_usb();
+// wirish::priv::board_setup_usb();
wirish::priv::series_init();
boardInit();
}
@@ -150,7 +150,8 @@ static void setup_clocks(void) {
*/
#define USER_ADDR_ROM 0x08005000
#define USER_ADDR_RAM 0x20000C00
-
+extern char __text_start__;
+
static void setup_nvic(void) {
#ifdef VECT_TAB_FLASH
nvic_init(USER_ADDR_ROM, 0);
@@ -158,8 +159,12 @@ static void setup_nvic(void) {
nvic_init(USER_ADDR_RAM, 0);
#elif defined VECT_TAB_BASE
nvic_init((uint32)0x08000000, 0);
+#elif defined VECT_TAB_ADDR
+ // A numerically supplied value
+ nvic_init((uint32)VECT_TAB_ADDR, 0);
#else
-#error "You must select a base address for the vector table."
+ // Use the __text_start__ value from the linker scipt, this should be the start of the vector table
+ nvic_init((uint32)&__text_start__, 0);
#endif
}