调MUTE参数,送样等测试反馈

This commit is contained in:
flym 2026-06-11 02:28:13 +08:00
parent f7796878e1
commit 2e332c50f8
15 changed files with 37404 additions and 35621 deletions

View File

@ -422,9 +422,9 @@ DAC硬件上的连接方式,可选的配置:
#define TCFG_CALL_USE_DIGITAL_VOLUME 0
// 使能改宏提示音音量使用music音量
#define APP_AUDIO_STATE_WTONE_BY_MUSIC (1)
#define APP_AUDIO_STATE_WTONE_BY_MUSIC (0)
// 0:提示音不使用默认音量; 1:默认提示音音量值
#define TONE_MODE_DEFAULE_VOLUME (0)
#define TONE_MODE_DEFAULE_VOLUME (18)
//AudioEffects代码链接管理
#define AUDIO_EFFECTS_DRC_AT_RAM 0

View File

@ -1238,7 +1238,7 @@ void bt_status_connect(struct bt_event *bt)
#endif
/* log_debug("tone status:%d\n", tone_get_status()); */
if (get_call_status() == BT_CALL_HANGUP) {
//bt_tone_play_index(IDEX_TONE_BT_CONN, 1, NULL);
bt_tone_play_index(IDEX_TONE_BT_CONN, 1, NULL);
}
}

View File

@ -164,12 +164,12 @@ static inline void __lp_way_adc_start()
{
printf("__lp_way_adc_start\n");
#if (TCFG_LP_MULTIPLEX_WITH_FM && (defined(CONFIG_CPU_BR25)))
linein_dec_open(AUDIO_LIN1R_CH, 44100); // 696X 系列FM 与 LP复用脚绑定选择AUDIO_LIN1R_CH
linein_dec_open(AUDIO_LIN1R_CH, 44100); // 696X 系列FM 与 LP复用脚绑定选择AUDIO_LIN1R_CH
#elif ((TCFG_LP_LR_CH & AUDIO_LIN1R_CH) && (defined(CONFIG_CPU_BR25))) // FM 与 LP 复用未使能不可选择AUDIO_LIN1R_CH
log_e("FM is not multiplexed with lp. channel selection err\n");
ASSERT(0, "err\n");
#else
//printf("linein_dec_open(TCFG_LP_LR_CH, 44100);\n");
// printf("linein_dec_open(TCFG_LP_LR_CH, 44100);\n");
printf("linein_dec_open(TCFG_LP_LR_CH, 44100) = %d\n", linein_dec_open(TCFG_LP_LR_CH, 44100));
#endif
}
@ -189,8 +189,19 @@ int lp_start(void)
return true;
}
// #if (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ADC)
// printf("__lp_way_adc_start\n");
// __lp_way_adc_start();
// __this->audio_state = APP_AUDIO_STATE_MUSIC;
// #elif (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ANALOG)
#if (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ADC)
printf("__lp_way_adc_start\n");
#ifndef CONFIG_MEDIA_NEW_ENABLE
#if AUDIO_OUTPUT_AUTOMUTE
extern void mix_out_automute_lp_start(void);
mix_out_automute_lp_start();
#endif // #if AUDIO_OUTPUT_AUTOMUTE
#endif
__lp_way_adc_start();
__this->audio_state = APP_AUDIO_STATE_MUSIC;
#elif (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ANALOG)
@ -243,6 +254,12 @@ void lp_stop(void)
log_info("lp is aleady stop\n");
return;
}
#ifndef CONFIG_MEDIA_NEW_ENABLE
#if AUDIO_OUTPUT_AUTOMUTE
extern void mix_out_automute_lp_stop(void);
mix_out_automute_lp_stop();
#endif // #if AUDIO_OUTPUT_AUTOMUTE
#endif
#if (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ADC)
linein_dec_close();
#elif (TCFG_LP_INPUT_WAY == LINEIN_INPUT_WAY_ANALOG)

View File

@ -97,7 +97,7 @@
#define SYS_DEFAULT_VOL SYS_MAX_VOL//SYS_MAX_VOL //(SYS_MAX_VOL/2)
#define SYS_DEFAULT_TONE_VOL SYS_MAX_VOL/2 //(SYS_MAX_VOL)
#define SYS_DEFAULT_TONE_VOL 18 //(SYS_MAX_VOL)
#define SYS_DEFAULT_SIN_VOL 17
#define APP_AUDIO_STATE_IDLE 0

