From 4ec1b0f0cd3835e743ecc1835ba144f4230f5534 Mon Sep 17 00:00:00 2001 From: Roger Clark Date: Thu, 10 May 2018 20:25:02 +1000 Subject: [PATCH] Removed references to robotis bootloader, and also redundant usb reset code that used the wdt (possibly used by the robotis bootloader) --- STM32F1/cores/maple/usb_serial.cpp | 50 ++++++------------- STM32F1/variants/STM32VLD/wirish/boards.cpp | 6 +-- .../generic_gd32f103c/wirish/boards.cpp | 6 +-- .../generic_stm32f103c/wirish/boards.cpp | 6 +-- .../generic_stm32f103r/wirish/boards.cpp | 6 +-- .../generic_stm32f103r8/wirish/boards.cpp | 6 +-- .../generic_stm32f103t/wirish/boards.cpp | 6 +-- .../generic_stm32f103v/wirish/boards.cpp | 6 +-- .../generic_stm32f103vb/wirish/boards.cpp | 6 +-- .../generic_stm32f103z/wirish/boards.cpp | 6 +-- .../hytiny_stm32f103t/wirish/boards.cpp | 6 +-- STM32F1/variants/maple/wirish/boards.cpp | 6 +-- STM32F1/variants/maple_mini/wirish/boards.cpp | 6 +-- STM32F1/variants/maple_ret6/wirish/boards.cpp | 6 +-- STM32F1/variants/microduino/wirish/boards.cpp | 6 +-- .../variants/nucleo_f103rb/wirish/boards.cpp | 6 +-- 16 files changed, 30 insertions(+), 110 deletions(-) diff --git a/STM32F1/cores/maple/usb_serial.cpp b/STM32F1/cores/maple/usb_serial.cpp index 40eaa65..9f52177 100644 --- a/STM32F1/cores/maple/usb_serial.cpp +++ b/STM32F1/cores/maple/usb_serial.cpp @@ -263,20 +263,12 @@ static void ifaceSetupHook(unsigned hook __attribute__((unused)), void *requestv break; } #endif - -#if defined(BOOTLOADER_robotis) - uint8 dtr = usb_cdcacm_get_dtr(); - uint8 rts = usb_cdcacm_get_rts(); - - if (rts && !dtr) { - reset_state = DTR_NEGEDGE; - } -#endif - +#if false if ((usb_cdcacm_get_baud() == 1200) && (reset_state == DTR_NEGEDGE)) { iwdg_init(IWDG_PRE_4, 10); while (1); } +#endif } #define RESET_DELAY 100000 @@ -287,45 +279,39 @@ static void wait_reset(void) { } #endif + #define STACK_TOP 0x20000800 #define EXC_RETURN 0xFFFFFFF9 #define DEFAULT_CPSR 0x61000000 static void rxHook(unsigned hook __attribute__((unused)), void *ignored __attribute__((unused))) { +static const uint8 magic[4] = {'1', 'E', 'A', 'F'}; /* FIXME this is mad buggy; we need a new reset sequence. E.g. NAK * after each RX means you can't reset if any bytes are waiting. */ if (reset_state == DTR_NEGEDGE) { - reset_state = DTR_LOW; - - if (usb_cdcacm_data_available() >= 4) { - // The magic reset sequence is "1EAF". -#ifdef SERIAL_USB - static const uint8 magic[4] = {'1', 'E', 'A', 'F'}; -#else - #if defined(BOOTLOADER_robotis) - static const uint8 magic[4] = {'C', 'M', '9', 'X'}; - #else - static const uint8 magic[4] = {'1', 'E', 'A', 'F'}; - #endif -#endif + if (usb_cdcacm_data_available() >= 4) + { uint8 chkBuf[4]; // Peek at the waiting bytes, looking for reset sequence, // bailing on mismatch. usb_cdcacm_peek_ex(chkBuf, usb_cdcacm_data_available() - 4, 4); for (unsigned i = 0; i < sizeof(magic); i++) { - if (chkBuf[i] != magic[i]) { + if (chkBuf[i] != magic[i]) + { + reset_state = DTR_LOW; return; } } #ifdef SERIAL_USB + // The magic reset sequence is "1EAF". // Got the magic sequence -> reset, presumably into the bootloader. // Return address is wait_reset, but we must set the thumb bit. - bkp_init(); - bkp_enable_writes(); - bkp_write(10, 0x424C); - bkp_disable_writes(); + bkp_init(); + bkp_enable_writes(); + bkp_write(10, 0x424C); + bkp_disable_writes(); uintptr_t target = (uintptr_t)wait_reset | 0x1; asm volatile("mov r0, %[stack_top] \n\t" // Reset stack @@ -350,15 +336,9 @@ static void rxHook(unsigned hook __attribute__((unused)), void *ignored __attrib [cpsr] "r" (DEFAULT_CPSR) : "r0", "r1", "r2"); #endif - -#if defined(BOOTLOADER_robotis) - iwdg_init(IWDG_PRE_4, 10); -#endif - /* Can't happen. */ ASSERT_FAULT(0); } } } - -#endif // BOARD_HAVE_SERIALUSB +#endif // BOARD_HAVE_SERIALUSB \ No newline at end of file diff --git a/STM32F1/variants/STM32VLD/wirish/boards.cpp b/STM32F1/variants/STM32VLD/wirish/boards.cpp index 5274e7a..7b7e9a6 100644 --- a/STM32F1/variants/STM32VLD/wirish/boards.cpp +++ b/STM32F1/variants/STM32VLD/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_gd32f103c/wirish/boards.cpp b/STM32F1/variants/generic_gd32f103c/wirish/boards.cpp index fcb85b2..ef1f2ad 100644 --- a/STM32F1/variants/generic_gd32f103c/wirish/boards.cpp +++ b/STM32F1/variants/generic_gd32f103c/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103c/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103c/wirish/boards.cpp index 36fcb3e..08c34d1 100644 --- a/STM32F1/variants/generic_stm32f103c/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103c/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103r/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103r/wirish/boards.cpp index fcb85b2..ef1f2ad 100644 --- a/STM32F1/variants/generic_stm32f103r/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103r/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103r8/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103r8/wirish/boards.cpp index 5274e7a..7b7e9a6 100644 --- a/STM32F1/variants/generic_stm32f103r8/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103r8/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103t/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103t/wirish/boards.cpp index 5274e7a..7b7e9a6 100644 --- a/STM32F1/variants/generic_stm32f103t/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103t/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103v/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103v/wirish/boards.cpp index ddeaa57..fc90f36 100644 --- a/STM32F1/variants/generic_stm32f103v/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103v/wirish/boards.cpp @@ -153,11 +153,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103vb/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103vb/wirish/boards.cpp index ddeaa57..fc90f36 100644 --- a/STM32F1/variants/generic_stm32f103vb/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103vb/wirish/boards.cpp @@ -153,11 +153,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/generic_stm32f103z/wirish/boards.cpp b/STM32F1/variants/generic_stm32f103z/wirish/boards.cpp index fcb85b2..ef1f2ad 100644 --- a/STM32F1/variants/generic_stm32f103z/wirish/boards.cpp +++ b/STM32F1/variants/generic_stm32f103z/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/hytiny_stm32f103t/wirish/boards.cpp b/STM32F1/variants/hytiny_stm32f103t/wirish/boards.cpp index 0a358ee..d7b6edc 100644 --- a/STM32F1/variants/hytiny_stm32f103t/wirish/boards.cpp +++ b/STM32F1/variants/hytiny_stm32f103t/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/maple/wirish/boards.cpp b/STM32F1/variants/maple/wirish/boards.cpp index fcb85b2..ef1f2ad 100644 --- a/STM32F1/variants/maple/wirish/boards.cpp +++ b/STM32F1/variants/maple/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/maple_mini/wirish/boards.cpp b/STM32F1/variants/maple_mini/wirish/boards.cpp index 5274e7a..7b7e9a6 100644 --- a/STM32F1/variants/maple_mini/wirish/boards.cpp +++ b/STM32F1/variants/maple_mini/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/maple_ret6/wirish/boards.cpp b/STM32F1/variants/maple_ret6/wirish/boards.cpp index fcb85b2..ef1f2ad 100644 --- a/STM32F1/variants/maple_ret6/wirish/boards.cpp +++ b/STM32F1/variants/maple_ret6/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/microduino/wirish/boards.cpp b/STM32F1/variants/microduino/wirish/boards.cpp index fcb85b2..ef1f2ad 100644 --- a/STM32F1/variants/microduino/wirish/boards.cpp +++ b/STM32F1/variants/microduino/wirish/boards.cpp @@ -147,11 +147,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__; diff --git a/STM32F1/variants/nucleo_f103rb/wirish/boards.cpp b/STM32F1/variants/nucleo_f103rb/wirish/boards.cpp index f38cbf6..61368ce 100644 --- a/STM32F1/variants/nucleo_f103rb/wirish/boards.cpp +++ b/STM32F1/variants/nucleo_f103rb/wirish/boards.cpp @@ -149,11 +149,7 @@ static void setup_clocks(void) { #if defined(BOOTLOADER_maple) #define USER_ADDR_ROM 0x08005000 #else - #if defined(BOOTLOADER_robotis) - #define USER_ADDR_ROM 0x08003000 - #else - #define USER_ADDR_ROM 0x08000000 - #endif + #define USER_ADDR_ROM 0x08000000 #endif #define USER_ADDR_RAM 0x20000C00 extern char __text_start__;