update mode switch

This commit is contained in:
Steven Dan
2026-05-22 14:14:05 +08:00
parent 0dbe01a0bc
commit bba34bbcd5
5 changed files with 67 additions and 54 deletions

View File

@@ -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)

View File

@@ -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;

View File

@@ -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

View File

@@ -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)

View File

@@ -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);
}