File diff suppressed because it is too large Load Diff

View File

@ -1119,7 +1119,12 @@ void audio_mix_out_automute_mute(u8 mute)
pa_mute_var.mute_cnt = 0;
pa_mute_var.mute_flag = 0;
pa_mute_var.unmute_cnt = 0;
pa_mute_var.unmute_flag = 1;
pa_mute_var.unmute_flag = 0;
if (app_get_curr_task() == APP_LP_TASK) {
PA_UNMUTE();
} else {
pa_mute_var.unmute_flag = 1;
}
}
#if 0
if (mute)
@ -1145,21 +1150,247 @@ void audio_mix_out_automute_mute(u8 mute)
#endif
}
/* LP: 库内 UNMUTE 会吃落针“丝丝”;轮询对称 mute/unmute */
/* cq2.txt: 咔咔尖峰 max=2317/min=382 误 unmute+confirmed需 max/min 双门槛 */
/* 确认播放后不再快速 mute避免蔡琴换气/报数尾音被吞;曲间用深静音判定 */
#define LP_UNMUTE_ENERGY_THRESH 1200
#define LP_UNMUTE_MIN_ENERGY 500
#define LP_UNMUTE_SUSTAIN_MS 60
#define LP_CONFIRM_MAX_ENERGY 1200
#define LP_CONFIRM_MIN_ENERGY 500
#define LP_CONFIRM_SUSTAIN_MS 100
#define LP_FALSE_MIN_ENERGY 450
#define LP_FALSE_SUSTAIN_MS 220
#define LP_MUTE_ENERGY_THRESH 400
#define LP_MUTE_SUSTAIN_MS 600
#define LP_GAP_MUTE_MIN_ENERGY 200
#define LP_GAP_MUTE_MAX_ENERGY 500
#define LP_GAP_MUTE_SUSTAIN_MS 1500
#define LP_UNMUTE_HOLDOFF_MS 80
#define LP_AUTOMUTE_POLL_MS 20
static u8 lp_pa_open = 0;
static u8 lp_confirmed = 0;
static u16 lp_automute_tid = 0;
static u16 lp_high_ms = 0;
static u16 lp_low_ms = 0;
static u16 lp_false_ms = 0;
static u16 lp_gap_ms = 0;
static u16 lp_confirm_ms = 0;
static u16 lp_holdoff_ms = 0;
static u16 lp_win_min = 0xffff;
static u16 lp_win_max = 0;
static void lp_energy_win_update(int energy)
{
if (energy < 0) {
return;
}
if ((u16)energy < lp_win_min) {
lp_win_min = (u16)energy;
}
if ((u16)energy > lp_win_max) {
lp_win_max = (u16)energy;
}
}
#define MIX_OUT_AUTOMUTE_ENERGY_DBG_EN 1
#if MIX_OUT_AUTOMUTE_ENERGY_DBG_EN
static u16 mix_out_automute_energy_dbg_tid = 0;
static void mix_out_automute_energy_dbg(void *priv)
{
int energy;
if (!mix_out_automute_hdl) {
return;
}
energy = audio_energy_detect_energy_get(mix_out_automute_hdl, BIT(0));
printf("e_det energy=%d\n", energy);
if (app_get_curr_task() == APP_LP_TASK && lp_automute_tid) {
lp_energy_win_update(energy);
}
}
#endif
static void lp_automute_reset_tentative(void)
{
lp_low_ms = 0;
lp_false_ms = 0;
lp_gap_ms = 0;
lp_confirm_ms = 0;
}
static void lp_automute_force_mute(const char *reason, u16 e_max, u16 e_min)
{
audio_mix_out_automute_mute(1);
lp_pa_open = 0;
lp_confirmed = 0;
lp_high_ms = 0;
lp_automute_reset_tentative();
printf("lp_automute: %s max=%d min=%d\n", reason, e_max, e_min);
}
static void lp_automute_poll(void *priv)
{
u16 e_max;
u16 e_min;
if (app_get_curr_task() != APP_LP_TASK || !mix_out_automute_hdl) {
return;
}
e_max = lp_win_max;
e_min = lp_win_min;
lp_win_min = 0xffff;
lp_win_max = 0;
if (e_max == 0 && e_min == 0xffff) {
return;
}
if (e_max >= LP_UNMUTE_ENERGY_THRESH && e_min >= LP_UNMUTE_MIN_ENERGY) {
lp_high_ms += LP_AUTOMUTE_POLL_MS;
} else {
lp_high_ms = 0;
}
if (!lp_pa_open && lp_high_ms >= LP_UNMUTE_SUSTAIN_MS) {
audio_mix_out_automute_mute(0);
lp_pa_open = 1;
lp_confirmed = 0;
lp_holdoff_ms = LP_UNMUTE_HOLDOFF_MS;
lp_automute_reset_tentative();
printf("lp_automute: unmute max=%d min=%d\n", e_max, e_min);
return;
}
if (!lp_pa_open) {
return;
}
if (!lp_confirmed) {
if (e_max >= LP_CONFIRM_MAX_ENERGY && e_min >= LP_CONFIRM_MIN_ENERGY) {
lp_confirm_ms += LP_AUTOMUTE_POLL_MS;
} else {
lp_confirm_ms = 0;
}
if (lp_confirm_ms >= LP_CONFIRM_SUSTAIN_MS) {
lp_confirmed = 1;
lp_false_ms = 0;
lp_low_ms = 0;
printf("lp_automute: confirmed max=%d min=%d\n", e_max, e_min);
return;
}
if (lp_holdoff_ms) {
if (lp_holdoff_ms > LP_AUTOMUTE_POLL_MS) {
lp_holdoff_ms -= LP_AUTOMUTE_POLL_MS;
} else {
lp_holdoff_ms = 0;
}
lp_low_ms = 0;
lp_false_ms = 0;
} else {
if (e_min < LP_FALSE_MIN_ENERGY) {
lp_false_ms += LP_AUTOMUTE_POLL_MS;
} else {
lp_false_ms = 0;
}
if (e_min < LP_MUTE_ENERGY_THRESH) {
lp_low_ms += LP_AUTOMUTE_POLL_MS;
} else {
lp_low_ms = 0;
}
}
if (lp_false_ms >= LP_FALSE_SUSTAIN_MS) {
lp_automute_force_mute("false-mute", e_max, e_min);
} else if (lp_low_ms >= LP_MUTE_SUSTAIN_MS) {
lp_automute_force_mute("mute", e_max, e_min);
}
return;
}
if (e_min < LP_GAP_MUTE_MIN_ENERGY && e_max < LP_GAP_MUTE_MAX_ENERGY) {
lp_gap_ms += LP_AUTOMUTE_POLL_MS;
} else {
lp_gap_ms = 0;
}
if (lp_gap_ms >= LP_GAP_MUTE_SUSTAIN_MS) {
lp_automute_force_mute("gap-mute", e_max, e_min);
}
}
void mix_out_automute_lp_start(void)
{
lp_pa_open = 0;
lp_confirmed = 0;
lp_high_ms = 0;
lp_holdoff_ms = 0;
lp_automute_reset_tentative();
lp_win_min = 0xffff;
lp_win_max = 0;
if (mix_out_automute_hdl) {
audio_energy_detect_skip(mix_out_automute_hdl, 0xFFFF, 0);
audio_mix_out_automute_mute(1);
}
if (!lp_automute_tid) {
lp_automute_tid = sys_timer_add(NULL, lp_automute_poll, LP_AUTOMUTE_POLL_MS);
}
printf("lp_automute: start\n");
}
void mix_out_automute_lp_stop(void)
{
lp_pa_open = 0;
lp_confirmed = 0;
lp_high_ms = 0;
lp_holdoff_ms = 0;
lp_automute_reset_tentative();
lp_win_min = 0xffff;
lp_win_max = 0;
printf("lp_automute: stop\n");
}
/* #define AUDIO_E_DET_UNMUTE (0x00) */
/* #define AUDIO_E_DET_MUTE (0x01) */
void mix_out_automute_handler(u8 event, u8 ch)
{
if (app_get_curr_task() == APP_LP_TASK) {
if (!event) {
printf(">>>> ch:%d UNMUTE blocked (LP poll)\n", ch);
return;
}
if (lp_confirmed) {
printf(">>>> ch:%d MUTE blocked (LP confirmed)\n", ch);
return;
}
printf(">>>> ch:%d MUTE (LP lib)\n", ch);
if (ch < app_audio_output_channel_get()) {
audio_mix_out_automute_mute(1);
lp_pa_open = 0;
lp_confirmed = 0;
lp_high_ms = 0;
lp_holdoff_ms = 0;
lp_automute_reset_tentative();
lp_win_min = 0xffff;
lp_win_max = 0;
}
return;
}
printf(">>>> ch:%d %s\n", ch, event ? ("MUTE") : ("UNMUTE"));
if (ch == app_audio_output_channel_get())
{
/* ch 为通道索引(0/1...); channel_get() 返回通道总数,不可直接 == 比较 */
if (ch < app_audio_output_channel_get()) {
audio_mix_out_automute_mute(event);
}
else
{
#if DAC_AUTO_HIGH_Z_EN
else {
app_audio_output_ch_mute(BIT(ch), event);
#endif
}
#endif
}
void mix_out_automute_skip(u8 skip)
@ -1180,52 +1411,41 @@ void mix_out_automute_open()
return;
}
audio_energy_detect_param e_det_param = {0};
#if 1
/*e_det_param.mute_energy = 5;
#if 0
e_det_param.mute_energy = 5;
e_det_param.unmute_energy = 10;
e_det_param.mute_time_ms = 1000;
e_det_param.unmute_time_ms = 50;
e_det_param.count_cycle_ms = 10;*/
/*e_det_param.mute_energy = 300;
e_det_param.unmute_energy = 340;
e_det_param.mute_time_ms = 40;
e_det_param.unmute_time_ms = 25;
e_det_param.count_cycle_ms = 5; */
/*e_det_param.mute_energy = 140;
e_det_param.unmute_energy = 200;
e_det_param.mute_time_ms = 80;
e_det_param.unmute_time_ms = 15;
e_det_param.count_cycle_ms = 5; */
/*e_det_param.mute_energy = 160; //差不多了
e_det_param.unmute_energy = 200;
e_det_param.mute_time_ms = 55;
e_det_param.unmute_time_ms = 15;
e_det_param.count_cycle_ms = 5;*/
/* e_det_param.mute_energy = 175; //2026.05.18 备份参数
e_det_param.unmute_energy = 235;
e_det_param.mute_time_ms = 32;
e_det_param.unmute_time_ms = 15;
e_det_param.count_cycle_ms = 5; */
e_det_param.mute_energy = 155;
e_det_param.unmute_energy = 215;
e_det_param.mute_time_ms = 34;
e_det_param.unmute_time_ms = 13;
e_det_param.count_cycle_ms = 5;
e_det_param.count_cycle_ms = 10;
#else
#if 0
/* 混音输出自动静音:能量检测,低能量时 mute 以减少底噪/杂音(如黑胶空白处喀拉声) */
e_det_param.mute_energy = 140; /* 能量阈值:低于此值视为“静音”,配合 mute_time_ms 达成后触发 mute */
e_det_param.unmute_energy = 200; /* 能量阈值:高于此值视为“有声音”,配合 unmute_time_ms 达成后解除 mute */
e_det_param.mute_time_ms = 160; /* 静音判定时长(ms):持续低能量超过此时间后才执行 mute避免误判 */
e_det_param.unmute_time_ms = 15; /* 解除静音时长(ms):持续高能量超过此时间后才 unmute喀拉声随机短促宜设小 */
e_det_param.count_cycle_ms = 5; /* 检测周期(ms):每 5ms 采样一次能量,周期越短响应越快、耗 CPU 略增 */
#endif
//非屏蔽线拾音头静音参数
/* e_det_param.mute_energy = 500;
e_det_param.unmute_energy = 550;
e_det_param.mute_time_ms = 35;
e_det_param.unmute_time_ms = 13;
e_det_param.count_cycle_ms = 5; */
/* 非LP用库参数; LP由轮询控制unmute库只辅助mute(极低能量曲间) */
e_det_param.mute_energy = 40;
e_det_param.unmute_energy = 800;
e_det_param.mute_time_ms = 200;
e_det_param.unmute_time_ms = 80;
e_det_param.count_cycle_ms = 5;
/*屏蔽线拾音头静音参数 2026.0520 17:30
e_det_param.mute_energy = 350;
e_det_param.unmute_energy = 370;
e_det_param.mute_time_ms = 35;
e_det_param.unmute_time_ms = 13;
e_det_param.count_cycle_ms = 5; */
/* e_det_param.mute_energy = 240;
e_det_param.unmute_energy = 300;
@ -1246,12 +1466,28 @@ void mix_out_automute_open()
e_det_param.ch_total = app_audio_output_channel_get();
#endif
e_det_param.dcc = 1;
printf("mix_out_automute e_det: mute_energy=%d unmute_energy=%d mute_time_ms=%u unmute_time_ms=%u count_cycle_ms=%u ch_total=%d\n",
e_det_param.mute_energy, e_det_param.unmute_energy,
e_det_param.mute_time_ms, e_det_param.unmute_time_ms,
e_det_param.count_cycle_ms, e_det_param.ch_total);
mix_out_automute_hdl = audio_energy_detect_open(&e_det_param);
mix_out_automute_entry = audio_energy_detect_entry_get(mix_out_automute_hdl);
#if MIX_OUT_AUTOMUTE_ENERGY_DBG_EN
if (mix_out_automute_energy_dbg_tid) {
sys_timer_del(mix_out_automute_energy_dbg_tid);
}
mix_out_automute_energy_dbg_tid = sys_timer_add(NULL, mix_out_automute_energy_dbg, 5);
#endif
}
void mix_out_automute_close()
{
#if MIX_OUT_AUTOMUTE_ENERGY_DBG_EN
if (mix_out_automute_energy_dbg_tid) {
sys_timer_del(mix_out_automute_energy_dbg_tid);
mix_out_automute_energy_dbg_tid = 0;
}
#endif
if (mix_out_automute_hdl)
{
audio_energy_detect_close(mix_out_automute_hdl);

Binary file not shown.

View File

@ -1,66 +1,66 @@
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\uboot.boot .
copy ..\..\tone.cfg .
copy ..\..\cfg_tool.bin .
copy ..\..\app.bin .
copy ..\..\br23loader.bin .
copy ..\..\eq_cfg_bt.bin .
copy ..\..\eq_cfg_lp.bin .
copy ..\..\ota_all.bin .
copy ..\..\ota_nor.bin .
::..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_bt.bin eq_cfg_lp.bin %1
..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_bt.bin eq_cfg_lp.bin -format all %1 -key KTS-AC69xx_5458.key
:: -format all
::-reboot 2500
@rem ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ļ<EFBFBD>-format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
@rem <EFBFBD><EFBFBD><EFBFBD>ɹ̼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
copy ota_all.bin ota.bin
..\..\fw_add.exe -noenc -fw jl_isd.fw -add ota.bin -type 100 -out jl_isd_all.fw
copy ota_nor.bin ota.bin
..\..\fw_add.exe -noenc -fw jl_isd.fw -add ota.bin -type 100 -out jl_isd_nor.fw
@rem <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ýű<EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD> FW <20>ļ<EFBFBD><C4BC><EFBFBD>
..\..\fw_add.exe -noenc -fw jl_isd_all.fw -add script.ver -out jl_isd_all.fw
..\..\fw_add.exe -noenc -fw jl_isd_nor.fw -add script.ver -out jl_isd_nor.fw
..\..\ufw_maker.exe -fw_to_ufw jl_isd_all.fw
..\..\ufw_maker.exe -fw_to_ufw jl_isd_nor.fw
copy jl_isd_all.ufw update.ufw
copy jl_isd_nor.ufw nor_update.ufw
copy jl_isd_all.fw jl_isd.fw
del jl_isd_all.ufw jl_isd_nor.ufw jl_isd_all.fw jl_isd_nor.fw
@REM <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
@rem <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>
@rem -format vm //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>VM <20><><EFBFBD><EFBFBD>
@rem -format cfg //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>BT CFG <20><><EFBFBD><EFBFBD>
@rem -format 0x3f0-2 //<EFBFBD><EFBFBD>ʾ<EFBFBD>ӵ<EFBFBD> 0x3f0 <20><> sector <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><> sector(<28><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ16<31><36><EFBFBD>ƻ<EFBFBD>10<31><30><EFBFBD>ƶ<EFBFBD><C6B6>ɣ<EFBFBD><C9A3>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>10<31><30><EFBFBD><EFBFBD>)
ping /n 2 127.1>null
IF EXIST null del null
@echo off
cd %~dp0
copy ..\..\script.ver .
copy ..\..\uboot.boot .
copy ..\..\tone.cfg .
copy ..\..\cfg_tool.bin .
copy ..\..\app.bin .
copy ..\..\br23loader.bin .
copy ..\..\eq_cfg_bt.bin .
copy ..\..\eq_cfg_lp.bin .
copy ..\..\ota_all.bin .
copy ..\..\ota_nor.bin .
::..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_bt.bin eq_cfg_lp.bin %1
..\..\isd_download.exe -tonorflash -dev br23 -boot 0x12000 -div8 -wait 300 -uboot uboot.boot -app app.bin -res tone.cfg cfg_tool.bin eq_cfg_bt.bin eq_cfg_lp.bin -format all %1 -key KTS-AC69xx_5458.key
:: -format all
::-reboot 2500
@rem ?????????-format all
if exist *.mp3 del *.mp3
if exist *.PIX del *.PIX
if exist *.TAB del *.TAB
if exist *.res del *.res
if exist *.sty del *.sty
@rem ?????????????
copy ota_all.bin ota.bin
..\..\fw_add.exe -noenc -fw jl_isd.fw -add ota.bin -type 100 -out jl_isd_all.fw
copy ota_nor.bin ota.bin
..\..\fw_add.exe -noenc -fw jl_isd.fw -add ota.bin -type 100 -out jl_isd_nor.fw
@rem ???????y????·Ú????? FW ?????
..\..\fw_add.exe -noenc -fw jl_isd_all.fw -add script.ver -out jl_isd_all.fw
..\..\fw_add.exe -noenc -fw jl_isd_nor.fw -add script.ver -out jl_isd_nor.fw
..\..\ufw_maker.exe -fw_to_ufw jl_isd_all.fw
..\..\ufw_maker.exe -fw_to_ufw jl_isd_nor.fw
copy jl_isd_all.ufw update.ufw
copy jl_isd_nor.ufw nor_update.ufw
copy jl_isd_all.fw jl_isd.fw
del jl_isd_all.ufw jl_isd_nor.ufw jl_isd_all.fw jl_isd_nor.fw
@REM ??????????????????
::ufw_maker.exe -chip AC800X %ADD_KEY% -output config.ufw -res bt_cfg.cfg
::IF EXIST jl_696x.bin del jl_696x.bin
@rem ???????????
@rem -format vm //????VM ????
@rem -format cfg //????BT CFG ????
@rem -format 0x3f0-2 //?????? 0x3f0 ?? sector ??????????? 2 ?? sector(??????????16?????10???????????????????????10????)
ping /n 2 127.1>null
IF EXIST null del null

Binary file not shown.

View File

@ -3705,8 +3705,10 @@ objs/apps/soundbox/task_manager/lp/lp_api.c.o
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,log_print,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_start,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,printf,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,mix_out_automute_lp_start,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,app_audio_get_volume,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_stop,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,mix_out_automute_lp_stop,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,linein_dec_close,l
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_volume_pp,pl
-r=objs/apps/soundbox/task_manager/lp/lp_api.c.o,lp_get_status,pl
@ -4198,14 +4200,17 @@ objs/cpu/br23/audio_dec/audio_dec.c.o
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_stream_add_list,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_audio_volume_init,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,kt_auto_mute_pa_init,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,sys_timer_del,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,sys_timer_add,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_mix_out_automute_mute,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_get_curr_task,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,gpio_set_output_value,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,mix_out_automute_lp_start,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_energy_detect_skip,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,mix_out_automute_lp_stop,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,mix_out_automute_handler,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,app_audio_output_channel_get,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,mix_out_automute_skip,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_energy_detect_skip,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,mix_out_automute_open,pl
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_energy_detect_open,l
-r=objs/cpu/br23/audio_dec/audio_dec.c.o,audio_energy_detect_entry_get,l

File diff suppressed because it is too large Load Diff