From c51c91401e4ce7f238b136ebf0c20d04a573fb2a Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 9 Oct 2023 12:07:51 +0200 Subject: [PATCH] fix: Correctly reflect state of AUX1 when DEBUG build (#3814) --- radio/src/serial.cpp | 14 +++++++++++--- radio/src/storage/storage_common.cpp | 7 +++++++ radio/src/targets/horus/board.cpp | 3 ++- radio/src/targets/nv14/board.cpp | 3 ++- radio/src/targets/taranis/board.cpp | 3 ++- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/radio/src/serial.cpp b/radio/src/serial.cpp index dcaf703ea..cc756fbf8 100644 --- a/radio/src/serial.cpp +++ b/radio/src/serial.cpp @@ -90,7 +90,7 @@ extern "C" void dbgSerialPrintf(const char * format, ...) const char *t = tmp; while (*t) { - SEGGER_RTT_Write(0, (const void *)t++, 1); + SEGGER_RTT_Write(0, (const void*)t++, 1); } } #else @@ -449,12 +449,20 @@ void serialInit(uint8_t port_nr, int mode) void initSerialPorts() { - memset(serialPortStates, 0, sizeof(serialPortStates)); - +#if defined(DEBUG) + // AUX1 and serialPortStates was already initialized early in DEBUG config + for (uint8_t port_nr = 0; port_nr < MAX_AUX_SERIAL; port_nr++) { + if (port_nr != SP_AUX1) { + auto mode = getSerialPortMode(port_nr); + serialInit(port_nr, mode); + } + } +#else for (uint8_t port_nr = 0; port_nr < MAX_AUX_SERIAL; port_nr++) { auto mode = getSerialPortMode(port_nr); serialInit(port_nr, mode); } +#endif } int serialGetMode(uint8_t port_nr) diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index 45940a542..b6b034b46 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -105,6 +105,13 @@ void postRadioSettingsLoad() g_eeGeneral.stickDeadZone = DEFAULT_STICK_DEADZONE; } #endif +#if !defined(DEBUG) + // clean up leftovers from a previous DEBUG config + for (uint8_t port_nr = 0; port_nr < MAX_AUX_SERIAL; port_nr++) { + if (serialGetMode(port_nr) == UART_MODE_DEBUG) + serialSetMode(port_nr, UART_MODE_NONE); + } +#endif } static bool sortMixerLines() diff --git a/radio/src/targets/horus/board.cpp b/radio/src/targets/horus/board.cpp index 0c37f0093..6cccb4e8e 100644 --- a/radio/src/targets/horus/board.cpp +++ b/radio/src/targets/horus/board.cpp @@ -146,7 +146,8 @@ void boardInit() __enable_irq(); #if defined(DEBUG) - serialInit(SP_AUX1, UART_MODE_DEBUG); + serialSetMode(SP_AUX1, UART_MODE_DEBUG); // indicate AUX1 is used + serialInit(SP_AUX1, UART_MODE_DEBUG); // early AUX1 init #endif TRACE("\nHorus board started :)"); diff --git a/radio/src/targets/nv14/board.cpp b/radio/src/targets/nv14/board.cpp index e3b16b4f7..1db3e02bb 100644 --- a/radio/src/targets/nv14/board.cpp +++ b/radio/src/targets/nv14/board.cpp @@ -207,7 +207,8 @@ void boardInit() hardwareOptions.pcbrev = boardGetPcbRev(); #if defined(DEBUG) - serialInit(SP_AUX1, UART_MODE_DEBUG); + serialSetMode(SP_AUX1, UART_MODE_DEBUG); // indicate AUX1 is used + serialInit(SP_AUX1, UART_MODE_DEBUG); // early AUX1 init #endif TRACE("\n%s board started :)", diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 4375b4f40..5ecc3d929 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -225,7 +225,8 @@ void boardInit() usbInit(); #if defined(DEBUG) - serialInit(SP_AUX1, UART_MODE_DEBUG); + serialSetMode(SP_AUX1, UART_MODE_DEBUG); // indicate AUX1 is used + serialInit(SP_AUX1, UART_MODE_DEBUG); // early AUX1 init #endif #if defined(HAPTIC)