diff --git a/applications/services/expansion/expansion.c b/applications/services/expansion/expansion.c index ca3b71444..ae69db18a 100644 --- a/applications/services/expansion/expansion.c +++ b/applications/services/expansion/expansion.c @@ -395,9 +395,8 @@ void expansion_on_system_start(void* arg) { furi_record_create(RECORD_EXPANSION, instance); ExpansionSettings settings = {}; - if(!expansion_settings_load(&settings)) { - expansion_settings_save(&settings); - } else if(settings.uart_index < FuriHalSerialIdMax) { + expansion_settings_load(&settings); + if(settings.uart_index < FuriHalSerialIdMax) { expansion_enable(instance, settings.uart_index); } } diff --git a/applications/services/expansion/expansion_settings.c b/applications/services/expansion/expansion_settings.c index 586bf6e9c..f350e2c56 100644 --- a/applications/services/expansion/expansion_settings.c +++ b/applications/services/expansion/expansion_settings.c @@ -2,6 +2,7 @@ #include #include +#include #include "expansion_settings_filename.h" @@ -11,12 +12,15 @@ bool expansion_settings_load(ExpansionSettings* settings) { furi_assert(settings); - return saved_struct_load( - EXPANSION_SETTINGS_PATH, - settings, - sizeof(ExpansionSettings), - EXPANSION_SETTINGS_MAGIC, - EXPANSION_SETTINGS_VERSION); + if(!saved_struct_load( + EXPANSION_SETTINGS_PATH, + settings, + sizeof(ExpansionSettings), + EXPANSION_SETTINGS_MAGIC, + EXPANSION_SETTINGS_VERSION)) { + settings->uart_index = FuriHalSerialIdMax; + } + return true; } bool expansion_settings_save(ExpansionSettings* settings) { diff --git a/applications/settings/expansion_settings_app/expansion_settings_app.c b/applications/settings/expansion_settings_app/expansion_settings_app.c index 894015712..353fab611 100644 --- a/applications/settings/expansion_settings_app/expansion_settings_app.c +++ b/applications/settings/expansion_settings_app/expansion_settings_app.c @@ -27,9 +27,7 @@ static uint32_t expansion_settings_app_exit(void* context) { static ExpansionSettingsApp* expansion_settings_app_alloc() { ExpansionSettingsApp* app = malloc(sizeof(ExpansionSettingsApp)); - if(!expansion_settings_load(&app->settings)) { - expansion_settings_save(&app->settings); - } + expansion_settings_load(&app->settings); app->gui = furi_record_open(RECORD_GUI); app->expansion = furi_record_open(RECORD_EXPANSION); diff --git a/applications/system/storage_move_to_sd/storage_move_to_sd.c b/applications/system/storage_move_to_sd/storage_move_to_sd.c index 949f889b2..94d275878 100644 --- a/applications/system/storage_move_to_sd/storage_move_to_sd.c +++ b/applications/system/storage_move_to_sd/storage_move_to_sd.c @@ -28,6 +28,10 @@ static void storage_move_to_sd_remove_region() { if(storage_common_exists(storage, INT_PATH(".region_data"))) { storage_common_remove(storage, INT_PATH(".region_data")); } + // No expansion modules yet + if(storage_common_exists(storage, INT_PATH(".expansion.settings"))) { + storage_common_remove(storage, INT_PATH(".expansion.settings")); + } furi_record_close(RECORD_STORAGE); } diff --git a/applications/system/updater/util/update_task_worker_flasher.c b/applications/system/updater/util/update_task_worker_flasher.c index 40f58f462..0c7881e63 100644 --- a/applications/system/updater/util/update_task_worker_flasher.c +++ b/applications/system/updater/util/update_task_worker_flasher.c @@ -348,6 +348,8 @@ int32_t update_task_worker_flash_writer(void* context) { // Production furi_hal_rtc_set_log_level(FuriLogLevelDefault); furi_hal_rtc_reset_flag(FuriHalRtcFlagDebug); + furi_hal_rtc_reset_flag(FuriHalRtcFlagLegacySleep); + furi_hal_rtc_set_heap_track_mode(FuriHalRtcHeapTrackModeNone); #endif update_task_set_progress(update_task, UpdateTaskStageCompleted, 100); success = true;