From c0a385949d71d54ea0855a067e801af8b917ce65 Mon Sep 17 00:00:00 2001 From: richardclli Date: Mon, 1 Jan 2024 09:53:33 +0800 Subject: [PATCH] chores(pl18/nv14): Clean up cmake and boot menu (#4475) --- radio/src/targets/horus/CMakeLists.txt | 1 - radio/src/targets/nv14/CMakeLists.txt | 47 ++++++++----------- .../src/targets/nv14/bootloader/boot_menu.cpp | 11 ++++- radio/src/targets/pl18/CMakeLists.txt | 45 ++++++++---------- radio/src/targets/pl18/board.cpp | 1 + .../src/targets/pl18/bootloader/boot_menu.cpp | 13 +++-- radio/src/targets/pl18/hal.h | 2 + 7 files changed, 59 insertions(+), 61 deletions(-) diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index f3af75efa..6bfe85540 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -20,7 +20,6 @@ set(GUI_DIR colorlcd) set(BITMAPS_DIR 480x272) set(NAVIGATION_TYPE horus) set(TARGET_DIR horus) -set(LINKER_SCRIPT targets/horus/stm32f4_flash.ld) set(RTC_BACKUP_RAM YES) set(PPM_LIMITS_SYMETRICAL YES) set(USB_SERIAL ON CACHE BOOL "Enable USB serial (CDC)") diff --git a/radio/src/targets/nv14/CMakeLists.txt b/radio/src/targets/nv14/CMakeLists.txt index df0386c02..a7864e2a6 100644 --- a/radio/src/targets/nv14/CMakeLists.txt +++ b/radio/src/targets/nv14/CMakeLists.txt @@ -104,33 +104,8 @@ endif() #set(AUX_SERIAL_DRIVER ../common/arm/stm32/aux_serial_driver.cpp) -set(SRC - ${SRC} - io/frsky_firmware_update.cpp - ) - set(GVAR_SCREEN model_gvars.cpp) -if(BOOTLOADER) - set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} - ../common/arm/loadboot.cpp - ) -endif() - -set(SRC - ${SRC} - io/frsky_firmware_update.cpp - io/multi_firmware_update.cpp - ) - -if (MULTIMODULE) - add_definitions(-DMULTI_PROTOLIST) - set(SRC ${SRC} - io/multi_protolist.cpp - ) -endif() - set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} board.cpp @@ -150,6 +125,25 @@ set(FIRMWARE_SRC targets/common/arm/stm32/vs1053b.cpp ) +if(BOOTLOADER) + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/loadboot.cpp + ) +endif() + +set(SRC ${SRC} + io/frsky_firmware_update.cpp + io/multi_firmware_update.cpp + ) + +if (MULTIMODULE) + add_definitions(-DMULTI_PROTOLIST) + set(SRC ${SRC} + io/multi_protolist.cpp + ) +endif() + # Make malloc() thread-safe add_definitions(-DTHREADSAFE_MALLOC) @@ -158,8 +152,5 @@ set(STM32LIB_SRC STM32F4xx_StdPeriph_Driver/src/stm32f4xx_fmc.c STM32F4xx_StdPeriph_Driver/src/stm32f4xx_ltdc.c STM32F4xx_StdPeriph_Driver/src/stm32f4xx_tim.c - STM32F4xx_StdPeriph_Driver/src/stm32f4xx_dma2d.c - STM32F4xx_StdPeriph_Driver/src/stm32f4xx_exti.c - STM32F4xx_StdPeriph_Driver/src/stm32f4xx_syscfg.c ) diff --git a/radio/src/targets/nv14/bootloader/boot_menu.cpp b/radio/src/targets/nv14/bootloader/boot_menu.cpp index c71371599..7017e2f37 100644 --- a/radio/src/targets/nv14/bootloader/boot_menu.cpp +++ b/radio/src/targets/nv14/bootloader/boot_menu.cpp @@ -62,8 +62,6 @@ static bool rfUsbAccess = false; void bootloaderInitScreen() { lcdInitDisplayDriver(); - backlightInit(); - backlightEnable(100); setHatsAsKeys(true); } @@ -85,9 +83,16 @@ static void bootloaderDrawBackground() void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) { + static bool _first_screen = true; + lcdInitDirectDrawing(); bootloaderDrawBackground(); + if (!_first_screen) { + // ... and turn backlight ON + backlightEnable(BACKLIGHT_LEVEL_MAX); + } + int center = LCD_W/2; if (st == ST_START) { int yOffset = 0; @@ -225,6 +230,8 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) pos -= 79; lcd->drawSolidRect(79, 72 + (opt * 35), pos, 26, 2, BL_SELECTED); } + + _first_screen = false; } void bootloaderDrawFilename(const char* str, uint8_t line, bool selected) diff --git a/radio/src/targets/pl18/CMakeLists.txt b/radio/src/targets/pl18/CMakeLists.txt index 8296d404e..9dbe8911d 100644 --- a/radio/src/targets/pl18/CMakeLists.txt +++ b/radio/src/targets/pl18/CMakeLists.txt @@ -104,33 +104,8 @@ file(GLOB THEMES_SRC RELATIVE ${RADIO_SRC_DIR}/gui/colorlcd ${RADIO_SRC_DIR}/gui file(GLOB LAYOUTS_SRC RELATIVE ${RADIO_SRC_DIR}/gui/colorlcd ${RADIO_SRC_DIR}/gui/colorlcd/layouts/*.cpp) file(GLOB WIDGETS_SRC RELATIVE ${RADIO_SRC_DIR}/gui/colorlcd ${RADIO_SRC_DIR}/gui/colorlcd/widgets/*.cpp) -set(SRC - ${SRC} - io/frsky_firmware_update.cpp - ) - set(GVAR_SCREEN model_gvars.cpp) -if(BOOTLOADER) - set(FIRMWARE_TARGET_SRC - ${FIRMWARE_TARGET_SRC} - ../common/arm/loadboot.cpp - ) -endif() - -set(SRC - ${SRC} - io/frsky_firmware_update.cpp - io/multi_firmware_update.cpp - ) - -if (MULTIMODULE) - add_definitions(-DMULTI_PROTOLIST) - set(SRC ${SRC} - io/multi_protolist.cpp - ) -endif() - set(FIRMWARE_TARGET_SRC ${FIRMWARE_TARGET_SRC} ${LCD_DRIVER} @@ -154,6 +129,25 @@ set(FIRMWARE_SRC drivers/frftl.cpp ) +if(BOOTLOADER) + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/loadboot.cpp + ) +endif() + +set(SRC ${SRC} + io/frsky_firmware_update.cpp + io/multi_firmware_update.cpp + ) + +if (MULTIMODULE) + add_definitions(-DMULTI_PROTOLIST) + set(SRC ${SRC} + io/multi_protolist.cpp + ) +endif() + # Make malloc() thread-safe add_definitions(-DTHREADSAFE_MALLOC) @@ -162,6 +156,5 @@ set(STM32LIB_SRC STM32F4xx_StdPeriph_Driver/src/stm32f4xx_fmc.c STM32F4xx_StdPeriph_Driver/src/stm32f4xx_ltdc.c STM32F4xx_StdPeriph_Driver/src/stm32f4xx_tim.c - STM32F4xx_StdPeriph_Driver/src/stm32f4xx_dma2d.c ) diff --git a/radio/src/targets/pl18/board.cpp b/radio/src/targets/pl18/board.cpp index c20df1a25..d1fdf191d 100644 --- a/radio/src/targets/pl18/board.cpp +++ b/radio/src/targets/pl18/board.cpp @@ -77,6 +77,7 @@ void delay_self(int count) TELEMETRY_RCC_AHB1Periph |\ TRAINER_RCC_AHB1Periph |\ HAPTIC_RCC_AHB1Periph |\ + INTMODULE_RCC_AHB1Periph |\ EXTMODULE_RCC_AHB1Periph \ ) #define RCC_AHB3PeriphMinimum (SDRAM_RCC_AHB3Periph) diff --git a/radio/src/targets/pl18/bootloader/boot_menu.cpp b/radio/src/targets/pl18/bootloader/boot_menu.cpp index 3acc37309..9e8d914d9 100644 --- a/radio/src/targets/pl18/bootloader/boot_menu.cpp +++ b/radio/src/targets/pl18/bootloader/boot_menu.cpp @@ -25,8 +25,8 @@ #include "translations.h" -#include "../../common/arm/stm32/bootloader/boot.h" -#include "../../common/arm/stm32/bootloader/bin_files.h" +#include "targets/common/arm/stm32/bootloader/boot.h" +#include "targets/common/arm/stm32/bootloader/bin_files.h" #include @@ -56,8 +56,6 @@ extern BitmapBuffer * lcd; void bootloaderInitScreen() { lcdInitDisplayDriver(); - backlightInit(); - backlightEnable(100); setHatsAsKeys(true); } @@ -79,9 +77,15 @@ static void bootloaderDrawBackground() void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) { + static bool _first_screen = true; lcdInitDirectDrawing(); bootloaderDrawBackground(); + if (!_first_screen) { + // ... and turn backlight ON + backlightEnable(BACKLIGHT_LEVEL_MAX); + } + int center = LCD_W/2; if (st == ST_START) { @@ -231,6 +235,7 @@ void bootloaderDrawScreen(BootloaderState st, int opt, const char* str) LV_SYMBOL_NEW_LINE TR_BL_EXIT_KEY, BL_FOREGROUND); } } + _first_screen = false; } void bootloaderDrawFilename(const char* str, uint8_t line, bool selected) diff --git a/radio/src/targets/pl18/hal.h b/radio/src/targets/pl18/hal.h index c9d8b4d5a..c8ecc04f8 100644 --- a/radio/src/targets/pl18/hal.h +++ b/radio/src/targets/pl18/hal.h @@ -592,6 +592,8 @@ #define INTMODULE_TIMER_IRQn TIM3_IRQn #define INTMODULE_TIMER_IRQHandler TIM3_IRQHandler #define INTMODULE_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1) +#else +#define INTMODULE_RCC_AHB1Periph 0 #endif // External Module