This commit is contained in:
lmx
2025-12-18 11:06:31 +08:00
parent 01f442d636
commit 5757f3fb12
12 changed files with 109 additions and 1642 deletions

View File

@ -11,7 +11,7 @@
#include "asm/pwm_led.h" #include "asm/pwm_led.h"
#include "aec_user.h" #include "aec_user.h"
#include "app_power_manage.h" #include "app_power_manage.h"
#include "avctp_user.h"
#define LOG_TAG_CONST USER_CFG #define LOG_TAG_CONST USER_CFG
#define LOG_TAG "[USER_CFG]" #define LOG_TAG "[USER_CFG]"
#define LOG_ERROR_ENABLE #define LOG_ERROR_ENABLE
@ -581,5 +581,33 @@ int bt_modify_name(u8 *new_name)
} }
return 0; return 0;
} }
////////////////////////////////////////////////////////////////////////////////////////
extern void lmp_hci_write_local_name(const char *name);
int xtell_bt_newname(u8 *new_name){
u8 new_len = strlen(new_name);
if(new_len >= LOCAL_NAME_LEN){
new_name[LOCAL_NAME_LEN -1] = 0;
}
if(strcmp(new_name,bt_cfg.edr_name)){
user_send_cmd_prepare(USER_CTRL_DISCONNECTION_HCI, 0, NULL); //断开此时经典蓝牙的连接,但经典蓝牙还是可以被发现
user_send_cmd_prepare(USER_CTRL_WRITE_SCAN_DISABLE, 0, NULL); //关闭蓝牙可发现,已连接时不能操作
user_send_cmd_prepare(USER_CTRL_WRITE_CONN_DISABLE, 0, NULL); //关闭蓝牙可连接
syscfg_write(CFG_BT_NAME,new_name,LOCAL_NAME_LEN);
memcpy(bt_cfg.edr_name,new_name,LOCAL_NAME_LEN);
lmp_hci_write_local_name(bt_get_local_name());
printf("xtell set new name sucess\n");
delay_2ms(25);
bt_ble_init();
user_send_cmd_prepare(USER_CTRL_WRITE_SCAN_ENABLE, 0, NULL); //打开蓝牙可发现,已连接时不能操作
user_send_cmd_prepare(USER_CTRL_WRITE_CONN_ENABLE, 0, NULL); //打开蓝牙可连接
connect_last_device_from_vm();
return 1;
}
return 0;
}

View File

@ -113,8 +113,6 @@ extern void bt_pll_para(u32 osc, u32 sys, u8 low_power, u8 xosc);
BT_USER_COMM_VAR bt_user_comm_var; BT_USER_COMM_VAR bt_user_comm_var;
BT_USER_PRIV_VAR bt_user_priv_var; BT_USER_PRIV_VAR bt_user_priv_var;
/*********xtell code */ /*********xtell code */
extern unsigned char xt_bl_new_name[13];
extern unsigned char xt_ble_new_name[9];
/*******end xtell cocde */ /*******end xtell cocde */
int phone_call_begin(void *priv); int phone_call_begin(void *priv);
@ -1492,13 +1490,7 @@ static int bt_connction_status_event_handler(struct bt_event *bt)
clear_current_poweron_memory_search_index(0); clear_current_poweron_memory_search_index(0);
case BT_STATUS_FIRST_CONNECTED: case BT_STATUS_FIRST_CONNECTED:
log_info("BT_STATUS_CONNECTED\n"); log_info("BT_STATUS_CONNECTED\n");
if(strcmp(xt_ble_new_name,"CM-XXXXX") != 0){ //连接成功
//蓝牙连接成功
bt_newname =1;
// queue_ai_msg(xtell_uart_ai_14_bt_connect,5,14);
u8 temp[5]={0xBB,0xBE,0x02,0x04,0x00};
// send_data_to_ble_client(&temp,5);
}
earphone_change_pwr_mode(PWR_DCDC15, 3000); earphone_change_pwr_mode(PWR_DCDC15, 3000);
sys_auto_shut_down_disable(); sys_auto_shut_down_disable();
#if TCFG_ADSP_UART_ENABLE #if TCFG_ADSP_UART_ENABLE

