diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc index 9f7d3ed..4a3ef11 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/audiohw.xc @@ -1478,6 +1478,9 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, if (factory_reset_req) { SET_SHARED_GLOBAL(g_request_factory_reset, 0); debug_printf("Factory reset: rebooting...\n"); + unsafe { + lfs_format_all(); + } delay_milliseconds(500); device_reboot(); while (1); diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq.c index aae4adf..094e712 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq.c @@ -775,17 +775,7 @@ unsigned char process_send_params(uint8_t data[], uint16_t len) { // 处理恢复出厂默认命令 (0x84) - FACTORY_RESET if (data[1] == 0x84) { - // 删除所有Flash保存的参数文件 - lfs_remove_file("game_mode"); - lfs_remove_file("mic_vol"); - lfs_remove_file("dac_vol"); - lfs_remove_file("footstep"); - lfs_remove_file("monitor_sw"); - lfs_remove_file("mic_mute"); - lfs_remove_file("hp_mute"); - // 删除EQ flash数据 - eq_flash_clear_all(); - // 通知button_task在合适时机重启(避免在USB上下文中直接reboot) + // 通知button_task在合适时机删除其他文件并重启 SET_SHARED_GLOBAL(g_request_factory_reset, 1); read_request.pending_cmd = 0x84; return true; diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq_flash_storage.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq_flash_storage.c index a5bc54d..02a3b92 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq_flash_storage.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/eq_flash_storage.c @@ -737,6 +737,18 @@ int eq_save_dirty_params(void) { return -1; } + int has_dirty = 0; + for (int i = 0; i < single_param_database.param_count; i++) { + if (single_param_database.params[i].is_dirty) { + has_dirty = 1; + break; + } + } + + if (!has_dirty) { + return 0; + } + if (lfs_init() != 0) { lfs_deinit(); return -1; @@ -2006,7 +2018,6 @@ int eq_flash_load_current_mode(void) DPRINTF(" Enable file does not exist, using default enable 0\n"); eq_enable = 0; } - // 设置全局变量g_eq_enable extern unsigned int g_eq_enable; g_eq_enable = eq_enable; diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/lfs_services.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/lfs_services.c index d38d83c..6029727 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/lfs_services.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/lfs_services.c @@ -91,7 +91,6 @@ int lfs_init(void) { // 固件升级期间禁止LFS操作,避免与DFU flash访问冲突 if (g_in_fw_upgrade) { debug_printf("lfs_init: blocked during firmware upgrade\n"); - lfs_session_active = 0; return -2; } #endif