aboutsummaryrefslogtreecommitdiff
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
parentff9eb47233369712316cc853296ebee67e1e9327 (diff)
Added weak _exit function
-rw-r--r--libmaple/include/libmaple/stm32.h4
-rw-r--r--libmaple/stm32f2/include/series/stm32.h6
-rwxr-xr-xsupport/scripts/copy-to-ide24
-rw-r--r--wirish/boards.cpp11
-rw-r--r--wirish/syscalls.c4
5 files changed, 30 insertions, 19 deletions
diff --git a/libmaple/include/libmaple/stm32.h b/libmaple/include/libmaple/stm32.h
index 3845cab..75acc57 100644
--- a/libmaple/include/libmaple/stm32.h
+++ b/libmaple/include/libmaple/stm32.h
@@ -77,11 +77,11 @@ extern "C" {
!defined(STM32_NR_GPIO_PORTS) || \
!defined(STM32_TIMER_MASK) || \
!defined(STM32_DELAY_US_MULT) || \
- !defined(STM32_SRAM_END) || \
+/* !defined(STM32_SRAM_END) || */ \
!defined(STM32_HAVE_DAC) || \
!defined(STM32_HAVE_FSMC) || \
!defined(STM32_HAVE_USB))
-#error "Bad STM32F1 configuration. Check <series/stm32.h> header for your MCU."
+#error "Bad STM32Fx configuration. Check <series/stm32.h> header for your MCU."
#endif
/*
diff --git a/libmaple/stm32f2/include/series/stm32.h b/libmaple/stm32f2/include/series/stm32.h
index 180ab30..e71e787 100644
--- a/libmaple/stm32f2/include/series/stm32.h
+++ b/libmaple/stm32f2/include/series/stm32.h
@@ -49,7 +49,7 @@ extern "C" {
#endif
#ifndef STM32_DELAY_US_MULT
-#define STM32_DELAY_US_MULT 20 /* FIXME: dummy value. */
+#define STM32_DELAY_US_MULT 40 /* 120MHz flash based program. */
#endif
/*
@@ -62,10 +62,10 @@ extern "C" {
#define STM32_HAVE_USB 1
#define STM32_HAVE_DAC 1
-#if defined(MCU_STM32F207IC) || defined(MCU_STM32F207IG)
+#if defined(MCU_STM32F207IC) || defined(MCU_STM32F207IG) || defined(MCU_STM32F205RF)
# define STM32_NR_GPIO_PORTS 9
# define STM32_TIMER_MASK 0x7FFE /* TIMER1-TIMER14. */
-# define STM32_SRAM_END ((void*)0x20020000)
+/*# define STM32_SRAM_END ((void*)0x20020000) */
#else
#warning "Unsupported or unspecified STM32F2 MCU."
#endif
diff --git a/support/scripts/copy-to-ide b/support/scripts/copy-to-ide
index e68abca..3f28dfe 100755
--- a/support/scripts/copy-to-ide
+++ b/support/scripts/copy-to-ide
@@ -13,23 +13,24 @@ LMAPLE_SRC="LICENSE
./libmaple/*.h
./libmaple/*.c
./libmaple/*.S
+ ./wirish/*.h
+ ./wirish/main.cxx
+ ./wirish/*.cpp
./libmaple/usb/*.h
./libmaple/usb/*.c
./libmaple/usb/usb_lib/*.h
./libmaple/usb/usb_lib/*.c
- ./wirish/*.h
- ./wirish/main.cxx
- ./wirish/*.cpp
./wirish/comm/*.cpp
./wirish/comm/*.h
- ./wirish/boards/*.h
- ./wirish/boards/*.cpp
- ./support/ld/common.inc
- ./support/ld/maple
- ./support/ld/maple_mini
- ./support/ld/maple_native
- ./support/ld/maple_RET6
- ./support/ld/names.inc"
+ ./wirish/boards
+ ./libmaple/include
+ ./wirish/include
+ ./ld/common.inc
+ ./ld/maple
+ ./ld/maple_mini
+ ./ld/maple_native
+ ./ld/maple_RET6
+ ./ld/names.inc"
echo "First make sure DEST exists: $DEST"
if !(test -d $DEST)
@@ -42,6 +43,7 @@ fi
echo Copying libmaple source
rm -rf $DEST_CORES/*.c $DEST_CORES/*.cpp $DEST_CORES/*.h $DEST_CORES/*.cxx $DEST_CORES/*.S
rm -rf $DEST_CORES/*.inc $DEST_CORES/*.a $DEST_CORES/maple $DEST_CORES/maple_*
+mkdir -p $DEST_CORES
cp -R $LMAPLE_SRC $DEST_CORES
echo Copying over libraries
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
}
diff --git a/wirish/syscalls.c b/wirish/syscalls.c
index 1e62d51..9a573a3 100644
--- a/wirish/syscalls.c
+++ b/wirish/syscalls.c
@@ -168,3 +168,7 @@ __weak char *fgets(char *s, int bufsize, void *f) {
cgets(s, bufsize);
return s;
}
+
+__weak int _exit(int exitcode) {
+ while (1);
+}