View File

@ -6,8 +6,7 @@
#include "le_common.h" #include "le_common.h"
#include "ble_user.h" #include "ble_user.h"
unsigned char xt_bl_new_name[13] = "WEBIRD-XXXXX";
unsigned char xt_ble_new_name[9] = "CM-XXXXX";

View File

@ -303,14 +303,13 @@ static void default_report_data_deal(att_data_report_t *report_data, target_uuid
} }
// 默认要匹配的远程设备名称 1 // 默认要匹配的远程设备名称 1
static const u8 test_remoter_name1[] = "X100_TEST"; static const u8 test_remoter_name1[] = "X100ABCDE";
// static const u8 test_remoter_name1[] = "AC637N_MX(BLE)"; // 备选名称 // static const u8 test_remoter_name1[] = "AC637N_MX(BLE)"; // 备选名称
// static const u8 test_remoter_name2[] = "AC630N_HID567(BLE)"; //备选名称 // static const u8 test_remoter_name2[] = "AC630N_HID567(BLE)"; //备选名称
// 默认的 Client 写操作使用的 Characteristic Handle // 默认的 Client 写操作使用的 Characteristic Handle
static u16 default_client_write_handle; static u16 default_client_write_handle;
// 用于定时触发写操作的定时器句柄
static u16 test_client_timer = 0;
// 默认的设备匹配配置 01 // 默认的设备匹配配置 01
static const client_match_cfg_t match_dev01 = { static const client_match_cfg_t match_dev01 = {
@ -358,20 +357,20 @@ static void default_event_callback(le_client_event_e event, u8 *packet, int size
case CLI_EVENT_SEARCH_PROFILE_COMPLETE: // 服务发现完成事件 case CLI_EVENT_SEARCH_PROFILE_COMPLETE: // 服务发现完成事件
log_info("CLI_EVENT_SEARCH_PROFILE_COMPLETE\n"); log_info("CLI_EVENT_SEARCH_PROFILE_COMPLETE\n");
// 如果定时器未启动且找到了写入句柄 // 如果定时器未启动且找到了写入句柄
if ((!test_client_timer) && default_client_write_handle) { if (default_client_write_handle) {
log_info("test timer_add\n"); log_info("default_client_write_handle is not null\n");
extern void test_func_main(void); // extern void test_func_main(void);
test_func_main(); // test_func_main();
extern void create_key_detect_thread(void);
create_key_detect_thread(); //开始按键检测 -- task_func.c
} }
break; break;
case CLI_EVENT_CONNECTED: // 连接建立事件 case CLI_EVENT_CONNECTED: // 连接建立事件
//不在这处理连接成功不等于可以发送数据还需要等profile搜索完成取到server的uuid获到写句柄
break; break;
case CLI_EVENT_DISCONNECT: // 断开连接事件 case CLI_EVENT_DISCONNECT: // 断开连接事件
// 如果定时器正在运行,则删除它 extern void destroy_key_detect_thread(void);
if (test_client_timer) { destroy_key_detect_thread(); //停止按键检测 -- task_func.c
sys_timeout_del(test_client_timer);
test_client_timer = 0;
}
default_client_write_handle = 0; // 清空写入句柄 default_client_write_handle = 0; // 清空写入句柄
break; break;
default: default:
@ -1433,7 +1432,7 @@ static void cbk_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *p
log_info("ATT MTU = %u\n", mtu); // 打印 MTU 值 log_info("ATT MTU = %u\n", mtu); // 打印 MTU 值
ble_op_att_set_send_mtu(mtu); // 设置 ATT 客户端的发送 MTU ble_op_att_set_send_mtu(mtu); // 设置 ATT 客户端的发送 MTU
break; break;
case HCI_EVENT_VENDOR_REMOTE_TEST: // 供应商远程测试事件 case HCI_EVENT_VENDOR_REMOTE_TEST:
log_info("--- HCI_EVENT_VENDOR_REMOTE_TEST\n"); log_info("--- HCI_EVENT_VENDOR_REMOTE_TEST\n");
break; break;
case L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE: // L2CAP 连接参数更新响应事件 case L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE: // L2CAP 连接参数更新响应事件
@ -2094,14 +2093,14 @@ void client_send_conn_param_update(void)
// mac_addr_buf: 用于填充 MAC 地址的缓冲区 // mac_addr_buf: 用于填充 MAC 地址的缓冲区
void rcsp_adv_fill_mac_addr(u8 *mac_addr_buf) void rcsp_adv_fill_mac_addr(u8 *mac_addr_buf)
{ {
#if (MUTIl_CHARGING_BOX_EN) // 如果使能了多路充电盒功能 #if (MUTIl_CHARGING_BOX_EN)
u8 *mac_addr = get_chargebox_adv_addr(); // 获取充电盒的 MAC 地址 u8 *mac_addr = get_chargebox_adv_addr();
if (mac_addr) { if (mac_addr) {
swapX(mac_addr, mac_addr_buf, 6); // 交换 MAC 地址到缓冲区 swapX(mac_addr, mac_addr_buf, 6); // 交换 MAC 地址到缓冲区
} }
/* printf("mac_addr:"); */ /* printf("mac_addr:"); */
/* printf_buf(mac_addr_buf, 6); */ /* printf_buf(mac_addr_buf, 6); */
#else // 否则使用默认的蓝牙 MAC 地址 #else // 使用默认的蓝牙 MAC 地址
swapX(bt_get_mac_addr(), mac_addr_buf, 6); // 获取并填充蓝牙 MAC 地址 swapX(bt_get_mac_addr(), mac_addr_buf, 6); // 获取并填充蓝牙 MAC 地址
#endif #endif
} }
@ -2124,7 +2123,7 @@ void g_send_data_to_ble_server(const u8* data, u16 length){
// 数据类型为 ATT_OP_WRITE_WITHOUT_RESPOND (写无响应) // 数据类型为 ATT_OP_WRITE_WITHOUT_RESPOND (写无响应)
int ret = client_operation_send(default_client_write_handle, data, length, ATT_OP_WRITE_WITHOUT_RESPOND); int ret = client_operation_send(default_client_write_handle, data, length, ATT_OP_WRITE_WITHOUT_RESPOND);
if(ret == 0){ // 如果发送成功 (返回值 0 表示成功) if(ret == 0){ // 如果发送成功 (返回值 0 表示成功)
printf("success: send data to server\n"); // printf("success: send data to server\n");
return; return;
} }
printf("error: send data to server\n"); // 发送失败 printf("error: send data to server\n"); // 发送失败

View File

@ -38,6 +38,9 @@ static void rc_ble_state_set_disconnected(void);
//进程名称 //进程名称
static char control_key_task_name[] = "control_key"; static char control_key_task_name[] = "control_key";
//进程运行中标志
static u8 key_detect_sign = 0; //为1表示正在运行
// ================================================================================================================================================================== // ==================================================================================================================================================================
// 全局变量 // 全局变量
// ================================================================================================================================================================== // ==================================================================================================================================================================
@ -242,8 +245,8 @@ void control_key_init(void){
* @param key2_state 按键2值 * @param key2_state 按键2值
*/ */
void control_key_get_value(u16* Xout_adc, u16* Yout_adc, u8* key1_state, u8* key2_state){ void control_key_get_value(u16* Xout_adc, u16* Yout_adc, u8* key1_state, u8* key2_state){
*Xout_adc = (u16)adc_get_value(AD_CH_PG5); *Xout_adc = (u16)adc_get_value(AD_CH_PG5) * 65;
*Yout_adc = (u16)adc_get_value(AD_CH_PG7); *Yout_adc = (u16)adc_get_value(AD_CH_PG7) * 65;
*key1_state = gpio_read(IO_PORTG_06); *key1_state = gpio_read(IO_PORTG_06);
rc_log("adc_get_value: Xout = %d, Yout = %d, key1_state = %d, key2_state = %d\n", *Xout_adc , *Yout_adc, *key1_state, 1); rc_log("adc_get_value: Xout = %d, Yout = %d, key1_state = %d, key2_state = %d\n", *Xout_adc , *Yout_adc, *key1_state, 1);
@ -258,11 +261,11 @@ void contol_key_task(void){
static u16 Xout_adc = 0; static u16 Xout_adc = 0;
static u16 Yout_adc = 0; static u16 Yout_adc = 0;
static u8 key1_state = 1; static u8 key1_state = 1;
u8 ble_data_buff[12] = {0xBE, 0xBB, 0x0A, 0x01, //0-3 u8 ble_data_buff[12] = {0xBE, 0xBB, 0x09, 0x01, //0-3
0x00, 0x00, 0x00, 0x00, //4-7 遥感值:上下、左右 0x00, 0x00, 0x00, 0x00, //4-7 遥感值:上下、左右
0x00, 0x00, //8、9 两个按键 0x00, 0x00, //8、9 两个按键
0x00, //10 电量百分比 0x00, //10 电量百分比
0x0C}; //11 校验和 0x00}; //11 校验和
control_key_init(); //遥感按键初始化 control_key_init(); //遥感按键初始化
@ -281,12 +284,35 @@ void contol_key_task(void){
ble_data_buff[10] = get_vbat_percent(); ble_data_buff[10] = get_vbat_percent();
ble_data_buff[11] = 0;
for(int i = 0 ;i < 11; i++){
ble_data_buff[11] += ble_data_buff[i];
}
g_send_data_to_ble_server(ble_data_buff, sizeof(ble_data_buff)); g_send_data_to_ble_server(ble_data_buff, sizeof(ble_data_buff));
os_time_dly(5); os_time_dly(5); //10ms为单位
} }
} }
/**
* @brief 和主板ble连接上后会被调用
*
*/
void create_key_detect_thread(void){
key_detect_sign = 1;
os_task_create(contol_key_task, NULL, 1, 2048, 128, control_key_task_name);
}
/**
* @brief 和主板ble断连后会被调用
*
*/
void destroy_key_detect_thread(void){
if(key_detect_sign == 1){
key_detect_sign = 0;
os_task_del(control_key_task_name);
}
}
// ================================================================================================================================================================== // ==================================================================================================================================================================
// 辅助函数 // 辅助函数
@ -341,19 +367,19 @@ void rc_app_main_init(void)
{ {
rc_log("Initializing Remote Control App...\n"); rc_log("Initializing Remote Control App...\n");
// 1. 初始化全局上下文 // 初始化全局上下文
memset(&g_rc_context, 0, sizeof(RC_Context_t)); memset(&g_rc_context, 0, sizeof(RC_Context_t));
g_rc_context.state = RC_STATE_DISCONNECTED; // 初始状态为未连接 g_rc_context.state = RC_STATE_DISCONNECTED; // 初始状态为未连接
g_rc_context.team = TEAM_NO; g_rc_context.team = TEAM_NO;
FM176XX_HardInit(); FM176XX_HardInit();
// 2. 检查并启动RFID处理定时器 // 检查并启动RFID处理定时器
if (g_rfid_timer_id == 0) { if (g_rfid_timer_id == 0) {
// g_rfid_timer_id = sys_timer_add(NULL, rc_rfid_callback_handler, RC_RFID_CALLBACK_INTERVAL_MS); // g_rfid_timer_id = sys_timer_add(NULL, rc_rfid_callback_handler, RC_RFID_CALLBACK_INTERVAL_MS);
rc_log("RFID handler timer started (ID: %d).\n", g_rfid_timer_id); rc_log("RFID handler timer started (ID: %d).\n", g_rfid_timer_id);
} }
// 3. 检查并启动BLE处理定时器 // 检查并启动BLE处理定时器
if (g_ble_timer_id == 0) { if (g_ble_timer_id == 0) {
// g_ble_timer_id = sys_timer_add(NULL, rc_ble_callback_handler, RC_BLE_CALLBACK_INTERVAL_MS); // g_ble_timer_id = sys_timer_add(NULL, rc_ble_callback_handler, RC_BLE_CALLBACK_INTERVAL_MS);
rc_log("BLE handler timer started (ID: %d).\n", g_ble_timer_id); rc_log("BLE handler timer started (ID: %d).\n", g_ble_timer_id);
@ -381,8 +407,9 @@ void test_task(void){
} }
void test_func_main(void){ void test_func_main(void){
#if TEST_FUNCTION == 1 #if TEST_FUNCTION == 1
// os_task_create(test_task, NULL, 1, 1024, 128, "rfid_test"); // os_task_create(test_task, NULL, 1, 1024, 128, "rfid_test");
os_task_create(contol_key_task, NULL, 1, 2048, 128, control_key_task_name); // os_task_create(contol_key_task, NULL, 1, 2048, 128, control_key_task_name);
#endif #endif
} }

View File

@ -38,6 +38,10 @@
//-------------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------------//
extern APP_VAR app_var; extern APP_VAR app_var;
//-------------------------------------------------------------------------------------------------//
// 全局变量
//-------------------------------------------------------------------------------------------------//
unsigned char xt_bt_new_name[13] = "WEBIRD-XXXXX"; //经典蓝牙名称
//-------------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------------//
// 系统主函数 app_main // 系统主函数 app_main
@ -124,10 +128,14 @@ void xtell_app_main()
rcsp_adv_fill_mac_addr(mac_data); //读取MAC地址 rcsp_adv_fill_mac_addr(mac_data); //读取MAC地址
xlog("xtell BT mac data:%x:%x:%x:%x:%x:%x",mac_data[0],mac_data[1],mac_data[2],mac_data[3],mac_data[4],mac_data[5]); xlog("xtell BT mac data:%x:%x:%x:%x:%x:%x",mac_data[0],mac_data[1],mac_data[2],mac_data[3],mac_data[4],mac_data[5]);
user_send_cmd_prepare(USER_CTRL_WRITE_SCAN_ENABLE, 0, NULL); //打开蓝牙可发现,已连接时不能操作 // user_send_cmd_prepare(USER_CTRL_WRITE_SCAN_ENABLE, 0, NULL); //打开蓝牙可发现,已连接时不能操作
delay_2ms(50); // delay_2ms(50);
user_send_cmd_prepare(USER_CTRL_WRITE_CONN_ENABLE, 0, NULL); //打开蓝牙可连接 // user_send_cmd_prepare(USER_CTRL_WRITE_CONN_ENABLE, 0, NULL); //打开蓝牙可连接
delay_2ms(50); // delay_2ms(50);
extern int xtell_bt_newname(u8 *new_name);
xtell_bt_newname(xt_bt_new_name); //设置经典蓝牙名
extern void test_func_main(void); extern void test_func_main(void);
// test_func_main(); // test_func_main();

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3241,6 +3241,12 @@ objs/apps/earphone/user_cfg.c.o
-r=objs/apps/earphone/user_cfg.c.o,strlen,l -r=objs/apps/earphone/user_cfg.c.o,strlen,l
-r=objs/apps/earphone/user_cfg.c.o,strcmp,l -r=objs/apps/earphone/user_cfg.c.o,strcmp,l
-r=objs/apps/earphone/user_cfg.c.o,lmp_hci_write_local_name,l -r=objs/apps/earphone/user_cfg.c.o,lmp_hci_write_local_name,l
-r=objs/apps/earphone/user_cfg.c.o,xtell_bt_newname,pl
-r=objs/apps/earphone/user_cfg.c.o,user_send_cmd_prepare,l
-r=objs/apps/earphone/user_cfg.c.o,delay_2ms,l
-r=objs/apps/earphone/user_cfg.c.o,bt_ble_init,l
-r=objs/apps/earphone/user_cfg.c.o,connect_last_device_from_vm,l
-r=objs/apps/earphone/user_cfg.c.o,puts,l
-r=objs/apps/earphone/user_cfg.c.o,bt_cfg,pl -r=objs/apps/earphone/user_cfg.c.o,bt_cfg,pl
-r=objs/apps/earphone/user_cfg.c.o,audio_cfg,pl -r=objs/apps/earphone/user_cfg.c.o,audio_cfg,pl
-r=objs/apps/earphone/user_cfg.c.o,btif_table,pl -r=objs/apps/earphone/user_cfg.c.o,btif_table,pl
@ -5133,7 +5139,6 @@ objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,ble_bqb_test_thread_init,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,ble_bqb_test_thread_init,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,bt_ble_init,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,bt_ble_init,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,is_dac_power_off,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,is_dac_power_off,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,strcmp,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,tone_get_status,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,tone_get_status,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,check_esco_state_via_addr,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,check_esco_state_via_addr,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,get_device_inband_ringtone_flag,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,get_device_inband_ringtone_flag,l
@ -5169,11 +5174,8 @@ objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,phone_incom_lp_target,pl -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,phone_incom_lp_target,pl
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,bt_user_comm_var,pl -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,bt_user_comm_var,pl
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,config_btctler_mode,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,config_btctler_mode,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,xt_ble_new_name,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,hid_conn_depend_on_dev_company,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_handler.c.o,hid_conn_depend_on_dev_company,l
objs/apps/earphone/xtell_remote_control/ble_handler/ble_test.c.o objs/apps/earphone/xtell_remote_control/ble_handler/ble_test.c.o
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_test.c.o,xt_bl_new_name,pl
-r=objs/apps/earphone/xtell_remote_control/ble_handler/ble_test.c.o,xt_ble_new_name,pl
objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,clear_bonding_info,pl -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,clear_bonding_info,pl
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,printf,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,printf,l
@ -5205,7 +5207,8 @@ objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,syscfg_read,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,syscfg_read,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,syscfg_write,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,syscfg_write,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,memcmp,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,memcmp,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,test_func_main,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,create_key_detect_thread,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,destroy_key_detect_thread,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,user_client_init,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,user_client_init,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,user_client_set_search_complete,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,user_client_set_search_complete,l
-r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,sys_timer_add,l -r=objs/apps/earphone/xtell_remote_control/ble_handler/client_handler.c.o,sys_timer_add,l
@ -5383,12 +5386,15 @@ objs/apps/earphone/xtell_remote_control/task_func.c.o
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,get_vbat_percent,l -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,get_vbat_percent,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,g_send_data_to_ble_server,l -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,g_send_data_to_ble_server,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,os_time_dly,l -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,os_time_dly,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,create_key_detect_thread,pl
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,os_task_create,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,destroy_key_detect_thread,pl
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,os_task_del,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,rc_app_main_init,pl -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,rc_app_main_init,pl
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,FM176XX_HardInit,l -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,FM176XX_HardInit,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,test_task,pl -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,test_task,pl
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,TYPE_V_EVENT,l -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,TYPE_V_EVENT,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,test_func_main,pl -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,test_func_main,pl
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,os_task_create,l
-r=objs/apps/earphone/xtell_remote_control/task_func.c.o,puts,l -r=objs/apps/earphone/xtell_remote_control/task_func.c.o,puts,l
objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,create_process,pl -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,create_process,pl
@ -5406,9 +5412,9 @@ objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,start_app,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,start_app,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,check_power_on_voltage,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,check_power_on_voltage,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,rcsp_adv_fill_mac_addr,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,rcsp_adv_fill_mac_addr,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,user_send_cmd_prepare,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,xtell_bt_newname,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,delay_2ms,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,cpu_reset_by_soft,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,cpu_reset_by_soft,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,xt_bt_new_name,pl
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,app_var,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,app_var,l
-r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,config_update_mode,l -r=objs/apps/earphone/xtell_remote_control/xtell_app_main.c.o,config_update_mode,l
cpu/br28/liba/cpu.a.llvm.19376.crc16.c cpu/br28/liba/cpu.a.llvm.19376.crc16.c