diff --git a/sw_usb_audio/app_usb_aud_fosi_c1/CMakeLists.txt b/sw_usb_audio/app_usb_aud_fosi_c1/CMakeLists.txt index 04f3b06..0e06442 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1/CMakeLists.txt +++ b/sw_usb_audio/app_usb_aud_fosi_c1/CMakeLists.txt @@ -122,12 +122,11 @@ set(APP_COMPILER_FLAGS_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_RX -DXUA_USE_SW_PLL=0 -DOUT_VOLUME_IN_MIXER=0 -DFPS_UAC1=1 - #-fxscope - #-DXSCOPE + -DUAC1_MODE=1 -DXUA_DFU_EN=0 - -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=32 + -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=24 -DOUTPUT_FORMAT_COUNT=1 - -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=32 + -DSTREAM_FORMAT_INPUT_1_RESOLUTION_BITS=24 -DINPUT_FORMAT_COUNT=1 -DMCLK_441=\(1024*44100\) -DMCLK_48=\(1024*48000\) @@ -140,10 +139,13 @@ set(APP_COMPILER_FLAGS_fps_uac1 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_RX -DXMOS_FPS_EN=1 -DUAC1=1 -DWIN_OS_DETECTION=1 + #-DLOW_POWER_EN=1 + -DCHAN_BUFF_CTRL=1 + -DXUD_PRIORITY_HIGH=1 -DHID_CONTROLS=1 -DDNR_50MS=1 -ldnr_50ms - #-DDEBUG_MEMORY_LOG_ENABLED=1 + -DDEBUG_MEMORY_LOG_ENABLED=1 -DNO_LOG_TIMESTAPS=0 -DI2S_CHANS_ADC=2) diff --git a/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/audiohw.xc b/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/audiohw.xc index 2fcae34..d693e7f 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/audiohw.xc +++ b/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/audiohw.xc @@ -218,8 +218,10 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot) switch (c1_mode) { case 1: +#if !BYPASS_UAC1 SetRoleSwitchFlag(MODE_BYPASS_UAC1); - reboot_need = 1; + reboot_need = 0; +#endif break; case 2: SetRoleSwitchFlag(MODE_V71_UAC1); @@ -230,20 +232,25 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot) reboot_need = 0; break; case 4: +#if !FPS_UAC1 SetRoleSwitchFlag(MODE_FPS_UAC1); reboot_need = 1; +#endif break; case 5: - SetRoleSwitchFlag(MODE_FPS_UAC1); - reboot_need = 0; +#if !BYPASS_UAC1 + SetRoleSwitchFlag(MODE_BYPASS_UAC1); + reboot_need = 1; +#endif break; } #endif + + debug_printf("switch_mode_by_c1_mode: reboot_need = %d, force_reboot = %d\n", reboot_need, force_reboot); + debug_printf("switch_mode_by_c1_mode: c1_mode = %d\n", c1_mode); if (reboot_need || force_reboot) { - delay_milliseconds(20); - debug_printf("switch_mode_by_c1_mode: reboot_need = %d, force_reboot = %d\n", reboot_need, force_reboot); - debug_printf("switch_mode_by_c1_mode: c1_mode = %d\n", c1_mode); + delay_milliseconds(200); device_reboot(); while (1); } @@ -1992,7 +1999,7 @@ static inline void apply_c1_panel_leds(unsigned mode_led_color_idx, unsigned mic p_mic_mute_led_blue <: 1; } -void app_control_slave(server interface c1_led_ctrl_if i_c1_led_ctrl, chanend c_eq_data) +void app_control_slave(server interface c1_led_ctrl_if i_c1_led_ctrl) { // 改动原因:tile1 先于 tile0 运行,上电先把硬件灯全灭且不调用 apply,避免用占位 mic/mode 组合误亮;shadow 置为全灭电平便于首包 set_* 时 apply 与端口一致。 unsigned led_shadow = 0xF; diff --git a/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/user_main.h b/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/user_main.h index f3ee6a7..0eb4b5e 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/user_main.h +++ b/sw_usb_audio/app_usb_aud_fosi_c1/src/extensions/user_main.h @@ -27,7 +27,7 @@ extern void UserBufferManagementSetChan(chanend c); extern void dsp_main (chanend c_data , chanend cc_br_eof); extern void br_dsp_proc_task(chanend c_validate, chanend cc_br_eof); extern void validate_algo(chanend c_validate); -void app_control_slave(server interface c1_led_ctrl_if i_c1_led_ctrl, chanend c_eq_data); +void app_control_slave(server interface c1_led_ctrl_if i_c1_led_ctrl); extern void dnr_dsp_proc_task(void); extern void dsp_core0(void); extern void eq_dsp_main(chanend c_data); @@ -36,7 +36,7 @@ extern unsafe streaming chanend uc_dfu; extern void fps1_dsp_proc_task(void); extern void fps2_dsp_proc_task(void); -#define USER_MAIN_DECLARATIONS chan c_i2s; chan c_data_transport, cc_br_eof, c_eq_data, c_validate; \ +#define USER_MAIN_DECLARATIONS chan c_data_transport, cc_br_eof, c_validate; \ streaming chan c_audiohw; streaming chan c_dfu; interface c1_led_ctrl_if i_c1_led_ctrl; \ chan c_usb_to_io; chan c_io_to_usb; chan c_io_to_dspL; chan c_dspL_to_io; chan c_io_to_dspR; chan c_dspR_to_io; \ chan c_erase; @@ -58,7 +58,7 @@ extern void fps2_dsp_proc_task(void); dsp_core0();\ } \ \ - on tile[1]: app_control_slave(i_c1_led_ctrl, c_eq_data); \ + on tile[1]: app_control_slave(i_c1_led_ctrl); \ \ #else @@ -69,8 +69,6 @@ extern void fps2_dsp_proc_task(void); unsafe { \ uc_audiohw = (chanend) c_audiohw;\ uc_br_data = (chanend) c_data_transport;\ - uc_i2s = (chanend) c_i2s;\ - uc_eq_data = (chanend) c_eq_data;\ uc_dfu = (chanend) c_dfu;\ } \ validate_algo(c_validate); \ @@ -79,7 +77,7 @@ extern void fps2_dsp_proc_task(void); AudioHwRemote(c_audiohw, i_c1_led_ctrl, c_erase, c_dfu);\ }\ on tile[1]: { br_dsp_proc_task(c_validate, cc_br_eof); } \ - on tile[1]: app_control_slave(i_c1_led_ctrl, c_eq_data); \ + on tile[1]: app_control_slave(i_c1_led_ctrl); \ \ #endif diff --git a/sw_usb_audio/app_usb_aud_fosi_c1_lp/CMakeLists.txt b/sw_usb_audio/app_usb_aud_fosi_c1_lp/CMakeLists.txt index e1bd677..346f1fe 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1_lp/CMakeLists.txt +++ b/sw_usb_audio/app_usb_aud_fosi_c1_lp/CMakeLists.txt @@ -87,27 +87,27 @@ set(SW_FACT_AUDIO_FLAGS ${EXTRA_BUILD_FLAGS} ${SW_FACT_VERSION} # BYTE2: Contains Input Channel Count, Output Channel Count, Other Config # BYTE3: Reserved, currently set to 0 -set(APP_COMPILER_FLAGS_factory ${SW_FACT_AUDIO_FLAGS} -DI2S_CHANS_DAC=2 - -DNUM_USB_CHAN_IN=0 - -DXUA_DFU_EN=1 - -DBOOT_MODE=1 - -DFACT_MODE=1 - #-fxscope - #-DXSCOPE - -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=32 - -DOUTPUT_FORMAT_COUNT=1 - -DXUA_SPDIF_TX_EN=0 - -DMAX_FREQ=\(48000\) - -DMIN_FREQ=\(48000\) - -DDEFAULT_FREQ=\(48000\) - -DUART_DEBUG=0 - -DHID_CONTROLS=1 - -DEQ_EN=1 - -DHID_DFU_EN=1 - #-DDEBUG_MEMORY_LOG_ENABLED=0 - -DNUM_USB_CHAN_OUT=2 - -DI2S_CHANS_ADC=0) - +#set(APP_COMPILER_FLAGS_factory ${SW_FACT_AUDIO_FLAGS} -DI2S_CHANS_DAC=2 +# -DNUM_USB_CHAN_IN=0 +# -DXUA_DFU_EN=1 +# -DBOOT_MODE=1 +# -DFACT_MODE=1 +# #-fxscope +# #-DXSCOPE +# -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=32 +# -DOUTPUT_FORMAT_COUNT=1 +# -DXUA_SPDIF_TX_EN=0 +# -DMAX_FREQ=\(48000\) +# -DMIN_FREQ=\(48000\) +# -DDEFAULT_FREQ=\(48000\) +# -DUART_DEBUG=0 +# -DHID_CONTROLS=1 +# -DEQ_EN=1 +# -DHID_DFU_EN=1 +# #-DDEBUG_MEMORY_LOG_ENABLED=0 +# -DNUM_USB_CHAN_OUT=2 +# -DI2S_CHANS_ADC=0) +# set(APP_COMPILER_FLAGS_bypass_uac1 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_RX_EN=0 -DXUA_SPDIF_TX_EN=0 -DI2S_CHANS_DAC=2 @@ -122,8 +122,7 @@ set(APP_COMPILER_FLAGS_bypass_uac1 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_RX -DXUA_USE_SW_PLL=0 -DOUT_VOLUME_IN_MIXER=0 -DBYPASS_UAC1=1 - #-fxscope - #-DXSCOPE + -DUAC1_MODE=1 -DXUA_DFU_EN=1 -DSTREAM_FORMAT_OUTPUT_1_RESOLUTION_BITS=24 -DOUTPUT_FORMAT_COUNT=1 @@ -135,15 +134,15 @@ set(APP_COMPILER_FLAGS_bypass_uac1 ${SW_USB_AUDIO_FLAGS} -DXUA_SPDIF_RX -DMIN_FREQ=\(48000\) -DDEFAULT_FREQ=\(48000\) -DHID_CONTROLS_UAC1=1 - #-DEQ_EN=1 + -DEQ_EN=1 -DXMOS_FPS_EN=0 -DUAC1=1 -DHID_CONTROLS=1 - #-DDNR_50MS=1 - #-DLOW_POWER_EN=1 - #-DCHAN_BUFF_CTRL=1 - #-DXUD_PRIORITY_HIGH=1 - #-ldnr_50ms + -DDNR_50MS=1 + -DLOW_POWER_EN=1 + -DCHAN_BUFF_CTRL=1 + -DXUD_PRIORITY_HIGH=1 + -ldnr_50ms -DDEBUG_MEMORY_LOG_ENABLED=1 -DNO_LOG_TIMESTAPS=0 -DI2S_CHANS_ADC=2) diff --git a/sw_usb_audio/app_usb_aud_fosi_c1_lp/src/extensions/audiohw.xc b/sw_usb_audio/app_usb_aud_fosi_c1_lp/src/extensions/audiohw.xc index afb21f3..03c5f79 100644 --- a/sw_usb_audio/app_usb_aud_fosi_c1_lp/src/extensions/audiohw.xc +++ b/sw_usb_audio/app_usb_aud_fosi_c1_lp/src/extensions/audiohw.xc @@ -218,8 +218,10 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot) switch (c1_mode) { case 1: +#if !BYPASS_UAC1 SetRoleSwitchFlag(MODE_BYPASS_UAC1); - reboot_need = 1; + reboot_need = 0; +#endif break; case 2: SetRoleSwitchFlag(MODE_V71_UAC1); @@ -230,20 +232,25 @@ void switch_mode_by_c1_mode(unsigned c1_mode, unsigned force_reboot) reboot_need = 0; break; case 4: +#if !FPS_UAC1 SetRoleSwitchFlag(MODE_FPS_UAC1); reboot_need = 1; break; +#endif case 5: - SetRoleSwitchFlag(MODE_FPS_UAC1); - reboot_need = 0; +#if !BYPASS_UAC1 + SetRoleSwitchFlag(MODE_BYPASS_UAC1); + reboot_need = 1; +#endif break; } -#endif +#endif // UAC1_MODE == 1 + + debug_printf("switch_mode_by_c1_mode: reboot_need = %d, force_reboot = %d\n", reboot_need, force_reboot); + debug_printf("switch_mode_by_c1_mode: c1_mode = %d\n", c1_mode); if (reboot_need || force_reboot) { - delay_milliseconds(20); - debug_printf("switch_mode_by_c1_mode: reboot_need = %d, force_reboot = %d\n", reboot_need, force_reboot); - debug_printf("switch_mode_by_c1_mode: c1_mode = %d\n", c1_mode); + delay_milliseconds(200); device_reboot(); while (1); }