diff --git a/src/generic/armcm_reset.c b/src/generic/armcm_reset.c index b7aea955..67ff5f57 100644 --- a/src/generic/armcm_reset.c +++ b/src/generic/armcm_reset.c @@ -4,10 +4,11 @@ // // This file may be distributed under the terms of the GNU GPLv3 license. +#include "armcm_reset.h" // try_request_canboot +#include "autoconf.h" // CONFIG_FLASH_START #include "board/internal.h" // NVIC_SystemReset +#include "board/irq.h" // irq_disable #include "command.h" // DECL_COMMAND_FLAGS -#include "autoconf.h" // CONFIG_FLASH_START -#include "irq.h" // irq_disable #define CANBOOT_SIGNATURE 0x21746f6f426e6143 #define CANBOOT_REQUEST 0x5984E3FA6CA1589B diff --git a/src/generic/armcm_reset.h b/src/generic/armcm_reset.h new file mode 100644 index 00000000..1627eddd --- /dev/null +++ b/src/generic/armcm_reset.h @@ -0,0 +1,6 @@ +#ifndef __GENERIC_ARMCM_RESET_H +#define __GENERIC_ARMCM_RESET_H + +void try_request_canboot(void); + +#endif // armcm_reset.h diff --git a/src/generic/canbus.c b/src/generic/canbus.c index a1f112ac..a1a2f6b5 100644 --- a/src/generic/canbus.c +++ b/src/generic/canbus.c @@ -7,12 +7,12 @@ // This file may be distributed under the terms of the GNU GPLv3 license. #include // memcpy +#include "board/armcm_reset.h" // try_request_canboot +#include "board/io.h" // readb +#include "board/irq.h" // irq_save +#include "board/misc.h" // console_sendf #include "canbus.h" // canbus_set_uuid #include "command.h" // DECL_CONSTANT -#include "generic/io.h" // readb -#include "generic/irq.h" // irq_disable -#include "generic/misc.h" // console_sendf -#include "board/internal.h" // NVIC_SystemReset #include "sched.h" // sched_wake_task static uint32_t canbus_assigned_id; diff --git a/src/stm32/internal.h b/src/stm32/internal.h index 0033942d..f0535ab9 100644 --- a/src/stm32/internal.h +++ b/src/stm32/internal.h @@ -42,7 +42,4 @@ struct cline lookup_clock_line(uint32_t periph_base); uint32_t get_pclock_frequency(uint32_t periph_base); void gpio_clock_enable(GPIO_TypeDef *regs); -// armcm_timer.c -void try_request_canboot(void); - #endif // internal.h diff --git a/src/stm32/stm32f0.c b/src/stm32/stm32f0.c index a751b546..8ea8f43c 100644 --- a/src/stm32/stm32f0.c +++ b/src/stm32/stm32f0.c @@ -6,6 +6,7 @@ #include "autoconf.h" // CONFIG_CLOCK_REF_FREQ #include "board/armcm_boot.h" // armcm_main +#include "board/armcm_reset.h" // try_request_canboot #include "board/irq.h" // irq_disable #include "command.h" // DECL_CONSTANT_STR #include "internal.h" // enable_pclock diff --git a/src/stm32/stm32f1.c b/src/stm32/stm32f1.c index 25bba83f..820a5518 100644 --- a/src/stm32/stm32f1.c +++ b/src/stm32/stm32f1.c @@ -6,6 +6,7 @@ #include "autoconf.h" // CONFIG_CLOCK_REF_FREQ #include "board/armcm_boot.h" // VectorTable +#include "board/armcm_reset.h" // try_request_canboot #include "board/irq.h" // irq_disable #include "board/usb_cdc.h" // usb_request_bootloader #include "internal.h" // enable_pclock diff --git a/src/stm32/stm32f4.c b/src/stm32/stm32f4.c index 58d8dbb4..9c6880cf 100644 --- a/src/stm32/stm32f4.c +++ b/src/stm32/stm32f4.c @@ -6,6 +6,7 @@ #include "autoconf.h" // CONFIG_CLOCK_REF_FREQ #include "board/armcm_boot.h" // VectorTable +#include "board/armcm_reset.h" // try_request_canboot #include "board/irq.h" // irq_disable #include "board/usb_cdc.h" // usb_request_bootloader #include "command.h" // DECL_CONSTANT_STR diff --git a/src/stm32/stm32g0.c b/src/stm32/stm32g0.c index a98cc811..f38fc9c5 100644 --- a/src/stm32/stm32g0.c +++ b/src/stm32/stm32g0.c @@ -6,6 +6,7 @@ #include "autoconf.h" // CONFIG_CLOCK_REF_FREQ #include "board/armcm_boot.h" // armcm_main +#include "board/armcm_reset.h" // try_request_canboot #include "board/irq.h" // irq_disable #include "command.h" // DECL_CONSTANT_STR #include "internal.h" // enable_pclock diff --git a/src/stm32/stm32h7.c b/src/stm32/stm32h7.c index c615d286..d6a32d96 100644 --- a/src/stm32/stm32h7.c +++ b/src/stm32/stm32h7.c @@ -6,6 +6,7 @@ #include "autoconf.h" // CONFIG_CLOCK_REF_FREQ #include "board/armcm_boot.h" // VectorTable +#include "board/armcm_reset.h" // try_request_canboot #include "command.h" // DECL_CONSTANT_STR #include "internal.h" // get_pclock_frequency #include "sched.h" // sched_main