diff --git a/App/ui/multiboot.c b/App/ui/multiboot.c index ffa34025..bc915ec0 100644 --- a/App/ui/multiboot.c +++ b/App/ui/multiboot.c @@ -262,7 +262,12 @@ __attribute__((noinline)) static void mb_prepare_progress_screen(const char *tit UI_PrintStringSmallNormal(title, 2, 126, 1); UI_PrintStringSmallNormal("DO NOT POWER OFF", 2, 126, 3); UI_PrintStringSmallNormal(detail, 2, 126, 5); +#ifndef ENABLE_FEAT_F4HWN_MULTIBOOT_LOW_RAM + /* Empty gauge that the RAM copier fills as it reflashes. Without the + * in-copier progress code the bar would never move, so it is left out and + * the static "DO NOT POWER OFF" screen stands on its own. */ mb_draw_progress_outline(); +#endif ST7565_BlitStatusLine(); ST7565_BlitFullScreen(); } @@ -273,7 +278,7 @@ static void mb_prepare_progress(uint8_t slot) slot_title[13] = (char)('0' + slot); const char *title = (slot == 0u) ? "Restore Main" : slot_title; - mb_prepare_progress_screen(title, "Writing & Verify"); + mb_prepare_progress_screen(title, "Writing / Verify"); } /* Discreet "Main backup" screen shown once, at the first boot after a normal @@ -404,7 +409,11 @@ void UI_MultibootSelector(void) } mb_prepare_progress(selected); +#ifndef ENABLE_FEAT_F4HWN_MULTIBOOT_LOW_RAM uint8_t err = MB_RestoreSlot(selected, gFrameBuffer[6]); +#else + uint8_t err = MB_RestoreSlot(selected, NULL); +#endif /* Only reached when the final pre-erase validation refused the slot. */ status[selected] = err; diff --git a/CMakePresets.json b/CMakePresets.json index acfe92c7..48083701 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -21,6 +21,7 @@ "CMAKE_BUILD_TYPE": "Release", "DEV": false, "ENABLE_LTO": false, + "ENABLE_NO_HEAP": false, "ENABLE_FMRADIO": false, "ENABLE_UART": true, "ENABLE_USB": true, @@ -92,6 +93,7 @@ "ENABLE_FEAT_F4HWN_LOGO_SAV": false, "ENABLE_FEAT_F4HWN_MENU_CAT": false, "ENABLE_FEAT_F4HWN_MULTIBOOT": false, + "ENABLE_FEAT_F4HWN_MULTIBOOT_LOW_RAM": false, "ENABLE_AGC_SHOW_DATA": false, "ENABLE_UART_RW_BK_REGS": false, "ENABLE_SWD": false, @@ -113,6 +115,7 @@ "name": "Fusion", "inherits": "default", "cacheVariables": { + "ENABLE_NO_HEAP": true, "ENABLE_SPECTRUM": true, "ENABLE_FMRADIO": true, "ENABLE_VOX": true, @@ -141,6 +144,7 @@ "ENABLE_FEAT_F4HWN_MENU_CAT": true, "ENABLE_FEAT_F4HWN_ACTION_PICKER": true, "ENABLE_FEAT_F4HWN_MULTIBOOT": true, + "ENABLE_FEAT_F4HWN_MULTIBOOT_LOW_RAM": false, "ENABLE_SWD": true, "EDITION_STRING": "Fusion", "TARGET": "f4hwn.fusion"