功耗调试
authorp15692025051 <846603105@qq.com>
Fri, 26 Apr 2024 02:29:12 +0000 (10:29 +0800)
committerp15692025051 <846603105@qq.com>
Fri, 26 Apr 2024 02:29:12 +0000 (10:29 +0800)
led调试
使用MAC转换SN

19 files changed:
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/amic.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/button.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/config.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/flash_usage_config.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/func.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/gpio.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/inflash.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/inflash.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/keyscan.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/keyscan.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/led.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/led.h
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/proj_main.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/sensor.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/code/user_task.c
2.code/1.mouse/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvguix.Administrator
2.code/1.mouse/examples/none_evm/ble_voice_mouse/keil/feedback.txt

index f565e1e..cfe09f6 100644 (file)
@@ -16,6 +16,7 @@
 
 #include "co_printf.h"
 #include "driver_system.h"
+#include "inflash.h"
 int amic_start_time = 0;
 #define SBC_FRAME_SIZE      32
 #define SBC_DATA_SIZE       (SBC_FRAME_SIZE*4)
@@ -63,6 +64,8 @@ void encoder_frame_out_func(uint8_t *frame_data, uint16_t frame_size)
 
 void amic_start(void)
 {
+       if(user_data.activated_dtate != 1)//没激活停止录音
+               return;
        if (amic_onoff == false)
        {
                co_printf("amic start.\r\n");
index 15ed6c1..f16263e 100644 (file)
@@ -84,20 +84,21 @@ static uint8_t scan_rsp_data[31] =
    * LOCAL VARIABLES (±¾µØ±äÁ¿)
    */
 static uint8_t m_conn_index = BLE_CONN_INDEX_INVALID;
- os_timer_t update_param_timer;
-
-/*
- * LOCAL FUNCTIONS (±¾µØº¯Êý)
- */
-
-/*
- * EXTERN FUNCTIONS (Íⲿº¯Êý)
- */
-
- /*
-  * PUBLIC FUNCTIONS (È«¾Öº¯Êý)
-  */
-
+os_timer_t update_param_timer;
+uint8_t ble_simple_link_rssi = 0;
+//¸üÐÂÐźÅÖµ
+void updata_ble_simple_link_rssi(void)
+{
+       if(m_conn_index != BLE_CONN_INDEX_INVALID)
+       {
+               gap_get_link_rssi(m_conn_index);//»ñÈ¡ÐźÅÇ¿¶È,ÔÚcase GAP_EVT_LINK_RSSI:»Øµ÷»Ø·µÖµ
+       }
+}
+//»ñÈ¡ÐźÅÖµ
+uint8_t get_ble_simple_link_rssi(void)
+{
+       return ble_simple_link_rssi;
+}
   /** @function group ble peripheral device APIs (bleÍâÉèÏà¹ØµÄAPI)
    * @{
    */
@@ -137,6 +138,8 @@ void param_timer_func(void *arg)
  */
 void app_gap_evt_cb(gap_event_t *p_event)
 {
+       char send_buf_t[50] = {0};
+       int send_buf_len_t = 0;
        switch (p_event->type)
        {
                case GAP_EVT_ADV_END:
@@ -161,6 +164,7 @@ void app_gap_evt_cb(gap_event_t *p_event)
                        co_printf("slave[%d],connect. link_num:%d\r\n", p_event->param.slave_connect.conidx, gap_get_connect_num());
                        m_conn_index = p_event->param.slave_connect.conidx;
                        gatt_mtu_exchange_req(p_event->param.slave_connect.conidx);
+                       gap_get_link_rssi(p_event->param.slave_connect.conidx);//»ñÈ¡ÐźÅÇ¿¶È
                        if (user_data.mouse_mode == WORK_2_4G_MODE)
             {
                                os_timer_start(&update_param_timer, 1000, false);
@@ -215,6 +219,9 @@ void app_gap_evt_cb(gap_event_t *p_event)
 
                case GAP_EVT_LINK_RSSI:
                        co_printf("link rssi %d\r\n", p_event->param.link_rssi);
+                       
+                       send_buf_len_t = snprintf(send_buf_t,sizeof(send_buf_t),"{\"rssi\":\"%d\"}",p_event->param.link_rssi);
+                       hid_cmd_send((unsigned char*)send_buf_t,send_buf_len_t);
                        break;
 
                case GAP_SEC_EVT_SLAVE_ENCRYPT:
index befb828..68b445e 100644 (file)
@@ -85,4 +85,8 @@ void hid_keyboard_value_send(uint8_t * p_keys_buff);
 void ble_s_hid_data_tx(uint8_t * p_data, uint8_t len);
 void hid_cmd_send(uint8_t *data, uint16_t len);
 void hid_aliapp_data_tx(uint8_t * p_data, uint16_t len);
+//更新信号值
+void updata_ble_simple_link_rssi(void);
+//获取信号值
+uint8_t get_ble_simple_link_rssi(void);
 #endif
index 63660c5..7b58495 100644 (file)
@@ -242,7 +242,7 @@ void button_deInit(Button_t handle)
 void button_ticks()
 {
        Button *target;
-
+       //co_printf("button_ticks:button_ticks:%d,gpios_press_up_cnt:%d!!\r\n",button_ticks,gpios_press_up_cnt);
        for (target = head_handle; target; target = target->next)
        {
                button_handler(target);
index 2819e0e..97ecad7 100644 (file)
 #define ENABLE          1
 
 /* Óû§ÉèÖà*/
-#define Version                                                        "v1.24.4.03"
+#define Version                                                        "v1.24.04.16"
 #define Brand                           "VMouse"
 #define DEVICE_MODEL                    256
 #define DEVICE_VERSION                  0x01
-#define USER_URL                        "https://freqchip.com"
-#define USER_URL_LEN                    20
+#define USER_URL                        "https://qx.5ai.top/"
+#define USER_URL_LEN                    19
 
 #define HW_VERSION                      "V1.0"
 #define FW_VERSION                      "V1.0.109"
@@ -45,7 +45,8 @@
 #define ADV_NAME_2_4G_PAIR_LEN          14
 #define ADV_NAME_2_4G_PAIR               "2.4G VMouse_P"
 
-#define UART_LOG_ENABLE                 ENABLE     // ÓÉÓÚPA3¸´Ó㬴ò¿ªLOG¿ÉÄÜÔì³ÉijЩ¹¦ÄÜÊÜÏÞ
+#define BUTTON_UP                                      DISABLE      //°´¼ü»½Ðѹ¦ÄÜ£¬¹Ø±Õ¸üÊ¡¹¦ºÄ
+#define UART_LOG_ENABLE                 DISABLE     // ÓÉÓÚPA3¸´Ó㬴ò¿ªLOG¿ÉÄÜÔì³ÉijЩ¹¦ÄÜÊÜÏÞ
 #define WDT_ENABLE                      ENABLE      // ¿´ÃŹ·
 
 #define TEST_PIN_ENABLE                 DISABLE     // PD6²âÊԹܽÅ
@@ -59,9 +60,9 @@
 #define BAT_DETECT_TIMEOUT_PER_10SEC    (6*10)      // µç³ØµçÁ¿¼à²â¼ä¸ô
 
 #define MOUSE_SLEEP_ENABLE              ENABLE      // Ê¹ÄÜÊó±êÐÝÃß
-#define MOUSE_ADV_SLEEP_TIMEOUT_SEC     (20)        // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
-#define MOUSE_CONN_SLEEP_TIMEOUT_SEC    (4*60)     // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
-#define SENSOR_SLEEP_TIMEOUT_SEC       (3)     // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
+#define MOUSE_ADV_SLEEP_TIMEOUT_SEC     (20)        // Î´Á¬½ÓÊó±ê˯Ãßʱ¼ä£¬µ¥Î»S
+#define MOUSE_CONN_SLEEP_TIMEOUT_SEC    (4*60)     // ÒÑÁ¬½Ó£¬Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S
+#define SENSOR_SLEEP_TIMEOUT_SEC       (10)     // ¹â±ê˯Ãßʱ¼ä£¬µ¥Î»S
 /*
  * TYPEDEFS (ÀàÐͶ¨Òå)
 */
index 19b8a1f..4bc831d 100644 (file)
@@ -33,7 +33,8 @@
        #define BLE_BONDING_INFO_SAVE_ADDR      0x7D000
        #define BLE_REMOTE_SERVICE_SAVE_ADDR    0x7E000
        #define USER_FLASH_BASE_ADDR                    (0x7C000) //Óû§ÅäÖÃÇø 0x7c000-0x7D000
-       #define ALI_DATA_ADDR                                   0x7B000 //°¢ÀïÅäÖÃÇø 0x7B000-0x7D000
+       #define USER_FLASH_SN_ADDR                      0x7A000 //SN 0x7B000-0x7C000
+       #define ALI_DATA_ADDR                                   0x7B000 //°¢ÀïÅäÖÃÇø 0x7A000-0x7B000
     #define FLASH_MAX_SIZE                  0x80000
 #endif // FOR_4M_FLASH
 
index 5a34c4d..616398e 100644 (file)
@@ -8,7 +8,7 @@
 #include "ble_simple_peripheral.h"
 
 #include "os_timer.h"
-
+#include "led.h"
 #include "co_log.h"
 #include "driver_wdt.h"
 #undef LOG_LEVEL_MODULE
@@ -293,20 +293,24 @@ void mouse_enter_pairing(work_mode_t * curr_woke_mode)
     }
     else if ((*curr_woke_mode == WORK_BT1_MODE) || (*curr_woke_mode == WORK_BT2_MODE))
     {
-        mac_addr_t local_addr;
-        memcpy(local_addr.addr, user_data.bt_mac[*curr_woke_mode], MAC_ADDR_LEN);
-        delete_bond_info_by_local_addr(local_addr);
+        // mac_addr_t local_addr;
+        // memcpy(local_addr.addr, user_data.bt_mac[*curr_woke_mode], MAC_ADDR_LEN);
+        // delete_bond_info_by_local_addr(local_addr);
+        
+        // // 初始化所有通道的MAC地址
+        // user_data.peer_addr.addr[4] += 1;
+        // memcpy(local_addr.addr, user_data.peer_addr.addr, MAC_ADDR_LEN);
+        // memcpy(user_data.bt_mac[WORK_2_4G_MODE], local_addr.addr, MAC_ADDR_LEN);
+        // local_addr.addr[4] += 1;
+        // memcpy(user_data.bt_mac[WORK_BT1_MODE], local_addr.addr, MAC_ADDR_LEN);
+        // local_addr.addr[4] += 1;
+        // memcpy(user_data.bt_mac[WORK_BT2_MODE], local_addr.addr, MAC_ADDR_LEN);
         
-        uint8_t max = MAX(user_data.bt_mac[WORK_BT1_MODE][4], user_data.bt_mac[WORK_BT2_MODE][4]);
-        if (max == 0xff)
-            user_data.bt_mac[*curr_woke_mode][4] = 0x01;
-        else
-            user_data.bt_mac[*curr_woke_mode][4] = max + 1;
-        g_device_param.is_bt_pairing = true;
+        // g_device_param.is_bt_pairing = true;
         
-        user_data_storage_do(true);
+        // user_data_storage_do(true);
     }
-    
+    work_mode_led_prestart(LED_FAST_BLINK_100MS);
     if (curr_conn_index_get() == BLE_CONN_INDEX_INVALID)
         gap_stop_advertising();
     else
index f51b956..1bea57f 100644 (file)
@@ -16,7 +16,7 @@ void user_gpio_init(void)
     pmu_set_pin_to_PMU(MODE_DETECT_PIN_PORT, MODE_DETECT_BITS);
        pmu_set_port_mux(MODE_DETECT_PIN_PORT, MODE_DETECT_BIT, PMU_PORT_MUX_GPIO);
        pmu_set_pin_dir(MODE_DETECT_PIN_PORT, MODE_DETECT_BITS, GPIO_DIR_IN);
-       pmu_set_pin_pull(MODE_DETECT_PIN_PORT, MODE_DETECT_BITS, true);
+       pmu_set_pin_pull(MODE_DETECT_PIN_PORT, MODE_DETECT_BITS, false);
     
     pmu_set_pin_to_PMU(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BITS);
        pmu_set_port_mux(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BIT, PMU_PORT_MUX_GPIO);
index ec5f2be..f25d72d 100644 (file)
@@ -1,4 +1,6 @@
 #include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include "inflash.h"
 #include "config.h"
 #include "driver_flash.h"
@@ -69,7 +71,6 @@ mac_addr_t MAC_addr = {0};
 void user_inflash_init(void)
 {
     user_data_param_t user_data_tmp;
-    
        device_setting_recover((uint8_t *)&user_data_tmp, sizeof(user_data_param_t));
     LOG_INFO("[inflash]USR_MAC:%02X:%02X:%02X:%02X:%02X:%02X\r\n", user_data_tmp.peer_addr.addr[5], user_data_tmp.peer_addr.addr[4], user_data_tmp.peer_addr.addr[3], user_data_tmp.peer_addr.addr[2], user_data_tmp.peer_addr.addr[1], user_data_tmp.peer_addr.addr[0]);
 
@@ -85,7 +86,9 @@ void user_inflash_init(void)
         user_data.activated_dtate = 0;
         //strcpy(user_data.SN,"MSCL123456789");
         user_data.mouse_mode = WORK_2_4G_MODE;
+        user_data.url_switch = 0;
     }
+    user_data.url_switch = 1;//客户强行开
     // if (user_data.mouse_mode == WORK_2_4G_MODE)
     // {
     //     user_data_tmp.peer_addr.addr[4] += 1;
@@ -93,42 +96,76 @@ void user_inflash_init(void)
     // {
     //     user_data_tmp.peer_addr.addr[4] += 2;
     // }
-    if ((user_data_tmp.peer_addr.addr[0] != 0xff) &&
-        (user_data_tmp.peer_addr.addr[1] != 0xff) &&
-        (user_data_tmp.peer_addr.addr[2] != 0xff) &&
-        (user_data_tmp.peer_addr.addr[3] != 0xff) &&
-        (user_data_tmp.peer_addr.addr[4] != 0xff) &&
-        (user_data_tmp.peer_addr.addr[5] != 0xff))
-    {
-        // 初始化所有通道的MAC地址
-        memcpy(user_data.bt_mac[WORK_2_4G_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
-        user_data_tmp.peer_addr.addr[4] += 1;
-        memcpy(user_data.bt_mac[WORK_BT1_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
-        user_data_tmp.peer_addr.addr[4] += 1;
-        memcpy(user_data.bt_mac[WORK_BT2_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
-    }
-    else
+    if ((user_data.peer_addr.addr[0] == 0xff) &&
+        (user_data.peer_addr.addr[1] == 0xff) &&
+        (user_data.peer_addr.addr[2] == 0xff) &&
+        (user_data.peer_addr.addr[3] == 0xff) &&
+        (user_data.peer_addr.addr[4] == 0xff) &&
+        (user_data.peer_addr.addr[5] == 0xff))
     {
+        user_data.peer_addr.addr[5] = 0xC0;
         user_data.peer_addr.addr[4] = 0x00;
+        user_data.peer_addr.addr[3] = 0x00;
+        user_data.peer_addr.addr[2] = 0x00;
+        user_data.peer_addr.addr[1] = 0x00;
+        user_data.peer_addr.addr[0] = 0xa5;
         memcpy(user_data_tmp.peer_addr.addr, user_data.peer_addr.addr, MAC_ADDR_LEN);
         
         memcpy(user_data.bt_mac[WORK_2_4G_MODE], user_data.peer_addr.addr, MAC_ADDR_LEN);
+        user_data_tmp.peer_addr.addr[4] += 20;
+        memcpy(user_data.bt_mac[WORK_BT1_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
         user_data_tmp.peer_addr.addr[4] += 1;
+        memcpy(user_data.bt_mac[WORK_BT2_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
+    }else
+    {
+
+        unsigned int s_num = 0;
+        LOG_INFO("[inflash]user_data:MAC:%02X:%02X:%02X:%02X:%02X:%02X\r\n", 
+                                user_data.peer_addr.addr[5], user_data.peer_addr.addr[4], user_data.peer_addr.addr[3],
+                                user_data.peer_addr.addr[2], user_data.peer_addr.addr[1], user_data.peer_addr.addr[0]);
+        //LOG_INFO("[inflash]user_data.flash_SN:%s\r\n",user_data.flash_SN);
+        memcpy(&s_num,user_data.peer_addr.addr,4);//获取MAC最后4字转化SN的生产年份,生产周期,产品流水号
+        char data_tmp[10] = {0};
+        snprintf(data_tmp,sizeof(data_tmp),"%08d",s_num);
+        LOG_INFO("[inflash]s_num:%s\r\n",data_tmp);
+        memcpy(user_data.SN,"MSCL",4);//固定码
+        user_data.SN[4] = user_data_tmp.peer_addr.addr[4];//批次
+        memcpy(&user_data.SN[5],"BKZ",3);//客户代码
+        memcpy(&user_data.SN[8],"12",2);//硬件版本
+        char *version = Version;
+        user_data.SN[10] = version[1];//软件版本
+        user_data.SN[11] = version[9];
+        user_data.SN[12] = version[10];
+        user_data.SN[13] = '0';//自制/委外
+        memcpy(&user_data.SN[14],data_tmp,8);//生产年份,生产周期,产品流水号
+        user_data.SN[22] = 0;
+        LOG_INFO("[inflash]user_data.SN:%s\r\n",user_data.SN);
+        
+        
+        // 初始化所有通道的MAC地址
+        memcpy(user_data_tmp.peer_addr.addr,user_data.peer_addr.addr,MAC_ADDR_LEN);
+        memcpy(user_data.bt_mac[WORK_2_4G_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
+        user_data_tmp.peer_addr.addr[4] += 20;
         memcpy(user_data.bt_mac[WORK_BT1_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
         user_data_tmp.peer_addr.addr[4] += 1;
         memcpy(user_data.bt_mac[WORK_BT2_MODE], user_data_tmp.peer_addr.addr, MAC_ADDR_LEN);
     }
+
+    
     memcpy(&MAC_addr,user_data.bt_mac[user_data.mouse_mode],sizeof(MAC_addr));
     // user_data.peer_addr.addr[5] = 0xc0;
     // user_data.peer_addr.addr[4] = 0xc2;
     // user_data.peer_addr.addr[1] = 0xA5;
     // user_data.peer_addr.addr[0] = 0xA5;
     //gap_address_set(&user_data_tmp.peer_addr);
+    // mac_addr_t peer_addr;
     
+    // memcpy(peer_addr.addr, user_data.bt_mac[user_data.mouse_mode], MAC_ADDR_LEN);
     
+ 
 
        LOG_INFO("[inflash]==========user data==========\r\n");
-    LOG_INFO("[inflash]dpi:%d\r\n", user_data.dpi);
+    LOG_INFO("[inflash]cpi:%d\r\n", user_data.cpi);
     LOG_INFO("[inflash]mouse_mode:%d\r\n", user_data.mouse_mode);
     LOG_INFO("[inflash]bt_mac[0]: %02X:%02X:%02X:%02X:%02X:%02X\r\n", user_data.bt_mac[WORK_2_4G_MODE][5], user_data.bt_mac[WORK_2_4G_MODE][4], user_data.bt_mac[WORK_2_4G_MODE][3], user_data.bt_mac[WORK_2_4G_MODE][2], user_data.bt_mac[WORK_2_4G_MODE][1], user_data.bt_mac[WORK_2_4G_MODE][0]);
     LOG_INFO("[inflash]bt_mac[1]: %02X:%02X:%02X:%02X:%02X:%02X\r\n", user_data.bt_mac[WORK_BT1_MODE][5], user_data.bt_mac[WORK_BT1_MODE][4], user_data.bt_mac[WORK_BT1_MODE][3], user_data.bt_mac[WORK_BT1_MODE][2], user_data.bt_mac[WORK_BT1_MODE][1], user_data.bt_mac[WORK_BT1_MODE][0]);
@@ -137,9 +174,9 @@ void user_inflash_init(void)
        LOG_INFO("=============================\r\n");
     LOG_INFO("[inflash]MAC:%02X:%02X:%02X:%02X:%02X:%02X\r\n", MAC_addr.addr[5], MAC_addr.addr[4], MAC_addr.addr[3], MAC_addr.addr[2], MAC_addr.addr[1], MAC_addr.addr[0]);
     LOG_INFO("[inflash]SN:%s\r\n",user_data.SN);
-    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data_tmp.mouse_mode);
-    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data_tmp.mouse_mode);
-    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data_tmp.mouse_mode);
-    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data_tmp.mouse_mode);
-    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data_tmp.mouse_mode);
+    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data.mouse_mode);
+    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data.mouse_mode);
+    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data.mouse_mode);
+    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data.mouse_mode);
+    LOG_INFO("[mouse_mode]:%d!!!!!!!!!!!!!!\r\n",user_data.mouse_mode);
 }
index bc32c3f..7b92f5f 100644 (file)
  * TYPEDEFS (ÀàÐͶ¨Òå)
 */
 #pragma pack (4)
-
+#define SN_MAX_LEN 30
 typedef struct
 {
     mac_addr_t peer_addr;
-    char SN[30];
+    char SN[SN_MAX_LEN];
        uint32_t reset_status;
     uint16_t dpi;
     uint16_t cpi;
@@ -58,6 +58,6 @@ extern user_data_param_t user_data;
 void user_inflash_init(void);
 void user_data_storage(void);
 void user_data_storage_do(bool force);
-
+void inflash_write(uint32_t addr, uint8_t* p_buff, uint16_t len);
 #endif /* __INFLASH_H */
 
index af2565e..40f31ec 100644 (file)
@@ -46,7 +46,7 @@
 Button_t left_button, middle_button, right_button, search_button, translate_button, \
 voice_button, m_button, dpi_button, mode_button;
 
-static os_timer_t m_button_timer;
+static os_timer_t m_button_timer = {0};
 static bool button_timer_status = false;
 static volatile uint32_t button_press_status = 0;
 
@@ -214,15 +214,58 @@ __attribute__((section("ram_code"))) void keyscan_isr_ram(void)
 
        button_timer_start();
 }
-
+void user_keyscan_io_deinit(void)
+{
+       //return ;
+       keyscan_param_t param = {0};
+       keyscan_init(&param);
+       pmu_port_wakeup_func_clear(MATRIX_COL0_PIN_GPIO);
+       pmu_port_wakeup_func_clear(MATRIX_COL1_PIN_GPIO);
+       pmu_port_wakeup_func_clear(MATRIX_COL2_PIN_GPIO);
+       pmu_port_wakeup_func_clear(MATRIX_ROW0_PIN_GPIO);
+       pmu_port_wakeup_func_clear(MATRIX_ROW1_PIN_GPIO);
+       pmu_port_wakeup_func_clear(MATRIX_ROW2_PIN_GPIO);
+       pmu_set_pin_pull(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BITS | MATRIX_ROW1_PIN_BITS | MATRIX_ROW2_PIN_BITS, false);
+       pmu_set_pin_pull(MATRIX_BUTTON_COL_PORT, MATRIX_COL0_PIN_BITS | MATRIX_COL1_PIN_BITS | MATRIX_COL2_PIN_BITS, false);
+       
+       
+//     pmu_set_port_mux(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BIT , PMU_PORT_MUX_GPIO);
+//     pmu_set_port_mux(MATRIX_BUTTON_ROW_PORT,  MATRIX_ROW1_PIN_BIT , PMU_PORT_MUX_GPIO);
+//     pmu_set_port_mux(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW2_PIN_BIT, PMU_PORT_MUX_GPIO);
+//     pmu_set_pin_to_PMU(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BITS | MATRIX_ROW1_PIN_BITS | MATRIX_ROW2_PIN_BITS);
+//     pmu_set_pin_dir(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BITS | MATRIX_ROW1_PIN_BITS | MATRIX_ROW2_PIN_BITS, GPIO_DIR_OUT);
+//     //pmu_set_pin_pull(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BITS | MATRIX_ROW1_PIN_BITS | MATRIX_ROW2_PIN_BITS, true);
+//     pmu_set_gpio_value(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW0_PIN_BITS, 0);
+//     pmu_set_gpio_value(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW1_PIN_BITS, 0);
+//     pmu_set_gpio_value(MATRIX_BUTTON_ROW_PORT, MATRIX_ROW2_PIN_BITS, 0);
+
+//     pmu_set_port_mux(MATRIX_BUTTON_COL_PORT, MATRIX_COL0_PIN_BIT , PMU_PORT_MUX_GPIO);
+//     pmu_set_port_mux(MATRIX_BUTTON_COL_PORT, MATRIX_COL1_PIN_BIT , PMU_PORT_MUX_GPIO);
+//     pmu_set_pin_to_PMU(MATRIX_BUTTON_COL_PORT, MATRIX_COL0_PIN_BITS | MATRIX_COL1_PIN_BITS );
+//     pmu_set_pin_dir(MATRIX_BUTTON_COL_PORT, MATRIX_COL0_PIN_BITS | MATRIX_COL1_PIN_BITS , GPIO_DIR_IN);
+//     //pmu_set_pin_pull(MATRIX_BUTTON_COL_PORT, MATRIX_COL0_PIN_BITS | MATRIX_COL1_PIN_BITS | MATRIX_COL2_PIN_BITS, false);
+//     pmu_port_wakeup_func_set(MATRIX_COL0_PIN_GPIO);
+//     pmu_port_wakeup_func_set(MATRIX_COL1_PIN_GPIO);
+// #if !UART_LOG_ENABLE 
+//     pmu_set_port_mux(MATRIX_BUTTON_COL_PORT,  MATRIX_COL2_PIN_BIT, PMU_PORT_MUX_GPIO);
+//     pmu_set_pin_to_PMU(MATRIX_BUTTON_COL_PORT,  MATRIX_COL2_PIN_BITS);
+//     pmu_set_pin_dir(MATRIX_BUTTON_COL_PORT,  MATRIX_COL2_PIN_BITS, GPIO_DIR_IN);
+//     //pmu_set_pin_pull(MATRIX_BUTTON_COL_PORT,  MATRIX_COL2_PIN_BITS, false);
+//     pmu_port_wakeup_func_set(MATRIX_COL2_PIN_GPIO);
+
+// #endif
+}
 void user_keyscan_io_init(void)
 {
        keyscan_param_t param;
-
+       //pmu_port_wakeup_func_clear(MATRIX_COL0_PIN_GPIO);
+       //pmu_port_wakeup_func_clear(MATRIX_COL1_PIN_GPIO);
+       
        param.row_en = 0xb0;     // PD4/PD5/PD7  as row
        #if UART_LOG_ENABLE
        param.col_en = 0x06;     // PA1/PA2/PA3  as col
        #else
+       //pmu_port_wakeup_func_clear(MATRIX_COL2_PIN_GPIO);
        param.col_en = 0x0e;     // PA1/PA2/PA3  as col
        #endif
        param.row_map_sel = 0x0;
@@ -261,8 +304,8 @@ void user_keyscan_init(void)
        m_button = button_init(&attr7);//M
        dpi_button = button_init(&attr8);
        mode_button = button_init(&attr9);
-
-       os_timer_init(&m_button_timer, button_timer_handle, NULL);
+       if(m_button_timer.timer_id == 0)
+               os_timer_init(&m_button_timer, button_timer_handle, NULL);
 
        co_printf("%s\r\n", __func__);
 }
@@ -660,6 +703,7 @@ void button_callback(Button_t btn, PressEvent event, uint8_t repeat)
                                if (mode_long_press_cnt < 150)
                                {
                                        mode_long_press_cnt++;
+                                       co_printf("[keyscan]mode_button mode_long_press_cnt:%d\r\n",mode_long_press_cnt);
                                        if (mode_long_press_cnt == 150)
                                        {
                                                co_printf("[keyscan]mode_button LONG_PRESS_START\r\n");
index 4266c2d..9d3b126 100644 (file)
@@ -55,4 +55,5 @@ void button_timer_start(void);
 void button_timer_stop(void);
 void disconnect_button_handle(void);
 uint8_t button_timer_status_get(void);
+void user_keyscan_io_deinit(void);
 #endif /* __KEYSCAN_H */
index 425d0b6..a6e6d22 100644 (file)
@@ -18,7 +18,7 @@ typedef struct
 } led_setting_param_t;
 
 //static os_timer_t m_work_mode_led_timer;
-static os_timer_t m_lowbat_led_timer;
+static os_timer_t m_lowbat_led_timer = {0};
 
 /*************************************************************************************
                                                                   bat1_led
@@ -53,6 +53,13 @@ void bat1_led_set(bool status)
                        pmu_set_gpio_value(LED_PORT, MODE1_2_4G_LED_PIN_BITS, 0);
                        pmu_set_led1_value(0);
                }
+               if(g_device_param.is_2_4g_pairing)//Æ¥Åäģʽ
+               {
+                       //pmu_set_pin_dir(LED_PORT, MODE1_2_4G_LED_PIN_BITS, GPIO_DIR_OUT);
+                       pmu_set_gpio_value(LED_PORT, MODE1_2_4G_LED_PIN_BITS, 1);
+                       pmu_set_led1_value(1);
+                       pmu_set_led2_value(1);
+               }
                bat1_led_status = true;
        }
        else
@@ -60,7 +67,6 @@ void bat1_led_set(bool status)
                //pmu_set_led1_value(0);
                if (user_data.mouse_mode == WORK_2_4G_MODE)
                {
-                       //pmu_set_pin_dir(LED_PORT, WORK_MODE_LED_PIN_BITS, GPIO_DIR_IN);
                        pmu_set_gpio_value(LED_PORT, MODE1_2_4G_LED_PIN_BITS, 0);
                }       
                else if (user_data.mouse_mode == WORK_BT1_MODE)
@@ -72,7 +78,13 @@ void bat1_led_set(bool status)
                        pmu_set_led2_value(0);
 
                }
-               
+               if(g_device_param.is_2_4g_pairing)//Æ¥Åäģʽ
+               {
+                       //pmu_set_pin_dir(LED_PORT, MODE1_2_4G_LED_PIN_BITS, GPIO_DIR_OUT);
+                       pmu_set_gpio_value(LED_PORT, MODE1_2_4G_LED_PIN_BITS, 0);
+                       pmu_set_led1_value(0);
+                       pmu_set_led2_value(0);
+               }
                bat1_led_status = false;
        }
 }
@@ -92,7 +104,7 @@ void lowbat_led_timer_handle(void *arg)
 
 void lowbat_led_timer_start(void)
 {
-       os_timer_start(&m_lowbat_led_timer, 800, true);
+       os_timer_start(&m_lowbat_led_timer, 100, true);
 }
 
 void lowbat_led_timer_stop(void)
@@ -105,15 +117,7 @@ void lowbat_led_timer_stop(void)
 *************************************************************************************/
 void bt2_bat3_led_set(bool status)
 {
-       // if (status)
-       // {
-       //      pmu_set_pin_dir(LED_PORT, BT2_BAT3_LED_PIN_BITS, GPIO_DIR_OUT);
-       //      pmu_set_gpio_value(LED_PORT, BT2_BAT3_LED_PIN_BITS, 1);
-       // }
-       // else
-       // {
-       //      pmu_set_pin_dir(LED_PORT, BT2_BAT3_LED_PIN_BITS, GPIO_DIR_IN);
-       // }
+
 }
 
 /*************************************************************************************
@@ -125,85 +129,15 @@ void bt2_bat3_led_set(bool status)
 void work_mode_led_off(void)
 {
        
-       // if (user_data.mouse_mode == WORK_2_4G_MODE)
-       // {
-       //      pmu_set_pin_dir(LED_PORT, WORK_MODE_LED_PIN_BITS, GPIO_DIR_IN);
-       //      //co_printf("work_mode_led_off:WORK_2_4G_MODE\n");
-       // }    
-       // else if (user_data.mouse_mode == WORK_BT1_MODE)
-       // {
-       //      pmu_set_led1_value(0);
-       //      //co_printf("work_mode_led_off:WORK_BT1_MODE\n");
-       //      //pmu_set_gpio_value(LED_PORT, WORK_MODE_LED_PIN_BITS, 1);
-       // }else if (user_data.mouse_mode == WORK_BT2_MODE)
-       // {
-       //      pmu_set_led2_value(0);
-       //      //co_printf("work_mode_led_off:WORK_BT2_MODE\n");
-       //      //pmu_set_gpio_value(LED_PORT, WORK_MODE_LED_PIN_BITS, 1);
-       // }
+
 }
 
 void work_mode_led_on(void)
 {
-       // pmu_set_pin_dir(LED_PORT, WORK_MODE_LED_PIN_BITS, GPIO_DIR_OUT);
-       // if (user_data.mouse_mode == WORK_2_4G_MODE)
-       // {
-       //      //pmu_set_gpio_value(LED_PORT, WORK_MODE_LED_PIN_BITS, 0);
-       //      pmu_set_pin_dir(LED_PORT, MODE1_2_4G_LED_PIN_BITS, GPIO_DIR_OUT);
-       //      pmu_set_gpio_value(LED_PORT, MODE1_2_4G_LED_PIN_BITS, 1);
-       //      //co_printf("work_mode_led_on:WORK_2_4G_MODE\n");
-       // }    
-       // else if (user_data.mouse_mode == WORK_BT1_MODE)
-       // {
-       //      pmu_set_led1_value(1);
-       //      //co_printf("work_mode_led_on:WORK_BT1_MODE\n");
-       //      //pmu_set_gpio_value(LED_PORT, WORK_MODE_LED_PIN_BITS, 1);
-       // }else if (user_data.mouse_mode == WORK_BT2_MODE)
-       // {
-       //      //co_printf("work_mode_led_on:WORK_BT2_MODE\n");
-       //      pmu_set_led2_value(1);
-       //      //pmu_set_gpio_value(LED_PORT, WORK_MODE_LED_PIN_BITS, 1);
-       // }
+
                
 }
 
-// static void work_mode_timer_handle(void *arg)
-// {
-       
-//     // if (on_time_count < work_mode_led_setting.on_time_target)
-//     // {
-//     //      on_time_count++;
-//     //      if (on_time_count == work_mode_led_setting.on_time_target)
-//     //      {
-//     //              work_mode_led_off();
-
-//     //              if (work_mode_led_setting.repeat > 0)   // Öظ´´ÎÊý
-//     //              {
-//     //                      work_mode_led_setting.repeat--;
-//     //                      off_time_target = 0;
-//     //              }
-
-//     //              if (work_mode_led_setting.repeat == 0)  // Ï¨µÆ
-//     //              {
-//     //                      on_time_count = 0;
-//     //                      off_time_target = 0;
-
-//     //                      work_mode_led_off();
-//     //                      os_timer_stop(&m_work_mode_led_timer);
-//     //              }
-//     //      }
-//     // }
-//     // else if (off_time_target < work_mode_led_setting.off_time_target)
-//     // {
-//     //      off_time_target++;
-//     //      if (off_time_target == work_mode_led_setting.off_time_target)
-//     //      {
-//     //              work_mode_led_on();
-//     //              on_time_count = 0;
-//     //      }
-//     // }
-// }
-
 void work_mode_led_prestart(uint8_t mode)
 {
        // os_timer_stop(&m_work_mode_led_timer);
@@ -248,11 +182,14 @@ void work_mode_led_prestart(uint8_t mode)
 
 void user_led_io_init(void)
 {
-       pmu_set_port_mux(LED_PORT, WORK_MODE_LED_PIN_BIT, PMU_PORT_MUX_GPIO);
+       pmu_set_port_mux(LED_PORT, WORK_LOGO_LED_PIN_BIT, PMU_PORT_MUX_GPIO);
        pmu_set_port_mux(LED_PORT, BT2_BAT3_LED_PIN_BIT, PMU_PORT_MUX_GPIO);
-       pmu_set_pin_to_PMU(LED_PORT, WORK_MODE_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS);
-       pmu_set_pin_dir(LED_PORT, WORK_MODE_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS, GPIO_DIR_IN);
-       pmu_set_pin_pull(LED_PORT, WORK_MODE_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS, false);
+       pmu_set_pin_to_PMU(LED_PORT, WORK_LOGO_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS);
+       pmu_set_pin_dir(LED_PORT, WORK_LOGO_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS, GPIO_DIR_IN);
+       pmu_set_pin_pull(LED_PORT, WORK_LOGO_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS, false);
+       pmu_set_pin_dir(LED_PORT, WORK_LOGO_LED_PIN_BITS, GPIO_DIR_OUT);
+       pmu_set_gpio_value(LED_PORT, WORK_LOGO_LED_PIN_BITS, 1);
+
 }
 
 void user_led_io_deinit(void)
@@ -261,12 +198,15 @@ void user_led_io_deinit(void)
        bat1_led_set(false);
        bat2_led_set(false);
        bt2_bat3_led_set(false);
+       pmu_set_pin_dir(LED_PORT, WORK_LOGO_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS, GPIO_DIR_IN);
+       pmu_set_pin_pull(LED_PORT, WORK_LOGO_LED_PIN_BITS | BT2_BAT3_LED_PIN_BITS, false);
        //os_timer_stop(&m_work_mode_led_timer);
        os_timer_stop(&m_lowbat_led_timer);
 }
 
 void user_led_init(void)
 {
+       
        user_led_io_init();
 
        bat1_led_set(false);
@@ -278,8 +218,9 @@ void user_led_init(void)
        // co_printf("%s\r\n", __func__);
        //while(1);
        //os_timer_init(&m_work_mode_led_timer, work_mode_timer_handle, NULL);
-       os_timer_init(&m_lowbat_led_timer, lowbat_led_timer_handle, NULL);
+       if(m_lowbat_led_timer.timer_id  == 0)
+               os_timer_init(&m_lowbat_led_timer, lowbat_led_timer_handle, NULL);
        work_mode_led_prestart(LED_FAST_BLINK_100MS);
-       lowbat_led_timer_start();
+       //lowbat_led_timer_start();
        co_printf("%s\r\n", __func__);
 }
index 22cc9fa..1cc1615 100644 (file)
@@ -13,8 +13,8 @@
 */
 #define LED_PORT                    GPIO_PORT_A
 
-#define WORK_MODE_LED_PIN_BIT       GPIO_BIT_4
-#define WORK_MODE_LED_PIN_BITS      BIT(4)
+#define WORK_LOGO_LED_PIN_BIT       GPIO_BIT_4
+#define WORK_LOGO_LED_PIN_BITS      BIT(4)
 
 #define BT2_BAT3_LED_PIN_BIT        GPIO_BIT_5
 #define BT2_BAT3_LED_PIN_BITS       BIT(5)
index 1da3062..24ddaac 100644 (file)
@@ -74,7 +74,8 @@ __attribute__((section("ram_code"))) void pmu_gpio_isr_ram(void)
 {
        uint32_t gpio_value = ool_read32(PMU_REG_GPIOA_V);
        ool_write32(PMU_REG_PORTA_LAST, gpio_value);
-       //co_printf("gpio_value:%08x\r\n", gpio_value);
+       co_printf("gpio_value:%08x\r\n", gpio_value);
+       #if BUTTON_UP
        if (g_device_param.is_enter_sleep == true)
        {
                if ((gpio_value & MATRIX_COL0_PIN_GPIO) == 0 ||
@@ -85,7 +86,7 @@ __attribute__((section("ram_code"))) void pmu_gpio_isr_ram(void)
                }
                
        }
-       
+       #endif
        if ((gpio_value & SENSOR_MOTSWK_PIN) == 0)
        {
                if (g_device_param.is_enter_sleep == true)
@@ -322,8 +323,8 @@ void user_entry_after_ble_init(void)
        //flash_read(ALI_DATA_ADDR,sizeof(data),(uint8_t *)data);
        co_printf("\r\ndata:%s\r\n",data);
        #endif
-       pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_1);
-       //pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_9);
+       pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_5);
+       //pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_7);
        user_inflash_init();
        cJSON_InitHooks(NULL);//40
        user_timer_init();
@@ -336,7 +337,7 @@ void user_entry_after_ble_init(void)
     
     audio_encoder_init(ENCODE_TYPE_SBC);//70
        battery_voltage_get();//70
-       user_keyscan_init();//160UA
+       user_keyscan_init();//功耗高
        #if WDT_ENABLE
        wdt_init(WDT_ACT_CALL_IRQ, 10);
        wdt_start();
index 30e7534..4a77b2a 100644 (file)
@@ -61,7 +61,7 @@ const uint8_t SENSOR_PID_TABLE[SENSOR_MAX][3] =
     {0x30, 0xD1,0xFE},          // PAW3205_3T
        {0x31, 0x00,0xFE},          // PAW3205_NT
     {0x30, 0x02,0xFE}, // PAW3212
-       {0x30, 0x02,0xA7}, // SG8925
+       {0x30, 0x02,0xC0}, // SG8925
        {0x30, 0x5A,0xC2}, // SG8670
     {0x31, 0x04,0xFE},          // PAW3065
     {0xFE,0xFE,0xFE},          // PAW3065XY
@@ -94,7 +94,7 @@ const uint16_t SENSOR_CPI_TABLE[SENSOR_MAX][5] =
     {600, 800, 1000,1300,1600},          // PAW3205_3T
        {600, 800, 1000,1300,1600},          // PAW3205_NT
     {600, 800, 1000,1300,1600},                // PAW3212
-       {800,1000, 1200, 1600,2400},            // SG8925
+       {800,1600, 2400, 3200,4000},            // SG8925
        {800,1000, 1200, 1600,2400},            // SG8670
     {600, 800, 1000,1300,1600},          // PAW3065
     {600, 800, 1000,1300,1600},          // PAW3065XY
@@ -496,6 +496,23 @@ void reg_init(void)
                sensor_write_reg(0x4D,0x00);
                sensor_write_reg(0x4E,0x02);
                sensor_write_reg(0x7E,0x00);
+       }else if(g_device_param.sensor_model == SG8925 )
+       {
+               sensor_write_reg(0x7f,0xA7);
+               sensor_write_reg(0x09,0x5a);
+               sensor_write_reg(0x20,0xf0);
+               sensor_write_reg(0x21,0x10);
+               sensor_write_reg(0x2d,0x64);
+               sensor_write_reg(0x2b,0x01);
+               sensor_write_reg(0x57,0x08);
+               sensor_write_reg(0x1b,0x5d);
+               sensor_write_reg(0x1c,0x34);
+               sensor_write_reg(0x1f,0x33);
+               sensor_write_reg(0x35,0xc1);
+               sensor_write_reg(0x34,0x4e);
+               sensor_write_reg(0x24,0xff);
+               sensor_write_reg(0x7f,0x00);
+               sensor_write_reg(0x09,0x00);
        }
        
 }
index d7ba707..4902d8d 100644 (file)
@@ -21,6 +21,7 @@
 #include "cJSON.h"
 #include "adc.h"
 #include "inflash.h"
+#include "flash_usage_config.h"
 uint16_t user_task_id;
 //字符串里查找最近一个c字符,返回偏移位置
 unsigned int find_c(char *data,char c)
@@ -112,12 +113,19 @@ char user_parse_data(char *data)
                        str_tmp = strstr(cmd_str_tmp,"\"get_MAC\"");
                        if(str_tmp)
                        {
-                               send_buf_len = snprintf(send_buf,SEND_BUF_MAX_LEN,"{\"MAC\":\"%02X:%02X:%02X:%02X:%02X:%02X\"}",
-                                                                               user_data.peer_addr.addr[0],user_data.peer_addr.addr[1],user_data.peer_addr.addr[2],
-                                                                               user_data.peer_addr.addr[3],user_data.peer_addr.addr[4],user_data.peer_addr.addr[5]);
+                               send_buf_len = snprintf(send_buf,SEND_BUF_MAX_LEN,"{\"MAC\":\"%02X%02X%02X%02X%02X%02X\"}",
+                                                                               user_data.peer_addr.addr[5],user_data.peer_addr.addr[4],user_data.peer_addr.addr[3],
+                                                                               user_data.peer_addr.addr[2],user_data.peer_addr.addr[1],user_data.peer_addr.addr[0]);
                                hid_cmd_send((unsigned char*)send_buf,send_buf_len);
                                ret = 1;
                        }
+                       str_tmp = strstr(cmd_str_tmp,"\"get_rssi\"");
+                       if(str_tmp)
+                       {
+                               updata_ble_simple_link_rssi();//更新信号,在case GAP_EVT_LINK_RSSI:回调回返值
+                               
+                               ret = 1;
+                       }
                        str_tmp = strstr(cmd_str_tmp,"\"set_CPI\":\"");
                        if(str_tmp)
                        {
@@ -149,10 +157,15 @@ char user_parse_data(char *data)
                     num_buf_len = 10;
                                memcpy(send_buf,str_tmp,num_buf_len);
                                send_buf[num_buf_len] = 0;
-                user_data.activated_dtate = atoi(send_buf);
+                               uint8_t activated_dtate_tmp =  atoi(send_buf);
+                if(user_data.activated_dtate != activated_dtate_tmp)
+                               {
+                                       user_data.activated_dtate = activated_dtate_tmp;
+                                       user_data_storage_do(true);
+                               }
                                send_buf_len = snprintf(send_buf,SEND_BUF_MAX_LEN,"{\"set_config\":\"1\"}");
                                hid_cmd_send((unsigned char*)send_buf,send_buf_len);
-                               user_data_storage_do(true);
+                               
                                co_printf("set_activated_dtate:%d\r\n",user_data.activated_dtate);
                                ret = 1;
                        }
@@ -213,7 +226,7 @@ char user_parse_data(char *data)
                os_free(send_buf);
        return ret;
 }
-extern os_timer_t update_param_timer;
+
 static int user_task_func(os_event_t *param)
 {
        switch (param->event_id)
@@ -269,15 +282,15 @@ static int user_task_func(os_event_t *param)
                case USER_EVT_ENTER_SLEEP:
 
                        g_device_param.is_enter_sleep = true;
+                       #if !BUTTON_UP
+                       user_keyscan_io_deinit();
+                       #endif
             //sensor_powerdown();
                        user_led_io_deinit();
                        user_qdec_deinit();
                        hid_mouse_timer_stop();
                        os_timer_stop(&m_task_1s_timer);
                        os_timer_stop(&m_task_10s_timer);
-                       bat1_led_set(false);
-                       bat2_led_set(false);
-                       bt2_bat3_led_set(false);
                        lowbat_led_timer_stop();
                        button_timer_stop();
             #if WDT_ENABLE
@@ -287,6 +300,7 @@ static int user_task_func(os_event_t *param)
                                gap_stop_advertising();
                        else
                                gap_disconnect_req(curr_conn_index_get());
+                       
                        //pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_1);
                        co_printf("enter sleep!!\r\n");
                        system_sleep_enable();
@@ -297,14 +311,15 @@ static int user_task_func(os_event_t *param)
                case USER_EVT_EXIT_SLEEP:
                        // co_printf("exit sleep!!\r\n");
                        //pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL,PMU_ALDO_VOL_2_9);
+                       #if !BUTTON_UP
+                       user_keyscan_io_init();
+                       #endif
                        sensor_gpio_cpu_init();
                        hid_mouse_timer_start();
                        g_device_param.is_enter_sleep = false;
-                       work_mode_led_prestart(LED_FAST_BLINK_100MS);
                        adv_sleep_cnt_reset();
                        user_led_init();
                        battery_voltage_get();
-                       user_keyscan_io_init();
                        user_qdec_init();
                        //sensor_poweron();
                        os_timer_start(&m_task_1s_timer, 1000, true);
index 9ef5669..faee0c2 100644 (file)
         <yPos>-1</yPos>
       </MaxPosition>
       <NormalPosition>
-        <Top>31</Top>
-        <Left>580</Left>
-        <Right>1855</Right>
-        <Bottom>704</Bottom>
+        <Top>300</Top>
+        <Left>848</Left>
+        <Right>2123</Right>
+        <Bottom>1028</Bottom>
       </NormalPosition>
     </WindowPosition>
     <MDIClientArea>
       <RegID>0</RegID>
       <MDITabState>
-        <Len>1434</Len>
-        <Data>0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A000000090000000100000060483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C696E666C6173682E680000000009696E666C6173682E6800000000C5D4F200FFFFFFFF72483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C616C696F735C757061795F6C6974655C616C696F735F6170692E63000000000B616C696F735F6170692E6300000000FFDC7800FFFFFFFF6E483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C626C655F73696D706C655F7065726970686572616C2E630000000017626C655F73696D706C655F7065726970686572616C2E6300000000BECEA100FFFFFFFF62483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C757365725F7461736B2E63000000000B757365725F7461736B2E6300000000F0A0A100FFFFFFFF60483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C6B65797363616E2E6300000000096B65797363616E2E6300000000BCA8E100FFFFFFFF5E483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C74696D65722E63000000000774696D65722E63000000009CC1B600FFFFFFFF60483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C696E666C6173682E630000000009696E666C6173682E6300000000F7B88600FFFFFFFF5C483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C6C65642E6300000000056C65642E6300000000D9ADC200FFFFFFFF5F483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C73656E736F722E63000000000873656E736F722E6300000000A5C2D700FFFFFFFF5D483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C616D69632E630000000006616D69632E6300000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000400300008D0000003707000010020000</Data>
+        <Len>422</Len>
+        <Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000062483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C757365725F7461736B2E63000000000B757365725F7461736B2E6300000000C5D4F200FFFFFFFF60483A5C312E776F726B5C362EB8BBC8F0C0A45C312ECAF3B1EA5C764D6F7573655C322E636F64655C312E6D6F7573655C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C696E666C6173682E630000000009696E666C6173682E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004C0400009A0100004308000054030000</Data>
       </MDITabState>
     </MDIClientArea>
     <ViewEx>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
-          <Data>C5020000D70000006107000065010000</Data>
+          <Data>1E0300001B010000BA070000A9010000</Data>
         </RectRecentFloat>
       </Window>
       <Window>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0300000066000000ED000000B9010000</Data>
+          <Data>0300000066000000ED000000F0010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0300000066000000ED000000B9010000</Data>
+          <Data>0300000066000000ED000000F0010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0300000066000000ED000000B9010000</Data>
+          <Data>0300000066000000ED000000F0010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0300000066000000ED000000B9010000</Data>
+          <Data>0300000066000000ED000000F0010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>00000000EA010000EB04000067020000</Data>
+          <Data>0000000021020000EB0400009E020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000ED010000E80400004E020000</Data>
+          <Data>0300000024020000E804000085020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0300000066000000ED000000B9010000</Data>
+          <Data>0300000066000000ED000000F0010000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000ED010000E80400004E020000</Data>
+          <Data>0300000024020000E804000085020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000ED010000E80400004E020000</Data>
+          <Data>0300000024020000E804000085020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000ED010000E80400004E020000</Data>
+          <Data>0300000024020000E804000085020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>03000000ED010000E80400004E020000</Data>
+          <Data>0300000024020000E804000085020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
         <RecentRowIndex>0</RecentRowIndex>
         <RectRecentDocked>
           <Len>16</Len>
-          <Data>0000000067020000EB0400007A020000</Data>
+          <Data>000000009E020000EB040000B1020000</Data>
         </RectRecentDocked>
         <RectRecentFloat>
           <Len>16</Len>
       </Window>
       <DockMan>
         <Len>3312</Len>
-        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000C5020000D70000006107000065010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000071060000D700000061070000AD020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000D2010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000D1010000D7000000C10200005A020000000000004F000000F0000000D20100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000D10100009D020000610700003F030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000D2010000EB040000D6010000010000000100001004000000010000009CFDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000D10100005E020000BC060000EF02000000000000D6010000EB040000670200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
+        <Data>000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000001E0300001B010000BA070000A9010000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000CA0600001B010000BA070000F1020000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000009020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000002A0200001B0100001A030000D5020000000000004F000000F0000000090200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000002A020000E1020000BA07000083030000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000009020000EB0400000D020000010000000100001004000000010000009CFDFFFF8E000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000002A020000D9020000150700006A030000000000000D020000EB0400009E0200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000</Data>
       </DockMan>
       <ToolBar>
         <RegID>59392</RegID>
         <Name>Build</Name>
         <Buttons>
           <Len>990</Len>
-          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000F626C655F766F6963655F6D6F757365960000000000000001000F626C655F766F6963655F6D6F757365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
+          <Data>00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000002001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000F626C655F766F6963655F6D6F757365960000000000000001000F626C655F766F6963655F6D6F757365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000</Data>
         </Buttons>
         <OriginalItems>
           <Len>583</Len>
         <Name>Debug</Name>
         <Buttons>
           <Len>2373</Len>
-          <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
+          <Data>00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000</Data>
         </Buttons>
         <OriginalItems>
           <Len>898</Len>
     <ActiveMDIGroup>0</ActiveMDIGroup>
     <MDIGroup>
       <Size>100</Size>
-      <ActiveTab>9</ActiveTab>
-      <Doc>
-        <Name>..\code\inflash.h</Name>
-        <ColumnNumber>31</ColumnNumber>
-        <TopLine>28</TopLine>
-        <CurrentLine>44</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\alios\upay_lite\alios_api.c</Name>
-        <ColumnNumber>55</ColumnNumber>
-        <TopLine>84</TopLine>
-        <CurrentLine>97</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\ble_simple_peripheral.c</Name>
-        <ColumnNumber>17</ColumnNumber>
-        <TopLine>275</TopLine>
-        <CurrentLine>294</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
+      <ActiveTab>1</ActiveTab>
       <Doc>
         <Name>..\code\user_task.c</Name>
-        <ColumnNumber>49</ColumnNumber>
-        <TopLine>70</TopLine>
-        <CurrentLine>84</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\keyscan.c</Name>
-        <ColumnNumber>31</ColumnNumber>
-        <TopLine>270</TopLine>
-        <CurrentLine>288</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\timer.c</Name>
-        <ColumnNumber>20</ColumnNumber>
-        <TopLine>1</TopLine>
-        <CurrentLine>16</CurrentLine>
+        <ColumnNumber>37</ColumnNumber>
+        <TopLine>158</TopLine>
+        <CurrentLine>179</CurrentLine>
         <Folding>1</Folding>
         <ContractedFolders></ContractedFolders>
         <PaneID>0</PaneID>
       </Doc>
       <Doc>
         <Name>..\code\inflash.c</Name>
-        <ColumnNumber>0</ColumnNumber>
-        <TopLine>1</TopLine>
-        <CurrentLine>2</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\led.c</Name>
-        <ColumnNumber>0</ColumnNumber>
-        <TopLine>42</TopLine>
-        <CurrentLine>61</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\sensor.c</Name>
-        <ColumnNumber>61</ColumnNumber>
-        <TopLine>708</TopLine>
-        <CurrentLine>720</CurrentLine>
-        <Folding>1</Folding>
-        <ContractedFolders></ContractedFolders>
-        <PaneID>0</PaneID>
-      </Doc>
-      <Doc>
-        <Name>..\code\amic.c</Name>
-        <ColumnNumber>0</ColumnNumber>
-        <TopLine>64</TopLine>
-        <CurrentLine>83</CurrentLine>
+        <ColumnNumber>9</ColumnNumber>
+        <TopLine>96</TopLine>
+        <CurrentLine>118</CurrentLine>
         <Folding>1</Folding>
         <ContractedFolders></ContractedFolders>
         <PaneID>0</PaneID>
index d4f58bb..8dc4196 100644 (file)
@@ -1,4 +1,4 @@
-;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Sun Apr 07 17:31:42 2024
+;#<FEEDBACK># ARM Linker, 5060960: Last Updated: Fri Apr 26 10:08:50 2024
 ;VERSION 0.2
 ;FILE adc.o
 __asm___5_adc_c_e3544fbe____REV16 <= USED 0
@@ -107,10 +107,11 @@ bizbus_register_pk_get <= USED 0
 ;FILE bizbus_fnd.o
 bt_birdShield_get_authResult <= USED 0
 ;FILE ble_simple_peripheral.o
-__asm___23_ble_simple_peripheral_c_4fde123a____REV16 <= USED 0
-__asm___23_ble_simple_peripheral_c_4fde123a____REVSH <= USED 0
-__asm___23_ble_simple_peripheral_c_4fde123a____RRX <= USED 0
+__asm___23_ble_simple_peripheral_c_38fcf5c7____REV16 <= USED 0
+__asm___23_ble_simple_peripheral_c_38fcf5c7____REVSH <= USED 0
+__asm___23_ble_simple_peripheral_c_38fcf5c7____RRX <= USED 0
 ble_send_debug <= USED 0
+get_ble_simple_link_rssi <= USED 0
 hid_consumer_value_send <= USED 0
 ;FILE button.o
 button_deInit <= USED 0
@@ -286,19 +287,23 @@ flash_protect_enable <= USED 0
 flash_protect_enable1 <= USED 0
 flash_read_id <= USED 0
 ;FILE func.o
+__asm___6_func_c_bf388994____REV16 <= USED 0
+__asm___6_func_c_bf388994____REVSH <= USED 0
+__asm___6_func_c_bf388994____RRX <= USED 0
+delete_bond_info_by_local_addr <= USED 0
 find_bond_info_by_local_addr <= USED 0
 mouse_exit_pairing <= USED 0
 ;FILE gap_api.o
 gap_bond_manager_add_info <= USED 0
 gap_bond_manager_delete <= USED 0
 gap_bond_manager_delete_all <= USED 0
+gap_bond_manager_delete_by_idx <= USED 0
 gap_conn_phy_update <= USED 0
 gap_get_conn_phy <= USED 0
 gap_get_encryption_status <= USED 0
 gap_get_latest_bond_idx <= USED 0
 gap_get_latest_conn_parameter <= USED 0
 gap_get_link_features <= USED 0
-gap_get_link_rssi <= USED 0
 gap_get_link_version <= USED 0
 gap_param_update_rsp <= USED 0
 gap_sec_clr_fixed_ltk <= USED 0
@@ -406,6 +411,8 @@ l2cc_dbg_pdu_unpack <= USED 0
 __asm___5_led_c_96aee7d6____REV16 <= USED 0
 __asm___5_led_c_96aee7d6____REVSH <= USED 0
 __asm___5_led_c_96aee7d6____RRX <= USED 0
+bt2_bat3_led_set <= USED 0
+lowbat_led_timer_start <= USED 0
 work_mode_led_off <= USED 0
 work_mode_led_on <= USED 0
 ;FILE m_al_activity.o
@@ -998,6 +1005,7 @@ __asm___7_timer_c_f79f9791____RRX <= USED 0
 ble_bond_addr_check_result <= USED 0
 ble_bond_clr_all_info <= USED 0
 ble_bond_clr_info <= USED 0
+ble_bond_clr_info_by_idx <= USED 0
 ble_bond_get_last_bond_idx <= USED 0
 gatt_load_peer_svc_from_flash <= USED 0
 ;FILE user_task.o