diff --git a/radio/src/cli.cpp b/radio/src/cli.cpp index 43cd54fb0..1bf83f241 100644 --- a/radio/src/cli.cpp +++ b/radio/src/cli.cpp @@ -24,12 +24,15 @@ #include "opentx.h" #include "diskio.h" +#include "timers_driver.h" + +#include "cli.h" #include #include #include #include -#include "cli.h" + #if defined(INTMODULE_USART) #include "intmodule_serial_driver.h" diff --git a/radio/src/gui/common/stdlcd/radio_power_meter.cpp b/radio/src/gui/common/stdlcd/radio_power_meter.cpp index b8274608e..f493e2aee 100644 --- a/radio/src/gui/common/stdlcd/radio_power_meter.cpp +++ b/radio/src/gui/common/stdlcd/radio_power_meter.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "timers_driver.h" extern uint8_t g_moduleIdx; diff --git a/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp b/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp index 9f8ffc2e5..9a1a023be 100644 --- a/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp +++ b/radio/src/gui/common/stdlcd/radio_spectrum_analyser.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "timers_driver.h" extern uint8_t g_moduleIdx; @@ -158,4 +159,4 @@ void menuRadioSpectrumAnalyser(event_t event) int offset = reusableBuffer.spectrumAnalyser.track - (reusableBuffer.spectrumAnalyser.freq - reusableBuffer.spectrumAnalyser.span / 2); int x = offset / reusableBuffer.spectrumAnalyser.step; lcdDrawVerticalLine(x, 10+FH+1, LCD_H, SOLID); -} \ No newline at end of file +} diff --git a/radio/src/io/bootloader_flash.cpp b/radio/src/io/bootloader_flash.cpp index 5825b50c3..b81845e02 100644 --- a/radio/src/io/bootloader_flash.cpp +++ b/radio/src/io/bootloader_flash.cpp @@ -22,6 +22,7 @@ #include #include "opentx.h" #include "bootloader_flash.h" +#include "timers_driver.h" #if defined(LIBOPENUI) #include "libopenui.h" diff --git a/radio/src/io/frsky_firmware_update.cpp b/radio/src/io/frsky_firmware_update.cpp index 3aa2e4274..dca87330a 100644 --- a/radio/src/io/frsky_firmware_update.cpp +++ b/radio/src/io/frsky_firmware_update.cpp @@ -23,6 +23,7 @@ #include "opentx.h" #include "frsky_firmware_update.h" #include "debug.h" +#include "timers_driver.h" #if defined(LIBOPENUI) #include "libopenui.h" diff --git a/radio/src/io/multi_protolist.cpp b/radio/src/io/multi_protolist.cpp index 345872d16..f9bfcf380 100644 --- a/radio/src/io/multi_protolist.cpp +++ b/radio/src/io/multi_protolist.cpp @@ -74,9 +74,9 @@ bool MultiRfProtocols::RfProto::parse(const uint8_t* data, uint8_t len) label = "Frsky"; flags = 0x20; - subProtoNr = def->maxSubtype + 1; - subProtoLen = def->subTypeString[0]; - s = def->subTypeString + 1; + + fillSubProtoList(def->subTypeString, def->maxSubtype + 1); + return true; } else { // proto label string @@ -118,6 +118,15 @@ void MultiRfProtocols::RfProto::fillSubProtoList(const char* str, int n, int len } } +void MultiRfProtocols::RfProto::fillSubProtoList(const char** str, int n) +{ + subProtos.reserve(n); + + for (int i = 0; i < n; i++) { + subProtos.emplace_back(str[i]); + } +} + uint8_t MultiRfProtocols::RfProto::getOption() const { uint8_t opt = flags >> 4; diff --git a/radio/src/io/multi_protolist.h b/radio/src/io/multi_protolist.h index 7947701e5..b14e9e1bd 100644 --- a/radio/src/io/multi_protolist.h +++ b/radio/src/io/multi_protolist.h @@ -57,6 +57,11 @@ class MultiRfProtocols RfProto(int proto) : proto(proto) {} bool parse(const uint8_t* data, uint8_t len); + + // array of strings + void fillSubProtoList(const char** str, int n); + + // fixed length strings concatenated void fillSubProtoList(const char* str, int n, int len); uint8_t getOption() const; diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index e9113458f..df6730024 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -23,6 +23,7 @@ #include "io/frsky_firmware_update.h" #include "hal/adc_driver.h" #include "aux_serial_driver.h" +#include "timers_driver.h" #if defined(LIBOPENUI) #include "libopenui.h" diff --git a/radio/src/pulses/pxx2.cpp b/radio/src/pulses/pxx2.cpp index a2b89778a..05cee83d3 100644 --- a/radio/src/pulses/pxx2.cpp +++ b/radio/src/pulses/pxx2.cpp @@ -26,6 +26,7 @@ #include "libopenui/src/libopenui_file.h" #include "mixer_scheduler.h" #include "heartbeat_driver.h" +#include "timers_driver.h" #if defined(INTMODULE_USART) #include "intmodule_serial_driver.h" diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index f9cf075f3..928fc359d 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -20,6 +20,7 @@ */ #include "opentx.h" +#include "timers_driver.h" #if defined(MULTIMODULE) #include "pulses/multi.h" diff --git a/radio/src/targets/common/arm/stm32/board_common.h b/radio/src/targets/common/arm/stm32/board_common.h index ecfd92e24..fa9b48f9c 100644 --- a/radio/src/targets/common/arm/stm32/board_common.h +++ b/radio/src/targets/common/arm/stm32/board_common.h @@ -132,13 +132,6 @@ void delay_ms(uint32_t count); } #endif -#if !defined(BOOT) -void watchdogSuspend(uint32_t timeout); -#define WATCHDOG_SUSPEND(x) watchdogSuspend(x) -#else -#define WATCHDOG_SUSPEND(...) -#endif - #define INIT_KEYS_PINS(GPIO) \ GPIO_InitStructure.GPIO_Pin = KEYS_ ## GPIO ## _PINS; \ GPIO_Init(GPIO, &GPIO_InitStructure) diff --git a/radio/src/targets/common/arm/stm32/timers_driver.h b/radio/src/targets/common/arm/stm32/timers_driver.h index a50d4a9a7..08aa37ce2 100644 --- a/radio/src/targets/common/arm/stm32/timers_driver.h +++ b/radio/src/targets/common/arm/stm32/timers_driver.h @@ -35,4 +35,6 @@ void stop1msTimer(); static inline uint16_t getTmr2MHz() { return TIMER_2MHz_TIMER->CNT; } +void watchdogSuspend(uint32_t timeout); + #endif diff --git a/radio/src/targets/common/arm/stm32/usb_driver.cpp b/radio/src/targets/common/arm/stm32/usb_driver.cpp index 2dbedd7ce..0f378c1e5 100644 --- a/radio/src/targets/common/arm/stm32/usb_driver.cpp +++ b/radio/src/targets/common/arm/stm32/usb_driver.cpp @@ -30,6 +30,7 @@ extern "C" { #include "usbd_desc.h" #include "usbd_usr.h" #include "usbd_hid_core.h" +#include "usbd_cdc_core.h" } #include "board.h" diff --git a/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp b/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp index 71fe73e30..6f3fceb1d 100644 --- a/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp +++ b/radio/src/targets/common/arm/stm32/usbd_storage_msd.cpp @@ -28,6 +28,13 @@ #include +#if !defined(BOOT) + #include "timers_driver.h" + #define WATCHDOG_SUSPEND(x) watchdogSuspend(x) +#else + #define WATCHDOG_SUSPEND(...) +#endif + #if defined(__cplusplus) && !defined(SIMU) extern "C" { #endif diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index 364f6990c..7ef83cd33 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -32,6 +32,8 @@ #include "sdcard.h" #include "debug.h" +#include + #if defined(AUX_SERIAL) || defined(AUX2_SERIAL) #include "aux_serial_driver.h" #endif