diff --git a/lib_xua/lib_xua/src/dfu/flash_interface.c b/lib_xua/lib_xua/src/dfu/flash_interface.c index 3b12ebb..5584785 100644 --- a/lib_xua/lib_xua/src/dfu/flash_interface.c +++ b/lib_xua/lib_xua/src/dfu/flash_interface.c @@ -23,7 +23,7 @@ */ #ifndef FLASH_MAX_UPGRADE_SIZE //#define FLASH_MAX_UPGRADE_SIZE (512 * 1024) -#define FLASH_MAX_UPGRADE_SIZE (0x1a0000) +#define FLASH_MAX_UPGRADE_SIZE (2200 * 1024) #endif #define FLASH_ERROR() do {} while(0) diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt index e9e51f2..9de14b3 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/CMakeLists.txt @@ -86,7 +86,7 @@ set(APP_COMPILER_FLAGS_f5_music_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC -DF5_MUSIC_UAC1=1 #-DUSE_EX3D -DMIXER=0 - -ldnr_11ms + -ldnr_50ms -DDNR_ENABLE=1 #-llib_ex3d_all -DEQ_EN=1 @@ -129,9 +129,10 @@ set(APP_COMPILER_FLAGS_fact ${SW_USB_FACT_FLAGS} -DI2S_CHANS_DAC=2 -DINPUT_VOLUME_CONTROL=0 -DOUTPUT_VOLUME_CONTROL=0 -DDEBUG_MEMORY_LOG_ENABLED=1 + -DHID_DFU_EN=1 -DXUA_DFU_EN=1 #-DIR_SWITCHING_MODE - -DHID_CONTROLS=0) + -DHID_CONTROLS=1) @@ -200,6 +201,8 @@ set(APP_COMPILER_FLAGS_f6_f7_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DI2S_CHANS_DAC=2 -DAUDIO_CLASS=1 -DMIN_FREQ=48000 -DMAX_FREQ=48000 + -DMCLK_441=512*44100 + -DMCLK_48=512*48000 -DUAC1_MODE=1 -DUSE_EX3D=1 -DF6_F7_FPS_UAC1=1 diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/gen_factory.bat b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/gen_factory.bat index d4acc08..22327bb 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/gen_factory.bat +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/gen_factory.bat @@ -1,3 +1,3 @@ -xflash bin/fact/app_usb_aud_sy102_fact.xe --loader loader.o --upgrade 2 bin/f5_music_uac1/app_usb_aud_sy102_f5_music_uac1.xe --upgrade 3 bin/f1_music_uac2/app_usb_aud_sy102_f1_music_uac2.xe --upgrade 1 bin/f3_f4_fps_uac2/app_usb_aud_sy102_f3_f4_fps_uac2.xe -o %1 +xflash bin/fact/app_usb_aud_sy102_fact.xe --loader loader.o --upgrade 2 bin/f5_music_uac1/app_usb_aud_sy102_f5_music_uac1.xe --upgrade 3 bin/f1_music_uac2/app_usb_aud_sy102_f1_music_uac2.xe --upgrade 1 bin/f3_f4_fps_uac2/app_usb_aud_sy102_f3_f4_fps_uac2.xe --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe -o %1 rem --upgrade 4 bin/f6_f7_fps_uac1/app_usb_aud_sy102_f6_f7_fps_uac1.xe 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 248e797..a656faa 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 @@ -485,11 +485,19 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, } else { +#if F5_MUSIC_UAC1 if (saved_mode >= 2) { + SetRoleSwitchFlag(MODE_F6_F7_FPS_UAC1); + device_reboot(); + while (1); + } +#elif F6_F7_FPS_UAC1 + if (saved_mode <= 1) { SetRoleSwitchFlag(MODE_F5_MUSIC_UAC1); device_reboot(); while (1); } +#endif } #endif @@ -499,8 +507,10 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, if (saved_mode == 255) { #if defined(F5_MUSIC_UAC1) saved_mode = 1; // f5: default music mode +#elif defined(F6_F7_FPS_UAC1) + saved_mode = 2; // f6/f7: default game mode #else - saved_mode = 1; // f6/f7: default off + saved_mode = 1; // default off #endif save_value(path, saved_mode); debug_printf("Saved game_mode to flash: %d\n", saved_mode); @@ -1082,6 +1092,19 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, active_mode = 1; need_reboot = 1; SetRoleSwitchFlag(MODE_F1_MUSIC_UAC2); +#elif (F6_F7_FPS_UAC1 == 1) + // UAC1 FPS firmware: music needs F5, reboot if not already music + if (active_mode != 1) { + active_mode = 1; + need_reboot = 1; + SetRoleSwitchFlag(MODE_F5_MUSIC_UAC1); + } +#elif (F5_MUSIC_UAC1 == 1) + // UAC1 Music firmware: already on music FW, toggle locally + if (active_mode != 1) { + active_mode = 1; + mode_btn_change = 1; + } #else active_mode = (active_mode == 1) ? 0 : 1; mode_btn_change = 1; @@ -1099,6 +1122,19 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, active_mode = 2; need_reboot = 1; SetRoleSwitchFlag(MODE_F3_F4_FPS_UAC2); +#elif (F5_MUSIC_UAC1 == 1) + // UAC1 Music firmware: game needs F6/F7, reboot if not already game + if (active_mode != 2) { + active_mode = 2; + need_reboot = 1; + SetRoleSwitchFlag(MODE_F6_F7_FPS_UAC1); + } +#elif (F6_F7_FPS_UAC1 == 1) + // UAC1 FPS firmware: already on FPS FW, switch locally (IR_OFF) + if (active_mode != 2) { + active_mode = 2; + mode_btn_change = 1; + } #else active_mode = (active_mode == 2) ? 0 : 2; mode_btn_change = 1; @@ -1121,8 +1157,20 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, active_mode = 3; need_reboot = 1; SetRoleSwitchFlag(MODE_F3_F4_FPS_UAC2); +#elif (F5_MUSIC_UAC1 == 1) + // UAC1 Music firmware: AI71 needs F6/F7 FPS, reboot if not already AI71 + if (active_mode != 3) { + active_mode = 3; + need_reboot = 1; + SetRoleSwitchFlag(MODE_F6_F7_FPS_UAC1); + } +#elif (F6_F7_FPS_UAC1 == 1) + // UAC1 FPS firmware: already on FPS FW, switch locally (IR_GAME) + if (active_mode != 3) { + active_mode = 3; + mode_btn_change = 1; + } #else - // FPS firmware: switch algorithm locally (toggle off or activate) active_mode = (active_mode == 3) ? 0 : 3; mode_btn_change = 1; @@ -1156,6 +1204,26 @@ void button_task(chanend c_hidSendData, chanend cc_mic_level, chanend c_uac_vol, active_mode = target; mode_btn_change = 1; } +#elif (F5_MUSIC_UAC1 == 1) + // UAC1 Music FW: mode 1 local, mode 2/3 need F6/F7 reboot + if (target >= 2) { + active_mode = target; + need_reboot = 1; + SetRoleSwitchFlag(MODE_F6_F7_FPS_UAC1); + } else if (target != active_mode) { + active_mode = target; + mode_btn_change = 1; + } +#elif (F6_F7_FPS_UAC1 == 1) + // UAC1 FPS FW: mode 2/3 local, mode 1 needs F5 reboot + if (target <= 1) { + active_mode = target; + need_reboot = 1; + SetRoleSwitchFlag(MODE_F5_MUSIC_UAC1); + } else if (target != active_mode) { + active_mode = target; + mode_btn_change = 1; + } #else active_mode = target; mode_btn_change = 1; diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dfu_flash_interface.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dfu_flash_interface.c index 83b157c..0a204ec 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dfu_flash_interface.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dfu_flash_interface.c @@ -14,7 +14,7 @@ #if HID_DFU_EN #ifndef DFU_FLASH_MAX_UPGRADE_SIZE -#define DFU_FLASH_MAX_UPGRADE_SIZE (1600 * 1024) +#define DFU_FLASH_MAX_UPGRADE_SIZE (2200 * 1024) #endif #define DFU_FLASH_ERROR() diff --git a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c index c66b0e7..4be6d51 100644 --- a/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c +++ b/sw_usb_audio/app_usb_aud_phaten_golden_6ch/src/extensions/dsp.c @@ -894,7 +894,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c } else if (current_mode_local == 1) { // 音乐模式:EX3D关闭,EQ开启 audio_ex3d_set_onoff(0); - g_eq_enable = 1; + //g_eq_enable = 1; #if IR_SWITCHING_MODE is_3d_on = IR_OFF; #else @@ -902,8 +902,15 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c #endif debug_printf("Mode 1: MUSIC, EQ ON, EX3D OFF\n"); } else if (current_mode_local == 2) { +#if (F6_F7_FPS_UAC1 == 1) + // UAC1 Game模式: EX3D关闭, EQ开启, IR_OFF + //g_eq_enable = 1; + audio_ex3d_set_onoff(0); + is_3d_on = IR_OFF; + debug_printf("Mode 2: UAC1 GAME, EQ ON, EX3D OFF (IR_OFF)\n"); +#else // 游戏模式 (IR_GAME, stereo): SF index 0,EQ开启 - g_eq_enable = 1; + //g_eq_enable = 1; #if IR_SWITCHING_MODE audio_ex3d_set_sf(0); // SF 0 = STEREO GAME is_3d_on = IR_GAME; @@ -912,7 +919,16 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c #endif audio_ex3d_set_onoff(1); debug_printf("Mode 2: GAME (IR_GAME) ON, sf=0, EQ ON\n"); +#endif } else if (current_mode_local == 3) { +#if (F6_F7_FPS_UAC1 == 1) + // UAC1 AI71模式: EX3D开启, SF index 0 (stereo game), EQ开启, IR_GAME + //g_eq_enable = 1; + audio_ex3d_set_sf(0); // SF 0 = STEREO GAME + is_3d_on = IR_GAME; + audio_ex3d_set_onoff(1); + debug_printf("Mode 3: UAC1 AI71 (IR_GAME) ON, sf=0, EQ ON\n"); +#else // AI7.1模式 (IR_7_1_GAME, 7.1): SF index 1,EQ开启 g_eq_enable = 1; #if IR_SWITCHING_MODE @@ -923,6 +939,7 @@ void hid_button_task(chanend_t cc_mic_level, chanend_t c_hidRcvData, chanend_t c #endif audio_ex3d_set_onoff(1); debug_printf("Mode 3: AI7.1 (IR_7_1_GAME) ON, sf=1, EQ ON\n"); +#endif } SET_SHARED_GLOBAL(g_3d_on_off_t1, is_3d_on); } else if (tmp == 0xFD) { 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 d941f46..b1c1173 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 @@ -13,7 +13,7 @@ swlock_t lfs_lock = SWLOCK_INITIAL_VALUE; static rtos_qspi_flash_t qspi_flash_ctx_s; #define FLASH_CLKBLK XS1_CLKBLK_3 #ifndef FS_BASE_ADDR -#define FS_BASE_ADDR 0x1a0000 +#define FS_BASE_ADDR (2500 * 1024) #endif #define SECTOR_SIZE 4096 rtos_qspi_flash_t *qspi_flash_ctx = &qspi_flash_ctx_s;