diff --git a/AC701N.cbp b/AC701N.cbp
index dfccde8..87cc499 100644
--- a/AC701N.cbp
+++ b/AC701N.cbp
@@ -1142,6 +1142,10 @@
+
+
+
+
diff --git a/AC701N.depend b/AC701N.depend
index f397bea..a24ed40 100644
--- a/AC701N.depend
+++ b/AC701N.depend
@@ -131622,7 +131622,7 @@
1756104107 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\earphone\board\br28\board_config.h
"board_jl701n_demo_cfg.h"
-1784866489 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\earphone\board\br28\board_jl701n_demo_cfg.h
+1785398767 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\earphone\board\br28\board_jl701n_demo_cfg.h
"board_jl701n_demo_global_build_cfg.h"
"usb_std_class_def.h"
"usb_std_class_def.h"
@@ -131752,7 +131752,7 @@
1706666735 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\include_lib\system\power_manage.h
"generic/typedef.h"
-1784878367 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\include_lib\system\syscfg_id.h
+1785397241 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\include_lib\system\syscfg_id.h
"typedef.h"
1706666736 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\include_lib\system\bank_switch.h
@@ -132394,7 +132394,7 @@
1706666737 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\include_lib\driver\cpu\br28\asm\sfc_norflash_api.h
"typedef.h"
-1706666728 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\common\device\usb\device\cdc.h
+1785402444 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\common\device\usb\device\cdc.h
"usb/device/usb_stack.h"
1706666736 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\include_lib\driver\device\usb\device\usb_stack.h
@@ -133039,7 +133039,7 @@
"typedef.h"
"device.h"
-1706666728 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\common\device\usb\device\cdc.c
+1785402441 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\common\device\usb\device\cdc.c
"usb/device/usb_stack.h"
"usb/usb_config.h"
"usb/device/cdc.h"
@@ -134230,7 +134230,7 @@
"rcsp_adv_bluetooth.h"
"bt_tws.h"
-1785142510 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\common\third_party_profile\jieli\jl_rcsp\bt_trans_data\le_rcsp_adv_module.c
+1785399324 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\common\third_party_profile\jieli\jl_rcsp\bt_trans_data\le_rcsp_adv_module.c
"system/app_core.h"
"system/includes.h"
"app_config.h"
@@ -134919,7 +134919,7 @@
"bt_tws.h"
"icsd_adt_app.h"
-1785135433 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\earphone\app_main.c
+1785395062 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\earphone\app_main.c
"system/includes.h"
"btstack/btstack_task.h"
"app_config.h"
@@ -136048,7 +136048,7 @@
"ble_proto.h"
-1785211820 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\bleproto.c
+1785399208 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\bleproto.c
"bleproto.h"
"ble_proto.h"
@@ -136074,7 +136074,7 @@
"usr_usb_jb.h"
"debug.h"
-1785221986 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_le_recieve.c
+1785398395 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_le_recieve.c
"app_config.h"
"asm/pwm_led.h"
"tone_player.h"
@@ -137191,15 +137191,29 @@
"app_config.h"
"timer.h"
-1785222089 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_usb_jb.h
+1785470014 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_usb_jb.h
-1785222977 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_usb_jb.c
+1785397251 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_usb_jb.c
"system/includes.h"
"app_config.h"
"vm.h"
"usr_usb_jb.h"
"bleproto_api.h"
+ "usr_dengle_sched.h"
"debug.h"
"usb/device/cdc.h"
+1785402463 source:d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_dengle_sched.c
+ "system/includes.h"
+ "app_config.h"
+ "usr_dengle_sched.h"
+ "usr_usb_jb.h"
+ "bleproto_api.h"
+ "syscfg_id.h"
+ "usb/device/cdc.h"
+ "debug.h"
+
+1785402456 d:\jianbao\project\蓝牙转接板-逗猫棒\sdk\apps\usr_le_code\usr_dengle_sched.h
+
+
diff --git a/apps/common/device/usb/device/cdc.c b/apps/common/device/usb/device/cdc.c
index 12428e5..b063ef5 100644
--- a/apps/common/device/usb/device/cdc.c
+++ b/apps/common/device/usb/device/cdc.c
@@ -171,22 +171,25 @@ static u32 cdc_setup(struct usb_device_t *usb_device, struct usb_ctrlrequest *ct
dump_line_coding((struct usb_cdc_line_coding *)cdc_hdl->subtype_data);
break;
case USB_CDC_REQ_SET_CONTROL_LINE_STATE:
- log_debug("set control line state - %d", ctrl_req->wValue);
+ /* wValue.bit0=DTR(鎵撳紑COM閫氬父缃1), bit1=RTS */
+ log_info("set control line state wValue=0x%04x DTR=%d RTS=%d",
+ ctrl_req->wValue,
+ !!(ctrl_req->wValue & BIT(0)),
+ !!(ctrl_req->wValue & BIT(1)));
if (cdc_hdl) {
- /* if (ctrl_req->wValue & BIT(0)) { //DTR */
- cdc_hdl->bmTransceiver |= BIT(0);
- /* } else { */
- /* usb_slave->cdc->bmTransceiver &= ~BIT(0); */
- /* } */
- /* if (ctrl_req->wValue & BIT(1)) { //RTS */
- cdc_hdl->bmTransceiver |= BIT(1);
- /* } else { */
- /* usb_slave->cdc->bmTransceiver &= ~BIT(1); */
- /* } */
- cdc_hdl->bmTransceiver |= BIT(4); //cfg done
+ if (ctrl_req->wValue & BIT(0)) { /* DTR */
+ cdc_hdl->bmTransceiver |= BIT(0);
+ } else {
+ cdc_hdl->bmTransceiver &= ~BIT(0);
+ }
+ if (ctrl_req->wValue & BIT(1)) { /* RTS */
+ cdc_hdl->bmTransceiver |= BIT(1);
+ } else {
+ cdc_hdl->bmTransceiver &= ~BIT(1);
+ }
+ cdc_hdl->bmTransceiver |= BIT(4); /* cfg done */
}
usb_set_setup_phase(usb_device, USB_EP0_STAGE_SETUP);
- //cdc_endpoint_init(usb_device, (ctrl_req->wIndex & USB_RECIP_MASK));
break;
default:
log_error("unsupported class req");
@@ -238,6 +241,10 @@ static void cdc_reset(struct usb_device_t *usb_device, u32 itf)
{
log_error("%s()", __func__);
const usb_dev usb_id = usb_device2id(usb_device);
+ /* USB 澶嶄綅/閲嶆灇涓炬椂娓呮帀 COM 寮闂姸鎬 */
+ if (cdc_hdl) {
+ cdc_hdl->bmTransceiver &= ~(BIT(0) | BIT(1));
+ }
#if USB_ROOT2
usb_disable_ep(usb_id, CDC_DATA_EP_IN);
#if CDC_INTR_EP_ENABLE
@@ -487,4 +494,17 @@ void cdc_release(const usb_dev usb_id)
}
}
+/**
+ * @brief 涓婁綅鏈烘槸鍚﹀凡鎵撳紑 COM锛圕DC DTR 鏈夋晥锛
+ * @return 1=COM 宸叉墦寮 0=鏈墦寮/宸插叧闂
+ */
+u8 cdc_is_com_open(void)
+{
+ if (cdc_hdl == NULL) {
+ return 0;
+ }
+ /* DTR=1 琛ㄧず涓绘満鎵撳紑浜嗚櫄鎷熶覆鍙 */
+ return (cdc_hdl->bmTransceiver & BIT(0)) ? 1 : 0;
+}
+
#endif
diff --git a/apps/common/device/usb/device/cdc.h b/apps/common/device/usb/device/cdc.h
index 45a27f7..37bbbd6 100644
--- a/apps/common/device/usb/device/cdc.h
+++ b/apps/common/device/usb/device/cdc.h
@@ -15,6 +15,11 @@ u32 cdc_write_data(const usb_dev usb_id, u8 *buf, u32 len);
u32 cdc_write_inir(const usb_dev usb_id, u8 *buf, u32 len);
void cdc_register(const usb_dev usb_id);
void cdc_release(const usb_dev usb_id);
+/**
+ * @brief 涓婁綅鏈烘槸鍚﹀凡鎵撳紑 COM锛堜緷鎹 CDC DTR锛
+ * @return 1=宸叉墦寮 0=鏈墦寮
+ */
+u8 cdc_is_com_open(void);
#ifdef __cplusplus
}
diff --git a/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c b/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c
index 76ba974..23b07e6 100644
--- a/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c
+++ b/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.c
@@ -522,15 +522,7 @@ void usr_ble_send_data(u8* data,u16 len)
{
app_send_user_data(ATT_CHARACTERISTIC_15f1e601_a277_43fc_a484_dd39ef8a9100_01_VALUE_HANDLE, data, len, ATT_OP_AUTO_READ_CCC);
}
- //printf("send rsp:");
- // printf_buf(data,len);
- printf("\n");
- for(u8 i=0;iheader;
+ appdata->header = desc->header;
}
/* data */
- if (appdata.header.msgtype == BLEPROTO_APPDATA_MSGTYPE_REQ) {
- switch (appdata.header.serviceid) {
+ if (appdata->header.msgtype == BLEPROTO_APPDATA_MSGTYPE_REQ) {
+ switch (appdata->header.serviceid) {
case E_BLEPROTO_SERVICE_ID_DEVICEINFO:
rc = bleproto_encjson_deviceinfo_req(&desc->datast.deviceinfo_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_AUTHSETUP:
rc = bleproto_encjson_authsetup_req(&desc->datast.authsetup_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_AUTHDELETE:
rc = bleproto_encjson_authdelete_req(&desc->datast.authdelete_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_RUNCMD:
rc = bleproto_encjson_runcmd_req(&desc->datast.runcmd_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_REPORTCMD:
rc = bleproto_encjson_reportcmd_req(&desc->datast.reportcmd_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_DOACTION:
rc = bleproto_encjson_doaction_req(&desc->datast.doaction_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_OTANOTIFY:
rc = bleproto_encjson_otanotify_req(&desc->datast.otanotify_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_OTADATA:
rc = bleproto_encjson_otadata_req(&desc->datast.otadata_req,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_REPORTCMD_V2:
- rc = ble_proto_pack(&desc->datast.runcmd_v2_req, appdata.data, sizeof(appdata.data));
+ rc = ble_proto_pack(&desc->datast.runcmd_v2_req, appdata->data, sizeof(appdata->data));
break;
default:
/* unkown serviceid */
return (-1);
}
- } else if (appdata.header.msgtype == BLEPROTO_APPDATA_MSGTYPE_RSP) {
- switch (appdata.header.serviceid) {
+ } else if (appdata->header.msgtype == BLEPROTO_APPDATA_MSGTYPE_RSP) {
+ switch (appdata->header.serviceid) {
case E_BLEPROTO_SERVICE_ID_DEVICEINFO:
rc = bleproto_encjson_deviceinfo_rsp(&desc->datast.deviceinfo_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_AUTHSETUP:
rc = bleproto_encjson_authsetup_rsp(&desc->datast.authsetup_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_AUTHDELETE:
rc = bleproto_encjson_authdelete_rsp(&desc->datast.authdelete_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_RUNCMD:
rc = bleproto_encjson_runcmd_rsp(&desc->datast.runcmd_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_REPORTCMD:
rc = bleproto_encjson_reportcmd_rsp(&desc->datast.reportcmd_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_DOACTION:
rc = bleproto_encjson_doaction_rsp(&desc->datast.doaction_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_OTANOTIFY:
rc = bleproto_encjson_otanotify_rsp(&desc->datast.otanotify_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_OTADATA:
rc = bleproto_encbin_otadata_rsp(&desc->datast.otadata_rsp,
- appdata.data);
+ appdata->data);
break;
case E_BLEPROTO_SERVICE_ID_REPORTCMD_V2:
case E_BLEPROTO_SERVICE_ID_RUNCMD_V2:
- rc = ble_proto_pack(&desc->datast.runcmd_v2_rsp, appdata.data, sizeof(appdata.data));
+ rc = ble_proto_pack(&desc->datast.runcmd_v2_rsp, appdata->data, sizeof(appdata->data));
break;
default:
/* unkown serviceid */
@@ -322,10 +324,10 @@ int bleproto_appdata_encode(uint8_t * txbuf,
}
/* datalen */
- appdata.header.datalen = (uint16_t)rc;
+ appdata->header.datalen = (uint16_t)rc;
/* appdata_serialize */
- return bleproto_appdata_serialize(&appdata, packetlen, txbuf, txbuf_size);
+ return bleproto_appdata_serialize(appdata, packetlen, txbuf, txbuf_size);
}
int bleproto_appdata_decode(uint8_t* rxbuf,
diff --git a/apps/usr_le_code/usr_dengle_sched.c b/apps/usr_le_code/usr_dengle_sched.c
new file mode 100644
index 0000000..223b153
--- /dev/null
+++ b/apps/usr_le_code/usr_dengle_sched.c
@@ -0,0 +1,662 @@
+/******************************************************************************
+ * @file usr_dengle_sched.c
+ * @brief Dengle 鍙傛暟瀹氭椂涓嬪彂瀹炵幇锛堝惈 Flash 鏂數淇濆瓨锛
+ * @author cyWu <1917507415@qq.com>
+ * @date 2026.07.30
+ * @version V1.2.0
+ * @history
+ * - V1.0.0, 2026.07.30, cyWu, 棣栨鍙戝竷
+ * - V1.1.0, 2026.07.30, cyWu, 澧炲姞 Flash 鎸佷箙鍖
+ * - V1.1.1, 2026.07.30, cyWu, 淇璁剧疆鍚庣珛鍗冲彂閫佸鑷存爤婧㈠嚭澶嶄綅
+ * - V1.2.0, 2026.07.30, cyWu, USB 杩炴帴鏃舵殏鍋滃畾鏃跺彂閫
+ * - V1.2.1, 2026.07.30, cyWu, 鏀逛负 COM(DTR) 寮闂帶鍒舵殏鍋/鎭㈠
+ *
+ * USB 璁剧疆甯 payload锛圕MD=0x70锛夋牸寮忥細
+ * [0] slot 妲戒綅 0~9
+ * [1] enable 0=鍏抽棴璇ユЫ 1=浣胯兘
+ * [2..5] period_ms 鍙戦佸懆鏈燂紙澶х ms锛屽缓璁 >=100锛
+ * [6..7] cmd_id CBCT/CBFD鈫抷cmd.cmd_id锛涘叾瀹冣啋ble_proto.cmd锛堝ぇ绔級
+ * [8] data_n int 妯″紡= int32 涓暟锛沚ytes 妯″紡= 瀛楄妭鏁
+ * [9..] data int 妯″紡= data_n 涓ぇ绔 int32锛
+ * bytes 妯″紡= data_n 瀛楄妭鍘熷鏁版嵁
+ *
+ * 鍙戦佺瓥鐣ワ紙鎸夎澶囧綋鍓 prodcode锛夛細
+ * - CBCT / CBFD 鈫 REPORTCMD + ycmd.arg_int32[]锛堝弬鑰 usr_test_bleproto_runcmd锛
+ * - 鍏跺畠 鈫 REPORTCMD_V2 + bytes_data锛堝弬鑰 usr_test_protocol锛
+ ******************************************************************************/
+
+#include "system/includes.h"
+#include "app_config.h"
+#include "usr_dengle_sched.h"
+#include "usr_usb_jb.h"
+#include "bleproto_api.h"
+#include "syscfg_id.h"
+#if TCFG_USB_SLAVE_CDC_ENABLE
+#include "usb/device/cdc.h"
+#endif
+
+#define LOG_TAG_CONST APP
+#define LOG_TAG "[DENGLE]"
+#define LOG_ERROR_ENABLE
+#define LOG_DEBUG_ENABLE
+#define LOG_INFO_ENABLE
+#define LOG_CLI_ENABLE
+#include "debug.h"
+
+/*============================================================================*/
+/* 绉佹湁瀹 */
+/*============================================================================*/
+
+#define DENGLE_TX_BUF_SZ (384)
+#define DENGLE_PROD_CBCT "CBCT"
+#define DENGLE_PROD_CBFD "CBFD"
+#define DENGLE_FLASH_MAGIC (0xD6)
+#define DENGLE_FLASH_VER (0x01)
+#define DENGLE_FLASH_HALF (5) /* 鍓嶅崐/鍚庡崐鍚 5 涓Ы */
+
+extern void usr_ble_send_data(u8 *data, u16 len);
+extern u16 usr_get_conn_service(void);
+
+/*============================================================================*/
+/* 绉佹湁绫诲瀷 */
+/*============================================================================*/
+
+/** 鍙戦佹ā寮忥細鐢辫澶 prodcode 鍐冲畾 */
+typedef enum {
+ DENGLE_MODE_INT32 = 0, /**< CBCT/CBFD锛歩nt32 鏁扮粍 鈫 REPORTCMD */
+ DENGLE_MODE_BYTES /**< 鍏跺畠锛歜ytes 鈫 REPORTCMD_V2 */
+} DengleMode_t;
+
+/** 杩愯鏃跺崟鏉″畾鏃堕厤缃紙鍚 elapsed锛屼笉钀界洏锛 */
+typedef struct {
+ uint8_t enable;
+ uint8_t mode;
+ uint16_t cmd_id;
+ uint32_t period_ms;
+ uint32_t elapsed_ms;
+ uint8_t data_n;
+ union {
+ int32_t i32[DENGLE_INT_MAX];
+ uint8_t bytes[DENGLE_BYTES_MAX];
+ } data;
+} DengleSlot_t;
+
+/** Flash 鍗曟Ы缁撴瀯锛堜笉鍚 elapsed锛 */
+typedef struct {
+ uint8_t enable;
+ uint8_t mode;
+ uint16_t cmd_id;
+ uint32_t period_ms;
+ uint8_t data_n;
+ uint8_t data[DENGLE_BYTES_MAX];
+} DengleSlotFlash_t;
+
+/** 鍗婂尯 Flash 鍧楋細5 涓Ы */
+typedef struct {
+ uint8_t magic;
+ uint8_t ver;
+ uint8_t reserved[2];
+ DengleSlotFlash_t slots[DENGLE_FLASH_HALF];
+} DengleFlashHalf_t;
+
+/*============================================================================*/
+/* 闈欐佸彉閲 */
+/*============================================================================*/
+
+static DengleSlot_t s_slots[DENGLE_SLOT_MAX];
+static uint8_t s_inited;
+static int s_tick_timer;
+static int s_save_timer;
+static int s_imm_send_timer;
+static uint8_t s_imm_send_slot;
+static uint8_t s_txbuf[DENGLE_TX_BUF_SZ];
+/* 澶х粨鏋勪綋鏀鹃潤鎬佸尯锛岄伩鍏 USB/瀹氭椂鍣ㄥ洖璋冩爤婧㈠嚭 */
+static DengleFlashHalf_t s_flash_half;
+static bleproto_appdata_desc_t s_encode_desc;
+static uint8_t s_usb_pause_logged;
+
+/*============================================================================*/
+/* 宸ュ叿鍑芥暟 */
+/*============================================================================*/
+
+static uint16_t dengle_read_u16_be(const uint8_t *p)
+{
+ return ((uint16_t)p[0] << 8) | p[1];
+}
+
+static uint32_t dengle_read_u32_be(const uint8_t *p)
+{
+ return ((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) |
+ ((uint32_t)p[2] << 8) | p[3];
+}
+
+/**
+ * @brief 鏍规嵁褰撳墠璁惧 prodcode 閫夋嫨鍙戦佹ā寮
+ */
+static DengleMode_t dengle_get_mode_by_prodcode(void)
+{
+ uint8_t prod[USR_PRODCODE_LEN];
+
+ usr_prodcode_get(prod, NULL);
+ if (memcmp(prod, DENGLE_PROD_CBCT, USR_PRODCODE_LEN) == 0 ||
+ memcmp(prod, DENGLE_PROD_CBFD, USR_PRODCODE_LEN) == 0) {
+ return DENGLE_MODE_INT32;
+ }
+ return DENGLE_MODE_BYTES;
+}
+
+/**
+ * @brief 涓婁綅鏈哄凡鎵撳紑 COM 鏃舵殏鍋 Dengle 瀹氭椂鍙戦
+ * @note 璁惧鍙竴鐩存彃鐫 USB锛涗粎 COM 鎵撳紑=閰嶇疆鎬侊紝COM 鍏抽棴鍚庢仮澶嶈嚜鍔ㄥ彂閫
+ * @return 1=搴旀殏鍋滃彂閫 0=鍏佽鍙戦
+ */
+static uint8_t dengle_is_usb_pause(void)
+{
+#if TCFG_USB_SLAVE_CDC_ENABLE
+ return cdc_is_com_open() ? 1 : 0;
+#else
+ return 0;
+#endif
+}
+
+/*============================================================================*/
+/* Flash 璇诲啓 */
+/*============================================================================*/
+
+/**
+ * @brief 杩愯鏃舵Ы 鈫 Flash 妲
+ */
+static void dengle_slot_to_flash(const DengleSlot_t *src, DengleSlotFlash_t *dst)
+{
+ memset(dst, 0, sizeof(*dst));
+ dst->enable = src->enable;
+ dst->mode = src->mode;
+ dst->cmd_id = src->cmd_id;
+ dst->period_ms = src->period_ms;
+ dst->data_n = src->data_n;
+ memcpy(dst->data, src->data.bytes, DENGLE_BYTES_MAX);
+}
+
+/**
+ * @brief Flash 妲 鈫 杩愯鏃舵Ы锛坋lapsed 娓呴浂锛
+ */
+static void dengle_slot_from_flash(const DengleSlotFlash_t *src, DengleSlot_t *dst)
+{
+ memset(dst, 0, sizeof(*dst));
+ dst->enable = src->enable;
+ dst->mode = src->mode;
+ dst->cmd_id = src->cmd_id;
+ dst->period_ms = src->period_ms;
+ dst->data_n = src->data_n;
+ dst->elapsed_ms = 0;
+ memcpy(dst->data.bytes, src->data, DENGLE_BYTES_MAX);
+}
+
+/**
+ * @brief 淇濆瓨鍏ㄩ儴 Dengle 閰嶇疆鍒 Flash锛堝垎涓ゅ崐鍐欏叆锛屾帶鍒跺崟鏉 VM 闀垮害锛
+ * @note 椤诲湪浠诲姟/瀹氭椂鍣ㄤ笂涓嬫枃璋冪敤锛岀姝㈠湪涓柇閲岃皟鐢
+ */
+static void dengle_flash_save(void)
+{
+ int ret;
+ uint8_t i;
+
+ /* 鍓嶅崐锛歴lot 0~4 */
+ memset(&s_flash_half, 0, sizeof(s_flash_half));
+ s_flash_half.magic = DENGLE_FLASH_MAGIC;
+ s_flash_half.ver = DENGLE_FLASH_VER;
+ for (i = 0; i < DENGLE_FLASH_HALF; i++) {
+ dengle_slot_to_flash(&s_slots[i], &s_flash_half.slots[i]);
+ }
+ ret = syscfg_write(CFG_USER_DENGLE_L, (u8 *)&s_flash_half, sizeof(s_flash_half));
+ if (ret <= 0) {
+ printf("dengle flash L write fail ret=%d\n", ret);
+ }
+
+ /* 鍚庡崐锛歴lot 5~9 */
+ memset(&s_flash_half, 0, sizeof(s_flash_half));
+ s_flash_half.magic = DENGLE_FLASH_MAGIC;
+ s_flash_half.ver = DENGLE_FLASH_VER;
+ for (i = 0; i < DENGLE_FLASH_HALF; i++) {
+ dengle_slot_to_flash(&s_slots[DENGLE_FLASH_HALF + i], &s_flash_half.slots[i]);
+ }
+ ret = syscfg_write(CFG_USER_DENGLE_H, (u8 *)&s_flash_half, sizeof(s_flash_half));
+ if (ret <= 0) {
+ printf("dengle flash H write fail ret=%d\n", ret);
+ } else {
+ printf("dengle flash saved, active=%u\n", dengle_sched_get_active_count());
+ }
+}
+
+/**
+ * @brief 寤舵椂钀界洏锛氬厛鍥 ACK锛岄伩鍏嶄笌缁勫寘鍙戦佸彔鍦ㄥ悓涓娣辫皟鐢ㄦ爤
+ */
+static void dengle_flash_save_timeout(void *priv)
+{
+ (void)priv;
+ s_save_timer = 0;
+ dengle_flash_save();
+}
+
+static void dengle_flash_save_defer(void)
+{
+ if (s_save_timer) {
+ sys_timeout_del(s_save_timer);
+ s_save_timer = 0;
+ }
+ s_save_timer = sys_timeout_add(NULL, dengle_flash_save_timeout, 50);
+}
+
+/**
+ * @brief 浠庝笂鐢 Flash 鎭㈠ Dengle 閰嶇疆
+ */
+static void dengle_flash_load(void)
+{
+ int ret;
+ uint8_t i;
+
+ /* 鍓嶅崐 */
+ memset(&s_flash_half, 0, sizeof(s_flash_half));
+ ret = syscfg_read(CFG_USER_DENGLE_L, (u8 *)&s_flash_half, sizeof(s_flash_half));
+ if (ret > 0 && s_flash_half.magic == DENGLE_FLASH_MAGIC &&
+ s_flash_half.ver == DENGLE_FLASH_VER) {
+ for (i = 0; i < DENGLE_FLASH_HALF; i++) {
+ dengle_slot_from_flash(&s_flash_half.slots[i], &s_slots[i]);
+ }
+ } else {
+ printf("dengle flash L empty/invalid ret=%d\n", ret);
+ }
+
+ /* 鍚庡崐 */
+ memset(&s_flash_half, 0, sizeof(s_flash_half));
+ ret = syscfg_read(CFG_USER_DENGLE_H, (u8 *)&s_flash_half, sizeof(s_flash_half));
+ if (ret > 0 && s_flash_half.magic == DENGLE_FLASH_MAGIC &&
+ s_flash_half.ver == DENGLE_FLASH_VER) {
+ for (i = 0; i < DENGLE_FLASH_HALF; i++) {
+ dengle_slot_from_flash(&s_flash_half.slots[i],
+ &s_slots[DENGLE_FLASH_HALF + i]);
+ }
+ } else {
+ printf("dengle flash H empty/invalid ret=%d\n", ret);
+ }
+
+ printf("dengle flash loaded, active=%u\n", dengle_sched_get_active_count());
+}
+
+/*============================================================================*/
+/* BLE 鍙戦侊紙涓ゆ潯璺緞锛 */
+/*============================================================================*/
+
+/**
+ * @brief CBCT/CBFD锛歊EPORTCMD + ycmd.arg_int32[]
+ * @note 瀵归綈 usr_test_bleproto_runcmd 缁勫寘鏂瑰紡
+ */
+static void dengle_send_int32(const DengleSlot_t *slot)
+{
+ bleproto_reportcmd_req_t *req;
+ int elen;
+ uint8_t i;
+
+ if (!slot || usr_get_conn_service() == 0) {
+ return;
+ }
+
+ memset(&s_encode_desc, 0, sizeof(s_encode_desc));
+ s_encode_desc.header.version = 0;
+ s_encode_desc.header.datafmt = BLEPROTO_APPDATA_DATAFMT_JSON;
+ s_encode_desc.header.msgtype = BLEPROTO_APPDATA_MSGTYPE_REQ;
+ s_encode_desc.header.msgid = usr_ble_rx_msgid_get();
+ s_encode_desc.header.encrypt = 0;
+ s_encode_desc.header.serviceid = E_BLEPROTO_SERVICE_ID_REPORTCMD;
+
+ req = &s_encode_desc.datast.reportcmd_req;
+ req->ycmd.cmd_id = slot->cmd_id;
+ req->ycmd.arg_int32_count = slot->data_n;
+ req->ycmd.arg_string_count = 0;
+ req->ycmd.arg_bytes_count = 0;
+ for (i = 0; i < slot->data_n && i < DENGLE_INT_MAX; i++) {
+ req->ycmd.arg_int32[i] = slot->data.i32[i];
+ }
+
+ elen = bleproto_appdata_encode(s_txbuf, sizeof(s_txbuf), sizeof(s_txbuf), &s_encode_desc);
+ printf("dengle INT32 cmd_id=%u n=%u elen=%d\n", slot->cmd_id, slot->data_n, elen);
+ if (elen > 0) {
+ usr_ble_send_data(s_txbuf, (u16)elen);
+ }
+}
+
+/**
+ * @brief 鍏跺畠浜у搧锛歊EPORTCMD_V2 + bytes_data
+ * @note 瀵归綈 usr_test_protocol 缁勫寘鏂瑰紡
+ */
+static void dengle_send_bytes(const DengleSlot_t *slot)
+{
+ ble_proto_packet_t *pkt;
+ int elen;
+
+ if (!slot || usr_get_conn_service() == 0) {
+ return;
+ }
+
+ memset(&s_encode_desc, 0, sizeof(s_encode_desc));
+ s_encode_desc.header.version = 0;
+ s_encode_desc.header.datafmt = BLEPROTO_APPDATA_DATAFMT_JSON;
+ s_encode_desc.header.msgtype = BLEPROTO_APPDATA_MSGTYPE_REQ;
+ s_encode_desc.header.msgid = usr_ble_rx_msgid_get();
+ s_encode_desc.header.encrypt = 0;
+ s_encode_desc.header.serviceid = E_BLEPROTO_SERVICE_ID_REPORTCMD_V2;
+
+ pkt = &s_encode_desc.datast.reportcmd_v2_req;
+ pkt->cmd = slot->cmd_id;
+ pkt->reserved = 0;
+ pkt->gateway_int_cnt = 0;
+ pkt->device_int_len = 0;
+ pkt->device_str_len = 0;
+ pkt->device_bytes_len = slot->data_n;
+ pkt->bytes_data = slot->data.bytes;
+
+ elen = bleproto_appdata_encode(s_txbuf, sizeof(s_txbuf), sizeof(s_txbuf), &s_encode_desc);
+ printf("dengle BYTES cmd=%u n=%u elen=%d\n", slot->cmd_id, slot->data_n, elen);
+ if (elen > 0) {
+ usr_ble_send_data(s_txbuf, (u16)elen);
+ }
+}
+
+static void dengle_send_slot(const DengleSlot_t *slot)
+{
+ if (!slot || !slot->enable || slot->data_n == 0) {
+ return;
+ }
+
+ /* USB 杩炵潃鐢佃剳鏃朵笉鍙戯紝閬垮厤閰嶇疆闃舵骞叉壈 */
+ if (dengle_is_usb_pause()) {
+ return;
+ }
+
+ if (slot->mode == DENGLE_MODE_INT32) {
+ dengle_send_int32(slot);
+ } else {
+ dengle_send_bytes(slot);
+ }
+}
+
+/**
+ * @brief 寤舵椂绔嬪嵆鍙戦侊細涓 USB 瑙f瀽/ACK 閿欏紑锛岄檷浣庢爤宄板
+ */
+static void dengle_imm_send_timeout(void *priv)
+{
+ uint8_t slot_id = (uint8_t)((u32)priv);
+
+ s_imm_send_timer = 0;
+ if (slot_id < DENGLE_SLOT_MAX) {
+ dengle_send_slot(&s_slots[slot_id]);
+ }
+}
+
+static void dengle_imm_send_defer(uint8_t slot_id)
+{
+ s_imm_send_slot = slot_id;
+ if (s_imm_send_timer) {
+ sys_timeout_del(s_imm_send_timer);
+ s_imm_send_timer = 0;
+ }
+ s_imm_send_timer = sys_timeout_add((void *)((u32)slot_id),
+ dengle_imm_send_timeout, 30);
+}
+
+/*============================================================================*/
+/* 瀹氭椂鑺傛媿 */
+/*============================================================================*/
+
+static void dengle_tick(void *priv)
+{
+ uint8_t i;
+ DengleSlot_t *slot;
+
+ (void)priv;
+
+ /* USB 鍦ㄧ嚎锛氬喕缁撹鏃讹紝鏂紑鍚庝粠瀹屾暣鍛ㄦ湡閲嶆柊寮濮嬶紝閬垮厤鎷旂嚎鐬棿杩炲彂 */
+ if (dengle_is_usb_pause()) {
+ if (!s_usb_pause_logged) {
+ s_usb_pause_logged = 1;
+ printf("dengle pause: COM open\n");
+ }
+ for (i = 0; i < DENGLE_SLOT_MAX; i++) {
+ s_slots[i].elapsed_ms = 0;
+ }
+ return;
+ }
+
+ if (s_usb_pause_logged) {
+ s_usb_pause_logged = 0;
+ printf("dengle resume: COM closed\n");
+ }
+
+ for (i = 0; i < DENGLE_SLOT_MAX; i++) {
+ slot = &s_slots[i];
+ if (!slot->enable || slot->period_ms == 0) {
+ continue;
+ }
+
+ slot->elapsed_ms += DENGLE_TICK_MS;
+ if (slot->elapsed_ms >= slot->period_ms) {
+ slot->elapsed_ms = 0;
+ dengle_send_slot(slot);
+ }
+ }
+}
+
+/*============================================================================*/
+/* 瀵瑰鎺ュ彛 */
+/*============================================================================*/
+
+Dengle_Ret_t dengle_sched_init(void)
+{
+ memset(s_slots, 0, sizeof(s_slots));
+ dengle_flash_load();
+ s_inited = 1;
+
+ if (s_tick_timer == 0) {
+ s_tick_timer = sys_timer_add(NULL, dengle_tick, DENGLE_TICK_MS);
+ }
+
+ printf("dengle_sched_init ok\n");
+ return DENGLE_OK;
+}
+
+Dengle_Ret_t dengle_sched_clear_all(void)
+{
+ if (!s_inited) {
+ return DENGLE_ERR_NOT_INIT;
+ }
+ memset(s_slots, 0, sizeof(s_slots));
+ dengle_flash_save_defer();
+ printf("dengle clear all\n");
+ return DENGLE_OK;
+}
+
+uint8_t dengle_sched_get_active_count(void)
+{
+ uint8_t i;
+ uint8_t cnt = 0;
+
+ for (i = 0; i < DENGLE_SLOT_MAX; i++) {
+ if (s_slots[i].enable) {
+ cnt++;
+ }
+ }
+ return cnt;
+}
+
+Dengle_Ret_t dengle_sched_usb_set(const uint8_t *payload, uint16_t payload_len)
+{
+ DengleSlot_t *slot;
+ DengleMode_t mode;
+ uint8_t slot_id;
+ uint8_t enable;
+ uint8_t data_n;
+ uint8_t i;
+ uint16_t need;
+
+ if (!s_inited) {
+ return DENGLE_ERR_NOT_INIT;
+ }
+ if (!payload || payload_len < 9) {
+ return DENGLE_ERR_PARAM;
+ }
+
+ slot_id = payload[0];
+ enable = payload[1];
+ if (slot_id >= DENGLE_SLOT_MAX) {
+ return DENGLE_ERR_SLOT;
+ }
+
+ slot = &s_slots[slot_id];
+ memset(slot, 0, sizeof(*slot));
+
+ /* 浠呭叧闂妲 */
+ if (enable == 0) {
+ dengle_flash_save_defer();
+ printf("dengle slot%u disabled\n", slot_id);
+ return DENGLE_OK;
+ }
+
+ mode = dengle_get_mode_by_prodcode();
+ data_n = payload[8];
+
+ if (mode == DENGLE_MODE_INT32) {
+ if (data_n == 0 || data_n > DENGLE_INT_MAX) {
+ return DENGLE_ERR_PARAM;
+ }
+ need = 9 + (uint16_t)data_n * 4;
+ if (payload_len < need) {
+ return DENGLE_ERR_PARAM;
+ }
+ for (i = 0; i < data_n; i++) {
+ slot->data.i32[i] = (int32_t)dengle_read_u32_be(&payload[9 + i * 4]);
+ }
+ } else {
+ if (data_n == 0 || data_n > DENGLE_BYTES_MAX) {
+ return DENGLE_ERR_PARAM;
+ }
+ need = 9 + data_n;
+ if (payload_len < need) {
+ return DENGLE_ERR_PARAM;
+ }
+ memcpy(slot->data.bytes, &payload[9], data_n);
+ }
+
+ slot->enable = 1;
+ slot->mode = (uint8_t)mode;
+ slot->period_ms = dengle_read_u32_be(&payload[2]);
+ slot->cmd_id = dengle_read_u16_be(&payload[6]);
+ slot->data_n = data_n;
+ slot->elapsed_ms = 0;
+
+ if (slot->period_ms < DENGLE_TICK_MS) {
+ slot->period_ms = DENGLE_TICK_MS;
+ }
+
+ printf("dengle set slot=%u mode=%u period=%ums cmd=%u n=%u\n",
+ slot_id, slot->mode, slot->period_ms, slot->cmd_id, slot->data_n);
+
+ /* 鍏 ACK锛屽啀寤舵椂钀界洏/鍙戦侊紝閬垮厤涓庣粍鍖呭彔鏍堝鑷村浣 */
+ dengle_flash_save_defer();
+ dengle_imm_send_defer(slot_id);
+ return DENGLE_OK;
+}
+
+/*============================================================================*/
+/* 鏌ヨ瀵煎嚭锛堜緵 USB 0x74 / 0x75锛 */
+/*============================================================================*/
+
+static void dengle_write_u16_be(uint8_t *p, uint16_t v)
+{
+ p[0] = (uint8_t)(v >> 8);
+ p[1] = (uint8_t)(v & 0xFF);
+}
+
+static void dengle_write_u32_be(uint8_t *p, uint32_t v)
+{
+ p[0] = (uint8_t)(v >> 24);
+ p[1] = (uint8_t)(v >> 16);
+ p[2] = (uint8_t)(v >> 8);
+ p[3] = (uint8_t)(v & 0xFF);
+}
+
+/**
+ * @brief 鎵撳寘鍗曚釜妲戒綅锛堜笌 0x70 璁剧疆 payload 鍚屾牸寮忥紝渚夸簬涓婁綅鏈哄鐢ㄨВ鏋愶級
+ * enable=0 鏃朵粎杈撳嚭 [slot][0]
+ * enable=1 鏃惰緭鍑 [slot][1][period][cmd][data_n][data...]
+ * INT32 妯″紡 data 浠嶆寜澶х int32 瀵煎嚭
+ */
+int dengle_sched_pack_slot(uint8_t slot_id, uint8_t *buf, uint16_t max_len)
+{
+ const DengleSlot_t *slot;
+ uint16_t need;
+ uint8_t i;
+
+ if (!s_inited || !buf) {
+ return -1;
+ }
+ if (slot_id >= DENGLE_SLOT_MAX) {
+ return -1;
+ }
+
+ slot = &s_slots[slot_id];
+
+ if (!slot->enable) {
+ if (max_len < 2) {
+ return -1;
+ }
+ buf[0] = slot_id;
+ buf[1] = 0;
+ return 2;
+ }
+
+ if (slot->mode == DENGLE_MODE_INT32) {
+ need = 9 + (uint16_t)slot->data_n * 4;
+ } else {
+ need = 9 + slot->data_n;
+ }
+ if (max_len < need) {
+ return -1;
+ }
+
+ buf[0] = slot_id;
+ buf[1] = 1;
+ dengle_write_u32_be(&buf[2], slot->period_ms);
+ dengle_write_u16_be(&buf[6], slot->cmd_id);
+ buf[8] = slot->data_n;
+
+ if (slot->mode == DENGLE_MODE_INT32) {
+ for (i = 0; i < slot->data_n; i++) {
+ dengle_write_u32_be(&buf[9 + i * 4], (uint32_t)slot->data.i32[i]);
+ }
+ } else {
+ memcpy(&buf[9], slot->data.bytes, slot->data_n);
+ }
+
+ return (int)need;
+}
+
+int dengle_sched_pack_all(uint8_t *buf, uint16_t max_len)
+{
+ uint16_t offset = 0;
+ uint8_t i;
+ int n;
+
+ if (!s_inited || !buf) {
+ return -1;
+ }
+
+ for (i = 0; i < DENGLE_SLOT_MAX; i++) {
+ n = dengle_sched_pack_slot(i, &buf[offset],
+ (uint16_t)(max_len - offset));
+ if (n <= 0) {
+ return -1;
+ }
+ offset = (uint16_t)(offset + n);
+ }
+ return (int)offset;
+}
diff --git a/apps/usr_le_code/usr_dengle_sched.h b/apps/usr_le_code/usr_dengle_sched.h
new file mode 100644
index 0000000..f069284
--- /dev/null
+++ b/apps/usr_le_code/usr_dengle_sched.h
@@ -0,0 +1,88 @@
+/******************************************************************************
+ * @file usr_dengle_sched.h
+ * @brief Dengle 鍙傛暟瀹氭椂涓嬪彂锛歎SB 閰嶇疆鏈澶 10 鏉★紝鎸夊懆鏈熺粡 BLE 鍙戝嚭
+ * @author cyWu <1917507415@qq.com>
+ * @date 2026.07.30
+ * @version V1.2.0
+ * @history
+ * - V1.0.0, 2026.07.30, cyWu, 棣栨鍙戝竷
+ * - V1.1.0, 2026.07.30, cyWu, 澧炲姞 Flash 鏂數淇濆瓨
+ * - V1.2.0, 2026.07.30, cyWu, USB 杩炴帴鏃舵殏鍋滃畾鏃跺彂閫
+ * - V1.2.1, 2026.07.30, cyWu, 鏀逛负 COM(DTR) 寮闂帶鍒舵殏鍋/鎭㈠
+ ******************************************************************************/
+
+#ifndef __USR_DENGLE_SCHED_H__
+#define __USR_DENGLE_SCHED_H__
+
+#include
+
+/*============================================================================*/
+/* 瀹忓畾涔 */
+/*============================================================================*/
+
+#define DENGLE_SLOT_MAX (10) /**< 鏈澶氬畾鏃舵潯鐩暟 */
+#define DENGLE_INT_MAX (16) /**< CBCT/CBFD锛氭渶澶 int32 涓暟 */
+#define DENGLE_BYTES_MAX (64) /**< 鍏跺畠浜у搧锛氭渶澶 bytes 闀垮害 */
+#define DENGLE_TICK_MS (100) /**< 璋冨害鑺傛媿 */
+
+/*============================================================================*/
+/* 閿欒鐮 */
+/*============================================================================*/
+
+typedef enum {
+ DENGLE_OK = 0,
+ DENGLE_ERR_PARAM,
+ DENGLE_ERR_SLOT,
+ DENGLE_ERR_MODE,
+ DENGLE_ERR_NOT_INIT
+} Dengle_Ret_t;
+
+/*============================================================================*/
+/* 澶栭儴鎺ュ彛 */
+/*============================================================================*/
+
+/**
+ * @brief 鍒濆鍖 Dengle 瀹氭椂妯″潡锛堝惎鍔 100ms 鑺傛媿锛
+ * @return Dengle_Ret_t
+ */
+Dengle_Ret_t dengle_sched_init(void);
+
+/**
+ * @brief USB 璁剧疆涓鏉″畾鏃朵换鍔
+ * @note payload 鏍煎紡瑙 .c 鏂囦欢澶存敞閲
+ * @param payload USB 甯 payload锛堜笉鍚 55AA/LEN/CMD/SN/CKSUM锛
+ * @param payload_len 闀垮害
+ * @return Dengle_Ret_t
+ */
+Dengle_Ret_t dengle_sched_usb_set(const uint8_t *payload, uint16_t payload_len);
+
+/**
+ * @brief 娓呴櫎鍏ㄩ儴瀹氭椂浠诲姟
+ * @return Dengle_Ret_t
+ */
+Dengle_Ret_t dengle_sched_clear_all(void);
+
+/**
+ * @brief 鎵撳寘鍗曚釜妲戒綅閰嶇疆锛堟牸寮忎笌 0x70 璁剧疆 payload 涓鑷达級
+ * @param slot_id 妲戒綅 0~9
+ * @param buf 杈撳嚭缂撳啿
+ * @param max_len 缂撳啿鏈澶ч暱搴
+ * @return >0 鍐欏叆瀛楄妭鏁帮紱<=0 澶辫触
+ */
+int dengle_sched_pack_slot(uint8_t slot_id, uint8_t *buf, uint16_t max_len);
+
+/**
+ * @brief 鎵撳寘鍏ㄩ儴妲戒綅閰嶇疆锛堣繛缁嫾鎺ュ涓 0x70 椋庢牸璁板綍锛
+ * @param buf 杈撳嚭缂撳啿
+ * @param max_len 缂撳啿鏈澶ч暱搴
+ * @return >0 鍐欏叆瀛楄妭鏁帮紱<=0 澶辫触
+ */
+int dengle_sched_pack_all(uint8_t *buf, uint16_t max_len);
+
+/**
+ * @brief 鑾峰彇鏈夋晥鏉$洰鏁帮紙璋冭瘯鐢級
+ * @return 宸蹭娇鑳芥Ы浣嶆暟
+ */
+uint8_t dengle_sched_get_active_count(void);
+
+#endif /* __USR_DENGLE_SCHED_H__ */
diff --git a/apps/usr_le_code/usr_le_recieve.c b/apps/usr_le_code/usr_le_recieve.c
index 7bdc5e4..7370e14 100644
--- a/apps/usr_le_code/usr_le_recieve.c
+++ b/apps/usr_le_code/usr_le_recieve.c
@@ -714,6 +714,45 @@ void usr_app_ota_init()
}
}
+// void usr_test_bleproto_runcmd(void)
+// {
+// bleproto_appdata_desc_t encode_desc = {0};
+// encode_desc.header.version = 0;
+// encode_desc.header.datafmt = BLEPROTO_APPDATA_DATAFMT_JSON;
+// encode_desc.header.msgtype = BLEPROTO_APPDATA_MSGTYPE_REQ;
+// encode_desc.header.msgid = 1;
+// encode_desc.header.encrypt = 0;
+// encode_desc.header.serviceid = E_BLEPROTO_SERVICE_ID_REPORTCMD;
+
+// bleproto_reportcmd_req_t *pkt = &encode_desc.datast.reportcmd_req;
+// /*
+// > 鍛婅涓婃姤 锛*璁惧涓诲姩涓婃姤*锛
+// * 鍛戒护ID锛 120
+// * 鍙傛暟璇存槑
+
+// | 绱㈠紩 | 绫诲瀷 | 鎻忚堪 | 鍙栧 |
+// | ---- | ----- | ---------- | ----------------------------------------------------- |
+// | 0 | int32 | 鍛婅浜嬩欢id | 5000锛氱‖浠舵晠闅滐紱5001锛氫綆鐢甸噺鎶ヨ; 5010锛氶渿鍔ㄥ紑鏈烘姤璀 |
+// | 1 | int32 | UTC鏃堕棿鎴 | 浜嬩欢瑙﹀彂UTCS鏃堕棿鎴冲崟浣嶇 |
+
+// */
+// req->ycmd.cmd_id = 100;
+
+// req->ycmd.arg_int32[0] = 5001; // 鐢甸噺涓婃姤
+// req->ycmd.arg_int32[1] = usr_var.usr_cureent_utc; // UTC鏃堕棿鎴
+
+// req->ycmd.arg_int32_count = 2;
+// req->ycmd.t = usr_var.usr_cureent_utc;
+
+// int elen = bleproto_appdata_encode(txbuf, sizeof(txbuf), sizeof(txbuf), &encode_desc);
+// printf("encode_len = %d\n", elen);
+// if (elen > 0)
+// {
+// usr_ble_send_data(txbuf, elen);
+// printf_buf(txbuf, elen);
+// }
+// }
+
void usr_test_protocol(void)
{
bleproto_appdata_desc_t encode_desc = {0};
diff --git a/apps/usr_le_code/usr_usb_jb.c b/apps/usr_le_code/usr_usb_jb.c
index 2863c72..43cce8a 100644
--- a/apps/usr_le_code/usr_usb_jb.c
+++ b/apps/usr_le_code/usr_usb_jb.c
@@ -15,6 +15,7 @@
#include "vm.h"
#include "usr_usb_jb.h"
#include "bleproto_api.h"
+#include "usr_dengle_sched.h"
#define LOG_TAG_CONST APP
#define LOG_TAG "[USB_JB]"
@@ -36,6 +37,7 @@
#define PKT_HEAD_1 0xAA
#define MAX_PACKAGE_LEN 128
#define JB_RB_CAPACITY 256
+#define JB_RSP_BUF_SZ 800 /* Dengle 鏌ヨ搴旂瓟锛歳esult + 鏈澶 10 妲 */
#define USR_PROD_MAGIC 0x5A
#define USR_JB_BLE_CMD_REPORT 100 /* 0x07/0x34/0x38 鈫 涓诲姩涓婃姤绫 */
#define USR_JB_BLE_CMD_ACK 110 /* 0x04/0x06/0x31/0x37 鈫 搴旂瓟绫 */
@@ -86,6 +88,7 @@ static uint8_t s_pending_pcode[USR_PCODE_LEN];
static int s_process_timer;
static uint8_t s_ble_txbuf[USR_JB_BLE_TX_SZ];
static uint8_t s_last_ble_msgid; /* 鏈杩戜竴娆 BLE RX 鐨 msgid */
+static uint8_t s_rsp_buf[JB_RSP_BUF_SZ];
void usr_ble_rx_msgid_save(uint8_t msgid)
{
@@ -426,6 +429,117 @@ static void usr_jb_send_ack(uint8_t cmd, uint8_t sn, uint8_t result)
buf[7] = usr_jb_checksum(buf, total);
cdc_write_data(0, buf, total);
}
+
+/**
+ * @brief 鍥炲甫 payload 鐨勫簲绛旓細CMD = 璇锋眰 CMD+1
+ * @param cmd 璇锋眰鍛戒护
+ * @param sn 娴佹按鍙
+ * @param payload 搴旂瓟璐熻浇锛堝彲涓 NULL锛
+ * @param payload_len 璐熻浇闀垮害
+ */
+static void usr_jb_send_rsp(uint8_t cmd, uint8_t sn,
+ const uint8_t *payload, uint16_t payload_len)
+{
+ uint16_t len_field;
+ uint16_t total;
+
+ /* LEN = CMD + SN + payload + CKSUM */
+ len_field = (uint16_t)(2 + payload_len + 1);
+ total = (uint16_t)(len_field + 4);
+ if (total > JB_RSP_BUF_SZ) {
+ printf("usr_jb rsp too long %u\n", total);
+ usr_jb_send_ack(cmd, sn, 0x01);
+ return;
+ }
+
+ s_rsp_buf[0] = PKT_HEAD_0;
+ s_rsp_buf[1] = PKT_HEAD_1;
+ s_rsp_buf[2] = (uint8_t)(len_field >> 8);
+ s_rsp_buf[3] = (uint8_t)(len_field & 0xFF);
+ s_rsp_buf[4] = (uint8_t)(cmd + 1);
+ s_rsp_buf[5] = sn;
+ if (payload && payload_len) {
+ memcpy(&s_rsp_buf[6], payload, payload_len);
+ }
+ s_rsp_buf[total - 1] = usr_jb_checksum(s_rsp_buf, total);
+ cdc_write_data(0, s_rsp_buf, total);
+ printf("usr_jb rsp cmd=0x%02x plen=%u total=%u\n", cmd + 1, payload_len, total);
+}
+
+/**
+ * @brief Dengle 鏌ヨ锛氱┖/0xFF=鍏ㄩ儴锛涘崟瀛楄妭妲戒綅=鏌ヤ竴鏉
+ * @note 搴旂瓟 0x75锛
+ * 鏌ュ叏閮 鈫 [result][slot_rec x 10]锛宻lot_rec 涓 0x70 payload 鍚屾牸寮
+ * 鏌ュ崟妲 鈫 [result][slot_rec x 1]
+ */
+static void usr_jb_handle_dengle_query(uint8_t sn,
+ const uint8_t *payload,
+ uint16_t payload_len)
+{
+ static uint8_t s_body[JB_RSP_BUF_SZ - 8];
+ int n;
+ uint8_t slot_id;
+ uint8_t i;
+
+ /* 鏌ュ崟妲 */
+ if (payload_len >= 1 && payload[0] < DENGLE_SLOT_MAX) {
+ slot_id = payload[0];
+ s_body[0] = 0x00; /* result ok */
+ n = dengle_sched_pack_slot(slot_id, &s_body[1], sizeof(s_body) - 1);
+ if (n <= 0) {
+ usr_jb_send_ack(USR_JB_CMD_DENGLE_QRY, sn, 0x01);
+ return;
+ }
+ usr_jb_send_rsp(USR_JB_CMD_DENGLE_QRY, sn, s_body, (uint16_t)(1 + n));
+ return;
+ }
+
+ /* 鏌ュ叏閮細payload 绌 / 0xFF / 鍏跺畠 */
+ s_body[0] = 0x00;
+ n = dengle_sched_pack_all(&s_body[1], sizeof(s_body) - 1);
+ if (n > 0) {
+ usr_jb_send_rsp(USR_JB_CMD_DENGLE_QRY, sn, s_body, (uint16_t)(1 + n));
+ return;
+ }
+
+ /* 缂撳啿涓嶅鏃堕鍖栦负閫愭Ы涓婃姤 */
+ printf("dengle qry pack_all fail, fallback per-slot\n");
+ for (i = 0; i < DENGLE_SLOT_MAX; i++) {
+ s_body[0] = 0x00;
+ n = dengle_sched_pack_slot(i, &s_body[1], sizeof(s_body) - 1);
+ if (n <= 0) {
+ usr_jb_send_ack(USR_JB_CMD_DENGLE_QRY, sn, 0x01);
+ return;
+ }
+ usr_jb_send_rsp(USR_JB_CMD_DENGLE_QRY, sn, s_body, (uint16_t)(1 + n));
+ }
+}
+
+/**
+ * @brief 鏌ヨ浜у搧鐮侊細搴旂瓟鏍煎紡涓 0x64 璁剧疆 payload 瀵归綈锛堝甫 result锛
+ * RSP 0x67 payload:
+ * [result:1][04][ProdtCode 4B][06][productCode 6B]
+ */
+static void usr_jb_handle_prodcode_query(uint8_t sn)
+{
+ uint8_t body[1 + 1 + USR_PRODCODE_LEN + 1 + USR_PCODE_LEN];
+ uint8_t prod[USR_PRODCODE_LEN];
+ uint8_t pcode[USR_PCODE_LEN];
+
+ usr_prodcode_get(prod, pcode);
+
+ body[0] = 0x00; /* result ok */
+ body[1] = USR_PRODCODE_LEN;
+ memcpy(&body[2], prod, USR_PRODCODE_LEN);
+ body[2 + USR_PRODCODE_LEN] = USR_PCODE_LEN;
+ memcpy(&body[2 + USR_PRODCODE_LEN + 1], pcode, USR_PCODE_LEN);
+
+ printf("prodcode qry: %c%c%c%c / %c%c%c%c%c%c\n",
+ prod[0], prod[1], prod[2], prod[3],
+ pcode[0], pcode[1], pcode[2], pcode[3], pcode[4], pcode[5]);
+
+ usr_jb_send_rsp(USR_JB_CMD_GET_PRODCODE, sn, body, sizeof(body));
+}
#endif
/**
@@ -458,25 +572,59 @@ static void usr_jb_process_timeout(void *priv)
printf("usr_jb cmd=0x%02x sn=%u plen=%u\n", cmd, sn, payload_len);
printf_buf(pkt, pkt_len);
- if (cmd == USR_JB_CMD_SET_PRODCODE) {
+ switch (cmd) {
+ case USR_JB_CMD_SET_PRODCODE:
if (usr_jb_parse_prod_payload(&pkt[6], payload_len,
s_pending_prod, s_pending_pcode) != 0) {
printf("usr_jb set prodcode payload invalid\n");
#if TCFG_USB_SLAVE_CDC_ENABLE
usr_jb_send_ack(cmd, sn, 0x01);
#endif
- continue;
+ break;
}
-
/* 缂撳瓨鍚庣粺涓钀界洏锛岄伩鍏嶅悓涓鍛ㄦ湡澶氭鍐 flash */
s_pending_cmd = cmd;
s_pending_sn = sn;
s_pending_save = 1;
- continue;
+ break;
+
+ case USR_JB_CMD_GET_PRODCODE:
+#if TCFG_USB_SLAVE_CDC_ENABLE
+ usr_jb_handle_prodcode_query(sn);
+#endif
+ break;
+
+ case USR_JB_CMD_DENGLE_SET: {
+ Dengle_Ret_t dr = dengle_sched_usb_set(&pkt[6], payload_len);
+ printf("dengle sched usb set ret=%d\n", dr);
+#if TCFG_USB_SLAVE_CDC_ENABLE
+ usr_jb_send_ack(cmd, sn, (dr == DENGLE_OK) ? 0x00 : 0x01);
+#endif
+ break;
}
- /* 鍏跺畠鍛戒护锛氭暣甯ч忎紶鍒 BLE锛堟寜 JB cmd 鏄犲皠 ble_proto cmd锛 */
- usr_jb_forward_to_ble(pkt, pkt_len);
+ case USR_JB_CMD_DENGLE_CLR: {
+ Dengle_Ret_t dr = dengle_sched_clear_all();
+ printf("dengle sched clear all ret=%d\n", dr);
+#if TCFG_USB_SLAVE_CDC_ENABLE
+ usr_jb_send_ack(cmd, sn, (dr == DENGLE_OK) ? 0x00 : 0x01);
+#endif
+ break;
+ }
+
+ case USR_JB_CMD_DENGLE_QRY:
+#if TCFG_USB_SLAVE_CDC_ENABLE
+ usr_jb_handle_dengle_query(sn, &pkt[6], payload_len);
+#else
+ (void)payload_len;
+#endif
+ break;
+
+ default:
+ /* 鍏跺畠鍛戒护锛氭暣甯ч忎紶鍒 BLE锛堟寜 JB cmd 鏄犲皠 ble_proto cmd锛 */
+ usr_jb_forward_to_ble(pkt, pkt_len);
+ break;
+ }
} while (1);
if (!s_pending_save) {
@@ -484,6 +632,16 @@ static void usr_jb_process_timeout(void *priv)
}
s_pending_save = 0;
+ /* code / prodcode 涓庡綋鍓嶅畬鍏ㄤ竴鑷达細ACK 鎴愬姛锛屼笉鍐 Flash銆佷笉閲嶅缓骞挎挱 */
+ if (memcmp(s_prodcode, s_pending_prod, USR_PRODCODE_LEN) == 0 &&
+ memcmp(s_pcode, s_pending_pcode, USR_PCODE_LEN) == 0) {
+#if TCFG_USB_SLAVE_CDC_ENABLE
+ usr_jb_send_ack(s_pending_cmd, s_pending_sn, 0x00);
+#endif
+ printf("prodcode unchanged, skip adv rebuild\n");
+ return;
+ }
+
if (usr_prodcode_save(s_pending_prod, s_pending_pcode) == 0) {
#if TCFG_USB_SLAVE_CDC_ENABLE
usr_jb_send_ack(s_pending_cmd, s_pending_sn, 0x00);
diff --git a/apps/usr_le_code/usr_usb_jb.h b/apps/usr_le_code/usr_usb_jb.h
index 3f3337d..4b1d195 100644
--- a/apps/usr_le_code/usr_usb_jb.h
+++ b/apps/usr_le_code/usr_usb_jb.h
@@ -19,7 +19,11 @@
#define USR_PRODCODE_LEN (4)
#define USR_PCODE_LEN (6)
-#define USR_JB_CMD_SET_PRODCODE (0x64) /**< USB 涓嬪彂浜у搧鐮佸懡浠 */
+#define USR_JB_CMD_SET_PRODCODE (0x64) /**< USB 璁剧疆浜у搧鐮侊紱ACK=0x65 */
+#define USR_JB_CMD_GET_PRODCODE (0x66) /**< USB 鏌ヨ浜у搧鐮侊紱RSP=0x67 */
+#define USR_JB_CMD_DENGLE_SET (0x70) /**< USB 璁剧疆 Dengle 瀹氭椂锛汚CK=0x71 */
+#define USR_JB_CMD_DENGLE_CLR (0x72) /**< USB 娓呴櫎鍏ㄩ儴 Dengle锛汚CK=0x73 */
+#define USR_JB_CMD_DENGLE_QRY (0x74) /**< USB 鏌ヨ Dengle 閰嶇疆锛汻SP=0x75 */
/*============================================================================*/
/* 澶栭儴鎺ュ彛 */
diff --git a/cpu/br28/tools/app.bin b/cpu/br28/tools/app.bin
index bfa6ac4..928d0d7 100644
Binary files a/cpu/br28/tools/app.bin and b/cpu/br28/tools/app.bin differ
diff --git a/cpu/br28/tools/data_code.bin b/cpu/br28/tools/data_code.bin
index 1e734c1..3ea2f8f 100644
Binary files a/cpu/br28/tools/data_code.bin and b/cpu/br28/tools/data_code.bin differ
diff --git a/cpu/br28/tools/download/earphone/db_update_data.bin b/cpu/br28/tools/download/earphone/db_update_data.bin
index 543d156..6b2927b 100644
Binary files a/cpu/br28/tools/download/earphone/db_update_data.bin and b/cpu/br28/tools/download/earphone/db_update_data.bin differ
diff --git a/cpu/br28/tools/download/earphone/jl_isd.bin b/cpu/br28/tools/download/earphone/jl_isd.bin
index cd6a162..8175c36 100644
Binary files a/cpu/br28/tools/download/earphone/jl_isd.bin and b/cpu/br28/tools/download/earphone/jl_isd.bin differ
diff --git a/cpu/br28/tools/download/earphone/jl_isd.fw b/cpu/br28/tools/download/earphone/jl_isd.fw
index 619848d..c12d8b9 100644
Binary files a/cpu/br28/tools/download/earphone/jl_isd.fw and b/cpu/br28/tools/download/earphone/jl_isd.fw differ
diff --git a/cpu/br28/tools/download/earphone/update.ufw b/cpu/br28/tools/download/earphone/update.ufw
index 329cbc7..173e261 100644
Binary files a/cpu/br28/tools/download/earphone/update.ufw and b/cpu/br28/tools/download/earphone/update.ufw differ
diff --git a/cpu/br28/tools/sdk.elf b/cpu/br28/tools/sdk.elf
index 45e6956..2c53768 100644
Binary files a/cpu/br28/tools/sdk.elf and b/cpu/br28/tools/sdk.elf differ
diff --git a/cpu/br28/tools/sdk.elf.0.0.preopt.bc b/cpu/br28/tools/sdk.elf.0.0.preopt.bc
index 07c44df..4f0aaf5 100644
Binary files a/cpu/br28/tools/sdk.elf.0.0.preopt.bc and b/cpu/br28/tools/sdk.elf.0.0.preopt.bc differ
diff --git a/cpu/br28/tools/sdk.elf.0.2.internalize.bc b/cpu/br28/tools/sdk.elf.0.2.internalize.bc
index f772d5a..5395f33 100644
Binary files a/cpu/br28/tools/sdk.elf.0.2.internalize.bc and b/cpu/br28/tools/sdk.elf.0.2.internalize.bc differ
diff --git a/cpu/br28/tools/sdk.elf.0.4.opt.bc b/cpu/br28/tools/sdk.elf.0.4.opt.bc
index 8dd58e9..a56a991 100644
Binary files a/cpu/br28/tools/sdk.elf.0.4.opt.bc and b/cpu/br28/tools/sdk.elf.0.4.opt.bc differ
diff --git a/cpu/br28/tools/sdk.elf.0.5.precodegen.bc b/cpu/br28/tools/sdk.elf.0.5.precodegen.bc
index 8dd58e9..a56a991 100644
Binary files a/cpu/br28/tools/sdk.elf.0.5.precodegen.bc and b/cpu/br28/tools/sdk.elf.0.5.precodegen.bc differ
diff --git a/cpu/br28/tools/sdk.elf.o b/cpu/br28/tools/sdk.elf.o
index 32c45aa..b083683 100644
Binary files a/cpu/br28/tools/sdk.elf.o and b/cpu/br28/tools/sdk.elf.o differ
diff --git a/cpu/br28/tools/sdk.elf.objs.txt b/cpu/br28/tools/sdk.elf.objs.txt
index 17626bb..9e20109 100644
--- a/cpu/br28/tools/sdk.elf.objs.txt
+++ b/cpu/br28/tools/sdk.elf.objs.txt
@@ -1 +1 @@
-obj/Release/apps/common/audio/amplitude_statistic.o obj/Release/apps/common/audio/audio_dvol.o obj/Release/apps/common/audio/audio_export_demo.o obj/Release/apps/common/audio/audio_noise_gate.o obj/Release/apps/common/audio/audio_ns.o obj/Release/apps/common/audio/audio_plc.o obj/Release/apps/common/audio/audio_utils.o obj/Release/apps/common/audio/decode/audio_key_tone.o obj/Release/apps/common/audio/decode/decode.o obj/Release/apps/common/audio/demo/audio_demo.o obj/Release/apps/common/audio/online_debug/aud_data_export.o obj/Release/apps/common/audio/online_debug/aud_mic_dut.o obj/Release/apps/common/audio/online_debug/aud_spatial_effect_dut.o obj/Release/apps/common/audio/online_debug/audio_online_debug.o obj/Release/apps/common/audio/sine_make.o obj/Release/apps/common/audio/uartPcmSender.o obj/Release/apps/common/audio/wm8978/iic.o obj/Release/apps/common/audio/wm8978/wm8978.o obj/Release/apps/common/bt_common/bt_test_api.o obj/Release/apps/common/cJSON/cJSON.o obj/Release/apps/common/config/app_config.o obj/Release/apps/common/config/bt_profile_config.o obj/Release/apps/common/config/ci_transport_uart.o obj/Release/apps/common/config/new_cfg_tool.o obj/Release/apps/common/debug/debug.o obj/Release/apps/common/debug/debug_lite.o obj/Release/apps/common/dev_manager/dev_manager.o obj/Release/apps/common/dev_manager/dev_reg.o obj/Release/apps/common/dev_manager/dev_update.o obj/Release/apps/common/device/gSensor/da230.o obj/Release/apps/common/device/gSensor/gSensor_manage.o obj/Release/apps/common/device/gSensor/mpu6050.o obj/Release/apps/common/device/gSensor/SC7A20.o obj/Release/apps/common/device/gSensor/STK8321.o obj/Release/apps/common/device/gx8002_npu/gx8002_enc/gx8002_enc.o obj/Release/apps/common/device/gx8002_npu/gx8002_npu.o obj/Release/apps/common/device/gx8002_npu/gx8002_npu_event_deal.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/app_upgrade/gx_uart_upgrade_app.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/app_upgrade/gx_uart_upgrade_tws.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/gx_uart_upgrade.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/gx_uart_upgrade_porting.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/sdfile_upgrade/gx_uart_upgrade_sdfile.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/spp_upgrade/gx_fifo.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/spp_upgrade/gx_uart_upgrade_spp.o obj/Release/apps/common/device/imu_sensor/icm_42670p/icm_42670p.o obj/Release/apps/common/device/imu_sensor/icm_42670p/inv_imu_apex.o obj/Release/apps/common/device/imu_sensor/icm_42670p/inv_imu_driver.o obj/Release/apps/common/device/imu_sensor/icm_42670p/inv_imu_transport.o obj/Release/apps/common/device/imu_sensor/imuSensor_manage.o obj/Release/apps/common/device/imu_sensor/lsm6dsl/lsm6dsl.o obj/Release/apps/common/device/imu_sensor/mpu6887/mpu6887p.o obj/Release/apps/common/device/imu_sensor/mpu9250/mpu9250.o obj/Release/apps/common/device/imu_sensor/qmi8658/qmi8658c.o obj/Release/apps/common/device/imu_sensor/sh3001/sh3001.o obj/Release/apps/common/device/in_ear_detect/in_ear_detect.o obj/Release/apps/common/device/in_ear_detect/in_ear_manage.o obj/Release/apps/common/device/ir_sensor/ir_manage.o obj/Release/apps/common/device/ir_sensor/jsa1221.o obj/Release/apps/common/device/key/adkey.o obj/Release/apps/common/device/key/adkey_rtcvdd.o obj/Release/apps/common/device/key/ctmu_touch_key.o obj/Release/apps/common/device/key/iokey.o obj/Release/apps/common/device/key/irkey.o obj/Release/apps/common/device/key/key_driver.o obj/Release/apps/common/device/key/touch_key.o obj/Release/apps/common/device/key/uart_key.o obj/Release/apps/common/device/norflash/norflash_sfc.o obj/Release/apps/common/device/ntc/ntc_det.o obj/Release/apps/common/device/usb/device/cdc.o obj/Release/apps/common/device/usb/device/descriptor.o obj/Release/apps/common/device/usb/device/hid.o obj/Release/apps/common/device/usb/device/msd.o obj/Release/apps/common/device/usb/device/msd_upgrade.o obj/Release/apps/common/device/usb/device/task_pc.o obj/Release/apps/common/device/usb/device/uac1.o obj/Release/apps/common/device/usb/device/uac_stream.o obj/Release/apps/common/device/usb/device/usb_device.o obj/Release/apps/common/device/usb/device/user_setup.o obj/Release/apps/common/device/usb/host/adb.o obj/Release/apps/common/device/usb/host/aoa.o obj/Release/apps/common/device/usb/host/audio.o obj/Release/apps/common/device/usb/host/audio_demo.o obj/Release/apps/common/device/usb/host/hid.o obj/Release/apps/common/device/usb/host/usb_bulk_transfer.o obj/Release/apps/common/device/usb/host/usb_ctrl_transfer.o obj/Release/apps/common/device/usb/host/usb_host.o obj/Release/apps/common/device/usb/host/usb_storage.o obj/Release/apps/common/device/usb/usb_config.o obj/Release/apps/common/device/usb/usb_host_config.o obj/Release/apps/common/ezxml/ezxml.o obj/Release/apps/common/ezxml/ezxml_example.o obj/Release/apps/common/fat_nor/cfg_private.o obj/Release/apps/common/fat_nor/virfat_flash.o obj/Release/apps/common/file_operate/file_bs_deal.o obj/Release/apps/common/file_operate/file_manager.o obj/Release/apps/common/icsd/adt/icsd_adt.o obj/Release/apps/common/icsd/adt/icsd_adt_app.o obj/Release/apps/common/icsd/anc/icsd_anc_app.o obj/Release/apps/common/icsd/anc/icsd_anc_board.o obj/Release/apps/common/icsd/anc/icsd_anc_data.o obj/Release/apps/common/jl_kws/jl_kws_algo.o obj/Release/apps/common/jl_kws/jl_kws_audio.o obj/Release/apps/common/jl_kws/jl_kws_event.o obj/Release/apps/common/jl_kws/jl_kws_main.o obj/Release/apps/common/temp_trim/dtemp_pll_trim.o obj/Release/apps/common/third_party_profile/common/3th_profile_api.o obj/Release/apps/common/third_party_profile/common/custom_cfg.o obj/Release/apps/common/third_party_profile/common/mic_rec.o obj/Release/apps/common/third_party_profile/interface/app_protocol_api.o obj/Release/apps/common/third_party_profile/interface/app_protocol_common.o obj/Release/apps/common/third_party_profile/interface/app_protocol_dma.o obj/Release/apps/common/third_party_profile/interface/app_protocol_gfps.o obj/Release/apps/common/third_party_profile/interface/app_protocol_gma.o obj/Release/apps/common/third_party_profile/interface/app_protocol_mma.o obj/Release/apps/common/third_party_profile/interface/app_protocol_ota.o obj/Release/apps/common/third_party_profile/interface/app_protocol_tme.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_adaptive_noise_reduction.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_anc_voice.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_anc_voice_key.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_bt_name_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_eq_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_hearing_aid_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_high_low_vol_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_key_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_led_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_mic_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_music_info_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_time_stamp_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_work_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_bluetooth.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_customer_user.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_opt.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_tws_sync.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/rcsp_adv_spp_user.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/rcsp_updata/rcsp_adv_user_update.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/rcsp_updata/rcsp_ch_loader_download.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/rcsp_updata/rcsp_user_update.o obj/Release/apps/common/third_party_profile/jieli/online_db/online_db_deal.o obj/Release/apps/common/third_party_profile/jieli/online_db/spp_online_db.o obj/Release/apps/common/ui/lcd_simple/lcd_simple_api.o obj/Release/apps/common/ui/lcd_simple/ui.o obj/Release/apps/common/ui/lcd_simple/ui_mainmenu.o obj/Release/apps/common/update/testbox_update.o obj/Release/apps/common/update/update.o obj/Release/apps/common/update/update_tws.o obj/Release/apps/common/update/update_tws_new.o obj/Release/apps/earphone/aec/br28/audio_aec.o obj/Release/apps/earphone/aec/br28/audio_aec_demo.o obj/Release/apps/earphone/aec/br28/audio_aec_dms.o obj/Release/apps/earphone/aec/br28/audio_aec_online.o obj/Release/apps/earphone/aec/br28/audio_cvp_3mic.o obj/Release/apps/earphone/aec/br28/audio_cvp_ais_3mic.o obj/Release/apps/earphone/app_ancbox.o obj/Release/apps/earphone/app_anctool.o obj/Release/apps/earphone/app_main.o obj/Release/apps/earphone/app_protocol_deal.o obj/Release/apps/earphone/app_task_switch.o obj/Release/apps/earphone/app_testbox.o obj/Release/apps/earphone/audio_enc_mpt_cvp_ctr.o obj/Release/apps/earphone/audio_enc_mpt_self.o obj/Release/apps/earphone/ble_adv.o obj/Release/apps/earphone/board/br28/board_jl701n_demo.o obj/Release/apps/earphone/bt_auto_test.o obj/Release/apps/earphone/bt_background.o obj/Release/apps/earphone/bt_ble.o obj/Release/apps/earphone/bt_ble_hid.o obj/Release/apps/earphone/bt_emitter.o obj/Release/apps/earphone/bt_tws.o obj/Release/apps/earphone/default_event_handler.o obj/Release/apps/earphone/dual_update_demo.o obj/Release/apps/earphone/earphone.o obj/Release/apps/earphone/eartch_event_deal.o obj/Release/apps/earphone/font/fontinit.o obj/Release/apps/earphone/idle.o obj/Release/apps/earphone/key_event_deal.o obj/Release/apps/earphone/kws_voice_event_deal.o obj/Release/apps/earphone/linein/linein.o obj/Release/apps/earphone/ll_sync_demo/ll_sync_demo.o obj/Release/apps/earphone/log_config/app_config.o obj/Release/apps/earphone/log_config/lib_btctrler_config.o obj/Release/apps/earphone/log_config/lib_btstack_config.o obj/Release/apps/earphone/log_config/lib_driver_config.o obj/Release/apps/earphone/log_config/lib_media_config.o obj/Release/apps/earphone/log_config/lib_system_config.o obj/Release/apps/earphone/log_config/lib_update_config.o obj/Release/apps/earphone/music/sd_music.o obj/Release/apps/earphone/pbg_demo.o obj/Release/apps/earphone/pc/pc.o obj/Release/apps/earphone/power_manage/app_charge.o obj/Release/apps/earphone/power_manage/app_chargestore.o obj/Release/apps/earphone/power_manage/app_power_manage.o obj/Release/apps/earphone/power_manage/app_umidigi_chargestore.o obj/Release/apps/earphone/rcsp/jl_phone_app.o obj/Release/apps/earphone/rcsp/rcsp_adv.o obj/Release/apps/earphone/sdk_version.z.o obj/Release/apps/earphone/tone_table.o obj/Release/apps/earphone/ui/lcd_simple/my_demo.o obj/Release/apps/earphone/ui_manage.o obj/Release/apps/earphone/user_cfg.o obj/Release/apps/earphone/version.o obj/Release/apps/earphone/vol_sync.o obj/Release/apps/earphone/wireless_mic/app_main_wireless_mic.o obj/Release/apps/earphone/wireless_mic/audio/adapter_adc.o obj/Release/apps/earphone/wireless_mic/audio/adapter_media.o obj/Release/apps/earphone/wireless_mic/audio/wireless/adapter_wireless_dec.o obj/Release/apps/earphone/wireless_mic/audio/wireless/adapter_wireless_enc.o obj/Release/apps/earphone/wireless_mic/bt/bt_edr_fun.o obj/Release/apps/earphone/wireless_mic/bt/bt_status_event.o obj/Release/apps/earphone/wireless_mic/idev/adapter_idev.o obj/Release/apps/earphone/wireless_mic/idev/idev_bt/adapter_idev_bt.o obj/Release/apps/earphone/wireless_mic/idev/idev_bt/idev_ble/adapter_idev_ble.o obj/Release/apps/earphone/wireless_mic/idev/idev_mic/adapter_idev_mic.o obj/Release/apps/earphone/wireless_mic/odev/adapter_odev.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/adapter_odev_bt.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/odev_ble/adapter_odev_ble.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/odev_ble/odev_ble_wireless.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/odev_edr/adapter_odev_edr.o obj/Release/apps/earphone/wireless_mic/odev/odev_dac/adapter_odev_dac.o obj/Release/apps/earphone/wireless_mic/process/adapter_process.o obj/Release/apps/usr_le_code/ble_proto.o obj/Release/apps/usr_le_code/bleproto.o obj/Release/apps/usr_le_code/bleproto_packer.o obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o obj/Release/apps/usr_le_code/usr_le_adv.o obj/Release/apps/usr_le_code/usr_le_recieve.o obj/Release/apps/usr_le_code/usr_le_recieve_demo.o obj/Release/apps/usr_le_code/usr_usb_jb.o obj/Release/cpu/br28/adc_api.o obj/Release/cpu/br28/aec_tool.o obj/Release/cpu/br28/app_audio.o obj/Release/cpu/br28/audio_anc.o obj/Release/cpu/br28/audio_anc_fade_ctr.o obj/Release/cpu/br28/audio_anc_mult_scene.o obj/Release/cpu/br28/audio_capture.o obj/Release/cpu/br28/audio_codec_clock.o obj/Release/cpu/br28/audio_common/audio_mic_codec.o obj/Release/cpu/br28/audio_cvp_dut.o obj/Release/cpu/br28/audio_cvp_sync.o obj/Release/cpu/br28/audio_dec.o obj/Release/cpu/br28/audio_dec/audio_dec_file.o obj/Release/cpu/br28/audio_dec/audio_dec_iis.o obj/Release/cpu/br28/audio_dec/audio_dec_pc.o obj/Release/cpu/br28/audio_dec/audio_dec_pcm.o obj/Release/cpu/br28/audio_dec/audio_usb_mic.o obj/Release/cpu/br28/audio_dec_eff.o obj/Release/cpu/br28/audio_demo/audio_adc_demo.o obj/Release/cpu/br28/audio_demo/audio_dac_demo.o obj/Release/cpu/br28/audio_demo/audio_fft_demo.o obj/Release/cpu/br28/audio_demo/audio_matrix_demo.o obj/Release/cpu/br28/audio_demo/audio_wind_detect_demo.o obj/Release/cpu/br28/audio_effect_develop.o obj/Release/cpu/br28/audio_enc.o obj/Release/cpu/br28/audio_general.o obj/Release/cpu/br28/audio_hearing/audio_hearing_aid.o obj/Release/cpu/br28/audio_hearing/audio_hearing_aid_lp.o obj/Release/cpu/br28/audio_hearing/audio_sidetone.o obj/Release/cpu/br28/audio_link.o obj/Release/cpu/br28/audio_sync.o obj/Release/cpu/br28/charge.o obj/Release/cpu/br28/chargestore.o obj/Release/cpu/br28/clock_manager.o obj/Release/cpu/br28/eq_config.o obj/Release/cpu/br28/hw_fft.o obj/Release/cpu/br28/icsd_anc_user.o obj/Release/cpu/br28/iic_hw.o obj/Release/cpu/br28/iic_soft.o obj/Release/cpu/br28/irflt.o obj/Release/cpu/br28/lp_touch_key.o obj/Release/cpu/br28/lp_touch_key_alog.o obj/Release/cpu/br28/lp_touch_key_tool.o obj/Release/cpu/br28/lua_port_api.o obj/Release/cpu/br28/mcpwm.o obj/Release/cpu/br28/mic_dut_process.o obj/Release/cpu/br28/overlay_code.o obj/Release/cpu/br28/pdm_link.o obj/Release/cpu/br28/plcnt.o obj/Release/cpu/br28/power/power_app.o obj/Release/cpu/br28/power/power_check.o obj/Release/cpu/br28/power/power_port.o obj/Release/cpu/br28/power/power_trim.o obj/Release/cpu/br28/private_iis.o obj/Release/cpu/br28/pwm_led.o obj/Release/cpu/br28/rdec.o obj/Release/cpu/br28/setup.o obj/Release/cpu/br28/smart_voice/aispeech_asr.o obj/Release/cpu/br28/smart_voice/jl_kws_platform.o obj/Release/cpu/br28/smart_voice/kws_event.o obj/Release/cpu/br28/smart_voice/nn_vad.o obj/Release/cpu/br28/smart_voice/smart_voice_config.o obj/Release/cpu/br28/smart_voice/smart_voice_core.o obj/Release/cpu/br28/smart_voice/user_asr.o obj/Release/cpu/br28/smart_voice/vad_clock_trim.o obj/Release/cpu/br28/smart_voice/vad_mic.o obj/Release/cpu/br28/smart_voice/voice_mic_data.o obj/Release/cpu/br28/sound_device.o obj/Release/cpu/br28/spatial_effect/spatial_effect.o obj/Release/cpu/br28/spatial_effect/spatial_effect_imu.o obj/Release/cpu/br28/spatial_effect/spatial_effect_test.o obj/Release/cpu/br28/spatial_effect/spatial_effect_tws.o obj/Release/cpu/br28/spatial_effect/spatial_imu_trim.o obj/Release/cpu/br28/spi.o obj/Release/cpu/br28/tone_player.o obj/Release/cpu/br28/tws_audio.o obj/Release/cpu/br28/uart_dev.o obj/Release/cpu/br28/uart_test.o obj/Release/cpu/br28/umidigi_chargestore.o
\ No newline at end of file
+obj/Release/apps/common/audio/amplitude_statistic.o obj/Release/apps/common/audio/audio_dvol.o obj/Release/apps/common/audio/audio_export_demo.o obj/Release/apps/common/audio/audio_noise_gate.o obj/Release/apps/common/audio/audio_ns.o obj/Release/apps/common/audio/audio_plc.o obj/Release/apps/common/audio/audio_utils.o obj/Release/apps/common/audio/decode/audio_key_tone.o obj/Release/apps/common/audio/decode/decode.o obj/Release/apps/common/audio/demo/audio_demo.o obj/Release/apps/common/audio/online_debug/aud_data_export.o obj/Release/apps/common/audio/online_debug/aud_mic_dut.o obj/Release/apps/common/audio/online_debug/aud_spatial_effect_dut.o obj/Release/apps/common/audio/online_debug/audio_online_debug.o obj/Release/apps/common/audio/sine_make.o obj/Release/apps/common/audio/uartPcmSender.o obj/Release/apps/common/audio/wm8978/iic.o obj/Release/apps/common/audio/wm8978/wm8978.o obj/Release/apps/common/bt_common/bt_test_api.o obj/Release/apps/common/cJSON/cJSON.o obj/Release/apps/common/config/app_config.o obj/Release/apps/common/config/bt_profile_config.o obj/Release/apps/common/config/ci_transport_uart.o obj/Release/apps/common/config/new_cfg_tool.o obj/Release/apps/common/debug/debug.o obj/Release/apps/common/debug/debug_lite.o obj/Release/apps/common/dev_manager/dev_manager.o obj/Release/apps/common/dev_manager/dev_reg.o obj/Release/apps/common/dev_manager/dev_update.o obj/Release/apps/common/device/gSensor/da230.o obj/Release/apps/common/device/gSensor/gSensor_manage.o obj/Release/apps/common/device/gSensor/mpu6050.o obj/Release/apps/common/device/gSensor/SC7A20.o obj/Release/apps/common/device/gSensor/STK8321.o obj/Release/apps/common/device/gx8002_npu/gx8002_enc/gx8002_enc.o obj/Release/apps/common/device/gx8002_npu/gx8002_npu.o obj/Release/apps/common/device/gx8002_npu/gx8002_npu_event_deal.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/app_upgrade/gx_uart_upgrade_app.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/app_upgrade/gx_uart_upgrade_tws.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/gx_uart_upgrade.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/gx_uart_upgrade_porting.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/sdfile_upgrade/gx_uart_upgrade_sdfile.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/spp_upgrade/gx_fifo.o obj/Release/apps/common/device/gx8002_npu/gx8002_upgrade/spp_upgrade/gx_uart_upgrade_spp.o obj/Release/apps/common/device/imu_sensor/icm_42670p/icm_42670p.o obj/Release/apps/common/device/imu_sensor/icm_42670p/inv_imu_apex.o obj/Release/apps/common/device/imu_sensor/icm_42670p/inv_imu_driver.o obj/Release/apps/common/device/imu_sensor/icm_42670p/inv_imu_transport.o obj/Release/apps/common/device/imu_sensor/imuSensor_manage.o obj/Release/apps/common/device/imu_sensor/lsm6dsl/lsm6dsl.o obj/Release/apps/common/device/imu_sensor/mpu6887/mpu6887p.o obj/Release/apps/common/device/imu_sensor/mpu9250/mpu9250.o obj/Release/apps/common/device/imu_sensor/qmi8658/qmi8658c.o obj/Release/apps/common/device/imu_sensor/sh3001/sh3001.o obj/Release/apps/common/device/in_ear_detect/in_ear_detect.o obj/Release/apps/common/device/in_ear_detect/in_ear_manage.o obj/Release/apps/common/device/ir_sensor/ir_manage.o obj/Release/apps/common/device/ir_sensor/jsa1221.o obj/Release/apps/common/device/key/adkey.o obj/Release/apps/common/device/key/adkey_rtcvdd.o obj/Release/apps/common/device/key/ctmu_touch_key.o obj/Release/apps/common/device/key/iokey.o obj/Release/apps/common/device/key/irkey.o obj/Release/apps/common/device/key/key_driver.o obj/Release/apps/common/device/key/touch_key.o obj/Release/apps/common/device/key/uart_key.o obj/Release/apps/common/device/norflash/norflash_sfc.o obj/Release/apps/common/device/ntc/ntc_det.o obj/Release/apps/common/device/usb/device/cdc.o obj/Release/apps/common/device/usb/device/descriptor.o obj/Release/apps/common/device/usb/device/hid.o obj/Release/apps/common/device/usb/device/msd.o obj/Release/apps/common/device/usb/device/msd_upgrade.o obj/Release/apps/common/device/usb/device/task_pc.o obj/Release/apps/common/device/usb/device/uac1.o obj/Release/apps/common/device/usb/device/uac_stream.o obj/Release/apps/common/device/usb/device/usb_device.o obj/Release/apps/common/device/usb/device/user_setup.o obj/Release/apps/common/device/usb/host/adb.o obj/Release/apps/common/device/usb/host/aoa.o obj/Release/apps/common/device/usb/host/audio.o obj/Release/apps/common/device/usb/host/audio_demo.o obj/Release/apps/common/device/usb/host/hid.o obj/Release/apps/common/device/usb/host/usb_bulk_transfer.o obj/Release/apps/common/device/usb/host/usb_ctrl_transfer.o obj/Release/apps/common/device/usb/host/usb_host.o obj/Release/apps/common/device/usb/host/usb_storage.o obj/Release/apps/common/device/usb/usb_config.o obj/Release/apps/common/device/usb/usb_host_config.o obj/Release/apps/common/ezxml/ezxml.o obj/Release/apps/common/ezxml/ezxml_example.o obj/Release/apps/common/fat_nor/cfg_private.o obj/Release/apps/common/fat_nor/virfat_flash.o obj/Release/apps/common/file_operate/file_bs_deal.o obj/Release/apps/common/file_operate/file_manager.o obj/Release/apps/common/icsd/adt/icsd_adt.o obj/Release/apps/common/icsd/adt/icsd_adt_app.o obj/Release/apps/common/icsd/anc/icsd_anc_app.o obj/Release/apps/common/icsd/anc/icsd_anc_board.o obj/Release/apps/common/icsd/anc/icsd_anc_data.o obj/Release/apps/common/jl_kws/jl_kws_algo.o obj/Release/apps/common/jl_kws/jl_kws_audio.o obj/Release/apps/common/jl_kws/jl_kws_event.o obj/Release/apps/common/jl_kws/jl_kws_main.o obj/Release/apps/common/temp_trim/dtemp_pll_trim.o obj/Release/apps/common/third_party_profile/common/3th_profile_api.o obj/Release/apps/common/third_party_profile/common/custom_cfg.o obj/Release/apps/common/third_party_profile/common/mic_rec.o obj/Release/apps/common/third_party_profile/interface/app_protocol_api.o obj/Release/apps/common/third_party_profile/interface/app_protocol_common.o obj/Release/apps/common/third_party_profile/interface/app_protocol_dma.o obj/Release/apps/common/third_party_profile/interface/app_protocol_gfps.o obj/Release/apps/common/third_party_profile/interface/app_protocol_gma.o obj/Release/apps/common/third_party_profile/interface/app_protocol_mma.o obj/Release/apps/common/third_party_profile/interface/app_protocol_ota.o obj/Release/apps/common/third_party_profile/interface/app_protocol_tme.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_adaptive_noise_reduction.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_anc_voice.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_anc_voice_key.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_bt_name_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_eq_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_hearing_aid_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_high_low_vol_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_key_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_led_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_mic_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_music_info_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_time_stamp_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_app_setting/adv_work_setting.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_bluetooth.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_customer_user.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_opt.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp_adv_tws_sync.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/rcsp_adv_spp_user.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/rcsp_updata/rcsp_adv_user_update.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/rcsp_updata/rcsp_ch_loader_download.o obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/rcsp_updata/rcsp_user_update.o obj/Release/apps/common/third_party_profile/jieli/online_db/online_db_deal.o obj/Release/apps/common/third_party_profile/jieli/online_db/spp_online_db.o obj/Release/apps/common/ui/lcd_simple/lcd_simple_api.o obj/Release/apps/common/ui/lcd_simple/ui.o obj/Release/apps/common/ui/lcd_simple/ui_mainmenu.o obj/Release/apps/common/update/testbox_update.o obj/Release/apps/common/update/update.o obj/Release/apps/common/update/update_tws.o obj/Release/apps/common/update/update_tws_new.o obj/Release/apps/earphone/aec/br28/audio_aec.o obj/Release/apps/earphone/aec/br28/audio_aec_demo.o obj/Release/apps/earphone/aec/br28/audio_aec_dms.o obj/Release/apps/earphone/aec/br28/audio_aec_online.o obj/Release/apps/earphone/aec/br28/audio_cvp_3mic.o obj/Release/apps/earphone/aec/br28/audio_cvp_ais_3mic.o obj/Release/apps/earphone/app_ancbox.o obj/Release/apps/earphone/app_anctool.o obj/Release/apps/earphone/app_main.o obj/Release/apps/earphone/app_protocol_deal.o obj/Release/apps/earphone/app_task_switch.o obj/Release/apps/earphone/app_testbox.o obj/Release/apps/earphone/audio_enc_mpt_cvp_ctr.o obj/Release/apps/earphone/audio_enc_mpt_self.o obj/Release/apps/earphone/ble_adv.o obj/Release/apps/earphone/board/br28/board_jl701n_demo.o obj/Release/apps/earphone/bt_auto_test.o obj/Release/apps/earphone/bt_background.o obj/Release/apps/earphone/bt_ble.o obj/Release/apps/earphone/bt_ble_hid.o obj/Release/apps/earphone/bt_emitter.o obj/Release/apps/earphone/bt_tws.o obj/Release/apps/earphone/default_event_handler.o obj/Release/apps/earphone/dual_update_demo.o obj/Release/apps/earphone/earphone.o obj/Release/apps/earphone/eartch_event_deal.o obj/Release/apps/earphone/font/fontinit.o obj/Release/apps/earphone/idle.o obj/Release/apps/earphone/key_event_deal.o obj/Release/apps/earphone/kws_voice_event_deal.o obj/Release/apps/earphone/linein/linein.o obj/Release/apps/earphone/ll_sync_demo/ll_sync_demo.o obj/Release/apps/earphone/log_config/app_config.o obj/Release/apps/earphone/log_config/lib_btctrler_config.o obj/Release/apps/earphone/log_config/lib_btstack_config.o obj/Release/apps/earphone/log_config/lib_driver_config.o obj/Release/apps/earphone/log_config/lib_media_config.o obj/Release/apps/earphone/log_config/lib_system_config.o obj/Release/apps/earphone/log_config/lib_update_config.o obj/Release/apps/earphone/music/sd_music.o obj/Release/apps/earphone/pbg_demo.o obj/Release/apps/earphone/pc/pc.o obj/Release/apps/earphone/power_manage/app_charge.o obj/Release/apps/earphone/power_manage/app_chargestore.o obj/Release/apps/earphone/power_manage/app_power_manage.o obj/Release/apps/earphone/power_manage/app_umidigi_chargestore.o obj/Release/apps/earphone/rcsp/jl_phone_app.o obj/Release/apps/earphone/rcsp/rcsp_adv.o obj/Release/apps/earphone/sdk_version.z.o obj/Release/apps/earphone/tone_table.o obj/Release/apps/earphone/ui/lcd_simple/my_demo.o obj/Release/apps/earphone/ui_manage.o obj/Release/apps/earphone/user_cfg.o obj/Release/apps/earphone/version.o obj/Release/apps/earphone/vol_sync.o obj/Release/apps/earphone/wireless_mic/app_main_wireless_mic.o obj/Release/apps/earphone/wireless_mic/audio/adapter_adc.o obj/Release/apps/earphone/wireless_mic/audio/adapter_media.o obj/Release/apps/earphone/wireless_mic/audio/wireless/adapter_wireless_dec.o obj/Release/apps/earphone/wireless_mic/audio/wireless/adapter_wireless_enc.o obj/Release/apps/earphone/wireless_mic/bt/bt_edr_fun.o obj/Release/apps/earphone/wireless_mic/bt/bt_status_event.o obj/Release/apps/earphone/wireless_mic/idev/adapter_idev.o obj/Release/apps/earphone/wireless_mic/idev/idev_bt/adapter_idev_bt.o obj/Release/apps/earphone/wireless_mic/idev/idev_bt/idev_ble/adapter_idev_ble.o obj/Release/apps/earphone/wireless_mic/idev/idev_mic/adapter_idev_mic.o obj/Release/apps/earphone/wireless_mic/odev/adapter_odev.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/adapter_odev_bt.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/odev_ble/adapter_odev_ble.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/odev_ble/odev_ble_wireless.o obj/Release/apps/earphone/wireless_mic/odev/odev_bt/odev_edr/adapter_odev_edr.o obj/Release/apps/earphone/wireless_mic/odev/odev_dac/adapter_odev_dac.o obj/Release/apps/earphone/wireless_mic/process/adapter_process.o obj/Release/apps/usr_le_code/ble_proto.o obj/Release/apps/usr_le_code/bleproto.o obj/Release/apps/usr_le_code/bleproto_packer.o obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o obj/Release/apps/usr_le_code/usr_dengle_sched.o obj/Release/apps/usr_le_code/usr_le_adv.o obj/Release/apps/usr_le_code/usr_le_recieve.o obj/Release/apps/usr_le_code/usr_le_recieve_demo.o obj/Release/apps/usr_le_code/usr_usb_jb.o obj/Release/cpu/br28/adc_api.o obj/Release/cpu/br28/aec_tool.o obj/Release/cpu/br28/app_audio.o obj/Release/cpu/br28/audio_anc.o obj/Release/cpu/br28/audio_anc_fade_ctr.o obj/Release/cpu/br28/audio_anc_mult_scene.o obj/Release/cpu/br28/audio_capture.o obj/Release/cpu/br28/audio_codec_clock.o obj/Release/cpu/br28/audio_common/audio_mic_codec.o obj/Release/cpu/br28/audio_cvp_dut.o obj/Release/cpu/br28/audio_cvp_sync.o obj/Release/cpu/br28/audio_dec.o obj/Release/cpu/br28/audio_dec/audio_dec_file.o obj/Release/cpu/br28/audio_dec/audio_dec_iis.o obj/Release/cpu/br28/audio_dec/audio_dec_pc.o obj/Release/cpu/br28/audio_dec/audio_dec_pcm.o obj/Release/cpu/br28/audio_dec/audio_usb_mic.o obj/Release/cpu/br28/audio_dec_eff.o obj/Release/cpu/br28/audio_demo/audio_adc_demo.o obj/Release/cpu/br28/audio_demo/audio_dac_demo.o obj/Release/cpu/br28/audio_demo/audio_fft_demo.o obj/Release/cpu/br28/audio_demo/audio_matrix_demo.o obj/Release/cpu/br28/audio_demo/audio_wind_detect_demo.o obj/Release/cpu/br28/audio_effect_develop.o obj/Release/cpu/br28/audio_enc.o obj/Release/cpu/br28/audio_general.o obj/Release/cpu/br28/audio_hearing/audio_hearing_aid.o obj/Release/cpu/br28/audio_hearing/audio_hearing_aid_lp.o obj/Release/cpu/br28/audio_hearing/audio_sidetone.o obj/Release/cpu/br28/audio_link.o obj/Release/cpu/br28/audio_sync.o obj/Release/cpu/br28/charge.o obj/Release/cpu/br28/chargestore.o obj/Release/cpu/br28/clock_manager.o obj/Release/cpu/br28/eq_config.o obj/Release/cpu/br28/hw_fft.o obj/Release/cpu/br28/icsd_anc_user.o obj/Release/cpu/br28/iic_hw.o obj/Release/cpu/br28/iic_soft.o obj/Release/cpu/br28/irflt.o obj/Release/cpu/br28/lp_touch_key.o obj/Release/cpu/br28/lp_touch_key_alog.o obj/Release/cpu/br28/lp_touch_key_tool.o obj/Release/cpu/br28/lua_port_api.o obj/Release/cpu/br28/mcpwm.o obj/Release/cpu/br28/mic_dut_process.o obj/Release/cpu/br28/overlay_code.o obj/Release/cpu/br28/pdm_link.o obj/Release/cpu/br28/plcnt.o obj/Release/cpu/br28/power/power_app.o obj/Release/cpu/br28/power/power_check.o obj/Release/cpu/br28/power/power_port.o obj/Release/cpu/br28/power/power_trim.o obj/Release/cpu/br28/private_iis.o obj/Release/cpu/br28/pwm_led.o obj/Release/cpu/br28/rdec.o obj/Release/cpu/br28/setup.o obj/Release/cpu/br28/smart_voice/aispeech_asr.o obj/Release/cpu/br28/smart_voice/jl_kws_platform.o obj/Release/cpu/br28/smart_voice/kws_event.o obj/Release/cpu/br28/smart_voice/nn_vad.o obj/Release/cpu/br28/smart_voice/smart_voice_config.o obj/Release/cpu/br28/smart_voice/smart_voice_core.o obj/Release/cpu/br28/smart_voice/user_asr.o obj/Release/cpu/br28/smart_voice/vad_clock_trim.o obj/Release/cpu/br28/smart_voice/vad_mic.o obj/Release/cpu/br28/smart_voice/voice_mic_data.o obj/Release/cpu/br28/sound_device.o obj/Release/cpu/br28/spatial_effect/spatial_effect.o obj/Release/cpu/br28/spatial_effect/spatial_effect_imu.o obj/Release/cpu/br28/spatial_effect/spatial_effect_test.o obj/Release/cpu/br28/spatial_effect/spatial_effect_tws.o obj/Release/cpu/br28/spatial_effect/spatial_imu_trim.o obj/Release/cpu/br28/spi.o obj/Release/cpu/br28/tone_player.o obj/Release/cpu/br28/tws_audio.o obj/Release/cpu/br28/uart_dev.o obj/Release/cpu/br28/uart_test.o obj/Release/cpu/br28/umidigi_chargestore.o
\ No newline at end of file
diff --git a/cpu/br28/tools/sdk.elf.resolution.txt b/cpu/br28/tools/sdk.elf.resolution.txt
index b1e7b89..4876adf 100644
--- a/cpu/br28/tools/sdk.elf.resolution.txt
+++ b/cpu/br28/tools/sdk.elf.resolution.txt
@@ -614,6 +614,7 @@ obj/Release/apps/common/device/usb/device/cdc.o
-r=obj/Release/apps/common/device/usb/device/cdc.o,usb_alloc_ep_dmabuffer,l
-r=obj/Release/apps/common/device/usb/device/cdc.o,free,l
-r=obj/Release/apps/common/device/usb/device/cdc.o,cdc_release,pl
+-r=obj/Release/apps/common/device/usb/device/cdc.o,cdc_is_com_open,pl
-r=obj/Release/apps/common/device/usb/device/cdc.o,usb_device2id,l
-r=obj/Release/apps/common/device/usb/device/cdc.o,usb_set_setup_recv,l
-r=obj/Release/apps/common/device/usb/device/cdc.o,usb_set_setup_phase,l
@@ -626,6 +627,7 @@ obj/Release/apps/common/device/usb/device/cdc.o
-r=obj/Release/apps/common/device/usb/device/cdc.o,config_asser,l
-r=obj/Release/apps/common/device/usb/device/cdc.o,log_tag_const_e_USB,l
-r=obj/Release/apps/common/device/usb/device/cdc.o,log_tag_const_d_USB,l
+-r=obj/Release/apps/common/device/usb/device/cdc.o,log_tag_const_i_USB,l
obj/Release/apps/common/device/usb/device/descriptor.o
-r=obj/Release/apps/common/device/usb/device/descriptor.o,get_device_descriptor,pl
-r=obj/Release/apps/common/device/usb/device/descriptor.o,get_language_str,pl
@@ -1296,11 +1298,11 @@ obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/adv_rcsp_protocol/rcsp
obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,ble_update_get_ready_jump_flag,l
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,usr_ble_send_data,pl
--r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,printf,l
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,muti_make_set_adv_data,pl
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,ble_user_cmd_prepare,l
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,muti_make_set_adv_data_updata,pl
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,puts,l
+-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,printf,l
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,printf_buf,l
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,ble_get_scan_rsp_ptr,pl
-r=obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o,ble_get_adv_data_ptr,pl
@@ -1608,6 +1610,7 @@ obj/Release/apps/earphone/app_main.o
-r=obj/Release/apps/earphone/app_main.o,check_power_on_voltage,l
-r=obj/Release/apps/earphone/app_main.o,usr_read_device_sta,l
-r=obj/Release/apps/earphone/app_main.o,usr_prodcode_init,l
+-r=obj/Release/apps/earphone/app_main.o,dengle_sched_init,l
-r=obj/Release/apps/earphone/app_main.o,usr_clear_pair_info_noreset,l
-r=obj/Release/apps/earphone/app_main.o,ui_manage_init,l
-r=obj/Release/apps/earphone/app_main.o,ui_update_status,l
@@ -3279,6 +3282,27 @@ obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o
-r=obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o,jsonrpc_ctx_init,pl
-r=obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o,jsonrpc_init,pl
-r=obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o,jsonrpc_default_context,pl
+obj/Release/apps/usr_le_code/usr_dengle_sched.o
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,dengle_sched_init,pl
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,sys_timer_add,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,printf,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,dengle_sched_clear_all,pl
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,dengle_sched_get_active_count,pl
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,dengle_sched_usb_set,pl
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,dengle_sched_pack_slot,pl
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,dengle_sched_pack_all,pl
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,syscfg_read,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,cdc_is_com_open,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,usr_get_conn_service,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,usr_ble_rx_msgid_get,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,bleproto_appdata_encode,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,usr_ble_send_data,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,sys_timeout_del,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,sys_timeout_add,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,syscfg_write,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,usr_prodcode_get,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,memcmp,l
+-r=obj/Release/apps/usr_le_code/usr_dengle_sched.o,puts,l
obj/Release/apps/usr_le_code/usr_le_adv.o
-r=obj/Release/apps/usr_le_code/usr_le_adv.o,usr_get_pair_info,pl
-r=obj/Release/apps/usr_le_code/usr_le_adv.o,syscfg_read,l
@@ -3375,8 +3399,13 @@ obj/Release/apps/usr_le_code/usr_usb_jb.o
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,usr_usb_jb_feed,pl
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,sys_timeout_add,l
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,printf_buf,l
+-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,dengle_sched_usb_set,l
+-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,dengle_sched_clear_all,l
+-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,memcmp,l
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,usr_goto_pair_mode,l
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,cdc_write_data,l
+-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,dengle_sched_pack_slot,l
+-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,dengle_sched_pack_all,l
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,usr_get_conn_service,l
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,bleproto_appdata_encode,l
-r=obj/Release/apps/usr_le_code/usr_usb_jb.o,usr_ble_send_data,l
diff --git a/cpu/br28/tools/sdk.map b/cpu/br28/tools/sdk.map
index e5bc1a8..c657cd3 100644
--- a/cpu/br28/tools/sdk.map
+++ b/cpu/br28/tools/sdk.map
@@ -1022,6 +1022,7 @@ Discarded input sections
.text 0x00000000 0x0 obj/Release/apps/usr_le_code/bleproto.o (symbol from plugin)
.text 0x00000000 0x0 obj/Release/apps/usr_le_code/bleproto_packer.o (symbol from plugin)
.text 0x00000000 0x0 obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o (symbol from plugin)
+ .text 0x00000000 0x0 obj/Release/apps/usr_le_code/usr_dengle_sched.o (symbol from plugin)
.text 0x00000000 0x0 obj/Release/apps/usr_le_code/usr_le_adv.o (symbol from plugin)
.text 0x00000000 0x0 obj/Release/apps/usr_le_code/usr_le_recieve.o (symbol from plugin)
.text 0x00000000 0x0 obj/Release/apps/usr_le_code/usr_le_recieve_demo.o (symbol from plugin)
@@ -2279,6 +2280,7 @@ LOAD obj/Release/apps/usr_le_code/ble_proto.o
LOAD obj/Release/apps/usr_le_code/bleproto.o
LOAD obj/Release/apps/usr_le_code/bleproto_packer.o
LOAD obj/Release/apps/usr_le_code/thirdpart/mjson/mjson.o
+LOAD obj/Release/apps/usr_le_code/usr_dengle_sched.o
LOAD obj/Release/apps/usr_le_code/usr_le_adv.o
LOAD obj/Release/apps/usr_le_code/usr_le_recieve.o
LOAD obj/Release/apps/usr_le_code/usr_le_recieve_demo.o
@@ -2690,424 +2692,424 @@ END GROUP
0x0000000a EQ_SECTION_NUM = 0xa
0x06000100 . = ORIGIN (code0)
-.text 0x06000100 0x4fe9c
+.text 0x06000100 0x50ae4
[!provide] PROVIDE (text_rodata_begin, .)
*(.startup.text)
.startup.text 0x06000100 0xaa cpu/br28/liba/cpu.a(startup.S.o)
0x06000100 _start
*(.text)
- .text 0x060001aa 0x1426e cpu\br28\tools\sdk.elf.o
- 0x06009aea update_result_get
- 0x06009bb6 __errno
- .text 0x06014418 0x10c C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-strtol.o)
- 0x06014418 _strtol_r
- 0x0601450a strtol
- .text 0x06014524 0x1c C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-strtoull.o)
- 0x06014524 strtoull
- .text 0x06014540 0x14a C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-strtoull_r.o)
- 0x06014540 _strtoull_r
- .text 0x0601468a 0x346 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(divdf3.o)
- 0x060146c0 __divdf3
- .text 0x060149d0 0x4c C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(floatsidf.o)
- 0x060149d0 __floatsidf
- .text 0x06014a1c 0x2fa C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(muldf3.o)
- 0x06014a52 __muldf3
- .text 0x06014d16 0xc C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(subdf3.o)
- 0x06014d16 __subdf3
- .text 0x06014d22 0x12 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(udivdi3.o)
- 0x06014d22 __udivdi3
- .text 0x06014d34 0x16 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(umoddi3.o)
- 0x06014d34 __umoddi3
- .text 0x06014d4a 0x7a C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(extendsfdf2.o)
- 0x06014d4a __extendsfdf2
- .text 0x06014dc4 0x3c C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(fixunsdfsi.o)
- 0x06014dc4 __fixunsdfsi
- .text 0x06014e00 0x34 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(floatunsidf.o)
- 0x06014e00 __floatunsidf
- 0x06014e34 . = ALIGN (0x4)
- 0x06014e34 update_target_begin = .
+ .text 0x060001aa 0x14bea cpu\br28\tools\sdk.elf.o
+ 0x06009a88 update_result_get
+ 0x06009b54 __errno
+ .text 0x06014d94 0x10c C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-strtol.o)
+ 0x06014d94 _strtol_r
+ 0x06014e86 strtol
+ .text 0x06014ea0 0x1c C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-strtoull.o)
+ 0x06014ea0 strtoull
+ .text 0x06014ebc 0x14a C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-strtoull_r.o)
+ 0x06014ebc _strtoull_r
+ .text 0x06015006 0x346 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(divdf3.o)
+ 0x0601503c __divdf3
+ .text 0x0601534c 0x4c C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(floatsidf.o)
+ 0x0601534c __floatsidf
+ .text 0x06015398 0x2fa C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(muldf3.o)
+ 0x060153ce __muldf3
+ .text 0x06015692 0xc C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(subdf3.o)
+ 0x06015692 __subdf3
+ .text 0x0601569e 0x12 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(udivdi3.o)
+ 0x0601569e __udivdi3
+ .text 0x060156b0 0x16 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(umoddi3.o)
+ 0x060156b0 __umoddi3
+ .text 0x060156c6 0x7a C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(extendsfdf2.o)
+ 0x060156c6 __extendsfdf2
+ .text 0x06015740 0x3c C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(fixunsdfsi.o)
+ 0x06015740 __fixunsdfsi
+ .text 0x0601577c 0x34 C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a(floatunsidf.o)
+ 0x0601577c __floatunsidf
+ 0x060157b0 . = ALIGN (0x4)
+ 0x060157b0 update_target_begin = .
[!provide] PROVIDE (update_target_begin, .)
*(.update_target)
.update_target
- 0x06014e34 0x20 cpu\br28\tools\sdk.elf.o
- 0x06014e34 iis_update_target
- 0x06014e3c vad_update_target
- 0x06014e44 power_update_target
- 0x06014e4c ble_update_target
- 0x06014e54 update_target_end = .
+ 0x060157b0 0x20 cpu\br28\tools\sdk.elf.o
+ 0x060157b0 iis_update_target
+ 0x060157b8 vad_update_target
+ 0x060157c0 power_update_target
+ 0x060157c8 ble_update_target
+ 0x060157d0 update_target_end = .
[!provide] PROVIDE (update_target_end, .)
- 0x06014e54 . = ALIGN (0x4)
+ 0x060157d0 . = ALIGN (0x4)
*(.LOG_TAG_CONST*)
*(.rodata*)
.rodata.str1.1
- 0x06014e54 0x11a6 cpu\br28\tools\sdk.elf.o
+ 0x060157d0 0x11a6 cpu\br28\tools\sdk.elf.o
0x11d8 (size before relaxing)
- *fill* 0x06015ffa 0x6
- .rodata 0x06016000 0x8c20 cpu\br28\tools\sdk.elf.o
+ *fill* 0x06016976 0xa
+ .rodata 0x06016980 0x8df4 cpu\br28\tools\sdk.elf.o
+ *fill* 0x0601f774 0xc
.rodata.str1.16
- 0x0601ec20 0xf90 cpu\br28\tools\sdk.elf.o
- 0xf82 (size before relaxing)
- .rodata.cst16 0x0601fbb0 0x10 cpu\br28\tools\sdk.elf.o
+ 0x0601f780 0x1070 cpu\br28\tools\sdk.elf.o
+ 0x1062 (size before relaxing)
+ .rodata.cst16 0x060207f0 0x10 cpu\br28\tools\sdk.elf.o
0x20 (size before relaxing)
- .rodata.cst8 0x0601fbc0 0x8 cpu\br28\tools\sdk.elf.o
- .rodata.cst4 0x0601fbc8 0x4 cpu\br28\tools\sdk.elf.o
- .rodata 0x0601fbcc 0x281 C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-ctype_.o)
- 0x0601fd4c _ctype_
+ .rodata.cst8 0x06020800 0x8 cpu\br28\tools\sdk.elf.o
+ .rodata.cst4 0x06020808 0x4 cpu\br28\tools\sdk.elf.o
+ .rodata 0x0602080c 0x281 C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-ctype_.o)
+ 0x0602098c _ctype_
.rodata.str1.1
- 0x0601fe4d 0x2 C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-impure.o)
- 0x0601fe50 . = ALIGN (0x4)
- *fill* 0x0601fe4f 0x1
+ 0x06020a8d 0x2 C:\JL\pi32\pi32v2-lib\r3-large\libc.a(lib_a-impure.o)
+ 0x06020a90 . = ALIGN (0x4)
+ *fill* 0x06020a8f 0x1
[!provide] PROVIDE (text_rodata_end, .)
- 0x0601fe50 clock_critical_handler_begin = .
+ 0x06020a90 clock_critical_handler_begin = .
*(.clock_critical_txt)
.clock_critical_txt
- 0x0601fe50 0x38 cpu\br28\tools\sdk.elf.o
- 0x0601fe50 clock_chargestore
- 0x0601fe58 clock_mcpwm
- 0x0601fe60 clock_uart
- 0x0601fe68 clock_timer
- 0x0601fe70 clock_lrc
- 0x0601fe78 clock_rch
- 0x0601fe80 clock_port
- 0x0601fe88 clock_critical_handler_end = .
- 0x0601fe88 chargestore_handler_begin = .
+ 0x06020a90 0x38 cpu\br28\tools\sdk.elf.o
+ 0x06020a90 clock_chargestore
+ 0x06020a98 clock_mcpwm
+ 0x06020aa0 clock_uart
+ 0x06020aa8 clock_timer
+ 0x06020ab0 clock_lrc
+ 0x06020ab8 clock_rch
+ 0x06020ac0 clock_port
+ 0x06020ac8 clock_critical_handler_end = .
+ 0x06020ac8 chargestore_handler_begin = .
*(.chargestore_callback_txt)
.chargestore_callback_txt
- 0x0601fe88 0x4 cpu\br28\tools\sdk.elf.o
- 0x0601fe88 chargestore_testbox
- 0x0601fe8c chargestore_handler_end = .
+ 0x06020ac8 0x4 cpu\br28\tools\sdk.elf.o
+ 0x06020ac8 chargestore_testbox
+ 0x06020acc chargestore_handler_end = .
*(.opcore_table_maskrom)
*(.bfilt_table_maskroom)
*(.opcore_maskrom)
*(.bfilt_code)
*(.bfilt_const)
- 0x0601fe8c . = ALIGN (0x4)
- 0x0601fe8c lcd_interface_begin = .
+ 0x06020acc . = ALIGN (0x4)
+ 0x06020acc lcd_interface_begin = .
*(.lcd_if_info)
- 0x0601fe8c lcd_interface_end = .
- 0x0601fe8c ui_style_begin = .
+ 0x06020acc lcd_interface_end = .
+ 0x06020acc ui_style_begin = .
*(.ui_style)
- 0x0601fe8c ui_style_end = .
- 0x0601fe8c elm_event_handler_begin_JL = .
+ 0x06020acc ui_style_end = .
+ 0x06020acc elm_event_handler_begin_JL = .
*(.elm_event_handler_JL)
- 0x0601fe8c elm_event_handler_end_JL = .
- 0x0601fe8c elm_event_handler_begin_UPGRADE = .
+ 0x06020acc elm_event_handler_end_JL = .
+ 0x06020acc elm_event_handler_begin_UPGRADE = .
*(.elm_event_handler_UPGRADE)
- 0x0601fe8c elm_event_handler_end_UPGRADE = .
- 0x0601fe8c elm_event_handler_begin_DIAL = .
+ 0x06020acc elm_event_handler_end_UPGRADE = .
+ 0x06020acc elm_event_handler_begin_DIAL = .
*(.elm_event_handler_DIAL)
- 0x0601fe8c elm_event_handler_end_DIAL = .
- 0x0601fe8c control_event_handler_begin = .
+ 0x06020acc elm_event_handler_end_DIAL = .
+ 0x06020acc control_event_handler_begin = .
*(.control_event_handler)
- 0x0601fe8c control_event_handler_end = .
- 0x0601fe8c control_ops_begin = .
+ 0x06020acc control_event_handler_end = .
+ 0x06020acc control_ops_begin = .
*(.control_ops)
- 0x0601fe8c control_ops_end = .
- 0x0601fe8c battery_notify_begin = .
+ 0x06020acc control_ops_end = .
+ 0x06020acc battery_notify_begin = .
*(.battery_notify)
- 0x0601fe8c battery_notify_end = .
- 0x0601fe8c . = ALIGN (0x4)
- 0x0601fe8c __VERSION_BEGIN = .
+ 0x06020acc battery_notify_end = .
+ 0x06020acc . = ALIGN (0x4)
+ 0x06020acc __VERSION_BEGIN = .
*(.sys.version)
- .sys.version 0x0601fe8c 0x26 obj/Release/apps/earphone/sdk_version.z.o
- 0x0601feb2 __VERSION_END = .
+ .sys.version 0x06020acc 0x26 obj/Release/apps/earphone/sdk_version.z.o
+ 0x06020af2 __VERSION_END = .
*(.noop_version)
- 0x0601feb4 . = ALIGN (0x4)
- *fill* 0x0601feb2 0x2
- 0x0601feb4 . = ALIGN (0x4)
- 0x0601feb4 tool_interface_begin = .
+ 0x06020af4 . = ALIGN (0x4)
+ *fill* 0x06020af2 0x2
+ 0x06020af4 . = ALIGN (0x4)
+ 0x06020af4 tool_interface_begin = .
*(.tool_interface)
- 0x0601feb4 tool_interface_end = .
- 0x0601feb4 . = ALIGN (0x4)
- 0x0601feb4 cmd_interface_begin = .
+ 0x06020af4 tool_interface_end = .
+ 0x06020af4 . = ALIGN (0x4)
+ 0x06020af4 cmd_interface_begin = .
*(.eff_cmd)
- 0x0601feb4 cmd_interface_end = .
- 0x0601feb4 . = ALIGN (0x4)
- 0x0601fec0 . = ALIGN (0x20)
- *fill* 0x0601feb4 0xc
- 0x0601fec0 m_code_addr = .
+ 0x06020af4 cmd_interface_end = .
+ 0x06020af4 . = ALIGN (0x4)
+ 0x06020b00 . = ALIGN (0x20)
+ *fill* 0x06020af4 0xc
+ 0x06020b00 m_code_addr = .
*(.m.code*)
*(.movable.code*)
0x00000000 m_code_size = ABSOLUTE ((. - m_code_addr))
- 0x0601fec0 . = ALIGN (0x20)
- 0x0601fec0 gsensor_dev_begin = .
+ 0x06020b00 . = ALIGN (0x20)
+ 0x06020b00 gsensor_dev_begin = .
*(.gsensor_dev)
- 0x0601fec0 gsensor_dev_end = .
- 0x0601fec0 fm_dev_begin = .
+ 0x06020b00 gsensor_dev_end = .
+ 0x06020b00 fm_dev_begin = .
*(.fm_dev)
- 0x0601fec0 fm_dev_end = .
- 0x0601fec0 fm_emitter_dev_begin = .
+ 0x06020b00 fm_dev_end = .
+ 0x06020b00 fm_emitter_dev_begin = .
*(.fm_emitter_dev)
- 0x0601fec0 fm_emitter_dev_end = .
- 0x0601fec0 storage_device_begin = .
+ 0x06020b00 fm_emitter_dev_end = .
+ 0x06020b00 storage_device_begin = .
*(.storage_device)
- 0x0601fec0 storage_device_end = .
- 0x0601fec0 imusensor_dev_begin = .
+ 0x06020b00 storage_device_end = .
+ 0x06020b00 imusensor_dev_begin = .
*(.imusensor_dev)
- 0x0601fec0 imusensor_dev_end = .
- 0x0601fec0 aac_dec_code_begin = .
+ 0x06020b00 imusensor_dev_end = .
+ 0x06020b00 aac_dec_code_begin = .
*(.bt_aac_dec_code)
*(.bt_aac_dec_sparse_code)
- 0x0601fec0 aac_dec_code_end = .
+ 0x06020b00 aac_dec_code_end = .
0x00000000 aac_dec_code_size = (aac_dec_code_end - aac_dec_code_begin)
- 0x0601fec0 . = ALIGN (0x4)
- 0x0601fec0 bt_aac_dec_const_begin = .
+ 0x06020b00 . = ALIGN (0x4)
+ 0x06020b00 bt_aac_dec_const_begin = .
*(.bt_aac_dec_const)
*(.bt_aac_dec_sparse_const)
- 0x0601fec0 bt_aac_dec_const_end = .
+ 0x06020b00 bt_aac_dec_const_end = .
0x00000000 bt_aac_dec_const_size = (bt_aac_dec_const_end - bt_aac_dec_const_begin)
*(.bt_aac_dec_data)
*(.bt_aac_dec_bss)
- 0x0601fec0 . = ALIGN (0x4)
+ 0x06020b00 . = ALIGN (0x4)
*(.aac_mem)
*(.aac_ctrl_mem)
- 0x0601fec0 . = ALIGN (0x20)
- 0x0601fec0 update_code_start = .
+ 0x06020b00 . = ALIGN (0x20)
+ 0x06020b00 update_code_start = .
*(.bt_updata_ram_code)
*(.update_const)
- .update_const 0x0601fec0 0xba cpu\br28\tools\sdk.elf.o
+ .update_const 0x06020b00 0xba cpu\br28\tools\sdk.elf.o
*(.update_code)
- .update_code 0x0601ff7a 0x1a18 cpu\br28\tools\sdk.elf.o
- 0x06021992 update_code_end = .
- 0x06021992 btstack_code_start = .
- 0x06021994 . = ALIGN (0x4)
- *fill* 0x06021992 0x2
- 0x06021994 a2dp_source_media_codec_begin = .
+ .update_code 0x06020bba 0x1a16 cpu\br28\tools\sdk.elf.o
+ 0x060225d0 update_code_end = .
+ 0x060225d0 btstack_code_start = .
+ 0x060225d0 . = ALIGN (0x4)
+ 0x060225d0 a2dp_source_media_codec_begin = .
*(.a2dp_source_media_codec)
.a2dp_source_media_codec
- 0x06021994 0x30 cpu\br28\tools\sdk.elf.o
- 0x06021994 a2dp_source_lc3_codec
- 0x060219ac a2dp_source_sbc_codec
- 0x060219c4 a2dp_source_media_codec_end = .
- 0x060219c4 a2dp_sink_media_probe_begin = .
+ 0x060225d0 0x30 cpu\br28\tools\sdk.elf.o
+ 0x060225d0 a2dp_source_lc3_codec
+ 0x060225e8 a2dp_source_sbc_codec
+ 0x06022600 a2dp_source_media_codec_end = .
+ 0x06022600 a2dp_sink_media_probe_begin = .
*(.a2dp_sink_media_probe)
- 0x060219c4 a2dp_sink_media_probe_end = .
- 0x060219c4 a2dp_sink_media_codec_begin = .
+ 0x06022600 a2dp_sink_media_probe_end = .
+ 0x06022600 a2dp_sink_media_codec_begin = .
*(.a2dp_sink_media_codec)
.a2dp_sink_media_codec
- 0x060219c4 0x48 cpu\br28\tools\sdk.elf.o
- 0x060219c4 a2dp_1sbc_codec_private
- 0x060219dc a2dp_2aac_sink_codec
- 0x060219f4 a2dp_4ldac_sink_codec
- 0x06021a0c a2dp_sink_media_codec_end = .
- 0x06021a0c a2dp_event_handler_begin = .
+ 0x06022600 0x48 cpu\br28\tools\sdk.elf.o
+ 0x06022600 a2dp_1sbc_codec_private
+ 0x06022618 a2dp_2aac_sink_codec
+ 0x06022630 a2dp_4ldac_sink_codec
+ 0x06022648 a2dp_sink_media_codec_end = .
+ 0x06022648 a2dp_event_handler_begin = .
*(.a2dp_event_handler)
.a2dp_event_handler
- 0x06021a0c 0x70 cpu\br28\tools\sdk.elf.o
- 0x06021a0c a2dp_sink_event_handler
- 0x06021a28 a2dp_source_event_handler
- 0x06021a44 acp_a2dp_event_handler
- 0x06021a60 acp_a2dp_src_event_handler
- 0x06021a7c a2dp_event_handler_end = .
- 0x06021a7c sdp_record_item_begin = .
+ 0x06022648 0x70 cpu\br28\tools\sdk.elf.o
+ 0x06022648 a2dp_sink_event_handler
+ 0x06022664 a2dp_source_event_handler
+ 0x06022680 acp_a2dp_event_handler
+ 0x0602269c acp_a2dp_src_event_handler
+ 0x060226b8 a2dp_event_handler_end = .
+ 0x060226b8 sdp_record_item_begin = .
*(.sdp_record_item)
- 0x06021a7c sdp_record_item_end = .
- 0x06021a7c bt_sleep_begin = .
+ 0x060226b8 sdp_record_item_end = .
+ 0x060226b8 bt_sleep_begin = .
*(.bt_sleep)
- .bt_sleep 0x06021a7c 0x6c cpu\br28\tools\sdk.elf.o
- 0x06021a7c bt_suspend_a2dp_resumea2dp_release
- 0x06021a88 bt_suspend_avctp_resumeavctp_release
- 0x06021a94 bt_suspend_hfp_resumehfp_release
- 0x06021aa0 bt_suspend_user_cmd_loop_resumeuser_cmd_loop_release
- 0x06021aac bt_suspend_hid_resumehid_release
- 0x06021ab8 bt_suspend_spp_resumespp_release
- 0x06021ac4 bt_suspend_spp_up_resumespp_up_release
- 0x06021ad0 bt_suspend_iap_resumeiap_release
- 0x06021adc bt_suspend_sdp_resumesdp_release
- 0x06021ae8 bt_sleep_end = .
+ .bt_sleep 0x060226b8 0x6c cpu\br28\tools\sdk.elf.o
+ 0x060226b8 bt_suspend_a2dp_resumea2dp_release
+ 0x060226c4 bt_suspend_avctp_resumeavctp_release
+ 0x060226d0 bt_suspend_hfp_resumehfp_release
+ 0x060226dc bt_suspend_user_cmd_loop_resumeuser_cmd_loop_release
+ 0x060226e8 bt_suspend_hid_resumehid_release
+ 0x060226f4 bt_suspend_spp_resumespp_release
+ 0x06022700 bt_suspend_spp_up_resumespp_up_release
+ 0x0602270c bt_suspend_iap_resumeiap_release
+ 0x06022718 bt_suspend_sdp_resumesdp_release
+ 0x06022724 bt_sleep_end = .
*(.bt_stack_const)
.bt_stack_const
- 0x06021ae8 0x174 cpu\br28\tools\sdk.elf.o
+ 0x06022724 0x174 cpu\br28\tools\sdk.elf.o
*(.bt_stack_code)
.bt_stack_code
- 0x06021c5c 0x7c38 cpu\br28\tools\sdk.elf.o
+ 0x06022898 0x7c38 cpu\br28\tools\sdk.elf.o
*(.ble_db_const)
*(.ble_db_code)
- .ble_db_code 0x06029894 0x18e cpu\br28\tools\sdk.elf.o
+ .ble_db_code 0x0602a4d0 0x18e cpu\br28\tools\sdk.elf.o
*(.ble_sm_const)
- *fill* 0x06029a22 0x2
- .ble_sm_const 0x06029a24 0x73 cpu\br28\tools\sdk.elf.o
+ *fill* 0x0602a65e 0x2
+ .ble_sm_const 0x0602a660 0x73 cpu\br28\tools\sdk.elf.o
*(.ble_sm_code)
- *fill* 0x06029a97 0x1
- .ble_sm_code 0x06029a98 0x20e0 cpu\br28\tools\sdk.elf.o
+ *fill* 0x0602a6d3 0x1
+ .ble_sm_code 0x0602a6d4 0x20e0 cpu\br28\tools\sdk.elf.o
*(.ble_att_const)
.ble_att_const
- 0x0602bb78 0x17 cpu\br28\tools\sdk.elf.o
+ 0x0602c7b4 0x17 cpu\br28\tools\sdk.elf.o
*(.ble_att_code)
- *fill* 0x0602bb8f 0x1
- .ble_att_code 0x0602bb90 0x754 cpu\br28\tools\sdk.elf.o
+ *fill* 0x0602c7cb 0x1
+ .ble_att_code 0x0602c7cc 0x74e cpu\br28\tools\sdk.elf.o
*(.ble_gatt_const)
*(.ble_gatt_code)
.ble_gatt_code
- 0x0602c2e4 0xa0 cpu\br28\tools\sdk.elf.o
- 0x0602c384 BTSTACK_LE_HOST_MESH_CODE_START = .
+ 0x0602cf1a 0xa0 cpu\br28\tools\sdk.elf.o
+ 0x0602cfba BTSTACK_LE_HOST_MESH_CODE_START = .
*(.ble_mesh_code)
*(.ble_mesh_tinycrypt_code)
*(.ble_mesh_const)
*(.ble_mesh_tinycrypt_const)
0x00000000 BTSTACK_LE_HOST_MESH_CODE_SIZE = ABSOLUTE ((. - BTSTACK_LE_HOST_MESH_CODE_START))
- 0x0602c384 btstack_code_end = .
- 0x0602c384 . = ALIGN (0x4)
- 0x0602c384 . = ALIGN (0x4)
- 0x0602c384 system_text_start = .
- 0x0602c384 _device_node_begin = .
- 0x0602c384 PROVIDE (device_node_begin, .)
+ 0x0602cfba btstack_code_end = .
+ 0x0602cfbc . = ALIGN (0x4)
+ *fill* 0x0602cfba 0x2
+ 0x0602cfbc . = ALIGN (0x4)
+ 0x0602cfbc system_text_start = .
+ 0x0602cfbc _device_node_begin = .
+ 0x0602cfbc PROVIDE (device_node_begin, .)
*(.device)
- .device 0x0602c384 0x18 cpu\br28\tools\sdk.elf.o
- 0x0602c384 device_table
- 0x0602c39c _device_node_end = .
- 0x0602c39c PROVIDE (device_node_end, .)
- 0x0602c39c config_target_begin = .
+ .device 0x0602cfbc 0x18 cpu\br28\tools\sdk.elf.o
+ 0x0602cfbc device_table
+ 0x0602cfd4 _device_node_end = .
+ 0x0602cfd4 PROVIDE (device_node_end, .)
+ 0x0602cfd4 config_target_begin = .
[!provide] PROVIDE (config_target_begin, .)
*(.config_target)
.config_target
- 0x0602c39c 0x8 cpu\br28\tools\sdk.elf.o
- 0x0602c39c eq_config_target
- 0x0602c3a4 config_target_end = .
+ 0x0602cfd4 0x8 cpu\br28\tools\sdk.elf.o
+ 0x0602cfd4 eq_config_target
+ 0x0602cfdc config_target_end = .
[!provide] PROVIDE (config_target_end, .)
- 0x0602c3a4 system_code_begin = .
+ 0x0602cfdc system_code_begin = .
*(.system.*.text)
.system.cpu.text
- 0x0602c3a4 0x918 cpu\br28\tools\sdk.elf.o
+ 0x0602cfdc 0x918 cpu\br28\tools\sdk.elf.o
.system.lbuf.text
- 0x0602ccbc 0x388 cpu\br28\tools\sdk.elf.o
+ 0x0602d8f4 0x388 cpu\br28\tools\sdk.elf.o
.system.printf.text
- 0x0602d044 0x600 cpu\br28\tools\sdk.elf.o
+ 0x0602dc7c 0x600 cpu\br28\tools\sdk.elf.o
.system.cbuf.text
- 0x0602d644 0x1e6 cpu\br28\tools\sdk.elf.o
+ 0x0602e27c 0x1e6 cpu\br28\tools\sdk.elf.o
.system.event.text
- 0x0602d82a 0x4ba cpu\br28\tools\sdk.elf.o
+ 0x0602e462 0x4ba cpu\br28\tools\sdk.elf.o
.system.timer.text
- 0x0602dce4 0x78c cpu\br28\tools\sdk.elf.o
+ 0x0602e91c 0x78c cpu\br28\tools\sdk.elf.o
.system.device.text
- 0x0602e470 0xf8 cpu\br28\tools\sdk.elf.o
+ 0x0602f0a8 0xf8 cpu\br28\tools\sdk.elf.o
.system.fs.text
- 0x0602e568 0xe42 cpu\br28\tools\sdk.elf.o
+ 0x0602f1a0 0xe42 cpu\br28\tools\sdk.elf.o
.system.ascii.text
- 0x0602f3aa 0x8c cpu\br28\tools\sdk.elf.o
+ 0x0602ffe2 0x8c cpu\br28\tools\sdk.elf.o
.system.cfg_tool.text
- 0x0602f436 0x786 cpu\br28\tools\sdk.elf.o
+ 0x0603006e 0x786 cpu\br28\tools\sdk.elf.o
.system.app_core.text
- 0x0602fbbc 0x2f2 cpu\br28\tools\sdk.elf.o
+ 0x060307f4 0x2f2 cpu\br28\tools\sdk.elf.o
.system.init.text
- 0x0602feae 0x9de cpu\br28\tools\sdk.elf.o
- 0x0602feb8 boot_info_init
- 0x0602fee2 cpu1_main
- 0x0602ff44 main
+ 0x06030ae6 0x9e4 cpu\br28\tools\sdk.elf.o
+ 0x06030af0 boot_info_init
+ 0x06030b1a cpu1_main
+ 0x06030b7c main
.system.task.text
- 0x0603088c 0x5e cpu\br28\tools\sdk.elf.o
- 0x060308ea system_code_end = .
- 0x060308ec . = ALIGN (0x4)
- *fill* 0x060308ea 0x2
- 0x00004546 system_code_size = (system_code_end - system_code_begin)
- 0x060308ec vfs_ops_begin = .
+ 0x060314ca 0x5e cpu\br28\tools\sdk.elf.o
+ 0x06031528 system_code_end = .
+ 0x06031528 . = ALIGN (0x4)
+ 0x0000454c system_code_size = (system_code_end - system_code_begin)
+ 0x06031528 vfs_ops_begin = .
*(.vfs_operations)
.vfs_operations
- 0x060308ec 0x74 cpu\br28\tools\sdk.elf.o
- 0x060308ec sdfile_vfs_ops
- 0x06030960 vfs_ops_end = .
- 0x06030960 _lib_version_begin = .
+ 0x06031528 0x74 cpu\br28\tools\sdk.elf.o
+ 0x06031528 sdfile_vfs_ops
+ 0x0603159c vfs_ops_end = .
+ 0x0603159c _lib_version_begin = .
[!provide] PROVIDE (lib_version_begin, .)
*(.lib_version)
- .lib_version 0x06030960 0xc cpu\br28\tools\sdk.elf.o
- 0x06030960 __version_sdfile
- 0x06030964 __version_fs
- 0x06030968 __version_fatfs
- 0x0603096c _lib_version_end = .
+ .lib_version 0x0603159c 0xc cpu\br28\tools\sdk.elf.o
+ 0x0603159c __version_sdfile
+ 0x060315a0 __version_fs
+ 0x060315a4 __version_fatfs
+ 0x060315a8 _lib_version_end = .
[!provide] PROVIDE (lib_version_end, .)
- 0x0603096c _initcall_begin = .
- 0x0603096c PROVIDE (initcall_begin, .)
+ 0x060315a8 _initcall_begin = .
+ 0x060315a8 PROVIDE (initcall_begin, .)
*(.initcall)
- .initcall 0x0603096c 0x14 cpu\br28\tools\sdk.elf.o
- 0x0603096c __initcall_audio_online_debug_open
- 0x06030970 __initcall_trim_timer_add
- 0x06030974 __initcall_app_update_init
- 0x06030978 __initcall_tone_table_init
- 0x0603097c __initcall_audio_vbass_init
- 0x06030980 _initcall_end = .
- 0x06030980 PROVIDE (initcall_end, .)
- 0x06030980 _early_initcall_begin = .
- 0x06030980 PROVIDE (early_initcall_begin, .)
+ .initcall 0x060315a8 0x14 cpu\br28\tools\sdk.elf.o
+ 0x060315a8 __initcall_audio_online_debug_open
+ 0x060315ac __initcall_trim_timer_add
+ 0x060315b0 __initcall_app_update_init
+ 0x060315b4 __initcall_tone_table_init
+ 0x060315b8 __initcall_audio_vbass_init
+ 0x060315bc _initcall_end = .
+ 0x060315bc PROVIDE (initcall_end, .)
+ 0x060315bc _early_initcall_begin = .
+ 0x060315bc PROVIDE (early_initcall_begin, .)
*(.early.initcall)
.early.initcall
- 0x06030980 0x8 cpu\br28\tools\sdk.elf.o
- 0x06030980 __initcall_sys_event_init
- 0x06030984 __initcall_sdfile_init
- 0x06030988 _early_initcall_end = .
- 0x06030988 PROVIDE (early_initcall_end, .)
- 0x06030988 _late_initcall_begin = .
- 0x06030988 PROVIDE (late_initcall_begin, .)
+ 0x060315bc 0x8 cpu\br28\tools\sdk.elf.o
+ 0x060315bc __initcall_sys_event_init
+ 0x060315c0 __initcall_sdfile_init
+ 0x060315c4 _early_initcall_end = .
+ 0x060315c4 PROVIDE (early_initcall_end, .)
+ 0x060315c4 _late_initcall_begin = .
+ 0x060315c4 PROVIDE (late_initcall_begin, .)
*(.late.initcall)
.late.initcall
- 0x06030988 0x8 cpu\br28\tools\sdk.elf.o
- 0x06030988 __initcall_check_otp_data
- 0x0603098c __initcall_sdk_meky_check
- 0x06030990 _late_initcall_end = .
- 0x06030990 PROVIDE (late_initcall_end, .)
- 0x06030990 _platform_initcall_begin = .
- 0x06030990 PROVIDE (platform_initcall_begin, .)
+ 0x060315c4 0x8 cpu\br28\tools\sdk.elf.o
+ 0x060315c4 __initcall_check_otp_data
+ 0x060315c8 __initcall_sdk_meky_check
+ 0x060315cc _late_initcall_end = .
+ 0x060315cc PROVIDE (late_initcall_end, .)
+ 0x060315cc _platform_initcall_begin = .
+ 0x060315cc PROVIDE (platform_initcall_begin, .)
*(.platform.initcall)
.platform.initcall
- 0x06030990 0x4 cpu\br28\tools\sdk.elf.o
- 0x06030990 __initcall_syscfg_tools_init
- 0x06030994 _platform_initcall_end = .
- 0x06030994 PROVIDE (platform_initcall_end, .)
- 0x06030994 _module_initcall_begin = .
- 0x06030994 PROVIDE (module_initcall_begin, .)
+ 0x060315cc 0x4 cpu\br28\tools\sdk.elf.o
+ 0x060315cc __initcall_syscfg_tools_init
+ 0x060315d0 _platform_initcall_end = .
+ 0x060315d0 PROVIDE (platform_initcall_end, .)
+ 0x060315d0 _module_initcall_begin = .
+ 0x060315d0 PROVIDE (module_initcall_begin, .)
*(.module.initcall)
- 0x06030994 _module_initcall_end = .
- 0x06030994 PROVIDE (module_initcall_end, .)
- 0x06030994 _sys_event_handler_begin = .
- 0x06030994 PROVIDE (sys_event_handler_begin, .)
+ 0x060315d0 _module_initcall_end = .
+ 0x060315d0 PROVIDE (module_initcall_end, .)
+ 0x060315d0 _sys_event_handler_begin = .
+ 0x060315d0 PROVIDE (sys_event_handler_begin, .)
*(.sys_event.4.handler)
.sys_event.4.handler
- 0x06030994 0x8 cpu\br28\tools\sdk.elf.o
- 0x06030994 __event_handler_bt_tws_event_handler
+ 0x060315d0 0x8 cpu\br28\tools\sdk.elf.o
+ 0x060315d0 __event_handler_bt_tws_event_handler
*(.sys_event.3.handler)
*(.sys_event.2.handler)
*(.sys_event.1.handler)
*(.sys_event.0.handler)
- 0x0603099c _sys_event_handler_end = .
- 0x0603099c PROVIDE (sys_event_handler_end, .)
- 0x0603099c _syscfg_arg_begin = .
+ 0x060315d8 _sys_event_handler_end = .
+ 0x060315d8 PROVIDE (sys_event_handler_end, .)
+ 0x060315d8 _syscfg_arg_begin = .
[!provide] PROVIDE (syscfg_arg_begin, .)
*(.syscfg.arg)
- 0x0603099c _syscfg_arg_end = .
+ 0x060315d8 _syscfg_arg_end = .
[!provide] PROVIDE (syscfg_arg_end, .)
- 0x0603099c _syscfg_handler_begin = .
+ 0x060315d8 _syscfg_handler_begin = .
[!provide] PROVIDE (syscfg_handler_begin, .)
*(.syscfg.handler)
- 0x0603099c _syscfg_handler_end = .
+ 0x060315d8 _syscfg_handler_end = .
[!provide] PROVIDE (syscfg_handler_end, .)
- 0x0603099c _syscfg_ops_begin = .
- 0x0603099c PROVIDE (syscfg_ops_begin, .)
+ 0x060315d8 _syscfg_ops_begin = .
+ 0x060315d8 PROVIDE (syscfg_ops_begin, .)
*(.syscfg.2.ops)
- .syscfg.2.ops 0x0603099c 0x1c cpu\br28\tools\sdk.elf.o
- 0x0603099c cfg_btif
+ .syscfg.2.ops 0x060315d8 0x1c cpu\br28\tools\sdk.elf.o
+ 0x060315d8 cfg_btif
*(.syscfg.1.ops)
- .syscfg.1.ops 0x060309b8 0x1c cpu\br28\tools\sdk.elf.o
- 0x060309b8 cfg_vm
+ .syscfg.1.ops 0x060315f4 0x1c cpu\br28\tools\sdk.elf.o
+ 0x060315f4 cfg_vm
*(.syscfg.0.ops)
- .syscfg.0.ops 0x060309d4 0x1c cpu\br28\tools\sdk.elf.o
- 0x060309d4 cfg_bin
- 0x060309f0 _syscfg_ops_end = .
- 0x060309f0 PROVIDE (syscfg_ops_end, .)
- 0x060309f0 _server_info_begin = .
+ .syscfg.0.ops 0x06031610 0x1c cpu\br28\tools\sdk.elf.o
+ 0x06031610 cfg_bin
+ 0x0603162c _syscfg_ops_end = .
+ 0x0603162c PROVIDE (syscfg_ops_end, .)
+ 0x0603162c _server_info_begin = .
[!provide] PROVIDE (server_info_begin, .)
*(.server_info)
- 0x060309f0 _server_info_end = .
+ 0x0603162c _server_info_end = .
[!provide] PROVIDE (server_info_end, .)
- 0x060309f0 _bus_device_begin = .
+ 0x0603162c _bus_device_begin = .
[!provide] PROVIDE (bus_device_begin, .)
*(.bus_device)
- 0x060309f0 _bus_device_end = .
+ 0x0603162c _bus_device_end = .
[!provide] PROVIDE (bus_device_end, .)
- 0x060309f0 _sys_power_hal_ops_begin = .
+ 0x0603162c _sys_power_hal_ops_begin = .
[!provide] PROVIDE (sys_power_hal_ops_begin, .)
*(.sys_power_hal_ops)
- 0x060309f0 _sys_power_hal_ops_end = .
+ 0x0603162c _sys_power_hal_ops_end = .
[!provide] PROVIDE (sys_power_hal_ops_end, .)
- 0x060309f0 crypto_begin = .
+ 0x0603162c crypto_begin = .
*(.crypto_ecdh_code)
*(.crypto_ecdh_const)
*(.crypto_bigint_code)
@@ -3124,63 +3126,64 @@ END GROUP
*(.hash_sample_const)
*(.aes_cmac_sample_code)
*(.aes_cmac_sample_const)
- 0x060309f0 crypto_end = .
+ 0x0603162c crypto_end = .
0x00000000 crypto_size = (. - crypto_begin)
*(.mem_code)
*(.mem_const)
*(.os_port_code)
*(.os_port_const)
*(.os_const)
- .os_const 0x060309f0 0x18 cpu\br28\tools\sdk.elf.o
+ .os_const 0x0603162c 0x18 cpu\br28\tools\sdk.elf.o
*(.math_fast_funtion_code)
.math_fast_funtion_code
- 0x06030a08 0x1c cpu\br28\tools\sdk.elf.o
- 0x06030a24 __movable_function_start = .
+ 0x06031644 0x1c cpu\br28\tools\sdk.elf.o
+ 0x06031660 __movable_function_start = .
*(movable.text.*)
*(movable.stub.*)
*(movable.region.*)
- 0x06030a24 __movable_function_end = .
+ 0x06031660 __movable_function_end = .
0x00000000 __movable_function_size = (__movable_function_end - __movable_function_start)
- 0x06030a24 system_text_end = .
- 0x000046a0 system_code_total_size = (system_text_end - system_text_start)
- 0x06030a24 btctler_code_start = .
- 0x06030a24 BTCTLER_CONTROLLER_CODE_START = .
+ 0x06031660 system_text_end = .
+ 0x000046a4 system_code_total_size = (system_text_end - system_text_start)
+ 0x06031660 btctler_code_start = .
+ 0x06031660 BTCTLER_CONTROLLER_CODE_START = .
*(.bt_rf_const)
- .bt_rf_const 0x06030a24 0x5f4 cpu\br28\tools\sdk.elf.o
+ .bt_rf_const 0x06031660 0x5f4 cpu\br28\tools\sdk.elf.o
*(.bt_rf_code)
- .bt_rf_code 0x06031018 0x1b02 cpu\br28\tools\sdk.elf.o
+ .bt_rf_code 0x06031c54 0x1b02 cpu\br28\tools\sdk.elf.o
*(.vendor_manager_const)
*(.vendor_manager_code)
*(.device_manager_const)
*(.device_manager_code)
*(.hci_controller_const)
- *fill* 0x06032b1a 0x2
+ *fill* 0x06033756 0x2
.hci_controller_const
- 0x06032b1c 0x28 cpu\br28\tools\sdk.elf.o
+ 0x06033758 0x28 cpu\br28\tools\sdk.elf.o
*(.hci_controller_code)
.hci_controller_code
- 0x06032b44 0x640 cpu\br28\tools\sdk.elf.o
+ 0x06033780 0x63e cpu\br28\tools\sdk.elf.o
*(.hci_interface_const)
*(.hci_interface_code)
- 0x00002760 BTCTLER_CONTROLLER_CODE_SIZE = ABSOLUTE ((. - BTCTLER_CONTROLLER_CODE_START))
- 0x06033184 BTCTLER_LE_CONTROLLER_CODE_START = .
+ 0x0000275e BTCTLER_CONTROLLER_CODE_SIZE = ABSOLUTE ((. - BTCTLER_CONTROLLER_CODE_START))
+ 0x06033dbe BTCTLER_LE_CONTROLLER_CODE_START = .
*(.ble_rf_const)
- .ble_rf_const 0x06033184 0x28 cpu\br28\tools\sdk.elf.o
+ *fill* 0x06033dbe 0x2
+ .ble_rf_const 0x06033dc0 0x28 cpu\br28\tools\sdk.elf.o
*(.ble_rf_code)
- .ble_rf_code 0x060331ac 0x3cee cpu\br28\tools\sdk.elf.o
+ .ble_rf_code 0x06033de8 0x3cee cpu\br28\tools\sdk.elf.o
*(.ble_ll_const)
- *fill* 0x06036e9a 0x2
- .ble_ll_const 0x06036e9c 0xb4 cpu\br28\tools\sdk.elf.o
+ *fill* 0x06037ad6 0x2
+ .ble_ll_const 0x06037ad8 0xb4 cpu\br28\tools\sdk.elf.o
*(.ble_ll_code)
- .ble_ll_code 0x06036f50 0x2aa6 cpu\br28\tools\sdk.elf.o
+ .ble_ll_code 0x06037b8c 0x2aac cpu\br28\tools\sdk.elf.o
*(.ble_hci_const)
.ble_hci_const
- 0x060399f6 0x19 cpu\br28\tools\sdk.elf.o
+ 0x0603a638 0x19 cpu\br28\tools\sdk.elf.o
*(.ble_hci_code)
- *fill* 0x06039a0f 0x1
- .ble_hci_code 0x06039a10 0x8da cpu\br28\tools\sdk.elf.o
- 0x00007166 BTCTLER_LE_CONTROLLER_CODE_SIZE = ABSOLUTE ((. - BTCTLER_LE_CONTROLLER_CODE_START))
- 0x0603a2ea BTCTLER_CL_CODE_START = .
+ *fill* 0x0603a651 0x1
+ .ble_hci_code 0x0603a652 0x8da cpu\br28\tools\sdk.elf.o
+ 0x0000716e BTCTLER_LE_CONTROLLER_CODE_SIZE = ABSOLUTE ((. - BTCTLER_LE_CONTROLLER_CODE_START))
+ 0x0603af2c BTCTLER_CL_CODE_START = .
*(.bredr_irq)
*(.bredr_irq_code)
*(.bredr_irq_const)
@@ -3189,125 +3192,125 @@ END GROUP
*(.classic_lmp_const)
*(.classic_lmp_auth_const)
.classic_lmp_auth_const
- 0x0603a2ea 0x310 cpu\br28\tools\sdk.elf.o
+ 0x0603af2c 0x310 cpu\br28\tools\sdk.elf.o
*(.classic_lmp_bigint_const)
*(.classic_lmp_crypt_const)
*(.classic_lmp_ecdh_const)
*(.classic_lmp_hmac_const)
*(.classic_lmp_code)
.classic_lmp_code
- 0x0603a5fa 0x780 cpu\br28\tools\sdk.elf.o
+ 0x0603b23c 0x786 cpu\br28\tools\sdk.elf.o
*(.classic_lmp_auth_code)
.classic_lmp_auth_code
- 0x0603ad7a 0x488 cpu\br28\tools\sdk.elf.o
+ 0x0603b9c2 0x488 cpu\br28\tools\sdk.elf.o
*(.classic_lmp_bigint_code)
*(.classic_lmp_crypt_code)
*(.classic_lmp_ecdh_code)
*(.classic_lmp_hmac_code)
*(.classic_rf_const)
.classic_rf_const
- 0x0603b202 0x60 cpu\br28\tools\sdk.elf.o
+ 0x0603be4a 0x60 cpu\br28\tools\sdk.elf.o
*(.classic_rf_code)
.classic_rf_code
- 0x0603b262 0x504 cpu\br28\tools\sdk.elf.o
+ 0x0603beaa 0x504 cpu\br28\tools\sdk.elf.o
*(.classic_bb_const)
*(.classic_bb_code)
- 0x0000147c BTCTLER_CL_CODE_SIZE = ABSOLUTE ((. - BTCTLER_CL_CODE_START))
+ 0x00001482 BTCTLER_CL_CODE_SIZE = ABSOLUTE ((. - BTCTLER_CL_CODE_START))
*(.classic_tws_const)
*(.classic_tws_code)
.classic_tws_code
- 0x0603b766 0x150 cpu\br28\tools\sdk.elf.o
+ 0x0603c3ae 0x150 cpu\br28\tools\sdk.elf.o
*(.classic_tws_code.esco)
- 0x0603b8b8 . = ALIGN (0x4)
- *fill* 0x0603b8b6 0x2
- 0x0603b8b8 driver_code_start = .
+ 0x0603c500 . = ALIGN (0x4)
+ *fill* 0x0603c4fe 0x2
+ 0x0603c500 driver_code_start = .
*(.fm_code)
- 0x0603b8b8 CLOCK_CODE_START = .
+ 0x0603c500 CLOCK_CODE_START = .
*(.clock_code)
- .clock_code 0x0603b8b8 0x11bc cpu\br28\tools\sdk.elf.o
- 0x0603c40c boot_clk_init
+ .clock_code 0x0603c500 0x11b6 cpu\br28\tools\sdk.elf.o
+ 0x0603d04c boot_clk_init
*(.clock_const)
- .clock_const 0x0603ca74 0x30 cpu\br28\tools\sdk.elf.o
- 0x000011ec CLOCK_CODE_SIZE = ABSOLUTE ((. - CLOCK_CODE_START))
+ .clock_const 0x0603d6b6 0x30 cpu\br28\tools\sdk.elf.o
+ 0x000011e6 CLOCK_CODE_SIZE = ABSOLUTE ((. - CLOCK_CODE_START))
*(.debug_code)
*(.debug_const)
*(.uart_code)
*(.uart_const)
*(.power_driver.text)
.power_driver.text
- 0x0603caa4 0x220e cpu\br28\tools\sdk.elf.o
+ 0x0603d6e6 0x220e cpu\br28\tools\sdk.elf.o
*(.power_driver.text.const)
- *fill* 0x0603ecb2 0xe
+ *fill* 0x0603f8f4 0xc
.power_driver.text.const
- 0x0603ecc0 0x7fd cpu\br28\tools\sdk.elf.o
+ 0x0603f900 0x7fd cpu\br28\tools\sdk.elf.o
*(.power_reset.text)
- *fill* 0x0603f4bd 0x1
+ *fill* 0x060400fd 0x1
.power_reset.text
- 0x0603f4be 0x330 cpu\br28\tools\sdk.elf.o
+ 0x060400fe 0x330 cpu\br28\tools\sdk.elf.o
*(.power_reset.text.const)
.power_reset.text.const
- 0x0603f7ee 0x80 cpu\br28\tools\sdk.elf.o
+ 0x0604042e 0x80 cpu\br28\tools\sdk.elf.o
*(.power_wakeup.text)
.power_wakeup.text
- 0x0603f86e 0x5f2 cpu\br28\tools\sdk.elf.o
+ 0x060404ae 0x5f2 cpu\br28\tools\sdk.elf.o
*(.power_wakeup.text.const)
.power_wakeup.text.const
- 0x0603fe60 0xad cpu\br28\tools\sdk.elf.o
- 0x0603ff10 . = ALIGN (0x4)
- *fill* 0x0603ff0d 0x3
- 0x0603ff10 lp_target_begin = .
+ 0x06040aa0 0xad cpu\br28\tools\sdk.elf.o
+ 0x06040b50 . = ALIGN (0x4)
+ *fill* 0x06040b4d 0x3
+ 0x06040b50 lp_target_begin = .
[!provide] PROVIDE (lp_target_begin, .)
*(.lp_target)
- .lp_target 0x0603ff10 0xc0 cpu\br28\tools\sdk.elf.o
- 0x0603ff10 bt_test_lp_target
- 0x0603ff1c key_lp_target
- 0x0603ff28 plll_trim_lp_target
- 0x0603ff34 ota_lp_target
- 0x0603ff40 dual_ota_lp_target
- 0x0603ff4c pc_lp_target
- 0x0603ff58 audio_dec_init_lp_target
- 0x0603ff64 bt_dec_lp_target
- 0x0603ff70 aispeech_asr_core_lp_target
- 0x0603ff7c audio_tone_lp_target
- 0x0603ff88 tone_dec_lp_target
- 0x0603ff94 usb_dev_lp_target
- 0x0603ffa0 usr_systimer_lp_target
- 0x0603ffac btstack_lowpower_target
- 0x0603ffb8 audio_dac_lp_target
- 0x0603ffc4 eq_online_lp_target
- 0x0603ffd0 lp_target_end = .
+ .lp_target 0x06040b50 0xc0 cpu\br28\tools\sdk.elf.o
+ 0x06040b50 bt_test_lp_target
+ 0x06040b5c key_lp_target
+ 0x06040b68 plll_trim_lp_target
+ 0x06040b74 ota_lp_target
+ 0x06040b80 dual_ota_lp_target
+ 0x06040b8c pc_lp_target
+ 0x06040b98 audio_dec_init_lp_target
+ 0x06040ba4 bt_dec_lp_target
+ 0x06040bb0 aispeech_asr_core_lp_target
+ 0x06040bbc audio_tone_lp_target
+ 0x06040bc8 tone_dec_lp_target
+ 0x06040bd4 usb_dev_lp_target
+ 0x06040be0 usr_systimer_lp_target
+ 0x06040bec btstack_lowpower_target
+ 0x06040bf8 audio_dac_lp_target
+ 0x06040c04 eq_online_lp_target
+ 0x06040c10 lp_target_end = .
[!provide] PROVIDE (lp_target_end, .)
- 0x0603ffd0 . = ALIGN (0x4)
- 0x0603ffd0 lp_request_begin = .
+ 0x06040c10 . = ALIGN (0x4)
+ 0x06040c10 lp_request_begin = .
[!provide] PROVIDE (lp_request_begin, .)
*(.lp_request)
- 0x0603ffd0 lp_request_end = .
+ 0x06040c10 lp_request_end = .
[!provide] PROVIDE (lp_request_end, .)
- 0x0603ffd0 . = ALIGN (0x4)
- 0x0603ffd0 deepsleep_target_begin = .
+ 0x06040c10 . = ALIGN (0x4)
+ 0x06040c10 deepsleep_target_begin = .
[!provide] PROVIDE (deepsleep_target_begin, .)
*(.deepsleep_target)
.deepsleep_target
- 0x0603ffd0 0x54 cpu\br28\tools\sdk.elf.o
- 0x0603ffd0 uart
- 0x0603ffdc clock_sfc
- 0x0603ffe8 tmr
- 0x0603fff4 vm_sfc
- 0x06040000 lrct
- 0x0604000c periph
- 0x06040018 bt
- 0x06040024 deepsleep_target_end = .
+ 0x06040c10 0x54 cpu\br28\tools\sdk.elf.o
+ 0x06040c10 uart
+ 0x06040c1c clock_sfc
+ 0x06040c28 tmr
+ 0x06040c34 vm_sfc
+ 0x06040c40 lrct
+ 0x06040c4c periph
+ 0x06040c58 bt
+ 0x06040c64 deepsleep_target_end = .
[!provide] PROVIDE (deepsleep_target_end, .)
- 0x06040024 . = ALIGN (0x4)
- 0x06040024 p2m_msg_handler_begin = .
+ 0x06040c64 . = ALIGN (0x4)
+ 0x06040c64 p2m_msg_handler_begin = .
[!provide] PROVIDE (p2m_msg_handler_begin, .)
*(.p2m_msg_handler)
- 0x06040024 PROVIDE (p2m_msg_handler_end, .)
- 0x06040024 p2m_msg_handler_end = .
- 0x06040024 driver_code_end = .
- 0x06040024 . = ALIGN (0x4)
- 0x06040024 media_text_start = .
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 PROVIDE (p2m_msg_handler_end, .)
+ 0x06040c64 p2m_msg_handler_end = .
+ 0x06040c64 driver_code_end = .
+ 0x06040c64 . = ALIGN (0x4)
+ 0x06040c64 media_text_start = .
+ 0x06040c64 . = ALIGN (0x4)
*(.stream_code)
*(.howlings_phf_code)
*(.notchhowling_sparse_code)
@@ -3315,28 +3318,28 @@ END GROUP
*(.howlings_phf_sparse_code)
*(.notchhowling_const)
*(.howlings_phf_const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.llns.text)
*(.llns.text.const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.aec_code)
*(.aec_const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.res_code)
*(.res_const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.ns_code)
*(.ns_const)
*(.bark_const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.jlsp_code)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.jlsp_const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.dns_16k_data)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.dns_8k_data)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.jlsp_dns_code)
*(.jlsp_dns_const)
*(.dns_param_data_wind)
@@ -3365,20 +3368,20 @@ END GROUP
*(.bt_audioplc_code)
*(.bt_audioplc_sparse_code)
*(.bt_audioplc_const)
- 0x06040024 . = ALIGN (0x4)
+ 0x06040c64 . = ALIGN (0x4)
*(.lf_audioplc_code)
.lf_audioplc_code
- 0x06040024 0x47a cpu\br28\tools\sdk.elf.o
+ 0x06040c64 0x47a cpu\br28\tools\sdk.elf.o
*(.lf_audioplc_sparse_code)
.lf_audioplc_sparse_code
- 0x0604049e 0x7c cpu\br28\tools\sdk.elf.o
+ 0x060410de 0x7c cpu\br28\tools\sdk.elf.o
*(.lf_audioplc_const)
- *fill* 0x0604051a 0x2
+ *fill* 0x0604115a 0x2
.lf_audioplc_const
- 0x0604051c 0xc cpu\br28\tools\sdk.elf.o
- 0x06040528 . = ALIGN (0x4)
+ 0x0604115c 0xc cpu\br28\tools\sdk.elf.o
+ 0x06041168 . = ALIGN (0x4)
*(.pcm_code)
- .pcm_code 0x06040528 0xa2 cpu\br28\tools\sdk.elf.o
+ .pcm_code 0x06041168 0xa2 cpu\br28\tools\sdk.elf.o
*(.pcm_const)
*(.wtg_dec_code)
*(.wtg_dec_sparse_code)
@@ -3400,31 +3403,31 @@ END GROUP
*(.opus_encoder_code)
*(.opus_encoder_const)
*(.mp3_code)
- .mp3_code 0x060405ca 0x462 cpu\br28\tools\sdk.elf.o
+ .mp3_code 0x0604120a 0x462 cpu\br28\tools\sdk.elf.o
*(.mp3_const)
*(.mp3_dec_sparse_code)
.mp3_dec_sparse_code
- 0x06040a2c 0x1632 cpu\br28\tools\sdk.elf.o
+ 0x0604166c 0x1632 cpu\br28\tools\sdk.elf.o
*(.mp3_dec_sparse_const)
*(.mp3_dec_code)
- .mp3_dec_code 0x0604205e 0x3042 cpu\br28\tools\sdk.elf.o
+ .mp3_dec_code 0x06042c9e 0x3042 cpu\br28\tools\sdk.elf.o
*(.mp3_dec_const)
.mp3_dec_const
- 0x060450a0 0x290c cpu\br28\tools\sdk.elf.o
+ 0x06045ce0 0x290c cpu\br28\tools\sdk.elf.o
*(.bfilt_code)
*(.msbc_code)
- .msbc_code 0x060479ac 0x4b6 cpu\br28\tools\sdk.elf.o
+ .msbc_code 0x060485ec 0x4b6 cpu\br28\tools\sdk.elf.o
*(.msbc_const)
- *fill* 0x06047e62 0x2
- .msbc_const 0x06047e64 0x46 cpu\br28\tools\sdk.elf.o
+ *fill* 0x06048aa2 0x2
+ .msbc_const 0x06048aa4 0x46 cpu\br28\tools\sdk.elf.o
*(.mty_code)
*(.mp3tsy_dec_code)
*(.mp3tsy_dec_sparse_code)
*(.mp3tsy_dec_const)
*(.sbc_code)
- .sbc_code 0x06047eaa 0x4f6 cpu\br28\tools\sdk.elf.o
+ .sbc_code 0x06048aea 0x4f6 cpu\br28\tools\sdk.elf.o
*(.sbc_const)
- .sbc_const 0x060483a0 0xc cpu\br28\tools\sdk.elf.o
+ .sbc_const 0x06048fe0 0xc cpu\br28\tools\sdk.elf.o
*(.sine_code)
*(.sine_const)
*(.wav_code)
@@ -3467,10 +3470,10 @@ END GROUP
*(.flac_dec_sparse_code)
*(.audio_decoder_code)
.audio_decoder_code
- 0x060483ac 0x2420 cpu\br28\tools\sdk.elf.o
+ 0x06048fec 0x2420 cpu\br28\tools\sdk.elf.o
*(.audio_decoder_const)
.audio_decoder_const
- 0x0604a7cc 0x68 cpu\br28\tools\sdk.elf.o
+ 0x0604b40c 0x68 cpu\br28\tools\sdk.elf.o
*(.audio_track_const)
*(.audio_track_code)
*(.m4a_code)
@@ -3491,7 +3494,7 @@ END GROUP
*(.audio_encoder_code)
*(.audio_encoder_const)
*(.mixer_code)
- .mixer_code 0x0604a834 0x5ae cpu\br28\tools\sdk.elf.o
+ .mixer_code 0x0604b474 0x5ae cpu\br28\tools\sdk.elf.o
*(.mixer_const)
*(.dec_server_code)
*(.dec_server_const)
@@ -3505,7 +3508,7 @@ END GROUP
*(.wireless_sync_const)
*(.sbc_eng_code)
*(.sbc_eng_const)
- 0x0604ade2 anc_code_begin = .
+ 0x0604ba22 anc_code_begin = .
*(.anc_user_const)
*(.anc_user_code)
*(.anc_const)
@@ -3516,17 +3519,17 @@ END GROUP
*(.anc_box_code)
*(.anc_btspp_const)
*(.anc_btspp_code)
- 0x0604ade2 anc_code_end = .
+ 0x0604ba22 anc_code_end = .
0x00000000 anc_code_size = (anc_code_end - anc_code_begin)
*(.audio_codec_code)
.audio_codec_code
- 0x0604ade2 0x1ee cpu\br28\tools\sdk.elf.o
+ 0x0604ba22 0x1ee cpu\br28\tools\sdk.elf.o
*(.audio_adc_code)
.audio_adc_code
- 0x0604afd0 0x990 cpu\br28\tools\sdk.elf.o
+ 0x0604bc10 0x990 cpu\br28\tools\sdk.elf.o
*(.audio_adc_const)
.audio_adc_const
- 0x0604b960 0xc cpu\br28\tools\sdk.elf.o
+ 0x0604c5a0 0xc cpu\br28\tools\sdk.elf.o
*(.audio_cfifo_code)
*(.audio_cfifo_const)
*(.bt_compressor_sparse_const)
@@ -3543,56 +3546,57 @@ END GROUP
*(.crossOver_sparse_const)
*(.lib_pitchshift_code)
*(.lib_pitchshift_const)
- 0x0604b96c . = ALIGN (0x4)
- 0x0604b96c _audio_decoder_begin = .
- 0x0604b96c PROVIDE (audio_decoder_begin, .)
+ 0x0604c5ac . = ALIGN (0x4)
+ 0x0604c5ac _audio_decoder_begin = .
+ 0x0604c5ac PROVIDE (audio_decoder_begin, .)
*(.audio_decoder)
.audio_decoder
- 0x0604b96c 0x154 cpu\br28\tools\sdk.elf.o
- 0x0604b96c mp3_decoder
- 0x0604b9b0 pcm_decoder
- 0x0604b9f4 cvsd_decoder
- 0x0604ba38 sbc_decoder
- 0x0604ba7c msbc_decoder
- 0x0604bac0 _audio_decoder_end = .
- 0x0604bac0 PROVIDE (audio_decoder_end, .)
- 0x0604bac0 _audio_encoder_begin = .
- 0x0604bac0 PROVIDE (audio_encoder_begin, .)
+ 0x0604c5ac 0x154 cpu\br28\tools\sdk.elf.o
+ 0x0604c5ac mp3_decoder
+ 0x0604c5f0 pcm_decoder
+ 0x0604c634 cvsd_decoder
+ 0x0604c678 sbc_decoder
+ 0x0604c6bc msbc_decoder
+ 0x0604c700 _audio_decoder_end = .
+ 0x0604c700 PROVIDE (audio_decoder_end, .)
+ 0x0604c700 _audio_encoder_begin = .
+ 0x0604c700 PROVIDE (audio_encoder_begin, .)
*(.audio_encoder)
- 0x0604bac0 _audio_encoder_end = .
- 0x0604bac0 PROVIDE (audio_encoder_end, .)
- 0x0604bac0 _audio_package_begin = .
+ 0x0604c700 _audio_encoder_end = .
+ 0x0604c700 PROVIDE (audio_encoder_end, .)
+ 0x0604c700 _audio_package_begin = .
[!provide] PROVIDE (audio_package_begin, .)
*(.audio_package)
- 0x0604bac0 _audio_package_end = .
+ 0x0604c700 _audio_package_end = .
[!provide] PROVIDE (audio_package_end, .)
- 0x0604bac0 _audio_dev_begin = .
+ 0x0604c700 _audio_dev_begin = .
[!provide] PROVIDE (audio_dev_begin, .)
*(.audio_device)
- 0x0604bac0 _audio_dev_end = .
+ 0x0604c700 _audio_dev_end = .
[!provide] PROVIDE (audio_dev_end, .)
- 0x0604bac0 _audio_hwaccel_begin = .
- 0x0604bac0 PROVIDE (audio_hwaccel_begin, .)
+ 0x0604c700 _audio_hwaccel_begin = .
+ 0x0604c700 PROVIDE (audio_hwaccel_begin, .)
*(.audio_hwaccel)
.audio_hwaccel
- 0x0604bac0 0x24 cpu\br28\tools\sdk.elf.o
- 0x0604bac0 sbc_hwaccel
- 0x0604bae4 _audio_hwaccel_end = .
- 0x0604bae4 PROVIDE (audio_hwaccel_end, .)
- 0x0604bae4 . = ALIGN (0x4)
- 0x0604bae4 media_code_begin = .
+ 0x0604c700 0x24 cpu\br28\tools\sdk.elf.o
+ 0x0604c700 sbc_hwaccel
+ 0x0604c724 _audio_hwaccel_end = .
+ 0x0604c724 PROVIDE (audio_hwaccel_end, .)
+ 0x0604c724 . = ALIGN (0x4)
+ 0x0604c724 media_code_begin = .
*(.media.*.text)
.media.media_cpu.text
- 0x0604bae4 0x3a86 cpu\br28\tools\sdk.elf.o
+ 0x0604c724 0x3a8c cpu\br28\tools\sdk.elf.o
.media.audio_decoder.text
- 0x0604f56a 0x66 cpu\br28\tools\sdk.elf.o
+ 0x060501b0 0x66 cpu\br28\tools\sdk.elf.o
.media.mixer.text
- 0x0604f5d0 0x20 cpu\br28\tools\sdk.elf.o
+ 0x06050216 0x20 cpu\br28\tools\sdk.elf.o
.media.bluetooth_audio.text
- 0x0604f5f0 0x29a cpu\br28\tools\sdk.elf.o
+ 0x06050236 0x29a cpu\br28\tools\sdk.elf.o
.media.audio_encoder.text
- 0x0604f88a 0x2a cpu\br28\tools\sdk.elf.o
- 0x0604f8b4 . = ALIGN (0x4)
+ 0x060504d0 0x2a cpu\br28\tools\sdk.elf.o
+ 0x060504fc . = ALIGN (0x4)
+ *fill* 0x060504fa 0x2
*(.compressor_code)
*(.compressor_const)
*(.bt_compressor_const)
@@ -3615,13 +3619,13 @@ END GROUP
*(.vbss_const)
*(.vbss_sparse_code)
*(.vbss_sparse_const)
- 0x0604f8b4 . = ALIGN (0x4)
+ 0x060504fc . = ALIGN (0x4)
*(.pSOUND360TD_cal_sparse_code)
- 0x0604f8b4 . = ALIGN (0x4)
+ 0x060504fc . = ALIGN (0x4)
*(.g729_code)
*(.g729_const)
*(.cvsd_code)
- .cvsd_code 0x0604f8b4 0x202 cpu\br28\tools\sdk.elf.o
+ .cvsd_code 0x060504fc 0x202 cpu\br28\tools\sdk.elf.o
*(.cvsd_const)
*(.media.audio*)
*(.media.mixer*)
@@ -3630,22 +3634,22 @@ END GROUP
*(.lib_wtg_dec_const)
*(.audio_resample_code)
.audio_resample_code
- 0x0604fab6 0x8a cpu\br28\tools\sdk.elf.o
+ 0x060506fe 0x8a cpu\br28\tools\sdk.elf.o
*(.audio_resample_const)
*(.resample_fastcal_sparse_code)
*(.resample_fastcal_code)
*(.resample_fastcal_const)
- 0x0604fb40 audio_sync_code_begin = .
+ 0x06050788 audio_sync_code_begin = .
*(.audio_sync_code)
.audio_sync_code
- 0x0604fb40 0x45c cpu\br28\tools\sdk.elf.o
- 0x0604ff9c audio_sync_code_end = .
- 0x0604ff9c . = ALIGN (0x4)
- 0x0604ff9c media_code_end = .
- 0x0604ff9c . = ALIGN (0x4)
- 0x000044b8 media_code_size = (media_code_end - media_code_begin)
- 0x0604ff9c . = ALIGN (0x4)
- 0x0604ff9c media_text_end = .
+ 0x06050788 0x45c cpu\br28\tools\sdk.elf.o
+ 0x06050be4 audio_sync_code_end = .
+ 0x06050be4 . = ALIGN (0x4)
+ 0x06050be4 media_code_end = .
+ 0x06050be4 . = ALIGN (0x4)
+ 0x000044c0 media_code_size = (media_code_end - media_code_begin)
+ 0x06050be4 . = ALIGN (0x4)
+ 0x06050be4 media_text_end = .
0x00140000 . = ORIGIN (ram0)
.mmu_tlb 0x00140000 0x5000
@@ -3920,104 +3924,104 @@ END GROUP
*(.jlsp_agc_data)
0x00147fe0 . = ALIGN (0x4)
-.bss 0x00147fe0 0xb504
+.bss 0x00147fe0 0xd3c4
0x00147fe0 . = ALIGN (0x4)
*(.bss)
- .bss 0x00147fe0 0x8860 cpu\br28\tools\sdk.elf.o
- 0x00150840 . = ALIGN (0x4)
+ .bss 0x00147fe0 0xa710 cpu\br28\tools\sdk.elf.o
+ 0x001526f0 . = ALIGN (0x4)
*(.volatile_ram)
*(.btstack_pool)
*(.mem_heap)
*(.memp_memory_x)
- 0x00150840 . = ALIGN (0x4)
+ 0x001526f0 . = ALIGN (0x4)
*(.non_volatile_ram)
.non_volatile_ram
- 0x00150840 0x358 cpu\br28\tools\sdk.elf.o
- 0x00150ba0 . = ALIGN (0x20)
- *fill* 0x00150b98 0x8
+ 0x001526f0 0x358 cpu\br28\tools\sdk.elf.o
+ 0x00152a60 . = ALIGN (0x20)
+ *fill* 0x00152a48 0x18
*(.usb_h_dma)
*(.usb_ep0)
- .usb_ep0 0x00150ba0 0x40 cpu\br28\tools\sdk.elf.o
+ .usb_ep0 0x00152a60 0x40 cpu\br28\tools\sdk.elf.o
*(.usb_audio_play_dma)
*(.usb_audio_rec_dma)
*(.uac_rx)
*(.mass_storage)
*(.usb_msd_dma)
- .usb_msd_dma 0x00150be0 0x104 cpu\br28\tools\sdk.elf.o
+ .usb_msd_dma 0x00152aa0 0x104 cpu\br28\tools\sdk.elf.o
*(.usb_hid_dma)
*(.usb_iso_dma)
*(.usb_cdc_dma)
*(.uac_var)
*(.usb_config_var)
*(.cdc_var)
- 0x00150d00 . = ALIGN (0x20)
- *fill* 0x00150ce4 0x1c
- 0x00150d00 update_bss_start = .
+ 0x00152bc0 . = ALIGN (0x20)
+ *fill* 0x00152ba4 0x1c
+ 0x00152bc0 update_bss_start = .
*(.update_bss)
- .update_bss 0x00150d00 0x1ec cpu\br28\tools\sdk.elf.o
- 0x00150eec update_bss_end = .
- 0x00150eec btstack_bss_start = .
+ .update_bss 0x00152bc0 0x1ec cpu\br28\tools\sdk.elf.o
+ 0x00152dac update_bss_end = .
+ 0x00152dac btstack_bss_start = .
*(.bt_stack_bss)
- .bt_stack_bss 0x00150eec 0x11ca cpu\br28\tools\sdk.elf.o
+ .bt_stack_bss 0x00152dac 0x11ca cpu\br28\tools\sdk.elf.o
*(.ble_db_bss)
- *fill* 0x001520b6 0x2
- .ble_db_bss 0x001520b8 0x20 cpu\br28\tools\sdk.elf.o
+ *fill* 0x00153f76 0x2
+ .ble_db_bss 0x00153f78 0x20 cpu\br28\tools\sdk.elf.o
*(.ble_sm_bss)
*(.ble_att_bss)
- .ble_att_bss 0x001520d8 0x40 cpu\br28\tools\sdk.elf.o
+ .ble_att_bss 0x00153f98 0x40 cpu\br28\tools\sdk.elf.o
*(.ble_gatt_bss)
- .ble_gatt_bss 0x00152118 0x18 cpu\br28\tools\sdk.elf.o
+ .ble_gatt_bss 0x00153fd8 0x18 cpu\br28\tools\sdk.elf.o
*(.btstack_pool)
- 0x00152130 BTSTACK_LE_HOST_MESH_BSS_START = .
+ 0x00153ff0 BTSTACK_LE_HOST_MESH_BSS_START = .
*(.ble_mesh_bss)
*(.ble_mesh_tinycrypt_bss)
0x00000000 BTSTACK_LE_HOST_MESH_BSS_SIZE = ABSOLUTE ((. - BTSTACK_LE_HOST_MESH_BSS_START))
- 0x00152130 btstack_bss_end = .
- 0x00152130 system_bss_start = .
- 0x00152130 . = ALIGN (0x4)
+ 0x00153ff0 btstack_bss_end = .
+ 0x00153ff0 system_bss_start = .
+ 0x00153ff0 . = ALIGN (0x4)
*(.os_bss)
- .os_bss 0x00152130 0x218 cpu\br28\tools\sdk.elf.o
- 0x00152338 irq_lock_cnt
+ .os_bss 0x00153ff0 0x218 cpu\br28\tools\sdk.elf.o
+ 0x001541f8 irq_lock_cnt
*(.mem_heap)
*(.memp_memory_x)
*(.mem_bss)
*(.os_port_bss)
*(.uECC_bss)
*(.ECDH_sample_bss)
- 0x00152348 system_bss_end = .
- 0x00152348 btctler_bss_start = .
- 0x00152348 BTCTLER_CONTROLLER_BSS_START = .
+ 0x00154208 system_bss_end = .
+ 0x00154208 btctler_bss_start = .
+ 0x00154208 BTCTLER_CONTROLLER_BSS_START = .
*(.bd_base)
- .bd_base 0x00152348 0x300 cpu\br28\tools\sdk.elf.o
+ .bd_base 0x00154208 0x300 cpu\br28\tools\sdk.elf.o
*(.bredr_rxtx_bulk)
*(.bredr_tx_bulk)
*(.bt_rf_bss)
- .bt_rf_bss 0x00152648 0x33 cpu\br28\tools\sdk.elf.o
+ .bt_rf_bss 0x00154508 0x33 cpu\br28\tools\sdk.elf.o
*(.hci_controller_bss)
- *fill* 0x0015267b 0x1
+ *fill* 0x0015453b 0x1
.hci_controller_bss
- 0x0015267c 0x38 cpu\br28\tools\sdk.elf.o
+ 0x0015453c 0x38 cpu\br28\tools\sdk.elf.o
*(.hci_interface_bss)
*(.device_manager_bss)
*(.vendor_manager_bss)
0x0000036c BTCTLER_CONTROLLER_BSS_SIZE = ABSOLUTE ((. - BTCTLER_CONTROLLER_BSS_START))
- 0x001526b4 BTCTLER_LE_CONTROLLER_BSS_START = .
+ 0x00154574 BTCTLER_LE_CONTROLLER_BSS_START = .
*(.ble_hci_bss)
- .ble_hci_bss 0x001526b4 0x9c cpu\br28\tools\sdk.elf.o
+ .ble_hci_bss 0x00154574 0x9c cpu\br28\tools\sdk.elf.o
*(.ble_ll_bss)
- .ble_ll_bss 0x00152750 0x28b cpu\br28\tools\sdk.elf.o
+ .ble_ll_bss 0x00154610 0x28b cpu\br28\tools\sdk.elf.o
*(.ble_rf_bss)
- *fill* 0x001529db 0x1
- .ble_rf_bss 0x001529dc 0x16 cpu\br28\tools\sdk.elf.o
+ *fill* 0x0015489b 0x1
+ .ble_rf_bss 0x0015489c 0x16 cpu\br28\tools\sdk.elf.o
0x0000033e BTCTLER_LE_CONTROLLER_BSS_SIZE = ABSOLUTE ((. - BTCTLER_LE_CONTROLLER_BSS_START))
- 0x001529f2 BTCTLER_CL_BSS_START = .
+ 0x001548b2 BTCTLER_CL_BSS_START = .
*(.classic_rf_bss)
- *fill* 0x001529f2 0x2
+ *fill* 0x001548b2 0x2
.classic_rf_bss
- 0x001529f4 0xac cpu\br28\tools\sdk.elf.o
+ 0x001548b4 0xac cpu\br28\tools\sdk.elf.o
*(.classic_lmp_bss)
.classic_lmp_bss
- 0x00152aa0 0x1d4 cpu\br28\tools\sdk.elf.o
+ 0x00154960 0x1d4 cpu\br28\tools\sdk.elf.o
*(.classic_lmp_auth_bss)
*(.classic_lmp_bigint_bss)
*(.classic_lmp_crypt_bss)
@@ -4027,30 +4031,30 @@ END GROUP
*(.classic_bb_bss)
*(.classic_hci_bss)
0x00000282 BTCTLER_CL_BSS_SIZE = ABSOLUTE ((. - BTCTLER_CL_BSS_START))
- 0x00152c74 btctler_bss_end = .
- 0x00152c74 driver_bss_start = .
- 0x00152c74 CLOCK_BSS_START = .
+ 0x00154b34 btctler_bss_end = .
+ 0x00154b34 driver_bss_start = .
+ 0x00154b34 CLOCK_BSS_START = .
*(.clock_bss)
- .clock_bss 0x00152c74 0x59 cpu\br28\tools\sdk.elf.o
+ .clock_bss 0x00154b34 0x59 cpu\br28\tools\sdk.elf.o
0x00000059 CLOCK_BSS_SIZE = ABSOLUTE ((. - CLOCK_BSS_START))
*(.debug_bss)
*(.uart_bss)
*(.sd_var)
*(.power_driver.data.bss)
- *fill* 0x00152ccd 0x3
+ *fill* 0x00154b8d 0x3
.power_driver.data.bss
- 0x00152cd0 0x7e2 cpu\br28\tools\sdk.elf.o
+ 0x00154b90 0x7e2 cpu\br28\tools\sdk.elf.o
*(.power_reset.data.bss)
*(.power_wakeup.data.bss)
- *fill* 0x001534b2 0x2
+ *fill* 0x00155372 0x2
.power_wakeup.data.bss
- 0x001534b4 0x2c cpu\br28\tools\sdk.elf.o
- 0x001534e0 driver_bss_end = .
- 0x001534e0 . = ALIGN (0x4)
- 0x001534e0 audio_sync_bss_begin = .
+ 0x00155374 0x2c cpu\br28\tools\sdk.elf.o
+ 0x001553a0 driver_bss_end = .
+ 0x001553a0 . = ALIGN (0x4)
+ 0x001553a0 audio_sync_bss_begin = .
*(.audio_sync_bss)
- 0x001534e0 audio_sync_bss_end = .
- 0x001534e0 . = ALIGN (0x4)
+ 0x001553a0 audio_sync_bss_end = .
+ 0x001553a0 . = ALIGN (0x4)
*(.cvsd_bss)
*(.aac_bss)
*(.ldac_decoder_bss)
@@ -4068,7 +4072,7 @@ END GROUP
*(.anc_btspp_bss)
*(.audio_adc_bss)
.audio_adc_bss
- 0x001534e0 0x4 cpu\br28\tools\sdk.elf.o
+ 0x001553a0 0x4 cpu\br28\tools\sdk.elf.o
*(.audio_cfifo_bss)
*(.audio_dec_bss)
*(.audio_buf)
@@ -4083,111 +4087,111 @@ END GROUP
*(.jlsp_wn_bss)
*(.jlsp_tri_bss)
*(.jlsp_agc_bss)
- 0x001534e4 . = ALIGN (0x4)
+ 0x001553a4 . = ALIGN (0x4)
*(.pSOUND360TD_cal_bss)
-.data_code 0x00153500 0x59e0
- 0x00153500 data_code_pc_limit_begin = .
+.data_code 0x001553c0 0x59e0
+ 0x001553c0 data_code_pc_limit_begin = .
*(.flushinv_icache)
*(.cache)
*(.os_critical_code)
.os_critical_code
- 0x00153500 0x692 cpu\br28\tools\sdk.elf.o
- 0x00153500 jiffies_half_msec
- 0x00153558 jiffies_msec
- 0x00153560 vmalloc_
- 0x001536d0 vfree_
- 0x0015387c vfree_v2
- 0x0015395c vmalloc_v2
- 0x00153b2c vcopy_
+ 0x001553c0 0x692 cpu\br28\tools\sdk.elf.o
+ 0x001553c0 jiffies_half_msec
+ 0x00155418 jiffies_msec
+ 0x00155420 vmalloc_
+ 0x00155590 vfree_
+ 0x0015573c vfree_v2
+ 0x0015581c vmalloc_v2
+ 0x001559ec vcopy_
*(.volatile_ram_code)
.volatile_ram_code
- 0x00153b92 0x1674 cpu\br28\tools\sdk.elf.o
- 0x00153ce4 sfc_suspend
- 0x0015423e sfc_resume
- 0x0015429e read_flash_id
- 0x00154438 norflash_erase
- 0x001544d2 flushinv_dcache_api
- 0x00154514 sfc1_flash_addr2cpu_addr
- 0x00154714 exception_analyze
- 0x0015481e norflash_get_uuid
- 0x0015495a sfc1_resume
- 0x0015495c sfc1_suspend
- 0x001549ca spi_for_maskrom_init
- 0x001549fe sfc1_cpu_addr2flash_addr
- 0x00154b64 cpu1_power_off_resume
- 0x00154c72 hw_mmu_disable
- *fill* 0x00155206 0x2
+ 0x00155a52 0x1674 cpu\br28\tools\sdk.elf.o
+ 0x00155ba4 sfc_suspend
+ 0x001560fe sfc_resume
+ 0x0015615e read_flash_id
+ 0x001562f8 norflash_erase
+ 0x00156392 flushinv_dcache_api
+ 0x001563d4 sfc1_flash_addr2cpu_addr
+ 0x001565d4 exception_analyze
+ 0x001566de norflash_get_uuid
+ 0x0015681a sfc1_resume
+ 0x0015681c sfc1_suspend
+ 0x0015688a spi_for_maskrom_init
+ 0x001568be sfc1_cpu_addr2flash_addr
+ 0x00156a24 cpu1_power_off_resume
+ 0x00156b32 hw_mmu_disable
+ *fill* 0x001570c6 0x2
.volatile_ram_code
- 0x00155208 0x10e cpu/br28/liba/cpu.a(startup.S.o)
- 0x00155228 cpu1_start
- 0x0015523c cpu1_power_off_resume_S
- 0x00155248 __cpu_irq_disabled
- 0x0015526c __BT_UPDATA_JUMP
- 0x00155302 exception_irq_handler
+ 0x001570c8 0x10e cpu/br28/liba/cpu.a(startup.S.o)
+ 0x001570e8 cpu1_start
+ 0x001570fc cpu1_power_off_resume_S
+ 0x00157108 __cpu_irq_disabled
+ 0x0015712c __BT_UPDATA_JUMP
+ 0x001571c2 exception_irq_handler
*(.chargebox_code)
*(.fat_data_code)
*(.fat_data_code_ex)
*(.ui_ram)
*(.math_fast_funtion_code)
- 0x00155318 . = ALIGN (0x4)
- *fill* 0x00155316 0x2
+ 0x001571d8 . = ALIGN (0x4)
+ *fill* 0x001571d6 0x2
*(.pSOUND360TD_cal_const)
*(.pSOUND360TD_cal_code)
- 0x00155318 . = ALIGN (0x4)
+ 0x001571d8 . = ALIGN (0x4)
*(.SpatialAudio.text.const)
*(.SpatialAudio.text)
*(.SpatialAudio.text.cache.L1)
- 0x00155318 . = ALIGN (0x4)
- 0x00155318 _SPI_CODE_START = .
+ 0x001571d8 . = ALIGN (0x4)
+ 0x001571d8 _SPI_CODE_START = .
*(.spi_code)
- 0x00155318 . = ALIGN (0x4)
- 0x00155318 _SPI_CODE_END = .
- 0x00155318 . = ALIGN (0x4)
+ 0x001571d8 . = ALIGN (0x4)
+ 0x001571d8 _SPI_CODE_END = .
+ 0x001571d8 . = ALIGN (0x4)
*(.os_code)
- .os_code 0x00155318 0x1794 cpu\br28\tools\sdk.elf.o
- 0x0015687a maskrom_init
- 0x00156aac . = ALIGN (0x4)
+ .os_code 0x001571d8 0x1794 cpu\br28\tools\sdk.elf.o
+ 0x0015873a maskrom_init
+ 0x0015896c . = ALIGN (0x4)
*(.lmp_irq_code)
- .lmp_irq_code 0x00156aac 0x76 cpu\br28\tools\sdk.elf.o
+ .lmp_irq_code 0x0015896c 0x76 cpu\br28\tools\sdk.elf.o
*(.link_bulk_code)
*(.frame_irq_code)
.frame_irq_code
- 0x00156b22 0x1f2 cpu\br28\tools\sdk.elf.o
- 0x00156d14 . = ALIGN (0x4)
+ 0x001589e2 0x1f2 cpu\br28\tools\sdk.elf.o
+ 0x00158bd4 . = ALIGN (0x4)
*(.link_task_const)
*(.link_task_code)
.link_task_code
- 0x00156d14 0x66e cpu\br28\tools\sdk.elf.o
- 0x00157384 . = ALIGN (0x4)
- *fill* 0x00157382 0x2
+ 0x00158bd4 0x66e cpu\br28\tools\sdk.elf.o
+ 0x00159244 . = ALIGN (0x4)
+ *fill* 0x00159242 0x2
*(.classic_irq_const)
*(.classic_irq_code)
.classic_irq_code
- 0x00157384 0x3a8 cpu\br28\tools\sdk.elf.o
- 0x0015772c . = ALIGN (0x4)
+ 0x00159244 0x3a8 cpu\br28\tools\sdk.elf.o
+ 0x001595ec . = ALIGN (0x4)
*(.tws_irq_code)
- 0x0015772c . = ALIGN (0x4)
- 0x0015772c tws_sync_call_begin = .
+ 0x001595ec . = ALIGN (0x4)
+ 0x001595ec tws_sync_call_begin = .
*(.tws_sync_call)
.tws_sync_call
- 0x0015772c 0xc cpu\br28\tools\sdk.elf.o
- 0x00157738 tws_sync_call_end = .
- 0x00157738 . = ALIGN (0x4)
- 0x00157738 tws_func_stub_begin = .
+ 0x001595ec 0xc cpu\br28\tools\sdk.elf.o
+ 0x001595f8 tws_sync_call_end = .
+ 0x001595f8 . = ALIGN (0x4)
+ 0x001595f8 tws_func_stub_begin = .
*(.tws_func_stub)
.tws_func_stub
- 0x00157738 0x30 cpu\br28\tools\sdk.elf.o
- 0x00157768 tws_func_stub_end = .
+ 0x001595f8 0x30 cpu\br28\tools\sdk.elf.o
+ 0x00159628 tws_func_stub_end = .
*(.tws_media_sync_code)
.tws_media_sync_code
- 0x00157768 0x9e cpu\br28\tools\sdk.elf.o
+ 0x00159628 0x9e cpu\br28\tools\sdk.elf.o
*(.tws_media_sync_const)
*(.tws_data_forward_code)
*(.tws_data_forward_const)
- 0x00157808 . = ALIGN (0x4)
- *fill* 0x00157806 0x2
- 0x00157808 tws_sync_channel_begin = .
+ 0x001596c8 . = ALIGN (0x4)
+ *fill* 0x001596c6 0x2
+ 0x001596c8 tws_sync_channel_begin = .
*(.tws_sync_channel.0)
*(.tws_sync_channel.1)
*(.tws_sync_channel.2)
@@ -4202,32 +4206,32 @@ END GROUP
*(.tws_sync_channel.11)
*(.tws_sync_channel.12)
*(.tws_sync_channel.13)
- 0x00157808 tws_sync_channel_end = .
- 0x00157808 btctler_code_end = .
- 0x00157808 . = ALIGN (0x4)
- 0x00157808 driver_data_code_start = .
- 0x00157808 CLOCK_CACHE_L1_CODE_START = .
+ 0x001596c8 tws_sync_channel_end = .
+ 0x001596c8 btctler_code_end = .
+ 0x001596c8 . = ALIGN (0x4)
+ 0x001596c8 driver_data_code_start = .
+ 0x001596c8 CLOCK_CACHE_L1_CODE_START = .
*(.clock.text.cache.L1)
0x00000000 CLOCK_CACHE_L1_SIZE = ABSOLUTE ((. - CLOCK_CACHE_L1_CODE_START))
*(.vm.text.cache.L1)
*(.power_driver.text.cache.L1)
- *fill* 0x00157808 0x18
+ *fill* 0x001596c8 0x18
.power_driver.text.cache.L1
- 0x00157820 0x16c0 cpu\br28\tools\sdk.elf.o
- 0x00157ca0 spi_port_sel
+ 0x001596e0 0x16c0 cpu\br28\tools\sdk.elf.o
+ 0x00159b60 spi_port_sel
*(.timer.text.cache.L1)
*(.gpio.text.cache.L1)
*(.iic_hw.text.cache.L1)
- 0x00158ee0 driver_data_code_end = .
- 0x00158ee0 . = ALIGN (0x4)
+ 0x0015ada0 driver_data_code_end = .
+ 0x0015ada0 . = ALIGN (0x4)
*(.media.aec.text)
-.moveable_slot 0x00158ee0 0x0
+.moveable_slot 0x0015ada0 0x0
*(movable.slot.*)
- 0x00158ee0 __report_overlay_begin = .
+ 0x0015ada0 __report_overlay_begin = .
-.overlay_aec 0x00158ee0 0x0 load address 0x00200000
- 0x00158ee0 aec_code_begin = .
+.overlay_aec 0x0015ada0 0x0 load address 0x00200000
+ 0x0015ada0 aec_code_begin = .
*(.text._*)
*(.data._*)
*(.aec_code)
@@ -4243,7 +4247,7 @@ END GROUP
*(.dms_code)
*(.dms_const)
*(.dms_sparse_code)
- 0x00158ee0 aec_code_end = .
+ 0x0015ada0 aec_code_end = .
0x00000000 aec_code_size = (aec_code_end - aec_code_begin)
*(.msbc_enc)
*(.cvsd_codec)
@@ -4274,11 +4278,11 @@ END GROUP
[!provide] PROVIDE (__load_start_overlay_aec, LOADADDR (.overlay_aec))
[!provide] PROVIDE (__load_stop_overlay_aec, (LOADADDR (.overlay_aec) + SIZEOF (.overlay_aec)))
-.overlay_aac 0x00158ee0 0x0 load address 0x00200000
+.overlay_aac 0x0015ada0 0x0 load address 0x00200000
[!provide] PROVIDE (__load_start_overlay_aac, LOADADDR (.overlay_aac))
[!provide] PROVIDE (__load_stop_overlay_aac, (LOADADDR (.overlay_aac) + SIZEOF (.overlay_aac)))
-.overlay_mp3 0x00158ee0 0x0 load address 0x00200000
+.overlay_mp3 0x0015ada0 0x0 load address 0x00200000
*(.mp3_mem)
*(.mp3_ctrl_mem)
*(.mp3pick_mem)
@@ -4287,7 +4291,7 @@ END GROUP
[!provide] PROVIDE (__load_start_overlay_mp3, LOADADDR (.overlay_mp3))
[!provide] PROVIDE (__load_stop_overlay_mp3, (LOADADDR (.overlay_mp3) + SIZEOF (.overlay_mp3)))
-.overlay_wma 0x00158ee0 0x0 load address 0x00200000
+.overlay_wma 0x0015ada0 0x0 load address 0x00200000
*(.wma_mem)
*(.wma_ctrl_mem)
*(.wmapick_mem)
@@ -4295,48 +4299,48 @@ END GROUP
[!provide] PROVIDE (__load_start_overlay_wma, LOADADDR (.overlay_wma))
[!provide] PROVIDE (__load_stop_overlay_wma, (LOADADDR (.overlay_wma) + SIZEOF (.overlay_wma)))
-.overlay_wav 0x00158ee0 0x0 load address 0x00200000
+.overlay_wav 0x0015ada0 0x0 load address 0x00200000
*(.wav_mem)
*(.wav_ctrl_mem)
[!provide] PROVIDE (__load_start_overlay_wav, LOADADDR (.overlay_wav))
[!provide] PROVIDE (__load_stop_overlay_wav, (LOADADDR (.overlay_wav) + SIZEOF (.overlay_wav)))
-.overlay_ape 0x00158ee0 0x0 load address 0x00200000
+.overlay_ape 0x0015ada0 0x0 load address 0x00200000
*(.ape_mem)
*(.ape_ctrl_mem)
[!provide] PROVIDE (__load_start_overlay_ape, LOADADDR (.overlay_ape))
[!provide] PROVIDE (__load_stop_overlay_ape, (LOADADDR (.overlay_ape) + SIZEOF (.overlay_ape)))
-.overlay_flac 0x00158ee0 0x0 load address 0x00200000
+.overlay_flac 0x0015ada0 0x0 load address 0x00200000
*(.flac_mem)
*(.flac_ctrl_mem)
[!provide] PROVIDE (__load_start_overlay_flac, LOADADDR (.overlay_flac))
[!provide] PROVIDE (__load_stop_overlay_flac, (LOADADDR (.overlay_flac) + SIZEOF (.overlay_flac)))
-.overlay_m4a 0x00158ee0 0x0 load address 0x00200000
+.overlay_m4a 0x0015ada0 0x0 load address 0x00200000
*(.m4a_mem)
*(.m4a_ctrl_mem)
[!provide] PROVIDE (__load_start_overlay_m4a, LOADADDR (.overlay_m4a))
[!provide] PROVIDE (__load_stop_overlay_m4a, (LOADADDR (.overlay_m4a) + SIZEOF (.overlay_m4a)))
-.overlay_amr 0x00158ee0 0x0 load address 0x00200000
+.overlay_amr 0x0015ada0 0x0 load address 0x00200000
*(.amr_mem)
*(.amr_ctrl_mem)
[!provide] PROVIDE (__load_start_overlay_amr, LOADADDR (.overlay_amr))
[!provide] PROVIDE (__load_stop_overlay_amr, (LOADADDR (.overlay_amr) + SIZEOF (.overlay_amr)))
-.overlay_dts 0x00158ee0 0x0 load address 0x00200000
+.overlay_dts 0x0015ada0 0x0 load address 0x00200000
*(.dts_mem)
*(.dts_ctrl_mem)
[!provide] PROVIDE (__load_start_overlay_dts, LOADADDR (.overlay_dts))
[!provide] PROVIDE (__load_stop_overlay_dts, (LOADADDR (.overlay_dts) + SIZEOF (.overlay_dts)))
-.overlay_fm 0x00158ee0 0x0 load address 0x00200000
+.overlay_fm 0x0015ada0 0x0 load address 0x00200000
*(.fm_mem)
[!provide] PROVIDE (__load_start_overlay_fm, LOADADDR (.overlay_fm))
[!provide] PROVIDE (__load_stop_overlay_fm, (LOADADDR (.overlay_fm) + SIZEOF (.overlay_fm)))
-.overlay_pc 0x00158ee0 0x0 load address 0x00200000
+.overlay_pc 0x0015ada0 0x0 load address 0x00200000
*(.usb_audio_play_dma)
*(.usb_audio_rec_dma)
*(.uac_rx)
@@ -4351,9 +4355,9 @@ END GROUP
*(.cdc_var)
[!provide] PROVIDE (__load_start_overlay_pc, LOADADDR (.overlay_pc))
[!provide] PROVIDE (__load_stop_overlay_pc, (LOADADDR (.overlay_pc) + SIZEOF (.overlay_pc)))
- 0x00158ee0 data_code_pc_limit_end = .
- 0x00158ee0 __report_overlay_end = .
- 0x00158ee0 _HEAP_BEGIN = .
+ 0x0015ada0 data_code_pc_limit_end = .
+ 0x0015ada0 __report_overlay_end = .
+ 0x0015ada0 _HEAP_BEGIN = .
0x0019fb80 _HEAP_END = RAM0_END
0x02000000 . = ORIGIN (psr_ram)
@@ -4363,56 +4367,56 @@ END GROUP
.psr_bss_code 0x02000000 0x0
0x02000000 . = ALIGN (0x4)
- 0x00001ad2 UPDATE_CODE_TOTAL_SIZE = (update_code_end - update_code_start)
+ 0x00001ad0 UPDATE_CODE_TOTAL_SIZE = (update_code_end - update_code_start)
0x00000000 BTSTACK_LE_HOST_MESH_RAM_TOTAL = (BTSTACK_LE_HOST_MESH_DATA_SIZE + BTSTACK_LE_HOST_MESH_BSS_SIZE)
0x00000000 BTSTACK_LE_HOST_MESH_FLASH_TOTAL = BTSTACK_LE_HOST_MESH_CODE_SIZE
- 0x0000aa76 BTSTACK_CODE_SIZE = ((btstack_code_end - btstack_code_start) + (btstack_data_end - btstack_data_start))
+ 0x0000aa6e BTSTACK_CODE_SIZE = ((btstack_code_end - btstack_code_start) + (btstack_data_end - btstack_data_start))
0x00000410 BTCTLER_LE_RAM_TOTAL = (BTCTLER_LE_CONTROLLER_DATA_SIZE + BTCTLER_LE_CONTROLLER_BSS_SIZE)
- 0x00007166 BTCTLER_LE_CODE_TOTAL = BTCTLER_LE_CONTROLLER_CODE_SIZE
+ 0x0000716e BTCTLER_LE_CODE_TOTAL = BTCTLER_LE_CONTROLLER_CODE_SIZE
0x0000033a BTCTLER_CL_RAM_TOTAL = (BTCTLER_CL_DATA_SIZE + BTCTLER_CL_BSS_SIZE)
- 0x0000147c BTCTLER_CL_CODE_TOTAL = BTCTLER_CL_CODE_SIZE
+ 0x00001482 BTCTLER_CL_CODE_TOTAL = BTCTLER_CL_CODE_SIZE
0x000006e2 BTCTLER_COMMON_RAM_TOTAL = (BTCTLER_CONTROLLER_BSS_SIZE + BTCTLER_CONTROLLER_DATA_SIZE)
- 0x00002760 BTCTLER_COMMON_CODE_TOTAL = BTCTLER_CONTROLLER_CODE_SIZE
+ 0x0000275e BTCTLER_COMMON_CODE_TOTAL = BTCTLER_CONTROLLER_CODE_SIZE
0x00000e2c BTCTLER_RAM_TOTAL = ((btctler_data_end - btctler_data_start) + (btctler_bss_end - btctler_bss_start))
- 0xfa126de4 BTCTLER_CODE_TOTAL = (btctler_code_end - btctler_code_start)
+ 0xfa128068 BTCTLER_CODE_TOTAL = (btctler_code_end - btctler_code_start)
0x00000908 DRIVER_RAM_TOTAL = ((driver_data_end - driver_data_start) + (driver_bss_end - driver_bss_start))
- 0x0000476c DRIVER_CODE_TOTAL = (driver_code_end - driver_code_start)
+ 0x00004764 DRIVER_CODE_TOTAL = (driver_code_end - driver_code_start)
0x000016d8 DRIVER_DATA_CODE_TOTAL = (driver_data_code_end - driver_data_code_start)
0x06000100 text_begin = ADDR (.text)
- 0x0004fe9c text_size = SIZEOF (.text)
- 0x0604ff9c text_end = (text_begin + text_size)
+ 0x00050ae4 text_size = SIZEOF (.text)
+ 0x06050be4 text_end = (text_begin + text_size)
0x00147fe0 bss_begin = ADDR (.bss)
- 0x0000b504 bss_size = SIZEOF (.bss)
- 0x001534e4 bss_end = (bss_begin + bss_size)
+ 0x0000d3c4 bss_size = SIZEOF (.bss)
+ 0x001553a4 bss_end = (bss_begin + bss_size)
0x00147040 data_addr = ADDR (.data)
- 0x0604ff9c data_begin = (text_begin + text_size)
+ 0x06050be4 data_begin = (text_begin + text_size)
0x00000fa0 data_size = SIZEOF (.data)
- 0x00158ee0 moveable_slot_addr = ADDR (.moveable_slot)
- 0x06050f3c moveable_slot_begin = (data_begin + data_size)
+ 0x0015ada0 moveable_slot_addr = ADDR (.moveable_slot)
+ 0x06051b84 moveable_slot_begin = (data_begin + data_size)
0x00000000 moveable_slot_size = SIZEOF (.moveable_slot)
- 0x00153500 data_code_addr = ADDR (.data_code)
- 0x06050f3c data_code_begin = (moveable_slot_begin + moveable_slot_size)
+ 0x001553c0 data_code_addr = ADDR (.data_code)
+ 0x06051b84 data_code_begin = (moveable_slot_begin + moveable_slot_size)
0x000059e0 data_code_size = SIZEOF (.data_code)
- 0x00158ee0 aec_addr = ADDR (.overlay_aec)
- 0x0605691c aec_begin = (data_code_begin + data_code_size)
+ 0x0015ada0 aec_addr = ADDR (.overlay_aec)
+ 0x06057564 aec_begin = (data_code_begin + data_code_size)
0x00000000 aec_size = SIZEOF (.overlay_aec)
- 0x00158ee0 aac_addr = ADDR (.overlay_aac)
- 0x0605691c aac_begin = (aec_begin + aec_size)
+ 0x0015ada0 aac_addr = ADDR (.overlay_aac)
+ 0x06057564 aac_begin = (aec_begin + aec_size)
0x00000000 aac_size = SIZEOF (.overlay_aac)
0x02000000 psr_data_code_addr = ADDR (.psr_data_code)
- 0x0605691c psr_data_code_begin = (aac_begin + aac_size)
+ 0x06057564 psr_data_code_begin = (aac_begin + aac_size)
0x00000000 psr_data_code_size = SIZEOF (.psr_data_code)
0x00000001 ASSERT ((_HEAP_BEGIN > bss_begin), _HEAP_BEGIN < bss_begin)
0x00000001 ASSERT ((_HEAP_BEGIN > data_addr), _HEAP_BEGIN < data_addr)
0x00000001 ASSERT ((_HEAP_BEGIN > data_code_addr), _HEAP_BEGIN < data_code_addr)
- 0x00158ee0 PROVIDE (HEAP_BEGIN, _HEAP_BEGIN)
+ 0x0015ada0 PROVIDE (HEAP_BEGIN, _HEAP_BEGIN)
0x0019fb80 PROVIDE (HEAP_END, _HEAP_END)
- 0x00046ca0 _MALLOC_SIZE = (_HEAP_END - _HEAP_BEGIN)
- 0x00046ca0 PROVIDE (MALLOC_SIZE, (_HEAP_END - _HEAP_BEGIN))
+ 0x00044de0 _MALLOC_SIZE = (_HEAP_END - _HEAP_BEGIN)
+ 0x00044de0 PROVIDE (MALLOC_SIZE, (_HEAP_END - _HEAP_BEGIN))
0x00000001 ASSERT ((MALLOC_SIZE >= 0x8000), heap space too small !)
0x06000100 report_text_beign = ADDR (.text)
- 0x0004fe9c report_text_size = SIZEOF (.text)
- 0x0604ff9c report_text_end = (report_text_beign + report_text_size)
+ 0x00050ae4 report_text_size = SIZEOF (.text)
+ 0x06050be4 report_text_end = (report_text_beign + report_text_size)
0x00140000 report_mmu_tlb_begin = ADDR (.mmu_tlb)
0x00005000 report_mmu_tlb_size = SIZEOF (.mmu_tlb)
0x00145000 report_mmu_tlb_end = (report_mmu_tlb_begin + report_mmu_tlb_size)
@@ -4426,16 +4430,16 @@ END GROUP
0x00000fa0 report_data_size = SIZEOF (.data)
0x00147fe0 report_data_end = (report_data_begin + report_data_size)
0x00147fe0 report_bss_begin = ADDR (.bss)
- 0x0000b504 report_bss_size = SIZEOF (.bss)
- 0x001534e4 report_bss_end = (report_bss_begin + report_bss_size)
- 0x00153500 report_data_code_begin = ADDR (.data_code)
+ 0x0000d3c4 report_bss_size = SIZEOF (.bss)
+ 0x001553a4 report_bss_end = (report_bss_begin + report_bss_size)
+ 0x001553c0 report_data_code_begin = ADDR (.data_code)
0x000059e0 report_data_code_size = SIZEOF (.data_code)
- 0x00158ee0 report_data_code_end = (report_data_code_begin + report_data_code_size)
- 0x00158ee0 report_overlay_begin = __report_overlay_begin
+ 0x0015ada0 report_data_code_end = (report_data_code_begin + report_data_code_size)
+ 0x0015ada0 report_overlay_begin = __report_overlay_begin
0x00000000 report_overlay_size = (__report_overlay_end - __report_overlay_begin)
- 0x00158ee0 report_overlay_end = __report_overlay_end
- 0x00158ee0 report_heap_beign = _HEAP_BEGIN
- 0x00046ca0 report_heap_size = (_HEAP_END - _HEAP_BEGIN)
+ 0x0015ada0 report_overlay_end = __report_overlay_end
+ 0x0015ada0 report_heap_beign = _HEAP_BEGIN
+ 0x00044de0 report_heap_size = (_HEAP_END - _HEAP_BEGIN)
0x0019fb80 report_heap_end = _HEAP_END
0x0009fb80 BR28_PHY_RAM_SIZE = PHY_RAM_SIZE
0x0005fb64 BR28_SDK_RAM_SIZE = (((((((report_mmu_tlb_size + report_boot_info_size) + report_irq_stack_size) + report_data_size) + report_bss_size) + report_overlay_size) + report_data_code_size) + report_heap_size)
@@ -4445,46 +4449,46 @@ LOAD C:\JL\pi32\pi32v2-lib\r3-large\libm.a
LOAD C:\JL\pi32\pi32v2-lib\r3-large\libcompiler-rt.a
OUTPUT(cpu\br28\tools\sdk.elf elf32-pi32v2)
-.debug_str 0x00000000 0x5df3c
- .debug_str 0x00000000 0x5df3c cpu\br28\tools\sdk.elf.o
- 0x643e8 (size before relaxing)
+.debug_str 0x00000000 0x5e313
+ .debug_str 0x00000000 0x5e313 cpu\br28\tools\sdk.elf.o
+ 0x647f5 (size before relaxing)
-.debug_loc 0x00000000 0x2f45c
- .debug_loc 0x00000000 0x2f45c cpu\br28\tools\sdk.elf.o
+.debug_loc 0x00000000 0x2f59a
+ .debug_loc 0x00000000 0x2f59a cpu\br28\tools\sdk.elf.o
.debug_abbrev 0x00000000 0x1131
.debug_abbrev 0x00000000 0x110b cpu\br28\tools\sdk.elf.o
.debug_abbrev 0x0000110b 0x26 cpu/br28/liba/cpu.a(startup.S.o)
-.debug_info 0x00000000 0xf7eb0
- .debug_info 0x00000000 0xf7cbc cpu\br28\tools\sdk.elf.o
- .debug_info 0x000f7cbc 0x1f4 cpu/br28/liba/cpu.a(startup.S.o)
+.debug_info 0x00000000 0xf8e63
+ .debug_info 0x00000000 0xf8c6f cpu\br28\tools\sdk.elf.o
+ .debug_info 0x000f8c6f 0x1f4 cpu/br28/liba/cpu.a(startup.S.o)
-.debug_ranges 0x00000000 0x68e8
- .debug_ranges 0x00000000 0x68c0 cpu\br28\tools\sdk.elf.o
- .debug_ranges 0x000068c0 0x28 cpu/br28/liba/cpu.a(startup.S.o)
+.debug_ranges 0x00000000 0x69e0
+ .debug_ranges 0x00000000 0x69b8 cpu\br28\tools\sdk.elf.o
+ .debug_ranges 0x000069b8 0x28 cpu/br28/liba/cpu.a(startup.S.o)
.debug_macinfo 0x00000000 0x1
.debug_macinfo
0x00000000 0x1 cpu\br28\tools\sdk.elf.o
.debug_pubnames
- 0x00000000 0x28b01
+ 0x00000000 0x28ea8
.debug_pubnames
- 0x00000000 0x28b01 cpu\br28\tools\sdk.elf.o
+ 0x00000000 0x28ea8 cpu\br28\tools\sdk.elf.o
.debug_pubtypes
- 0x00000000 0x19ddd
+ 0x00000000 0x1a26b
.debug_pubtypes
- 0x00000000 0x19ddd cpu\br28\tools\sdk.elf.o
+ 0x00000000 0x1a26b cpu\br28\tools\sdk.elf.o
-.debug_frame 0x00000000 0xf8c4
- .debug_frame 0x00000000 0xf8c4 cpu\br28\tools\sdk.elf.o
+.debug_frame 0x00000000 0xfa30
+ .debug_frame 0x00000000 0xfa30 cpu\br28\tools\sdk.elf.o
-.debug_line 0x00000000 0x646e4
- .debug_line 0x00000000 0x6458b cpu\br28\tools\sdk.elf.o
- .debug_line 0x0006458b 0x30 obj/Release/apps/earphone/sdk_version.z.o
- .debug_line 0x000645bb 0x129 cpu/br28/liba/cpu.a(startup.S.o)
+.debug_line 0x00000000 0x64ee4
+ .debug_line 0x00000000 0x64d8b cpu\br28\tools\sdk.elf.o
+ .debug_line 0x00064d8b 0x30 obj/Release/apps/earphone/sdk_version.z.o
+ .debug_line 0x00064dbb 0x129 cpu/br28/liba/cpu.a(startup.S.o)
.debug_aranges 0x00000000 0x28
.debug_aranges
diff --git a/include_lib/system/syscfg_id.h b/include_lib/system/syscfg_id.h
index 9bdd3db..b3ac74d 100644
--- a/include_lib/system/syscfg_id.h
+++ b/include_lib/system/syscfg_id.h
@@ -144,6 +144,8 @@ u8 *syscfg_ptr_read(u16 item_id, u16 *len);
#define CFG_USER_PAIR_INFO 2
#define CFG_USER_TIM_FLAG 3
#define CFG_USER_PROD_INFO 28 /* ProdtCode + productCode */
+#define CFG_USER_DENGLE_L 29 /* Dengle slots 0~4 */
+#define CFG_USER_DENGLE_H 30 /* Dengle slots 5~9 */
diff --git a/obj/Release/apps/common/audio/sine_make.o b/obj/Release/apps/common/audio/sine_make.o
index a5c6629..f4f7a20 100644
Binary files a/obj/Release/apps/common/audio/sine_make.o and b/obj/Release/apps/common/audio/sine_make.o differ
diff --git a/obj/Release/apps/common/device/usb/device/cdc.o b/obj/Release/apps/common/device/usb/device/cdc.o
index cae0ea8..b6f46c9 100644
Binary files a/obj/Release/apps/common/device/usb/device/cdc.o and b/obj/Release/apps/common/device/usb/device/cdc.o differ
diff --git a/obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o b/obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o
index 813dd0b..c32b3ea 100644
Binary files a/obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o and b/obj/Release/apps/common/third_party_profile/jieli/JL_rcsp/bt_trans_data/le_rcsp_adv_module.o differ
diff --git a/obj/Release/apps/earphone/app_main.o b/obj/Release/apps/earphone/app_main.o
index 536dc40..d4d495b 100644
Binary files a/obj/Release/apps/earphone/app_main.o and b/obj/Release/apps/earphone/app_main.o differ
diff --git a/obj/Release/apps/usr_le_code/bleproto.o b/obj/Release/apps/usr_le_code/bleproto.o
index 91cc8be..3741491 100644
Binary files a/obj/Release/apps/usr_le_code/bleproto.o and b/obj/Release/apps/usr_le_code/bleproto.o differ
diff --git a/obj/Release/apps/usr_le_code/usr_dengle_sched.o b/obj/Release/apps/usr_le_code/usr_dengle_sched.o
new file mode 100644
index 0000000..d0410b9
Binary files /dev/null and b/obj/Release/apps/usr_le_code/usr_dengle_sched.o differ
diff --git a/obj/Release/apps/usr_le_code/usr_le_recieve.o b/obj/Release/apps/usr_le_code/usr_le_recieve.o
index 8e6f50e..301bddb 100644
Binary files a/obj/Release/apps/usr_le_code/usr_le_recieve.o and b/obj/Release/apps/usr_le_code/usr_le_recieve.o differ
diff --git a/obj/Release/apps/usr_le_code/usr_usb_jb.o b/obj/Release/apps/usr_le_code/usr_usb_jb.o
index 21f268d..06510a9 100644
Binary files a/obj/Release/apps/usr_le_code/usr_usb_jb.o and b/obj/Release/apps/usr_le_code/usr_usb_jb.o differ
diff --git a/obj/Release/cpu/br28/app_audio.o b/obj/Release/cpu/br28/app_audio.o
index 300ad1b..24421d2 100644
Binary files a/obj/Release/cpu/br28/app_audio.o and b/obj/Release/cpu/br28/app_audio.o differ
diff --git a/obj/Release/cpu/br28/audio_link.o b/obj/Release/cpu/br28/audio_link.o
index eaa7c5d..c442dd2 100644
Binary files a/obj/Release/cpu/br28/audio_link.o and b/obj/Release/cpu/br28/audio_link.o differ