From: p15692025051 <846603105@qq.com> Date: Mon, 11 Mar 2024 06:11:28 +0000 (+0800) Subject: 鼠标修改 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=2bf7611e66274f6e99fe1ffc707a7e7d6f0d0ffb;p=mirrors%2FvMouse.git 鼠标修改 --- diff --git a/2.code/1.sdk/components/ble/profiles/ble_hid/hid_service.c b/2.code/1.sdk/components/ble/profiles/ble_hid/hid_service.c index 067aa43..c3d7392 100644 --- a/2.code/1.sdk/components/ble/profiles/ble_hid/hid_service.c +++ b/2.code/1.sdk/components/ble/profiles/ble_hid/hid_service.c @@ -592,6 +592,7 @@ bool caps_lock_status_get(void) */ void hid_gatt_report_notify(uint8_t conidx, uint8_t rpt_info_id, uint8_t *p_data, uint16_t len) { + co_printf("hid_gatt_report_notify!!!!!!!!!\n"); if (rpt_info_id < HID_NUM_REPORTS && hid_link_ntf_enable[conidx]) { gatt_ntf_t ntf; @@ -601,6 +602,7 @@ void hid_gatt_report_notify(uint8_t conidx, uint8_t rpt_info_id, uint8_t *p_data ntf.data_len = len; ntf.p_data = p_data; gatt_notification(ntf); + } } diff --git a/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.c b/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.c index 38e174e..7083c61 100644 --- a/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.c +++ b/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.c @@ -19,7 +19,7 @@ #include "user_task.h" #include "simple_gatt_service.h" - +#include "bizbus_common.h" #include "timer.h" /* @@ -45,11 +45,20 @@ uint8_t sp_char1_ccc[SP_CHAR1_CCC_LEN] = {0}; // Characteristic 2 data #define SP_CHAR2_VALUE_LEN 40 -uint8_t sp_char2_value[SP_CHAR2_VALUE_LEN] = {0}; +//uint8_t sp_char2_value[SP_CHAR2_VALUE_LEN] = {0}; // Characteristic 2 client characteristic configuration #define SP_CHAR2_CCC_LEN 2 uint8_t sp_char2_ccc[SP_CHAR2_CCC_LEN] = {0}; +#define SP_ALIAPP_VALUE_LEN 512 +//uint8_t sp_aliapp_value[SP_ALIAPP_VALUE_LEN] = {0}; +#define SP_ALIAPP_CCC_LEN 2 +uint8_t sp_aliapp_ccc[SP_ALIAPP_CCC_LEN] = {0}; + +#define SP_HID_VALUE_LEN 40 +//uint8_t sp_aliapp_value[SP_ALIAPP_VALUE_LEN] = {0}; +#define SP_HID_CCC_LEN 2 +uint8_t sp_hid_ccc[SP_HID_CCC_LEN] = {0}; /* * TYPEDEFS (ÀàÐͶ¨Òå) */ @@ -109,7 +118,8 @@ const gatt_attribute_t simple_profile_att_table[SP_IDX_NB] = GATT_PROP_READ | GATT_PROP_WRITE, /* Permissions */ SP_CHAR1_CCC_LEN, /* Max size of the value */ NULL, /* Value of the attribute */ /* Can assign a buffer here, or can be assigned in the application by user */ - }, + }, + // Characteristic 2 Declaration [SP_IDX_CHAR2_DECLARATION] = { @@ -132,7 +142,47 @@ const gatt_attribute_t simple_profile_att_table[SP_IDX_NB] = GATT_PROP_READ | GATT_PROP_WRITE, /* Permissions */ SP_CHAR1_CCC_LEN, /* Max size of the value */ NULL, /* Value of the attribute */ /* Can assign a buffer here, or can be assigned in the application by user */ - }, + }, + //HIDÄ£ÄâͨµÀ,ÒòΪwindowsÓ¦ÓÃÈí¼þÎÞ·¨Ê¹Óñê×¼µÄhidͨµÀ£¬ËùÒÔ¼ÓÒ»¸öÄ£Äâ + [SP_IDX_HID_DECLARATION] = { + { UUID_SIZE_2, UUID16_ARR(GATT_CHARACTER_UUID) }, /* UUID */ + GATT_PROP_READ, /* Permissions */ + 0, /* Max size of the value */ + NULL, /* Value of the attribute */ + }, + [SP_IDX_HID_VALUE] = { + { UUID_SIZE_16, SP_HID_TX_RX_UUID }, /* UUID */ + GATT_PROP_WRITE | GATT_PROP_NOTI, /* Permissions */ + SP_HID_VALUE_LEN, /* Max size of the value */ + NULL, /* Value of the attribute */ /* Can assign a buffer here, or can be assigned in the application by user */ + }, + [SP_IDX_HID_CFG] = { + { UUID_SIZE_2, UUID16_ARR(GATT_CLIENT_CHAR_CFG_UUID) }, /* UUID */ + GATT_PROP_READ | GATT_PROP_WRITE, /* Permissions */ + SP_HID_CCC_LEN, /* Max size of the value */ + NULL, /* Value of the attribute */ /* Can assign a buffer here, or can be assigned in the application by user */ + }, + + // ali °¢Àïapp ¼øÈ¨×¨ÓÃͨµÀ + [SP_IDX_ALIAPP_DECLARATION] = { + { UUID_SIZE_2, UUID16_ARR(GATT_CHARACTER_UUID) }, /* UUID */ + GATT_PROP_READ, /* Permissions */ + 0, /* Max size of the value */ + NULL, /* Value of the attribute */ + }, + [SP_IDX_ALIAPP_VALUE] = { + { UUID_SIZE_16, SP_ALIAPP_TX_RX_UUID }, /* UUID */ + GATT_PROP_WRITE | GATT_PROP_NOTI, /* Permissions */ + SP_ALIAPP_VALUE_LEN, /* Max size of the value */ + NULL, /* Value of the attribute */ /* Can assign a buffer here, or can be assigned in the application by user */ + }, + [SP_IDX_ALIAPP_CFG] = { + { UUID_SIZE_2, UUID16_ARR(GATT_CLIENT_CHAR_CFG_UUID) }, /* UUID */ + GATT_PROP_READ | GATT_PROP_WRITE, /* Permissions */ + SP_ALIAPP_CCC_LEN, /* Max size of the value */ + NULL, /* Value of the attribute */ /* Can assign a buffer here, or can be assigned in the application by user */ + }, + }; void ntf_data(uint8_t con_idx,uint8_t att_idx,uint8_t *data,uint16_t len) @@ -189,6 +239,15 @@ static uint16_t sp_gatt_msg_handler(gatt_msg_t *p_msg) { memcpy(p_msg->param.msg.p_msg_data, sp_char1_ccc, SP_CHAR1_CCC_LEN); return SP_CHAR1_CCC_LEN; + }else if(p_msg->att_idx == SP_IDX_ALIAPP_CFG) + { + memcpy(p_msg->param.msg.p_msg_data, sp_aliapp_ccc, SP_ALIAPP_CCC_LEN); + co_printf("SP_IDX_ALIAPP_CFG:%s\n",sp_aliapp_ccc); + return SP_ALIAPP_CCC_LEN; + }else if(p_msg->att_idx == SP_IDX_HID_CFG) + { + memcpy(p_msg->param.msg.p_msg_data, sp_hid_ccc, SP_HID_CCC_LEN); + return SP_HID_CCC_LEN; } else if(p_msg->att_idx == SP_IDX_CHAR2_CFG) { @@ -219,6 +278,16 @@ static uint16_t sp_gatt_msg_handler(gatt_msg_t *p_msg) user_event_send(USER_EVT_BLE_RX, p_msg->param.msg.p_msg_data, p_msg->param.msg.msg_len); co_printf("char1_recv(att_idx:%d, handle:0x%02x): ", p_msg->att_idx, p_msg->handle); show_reg(p_msg->param.msg.p_msg_data,p_msg->param.msg.msg_len,1); + }else if (p_msg->att_idx == SP_IDX_ALIAPP_VALUE) + { + user_event_send(USER_EVT_ALIAPP_RX, p_msg->param.msg.p_msg_data, p_msg->param.msg.msg_len); + co_printf("SP_IDX_ALIAPP_VALUE(att_idx:%d, handle:0x%02x): ", p_msg->att_idx, p_msg->handle); + show_reg(p_msg->param.msg.p_msg_data,p_msg->param.msg.msg_len,1); + }else if (p_msg->att_idx == SP_IDX_HID_VALUE) + { + //user_event_send(USER_EVT_BLE_RX, p_msg->param.msg.p_msg_data, p_msg->param.msg.msg_len); + co_printf("hid_recv(att_idx:%d, handle:0x%02x): ", p_msg->att_idx, p_msg->handle); + show_reg(p_msg->param.msg.p_msg_data,p_msg->param.msg.msg_len,1); } else if (p_msg->att_idx == SP_IDX_CHAR2_VALUE) { @@ -252,6 +321,31 @@ static uint16_t sp_gatt_msg_handler(gatt_msg_t *p_msg) { ntf_char2_enable = 0; co_printf("char2_ntf_disable\r\n"); + } + }else if (p_msg->att_idx == SP_IDX_HID_CFG) + { + memcpy(sp_hid_ccc,p_msg->param.msg.p_msg_data,SP_HID_CCC_LEN); + if(p_msg->param.msg.p_msg_data[0] & 0x01) + { + + co_printf("hid_ntf_enable\r\n"); + } + else + { + co_printf("hid_ntf_disable\r\n"); + } + }else if (p_msg->att_idx == SP_IDX_ALIAPP_CFG) + { + memcpy(sp_char2_ccc,p_msg->param.msg.p_msg_data,SP_ALIAPP_CCC_LEN); + if(p_msg->param.msg.p_msg_data[0] & 0x01) + { + + co_printf("SP_IDX_ALIAPP_CFG\r\n"); + } + else + { + + co_printf("SP_IDX_ALIAPP_CFG\r\n"); } } } diff --git a/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.h b/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.h index eb12771..6bf9d18 100644 --- a/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.h +++ b/2.code/1.sdk/components/ble/profiles/ble_simple_profile/simple_gatt_service.h @@ -35,17 +35,27 @@ enum SP_IDX_CHAR1_VALUE, SP_IDX_CHAR1_CFG, + SP_IDX_CHAR2_DECLARATION, SP_IDX_CHAR2_VALUE, SP_IDX_CHAR2_CFG, - + //HIDÄ£ÄâͨµÀ,ÒòΪwindowsÓ¦ÓÃÈí¼þÎÞ·¨Ê¹Óñê×¼µÄhidͨµÀ£¬ËùÒÔ¼ÓÒ»¸öÄ£Äâ + SP_IDX_HID_DECLARATION, + SP_IDX_HID_VALUE, + SP_IDX_HID_CFG, + //°¢Àï¼øÈ¨Í¨µÀ + SP_IDX_ALIAPP_DECLARATION, + SP_IDX_ALIAPP_VALUE, + SP_IDX_ALIAPP_CFG, + SP_IDX_NB, }; // Simple GATT Profile Service UUID #define SP_SVC_UUID 0xFFF1 - -#define SP_CHAR1_TX_RX_UUID {0xb8, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07} +#define SP_HID_TX_RX_UUID {0xb6, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb6, 0x83, 0x07} +#define SP_ALIAPP_TX_RX_UUID {0xb7, 0x4c, 0x19, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb7, 0x83, 0x07} +#define SP_CHAR1_TX_RX_UUID {0xb8, 0x4c, 0x19, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07} #define SP_CHAR2_TX_RX_UUID {0xb9, 0x5c, 0x49, 0xd2, 0x04, 0xa3, 0x40, 0x71, 0xa0, 0xb5, 0x35, 0x85, 0x3e, 0xb0, 0x83, 0x07} /* diff --git a/2.code/1.sdk/components/modules/audio_code_sbc/sbc.c b/2.code/1.sdk/components/modules/audio_code_sbc/sbc.c index 6348ef4..22298b5 100644 --- a/2.code/1.sdk/components/modules/audio_code_sbc/sbc.c +++ b/2.code/1.sdk/components/modules/audio_code_sbc/sbc.c @@ -535,7 +535,7 @@ int sbc_encode(sbc_t *sbc, const void *input, uint32_t input_len, if (!priv->init) { priv->frame.frequency = sbc->frequency; - priv->frame.allocation = sbc->allocation; + priv->frame.allocation = (int)sbc->allocation; priv->frame.subband_mode = sbc->subbands; priv->frame.subbands = sbc->subbands ? 8 : 4; priv->frame.block_mode = sbc->blocks; diff --git a/2.code/1.sdk/components/modules/audio_encode/audio_encoder.c b/2.code/1.sdk/components/modules/audio_encode/audio_encoder.c index 45aeb50..58e10b2 100644 --- a/2.code/1.sdk/components/modules/audio_encode/audio_encoder.c +++ b/2.code/1.sdk/components/modules/audio_encode/audio_encoder.c @@ -218,6 +218,7 @@ static int audio_encoder_next_frame_handler(struct pcm_data_t *pcm_data) &encoder_env.out_buffer[encoder_env.encode_write_pos], encoder_env.frame_size, &encoded_len); + co_printf("org_len:%d\n",org_len); } encoder_env.reserved_space -= encoder_env.frame_size; encoder_frame_out_func(&encoder_env.out_buffer[encoder_env.encode_write_pos],encoder_env.frame_size); diff --git a/2.code/1.sdk/components/modules/os/include/os_mem.h b/2.code/1.sdk/components/modules/os/include/os_mem.h index 81b48a3..bd75179 100644 --- a/2.code/1.sdk/components/modules/os/include/os_mem.h +++ b/2.code/1.sdk/components/modules/os/include/os_mem.h @@ -227,7 +227,7 @@ __STATIC __INLINE uint16_t os_get_free_heap_size(void) #endif - +#define USER_MEM_API_ENABLE 1 /** @functions API for memory leakage debug, * before call these functions, must define USER_MEM_API_ENABLE in your project Preprocessor Symbols. * @{ diff --git a/2.code/1.sdk/components/modules/platform/source/app_boot_vectors.s b/2.code/1.sdk/components/modules/platform/source/app_boot_vectors.s index 961af40..5e5824f 100644 --- a/2.code/1.sdk/components/modules/platform/source/app_boot_vectors.s +++ b/2.code/1.sdk/components/modules/platform/source/app_boot_vectors.s @@ -18,6 +18,11 @@ ; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. ; * ; *****************************************************************************/ +Heap_Size EQU 0x00000100 + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit ; Stack Configuration ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> @@ -159,7 +164,11 @@ Default_Handler PROC EXPORT ssp_isr_ram [WEAK] EXPORT pdm_isr_ram [WEAK] EXPORT uart0_isr_ram [WEAK] - EXPORT uart1_isr_ram [WEAK] + EXPORT uart1_isr_ram [WEAK] + IF :DEF:__MICROLIB + EXPORT __heap_base + EXPORT __heap_limit + ENDIF adc_isr ssp_isr_ram pdm_isr_ram diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/alios_api.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/alios_api.c index bf50a05..b2e7878 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/alios_api.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/alios_api.c @@ -1,8 +1,15 @@ #include "bizbus_common.h" #include "upay_vendor.h" -//#include "os_mem.h" -//#include "co_printf.h" -//#include "stdarg.h" +#include "flash_usage_config.h" +#include "os_mem.h" +#include "co_printf.h" +#include "stdarg.h" +#include "driver_flash.h" +#include "stdlib.h" +#include "driver_system.h" +#include "ble_simple_peripheral.h" +static int32_t ali_timestamp = 0; +static int32_t system_curr_time = 0;//设置时间的时候保存的系统运行时间 //安全数据API,需要一块单独大小为2.5K的区域存储,要求恢复出厂设置不能被清除、OTA不能被清除、常规烧录升级不能被清除 /** * 安全数据写入,大小为2.5K,需要厂商实现 @@ -15,7 +22,10 @@ */ int32_t hal_flash_id2_write(uint32_t offset, void *data, uint32_t write_len) { - return 1; + co_printf("hal_flash_id2_write:offset:%d,data:%s,write_len:%d\n",offset,data,write_len); + flash_erase(ALI_DATA_ADDR+offset,write_len); + flash_write(ALI_DATA_ADDR+offset,write_len,(uint8_t *)data); + return 0; } /** @@ -29,7 +39,10 @@ int32_t hal_flash_id2_write(uint32_t offset, void *data, uint32_t write_len) */ int32_t hal_flash_id2_read(uint32_t offset, void *data, uint32_t read_len) { - return 1; + + flash_read(ALI_DATA_ADDR+offset,read_len,(uint8_t *)data); + co_printf("hal_flash_id2_read:offset:%d,data:%s,read_len:%d\n",ALI_DATA_ADDR+offset,data,read_len); + return 0; } /** * 安全数据擦除,大小为2.5K,需要厂商实现 @@ -42,26 +55,30 @@ int32_t hal_flash_id2_read(uint32_t offset, void *data, uint32_t read_len) int32_t hal_flash_id2_erase(uint32_t erase_offset,uint32_t earse_len) { - return 1; + co_printf("hal_flash_id2_erase:offset:%d,earse_len:%d\n",erase_offset,earse_len); + flash_erase(ALI_DATA_ADDR+erase_offset,earse_len); + return 0; } // hal 需要厂商实现,与APP SDK端的数据收发 bizbus_ret_t bizbus_hal_send(char *sid, uint8_t *data, uint32_t data_len) { - bizbus_ret_t a; - return a; -} -bizbus_ret_t bizbus_hal_recv(uint8_t * data, uint32_t data_len) -{ - bizbus_ret_t a; - return a; + ble_aliapp_data_tx(data,data_len); + return BIZBUS_SUCCESS; } +// bizbus_ret_t bizbus_hal_recv(uint8_t * data, uint32_t data_len) +// { + +// return BIZBUS_SUCCESS; +// } //厂商实现,设置ble 系统UTC时间 bizbus_ret_t bizbus_set_time(uint8_t *time_str) { - bizbus_ret_t a; - return a; + ali_timestamp = atoi((char *)time_str); + system_curr_time = system_get_curr_time(); + return BIZBUS_SUCCESS; } +//收到数据调用该函数 // bizbus_ret_t bizbus_recv(uint8_t *json_string, uint32_t data_len) // { @@ -83,11 +100,11 @@ bizbus_ret_t bizbus_set_time(uint8_t *time_str) void *aos_malloc(unsigned int size) { - return 0;//os_malloc(size); + return os_malloc(size); } void aos_free(void *mem) { - //os_free(mem); + os_free(mem); } int aos_kv_init(void) { @@ -107,17 +124,17 @@ void aos_idt_pk_cfg(uint8_t *data) } void aos_printf(const char *fmt, ...) { - // va_list args; - // va_start(args,fmt); - // co_printf(fmt,args); - // va_end(args); + va_list args; + va_start(args,fmt); + co_printf(fmt,args); + va_end(args); //co_printf(fmt,##__VA_ARGS__); } -//#define aos_printf(fmt, ...) co_printf(fmt,##__VA_ARGS__); +// /*!!!!!!!!!!*/ uint32_t upay_get_timestamp(void) { - return 1; + return ali_timestamp+((system_get_curr_time()-system_curr_time)/1000); } int upay_id2_check_status(uint8_t *id2_st) { @@ -133,18 +150,18 @@ int32_t is_need_to_request_cert(void) } bizbus_ret_t bizbus_gtd_id2_init(void) { - bizbus_ret_t a; - return a; + + return BIZBUS_SUCCESS; } bizbus_ret_t bizbus_gtd_wear_init(void) { - bizbus_ret_t a; - return a; + + return BIZBUS_SUCCESS; } bizbus_ret_t bizbus_recv_gtd_hdl(uint8_t *data, uint32_t data_len) { - bizbus_ret_t a; - return a; + + return BIZBUS_SUCCESS; } void* ALIPAY_malloc(uint32_t size) { @@ -159,5 +176,5 @@ void ALIPAY_free(void* pt) void* ALIPAY_realloc(void* pt, uint32_t size) { - return 0;//os_realloc(pt,size); -} \ No newline at end of file + return os_realloc(pt,size); +} diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/bizbus_common.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/bizbus_common.h index 41d1a33..6955ad2 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/bizbus_common.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/bizbus_common.h @@ -3,9 +3,10 @@ #define _BIZBUS_HAL_H_ #include -//#include +#include +#include //#include - +//#define aos_printf(fmt, ...) co_printf(fmt,##__VA_ARGS__); typedef enum _bizbus_ret_t { BIZBUS_SUCCESS, BIZBUS_ERR_INIT_FAILED, @@ -77,5 +78,5 @@ typedef int (* bizbus_pk_get_func)(char product_key[BIZBUS_PK_LEN + 1]); bizbus_ret_t bizbus_register_ds_get(bizbus_ds_get_func ds_get_func); bizbus_ret_t bizbus_register_dn_get(bizbus_dn_get_func dn_get_func); bizbus_ret_t bizbus_register_pk_get(bizbus_pk_get_func pk_get_func); - +bizbus_ret_t bizbus_recv(uint8_t *json_string, uint32_t data_len); #endif diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/cJSON.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/cJSON.h deleted file mode 100644 index e97e5f4..0000000 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/cJSON.h +++ /dev/null @@ -1,293 +0,0 @@ -/* - Copyright (c) 2009-2017 Dave Gamble and cJSON contributors - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#ifndef cJSON__h -#define cJSON__h - -#ifdef __cplusplus -extern "C" -{ -#endif - -#if !defined(__WINDOWS__) && (defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32)) -#define __WINDOWS__ -#endif - -#ifdef __WINDOWS__ - -/* When compiling for windows, we specify a specific calling convention to avoid issues where we are being called from a project with a different default calling convention. For windows you have 3 define options: - -CJSON_HIDE_SYMBOLS - Define this in the case where you don't want to ever dllexport symbols -CJSON_EXPORT_SYMBOLS - Define this on library build when you want to dllexport symbols (default) -CJSON_IMPORT_SYMBOLS - Define this if you want to dllimport symbol - -For *nix builds that support visibility attribute, you can define similar behavior by - -setting default visibility to hidden by adding --fvisibility=hidden (for gcc) -or --xldscope=hidden (for sun cc) -to CFLAGS - -then using the CJSON_API_VISIBILITY flag to "export" the same symbols the way CJSON_EXPORT_SYMBOLS does - -*/ - -#define CJSON_CDECL __cdecl -#define CJSON_STDCALL __stdcall - -/* export symbols by default, this is necessary for copy pasting the C and header file */ -#if !defined(CJSON_HIDE_SYMBOLS) && !defined(CJSON_IMPORT_SYMBOLS) && !defined(CJSON_EXPORT_SYMBOLS) -#define CJSON_EXPORT_SYMBOLS -#endif - -#if defined(CJSON_HIDE_SYMBOLS) -#define CJSON_PUBLIC(type) type CJSON_STDCALL -#elif defined(CJSON_EXPORT_SYMBOLS) -#define CJSON_PUBLIC(type) __declspec(dllexport) type CJSON_STDCALL -#elif defined(CJSON_IMPORT_SYMBOLS) -#define CJSON_PUBLIC(type) __declspec(dllimport) type CJSON_STDCALL -#endif -#else /* !__WINDOWS__ */ -#define CJSON_CDECL -#define CJSON_STDCALL - -#if (defined(__GNUC__) || defined(__SUNPRO_CC) || defined (__SUNPRO_C)) && defined(CJSON_API_VISIBILITY) -#define CJSON_PUBLIC(type) __attribute__((visibility("default"))) type -#else -#define CJSON_PUBLIC(type) type -#endif -#endif - -/* project version */ -#define CJSON_VERSION_MAJOR 1 -#define CJSON_VERSION_MINOR 7 -#define CJSON_VERSION_PATCH 14 - -#include - -/* cJSON Types: */ -#define cJSON_Invalid (0) -#define cJSON_False (1 << 0) -#define cJSON_True (1 << 1) -#define cJSON_NULL (1 << 2) -#define cJSON_Number (1 << 3) -#define cJSON_String (1 << 4) -#define cJSON_Array (1 << 5) -#define cJSON_Object (1 << 6) -#define cJSON_Raw (1 << 7) /* raw json */ - -#define cJSON_IsReference 256 -#define cJSON_StringIsConst 512 - -/* The cJSON structure: */ -typedef struct cJSON -{ - /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */ - struct cJSON *next; - struct cJSON *prev; - /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ - struct cJSON *child; - - /* The type of the item, as above. */ - int type; - - /* The item's string, if type==cJSON_String and type == cJSON_Raw */ - char *valuestring; - /* writing to valueint is DEPRECATED, use cJSON_SetNumberValue instead */ - int valueint; - /* The item's number, if type==cJSON_Number */ - double valuedouble; - - /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ - char *string; -} cJSON; - -typedef struct cJSON_Hooks -{ - /* malloc/free are CDECL on Windows regardless of the default calling convention of the compiler, so ensure the hooks allow passing those functions directly. */ - void *(CJSON_CDECL *malloc_fn)(size_t sz); - void (CJSON_CDECL *free_fn)(void *ptr); -} cJSON_Hooks; - -typedef int cJSON_bool; - -/* Limits how deeply nested arrays/objects can be before cJSON rejects to parse them. - * This is to prevent stack overflows. */ -#ifndef CJSON_NESTING_LIMIT -#define CJSON_NESTING_LIMIT 1000 -#endif - -/* returns the version of cJSON as a string */ -CJSON_PUBLIC(const char*) cJSON_Version(void); - -/* Supply malloc, realloc and free functions to cJSON */ -CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks); - -/* Memory Management: the caller is always responsible to free the results from all variants of cJSON_Parse (with cJSON_Delete) and cJSON_Print (with stdlib free, cJSON_Hooks.free_fn, or cJSON_free as appropriate). The exception is cJSON_PrintPreallocated, where the caller has full responsibility of the buffer. */ -/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */ -CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value); -CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t buffer_length); -/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */ -/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error so will match cJSON_GetErrorPtr(). */ -CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated); -CJSON_PUBLIC(cJSON *) cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated); - -/* Render a cJSON entity to text for transfer/storage. */ -CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item); -/* Render a cJSON entity to text for transfer/storage without any formatting. */ -CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item); -/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */ -CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt); -/* Render a cJSON entity to text using a buffer already allocated in memory with given length. Returns 1 on success and 0 on failure. */ -/* NOTE: cJSON is not always 100% accurate in estimating how much memory it will use, so to be safe allocate 5 bytes more than you actually need */ -CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format); -/* Delete a cJSON entity and all subentities. */ -CJSON_PUBLIC(void) cJSON_Delete(cJSON *item); - -/* Returns the number of items in an array (or object). */ -CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array); -/* Retrieve item number "index" from array "array". Returns NULL if unsuccessful. */ -CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index); -/* Get item "string" from object. Case insensitive. */ -CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string); -CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string); -CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string); -/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */ -CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void); - -/* Check item type and return its value */ -CJSON_PUBLIC(char *) cJSON_GetStringValue(const cJSON * const item); -CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item); - -/* These functions check the type of an item */ -CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item); -CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item); - -/* These calls create a cJSON item of the appropriate type. */ -CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void); -CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void); -CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void); -CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool boolean); -CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num); -CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string); -/* raw json */ -CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw); -CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void); -CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void); - -/* Create a string where valuestring references a string so - * it will not be freed by cJSON_Delete */ -CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string); -/* Create an object/array that only references it's elements so - * they will not be freed by cJSON_Delete */ -CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child); -CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child); - -/* These utilities create an Array of count items. - * The parameter count cannot be greater than the number of elements in the number array, otherwise array access will be out of bounds.*/ -CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count); -CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int count); -CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count); -CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char *const *strings, int count); - -/* Append item to the specified array/object. */ -CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToArray(cJSON *array, cJSON *item); -CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item); -/* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object. - * WARNING: When this function was used, make sure to always check that (item->type & cJSON_StringIsConst) is zero before - * writing to `item->string` */ -CJSON_PUBLIC(cJSON_bool) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item); -/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */ -CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); -CJSON_PUBLIC(cJSON_bool) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item); - -/* Remove/Detach items from Arrays/Objects. */ -CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item); -CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which); -CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which); -CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string); -CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string); -CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string); -CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string); - -/* Update array items. */ -CJSON_PUBLIC(cJSON_bool) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */ -CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement); -CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem); -CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem); -CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,const char *string,cJSON *newitem); - -/* Duplicate a cJSON item */ -CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse); -/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will - * need to be released. With recurse!=0, it will duplicate any children connected to the item. - * The item->next and ->prev pointers are always zero on return from Duplicate. */ -/* Recursively compare two cJSON items for equality. If either a or b is NULL or invalid, they will be considered unequal. - * case_sensitive determines if object keys are treated case sensitive (1) or case insensitive (0) */ -CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive); - -/* Minify a strings, remove blank characters(such as ' ', '\t', '\r', '\n') from strings. - * The input pointer json cannot point to a read-only address area, such as a string constant, - * but should point to a readable and writable adress area. */ -CJSON_PUBLIC(void) cJSON_Minify(char *json); - -/* Helper functions for creating and adding items to an object at the same time. - * They return the added item or NULL on failure. */ -CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name); -CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name); -CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name); -CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean); -CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number); -CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string); -CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw); -CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name); -CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name); - -/* When assigning an integer value, it needs to be propagated to valuedouble too. */ -#define cJSON_SetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuedouble = (number) : (number)) -/* helper for the cJSON_SetNumberValue macro */ -CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number); -#define cJSON_SetNumberValue(object, number) ((object != NULL) ? cJSON_SetNumberHelper(object, (double)number) : (number)) -/* Change the valuestring of a cJSON_String object, only takes effect when type of object is cJSON_String */ -CJSON_PUBLIC(char*) cJSON_SetValuestring(cJSON *object, const char *valuestring); - -/* Macro for iterating over an array or object */ -#define cJSON_ArrayForEach(element, array) for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next) - -/* malloc/free objects using the malloc/free functions that have been set with cJSON_InitHooks */ -CJSON_PUBLIC(void *) cJSON_malloc(size_t size); -CJSON_PUBLIC(void) cJSON_free(void *object); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/cJSON.lib b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/cJSON.lib deleted file mode 100644 index bc2149a..0000000 Binary files a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/cJSON.lib and /dev/null differ diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_lite.lib b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_lite.lib index 5ce23d2..1d17aa2 100644 Binary files a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_lite.lib and b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_lite.lib differ diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_vendor.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_vendor.h index 73789ed..75103dd 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_vendor.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/alios/upay_lite/upay_vendor.h @@ -21,7 +21,7 @@ //#include "upay_common.h" - +//#define aos_printf(fmt, ...) co_printf(fmt,##__VA_ARGS__); //安全数据API,需要一块单独大小为2.5K的区域存储,要求恢复出厂设置不能被清除、OTA不能被清除、常规烧录升级不能被清除 /** * 安全数据写入,大小为2.5K,需要厂商实现 diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c index 796e1b9..55c836e 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.c @@ -282,16 +282,18 @@ void sp_start_adv(void) } else { - gap_bond_info_t bond_info; + //gap_bond_manager_delete_all(); + gap_bond_info_t bond_info={0}; + co_printf("gap_bond_manager_get_info 1 !!!!!!!!\n"); gap_bond_manager_get_info(0, &bond_info); - + co_printf("gap_bond_manager_get_info 2 bond_info.bond_flag:%d!!!!!!!!\n",bond_info.bond_flag); // Set advertising parameters gap_adv_param_t adv_param; adv_param.adv_mode = GAP_ADV_MODE_UNDIRECT; adv_param.adv_addr_type = GAP_ADDR_TYPE_PRIVATE; adv_param.adv_chnl_map = GAP_ADV_CHAN_ALL; adv_param.adv_filt_policy = GAP_ADV_ALLOW_SCAN_ANY_CON_ANY; - //adv_param.disc_mode = (bond_info.bond_flag == true) ? GAP_ADV_DISC_MODE_NON_DISC : GAP_ADV_DISC_MODE_GEN_DISC; + adv_param.disc_mode = (bond_info.bond_flag == true) ? GAP_ADV_DISC_MODE_NON_DISC : GAP_ADV_DISC_MODE_GEN_DISC; adv_param.adv_intv_min = MSEC_TO_UNITS(30, UNIT_0_625_MS); adv_param.adv_intv_max = MSEC_TO_UNITS(30, UNIT_0_625_MS); @@ -304,7 +306,9 @@ void sp_start_adv(void) memcpy(&scan_rsp_data[2], name, ADV_NAME_BT1_LEN); // Set advertising data & scan response data + co_printf("gap_bond_manager_get_info 3 !!!!!!!!\n"); gap_set_advertising_data(adv_data, (bond_info.bond_flag == true) ? (sizeof(adv_data) - 7) : sizeof(adv_data)); + co_printf("gap_bond_manager_get_info 4 !!!!!!!!\n"); gap_set_advertising_rsp_data(scan_rsp_data, ADV_NAME_BT1_LEN + 2); co_printf("%s\r\n", (bond_info.bond_flag == true) ? "Have bond info" : "Nothing bond info"); } @@ -390,11 +394,11 @@ void simple_peripheral_init(void) co_printf("Local MAC: %02X:%02X:%02X:%02X:%02X:%02X\r\n", addr.addr[5], addr.addr[4], addr.addr[3], addr.addr[2], addr.addr[1], addr.addr[0]); // Adding services to database - dis_gatt_add_service(); - sp_gatt_add_service(); - hid_gatt_add_service(); - ota_gatt_add_service(); - batt_gatt_add_service(); + dis_gatt_add_service();// + sp_gatt_add_service();//¼Òô + hid_gatt_add_service();//hid + ota_gatt_add_service();//Éý¼¶ + batt_gatt_add_service();//µç³Ø } void enable_latency(void) @@ -418,17 +422,42 @@ void disable_latency(void) } smart_latency_cnt_reset(); } +//Ä£ÄâHID·¢ËÍ +void ble_s_hid_data_tx(uint8_t * p_data, uint8_t len) +{ + //ntf_data(m_conn_index, SP_IDX_CHAR1_VALUE, p_data, len); + ntf_data(m_conn_index, SP_IDX_HID_VALUE, p_data, len); + disable_latency(); + conn_sleep_cnt_reset(); +} +#define aliapp_data_tx_one_len 150 +void ble_aliapp_data_tx(uint8_t * p_data, uint16_t len) +{ + //ntf_data(m_conn_index, SP_IDX_CHAR1_VALUE, p_data, len); + int count = len/aliapp_data_tx_one_len; + ntf_data(m_conn_index, SP_IDX_ALIAPP_VALUE, "-$$", strlen("-$$")); + for(int i=0;i<(count);i++) + { + ntf_data(m_conn_index, SP_IDX_ALIAPP_VALUE, p_data+i*aliapp_data_tx_one_len, aliapp_data_tx_one_len); + } + if(len%aliapp_data_tx_one_len) + ntf_data(m_conn_index, SP_IDX_ALIAPP_VALUE, p_data+(count)*aliapp_data_tx_one_len, (len-(count)*aliapp_data_tx_one_len)); + ntf_data(m_conn_index, SP_IDX_ALIAPP_VALUE, "$$-\n", strlen("$$-\n")); + disable_latency(); + conn_sleep_cnt_reset(); +} void ble_app_data_tx(uint8_t * p_data, uint8_t len) { ntf_data(m_conn_index, SP_IDX_CHAR1_VALUE, p_data, len); - + //ntf_data(m_conn_index, SP_IDX_ALIAPP_VALUE, p_data, len); disable_latency(); conn_sleep_cnt_reset(); } void ble_hid_data_tx(uint8_t * p_data, uint8_t len) { + co_printf("ble_hid_data_tx!!!!!!!!!\n"); ntf_data(m_conn_index, SP_IDX_CHAR2_VALUE, p_data, len); disable_latency(); @@ -466,7 +495,11 @@ void hid_mouse_value_send(uint8_t click, int8_t x, int8_t y, int8_t wheel) if (g_device_param.mouse_mode == WORK_2_4G_MODE) ble_hid_data_tx(mouse_buff, sizeof(mouse_buff)); else + { + ble_s_hid_data_tx(mouse_buff, sizeof(mouse_buff)); hid_gatt_report_notify(m_conn_index, 0, mouse_buff, sizeof(mouse_buff)); + } + disable_latency(); conn_sleep_cnt_reset(); @@ -482,7 +515,11 @@ void hid_consumer_value_send(uint16_t key_code) if (g_device_param.mouse_mode == WORK_2_4G_MODE) ble_hid_data_tx(code_buff, sizeof(code_buff)); else + { + ble_s_hid_data_tx(code_buff, sizeof(code_buff)); hid_gatt_report_notify(m_conn_index, 1, code_buff, sizeof(code_buff)); + } + disable_latency(); conn_sleep_cnt_reset(); @@ -493,7 +530,11 @@ void hid_keyboard_value_send(uint8_t * p_keys_buff) if (g_device_param.mouse_mode == WORK_2_4G_MODE) ble_hid_data_tx(p_keys_buff, 8); else + { + ble_s_hid_data_tx(p_keys_buff, 8); hid_gatt_report_notify(m_conn_index, 2, p_keys_buff, 8); + } + disable_latency(); conn_sleep_cnt_reset(); diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.h index 10fe414..920836c 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/ble_simple_peripheral.h @@ -75,6 +75,7 @@ void sp_start_adv(void); uint8_t curr_conn_index_get(void); void enable_latency(void); void disable_latency(void); +void ble_aliapp_data_tx(uint8_t * p_data, uint16_t len); void ble_app_data_tx(uint8_t * p_data,uint8_t len); void ble_hid_data_tx(uint8_t * p_data, uint8_t len); void ble_send_debug(char * str, uint8_t len, uint32_t data); diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/config.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/config.h index d416c0b..bba74c4 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/config.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/config.h @@ -33,14 +33,14 @@ #define HW_VERSION "V1.0" #define FW_VERSION "V1.0.109" -#define ADV_NAME_BT1_LEN 12 -#define ADV_NAME_BT1 "FR_Mouse_BLE" +#define ADV_NAME_BT1_LEN 7 +#define ADV_NAME_BT1 "VMouse" -#define ADV_NAME_2_4G_LEN 11 -#define ADV_NAME_2_4G "FR_Mouse_DG" +#define ADV_NAME_2_4G_LEN 7 +#define ADV_NAME_2_4G "VMouse" -#define ADV_NAME_2_4G_PAIR_LEN 13 -#define ADV_NAME_2_4G_PAIR "FR_Mouse_DG_P" +#define ADV_NAME_2_4G_PAIR_LEN 9 +#define ADV_NAME_2_4G_PAIR "VMouse_P" #define UART_LOG_ENABLE ENABLE // ÓÉÓÚPA3¸´Ó㬴ò¿ªLOG¿ÉÄÜÔì³ÉijЩ¹¦ÄÜÊÜÏÞ #define WDT_ENABLE ENABLE // ¿´ÃŹ· @@ -57,7 +57,7 @@ #define MOUSE_SLEEP_ENABLE ENABLE // ʹÄÜÊó±êÐÝÃß #define MOUSE_ADV_SLEEP_TIMEOUT_SEC (20) // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S -#define MOUSE_CONN_SLEEP_TIMEOUT_SEC (60*10) // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S +#define MOUSE_CONN_SLEEP_TIMEOUT_SEC (60*1) // Êó±ê˯Ãßʱ¼ä£¬µ¥Î»S /* * TYPEDEFS (ÀàÐͶ¨Òå) diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/flash_usage_config.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/flash_usage_config.h index 5b5f1a2..2921b69 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/flash_usage_config.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/flash_usage_config.h @@ -10,7 +10,7 @@ #define _FLASH_USAGE_CONFIG_H /* - * MACROS (ºê¶¨Òå) + * MACROS (????) */ /* @@ -32,6 +32,7 @@ #define JUMP_TABLE_STATIC_KEY_OFFSET 0x7F000 #define BLE_BONDING_INFO_SAVE_ADDR 0x7D000 #define BLE_REMOTE_SERVICE_SAVE_ADDR 0x7E000 + #define ALI_DATA_ADDR 0x6f000 //Óû§ÅäÖÃÇø0x7c000-0x7D000 #define FLASH_MAX_SIZE 0x80000 #endif // FOR_4M_FLASH @@ -45,7 +46,7 @@ /* * uncomment this MACRO if user need protect flash from unexpected erase or write operation */ -#define FLASH_PROTECT +//#define FLASH_PROTECT #endif // _FLASH_USAGE_CONFIG_H diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/gpio.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/gpio.c index 6da1212..3f7284d 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/gpio.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/gpio.c @@ -32,7 +32,8 @@ void user_gpio_init(void) µÍµçƽ£º2.4Gģʽ ¸¡¿Õ/¸ßµçƽ£ºÀ¶ÑÀģʽ */ - if (pmu_get_gpio_value(MODE_DETECT_PIN_PORT, MODE_DETECT_BIT) == 0) + //if (pmu_get_gpio_value(MODE_DETECT_PIN_PORT, MODE_DETECT_BIT) == 0) + if(1) { g_device_param.mouse_mode = WORK_2_4G_MODE; patch_set_2ms(true); diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/inflash.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/inflash.c index de918d7..cc8a931 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/inflash.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/inflash.c @@ -89,6 +89,10 @@ void user_inflash_init(void) { user_data.peer_addr.addr[3] += 1; } + 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.peer_addr); if (user_data_tmp.reset_status == 0xA5A5A5A5) diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/keyscan.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/keyscan.c index 6be8508..cb602b9 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/keyscan.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/keyscan.c @@ -656,6 +656,17 @@ void button_callback(Button_t btn, PressEvent event, uint8_t repeat) { case SINGLE_CLICK: co_printf("mode_button SINGLE_CLICK\r\n"); + if(g_device_param.mouse_mode == WORK_BT1_MODE) + { + g_device_param.mouse_mode = WORK_2_4G_MODE; + patch_set_2ms(true); + co_printf("[gpio]2.4G mode select\r\n"); + } + else + { + g_device_param.mouse_mode = WORK_BT1_MODE; + co_printf("[gpio]BT mode select\r\n"); + } break; case LONG_PRESS_START: diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/proj_main.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/proj_main.c index a2cd186..ccb985d 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/proj_main.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/proj_main.c @@ -40,13 +40,13 @@ #include "ble_simple_peripheral.h" #include "simple_gatt_service.h" - +#include "version.h" /* * LOCAL VARIABLES */ device_param_t g_device_param = { - .sensor_model = UNKNOWN, + .sensor_model = sensor_UNKNOWN, .is_enter_sleep = false, .latency_cnt = SMART_LATENCY_TIMEOUT_SEC, .bat_cnt = BAT_DETECT_TIMEOUT_PER_10SEC, @@ -146,7 +146,7 @@ void user_init_static_memory(void) */ void user_custom_parameters(void) { -#if 0 +#if 1 __jump_table.addr.addr[0] = 0xBD; __jump_table.addr.addr[1] = 0xAD; __jump_table.addr.addr[2] = 0xAA; @@ -183,7 +183,7 @@ void user_custom_parameters(void) */ __attribute__((section("ram_code"))) void user_entry_before_sleep_imp(void) { - uart_putc_noint_no_wait(UART1, 's'); + //uart_putc_noint_no_wait(UART1, 's'); } /********************************************************************* @@ -208,7 +208,7 @@ __attribute__((section("ram_code"))) void user_entry_after_sleep_imp(void) uart_init(UART1, BAUD_RATE_921600); //NVIC_EnableIRQ(UART1_IRQn); - uart_putc_noint_no_wait(UART1, 'w'); + //uart_putc_noint_no_wait(UART1, 'w'); // Do some things here, can be uart print NVIC_EnableIRQ(PMU_IRQn); @@ -281,10 +281,28 @@ bool system_nosleep_evt_get(void) */ #include "bizbus_common.h" #include "upay_vendor.h" +#include "cJSON.h" void user_entry_after_ble_init(void) { co_printf("\r\nFR801X Mouse demo\r\n"); - + char *build_date,*build_time; + get_SDK_compile_date_time(&build_date,&build_time); + co_printf("\r\nbuild_date:%s,build_time%s\r\n",build_date,build_time); + co_printf("\r\nbuild_date:%s,build_time%s\r\n",build_date,build_time); + co_printf("\r\nbuild_date:%s,build_time%s\r\n",build_date,build_time); + #if 1 + char data [100]={0}; + sprintf(data,"hahah:%f",23.014); + co_printf("\r\nsprintf data:%s!!!!!!!!!!!\r\n",data); + // memset(data,'a',sizeof(data)-1); + // flash_erase(ALI_DATA_ADDR,sizeof(data)); + // flash_write(ALI_DATA_ADDR,sizeof(data),(uint8_t *)data); + // memset(data,'b',sizeof(data)); + co_delay_100us(10 * 30); + flash_read(ALI_DATA_ADDR,sizeof(data),(uint8_t *)data); + co_printf("\r\ndata:%s\r\n",data); + #endif + cJSON_InitHooks(NULL); user_timer_init(); user_led_init(); user_gpio_init(); @@ -299,8 +317,19 @@ void user_entry_after_ble_init(void) wdt_init(WDT_ACT_CALL_IRQ, 10); wdt_start(); #endif - bizbus_init_para_t para; + bizbus_init_para_t para = {0};; + strcpy((char *)para.pk_str,"a1c7Ojs6HMR"); + strcpy((char *)para.ps_str,"TxPFIJ5F1kwa0zO3"); + strcpy((char *)para.version_str, "HAAS-3AX-"); + strcpy((char *)para.vendor_str, "AAA-BBB-"); + strcpy((char *)para.id2_pk, "12345678901"); + para.dn_without_prefix = 1; //新接入客户统一传1 + mac_addr_t addr; + gap_address_get(&addr); + sprintf((char *)para.mac_str,"%02X%02X%02X%02X%02X%02X", addr.addr[5], addr.addr[4], addr.addr[3], addr.addr[2], addr.addr[1], addr.addr[0]); + co_printf("bizbus_init:mac:%s\n",para.mac_str); bizbus_init(¶); + // Application layer initialization, can included bond manager init, // advertising parameters init, scanning parameter init, GATT service adding, etc. simple_peripheral_init(); diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.c index b812481..7c10860 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.c @@ -11,8 +11,15 @@ #undef LOG_LEVEL_MODULE #define LOG_LEVEL_MODULE (LOG_LEVEL_INFO) -#define sensor_delay() __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); - +//#define sensor_delay() __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); +void sensor_delay(void) +{ + int count = 30; + while(count--) + { + __nop(); + } +} #define PRODUCT_ID1_REG 0x00 #define PRODUCT_ID2_REG 0x01 #define MOTION_STATUS_REG 0x02 @@ -46,12 +53,12 @@ const char * sensor_type_str[SENSOR_MAX] = const uint8_t SENSOR_PID_TABLE[SENSOR_MAX][2] = { - {0}, // UNKNOWN - {0x60,0x60}, // PAW3205 + {0xff}, // UNKNOWN + {0x31, 0x00}, // PAW3205 {0x30, 0x02}, // PAW3212 - {0}, // PAW3065 - {0}, // PAW3065XY - {0}, // KA8 + {0x31, 0x04}, // PAW3065 + {0xff}, // PAW3065XY + {0xff}, // KA8 {0x58, 0x59}, // KA8G2 {0x58, 0x57}, // KA5857 }; @@ -63,7 +70,7 @@ Target CPI = SENSOR_DPI_TABLE[x][2] * CPI_X const uint8_t SENSOR_DPI_TABLE[SENSOR_MAX][3] = { {0}, // UNKNOWN - {0}, // PAW3205 + {16, 63, 38}, // PAW3205 {16, 63, 38}, // PAW3212 {0}, // PAW3065 {0}, // PAW3065XY @@ -98,6 +105,9 @@ static void sensor_sync_clk(void) static uint8_t sensor_read_byte(void) { uint8_t data; + // sensor_sdio_set_output(); + // sensor_sdio_cpu_set(); + // __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); sensor_sdio_set_input(); for (uint8_t i = 0; i < 8; i++) { @@ -129,6 +139,8 @@ static uint8_t sensor_read_byte(void) static void sensor_write_byte(uint8_t data) { sensor_sdio_set_output(); + // sensor_sdio_cpu_set(); + // __nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop();__nop(); for (uint8_t i = 0; i < 8; i++) { if (data & 0x80) @@ -157,6 +169,7 @@ static void sensor_write_byte(uint8_t data) static void sensor_write_reg(uint8_t reg_addr, uint8_t data) { sensor_write_byte(reg_addr | 0x80); + co_delay_10us(1); sensor_write_byte(data); } @@ -170,6 +183,7 @@ static void sensor_write_reg(uint8_t reg_addr, uint8_t data) static void sensor_read_reg(uint8_t reg_addr, uint8_t* p_data) { sensor_write_byte(reg_addr); + co_delay_10us(1); *p_data = sensor_read_byte(); } @@ -220,8 +234,24 @@ void sensor_gpio_pmu_init(void) ************************************************************************************************************************/ void snesor_dpi_init(uint16_t dpi) { - sensor_write_reg(CPI_X_REG, dpi/SENSOR_DPI_TABLE[g_device_param.sensor_model][2]); - sensor_write_reg(CPI_Y_REG, dpi/SENSOR_DPI_TABLE[g_device_param.sensor_model][2]); + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x09,0x5a); //Unlock WP + + } + + sensor_write_reg(CPI_X_REG,0x14);// dpi/SENSOR_DPI_TABLE[g_device_param.sensor_model][2]); + sensor_write_reg(CPI_Y_REG, 0xe3);//dpi/SENSOR_DPI_TABLE[g_device_param.sensor_model][2]); + uint8_t reg_val = 0; + sensor_read_reg(CPI_X_REG, ®_val); + LOG_INFO("[sensosor]snesor_dpi_init:[%02x]: 0x%x\r\n", CPI_X_REG,reg_val); + sensor_read_reg(CPI_Y_REG, ®_val); + LOG_INFO("[sensosor]snesor_dpi_init:[%02x]: 0x%x\r\n", CPI_Y_REG,reg_val); + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x09,0x00); //Lock WP + } + LOG_INFO("[sensosor]dpi set:%d\r\n", dpi); #if 0 @@ -232,7 +262,103 @@ void snesor_dpi_init(uint16_t dpi) LOG_INFO("[sensosor]y dpi_tmp:%d\r\n", tmp*SENSOR_DPI_TABLE[g_device_param.sensor_model][2]); #endif } - +void reg_init(void) +{ + uint8_t reg_val = 0; + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x09,0x5a); //Unlock WP + + sensor_write_reg(0x28,0xb4); + sensor_read_reg(0x28, ®_val); + LOG_INFO("[sensosor]reg_init:[0x28]: 0x%x\r\n", reg_val); + sensor_write_reg(0x29,0x46); + sensor_read_reg(0x29, ®_val); + LOG_INFO("[sensosor]reg_init:[0x29]: 0x%x\r\n", reg_val); + sensor_write_reg(0x2a,0x96); + sensor_read_reg(0x2a, ®_val); + LOG_INFO("[sensosor]reg_init:[0x2a]: 0x%x\r\n", reg_val); + sensor_write_reg(0x2b,0x8c); + sensor_read_reg(0x2b, ®_val); + LOG_INFO("[sensosor]reg_init:[0x2b]: 0x%x\r\n", reg_val); + sensor_write_reg(0x2c,0x6e); + sensor_read_reg(0x2c, ®_val); + LOG_INFO("[sensosor]reg_init:[0x2c]: 0x%x\r\n", reg_val); + sensor_write_reg(0x2d,0x64); + sensor_read_reg(0x2d, ®_val); + LOG_INFO("[sensosor]reg_init:[0x2d]: 0x%x\r\n", reg_val); + sensor_write_reg(0x38,0x5f); + sensor_read_reg(0x38, ®_val); + LOG_INFO("[sensosor]reg_init:[0x38]: 0x%x\r\n", reg_val); + sensor_write_reg(0x39,0x0f); + sensor_read_reg(0x39, ®_val); + LOG_INFO("[sensosor]reg_init:[0x39]: 0x%x\r\n", reg_val); + sensor_write_reg(0x3a,0x32); + sensor_read_reg(0x3a, ®_val); + LOG_INFO("[sensosor]reg_init:[0x3a]: 0x%x\r\n", reg_val); + sensor_write_reg(0x3b,0x47); + sensor_read_reg(0x3b, ®_val); + LOG_INFO("[sensosor]reg_init:[0x3b]: 0x%x\r\n", reg_val); + sensor_write_reg(0x42,0x10); + sensor_read_reg(0x42, ®_val); + LOG_INFO("[sensosor]reg_init:[0x42]: 0x%x\r\n", reg_val); + sensor_write_reg(0x54,0x2e); + sensor_read_reg(0x54, ®_val); + LOG_INFO("[sensosor]reg_init:[0x54]: 0x%x\r\n", reg_val); + sensor_write_reg(0x55,0xf2); + sensor_read_reg(0x55, ®_val); + LOG_INFO("[sensosor]reg_init:[0x55]: 0x%x\r\n", reg_val); + sensor_write_reg(0x61,0xf4); + sensor_read_reg(0x61, ®_val); + LOG_INFO("[sensosor]reg_init:[0x61]: 0x%x\r\n", reg_val); + sensor_write_reg(0x63,0x70); + sensor_read_reg(0x63, ®_val); + LOG_INFO("[sensosor]reg_init:[0x63]: 0x%x\r\n", reg_val); + sensor_write_reg(0x75,0x52); + sensor_read_reg(0x75, ®_val); + LOG_INFO("[sensosor]reg_init:[0x75]: 0x%x\r\n", reg_val); + sensor_write_reg(0x76,0x41); + sensor_read_reg(0x76, ®_val); + LOG_INFO("[sensosor]reg_init:[0x76]: 0x%x\r\n", reg_val); + sensor_write_reg(0x77,0xed); + sensor_read_reg(0x77, ®_val); + LOG_INFO("[sensosor]reg_init:[0x77]: 0x%x\r\n", reg_val); + sensor_write_reg(0x78,0x23); + sensor_read_reg(0x78, ®_val); + LOG_INFO("[sensosor]reg_init:[0x78]: 0x%x\r\n", reg_val); + sensor_write_reg(0x79,0x46); + sensor_read_reg(0x79, ®_val); + LOG_INFO("[sensosor]reg_init:[0x79]: 0x%x\r\n", reg_val); + sensor_write_reg(0x7a,0xe5); + sensor_read_reg(0x7a, ®_val); + LOG_INFO("[sensosor]reg_init:[0x7a]: 0x%x\r\n", reg_val); + sensor_write_reg(0x7c,0x48); + sensor_read_reg(0x7c, ®_val); + LOG_INFO("[sensosor]reg_init:[0x7c]: 0x%x\r\n", reg_val); + sensor_write_reg(0x7d,0x80); + sensor_read_reg(0x7d, ®_val); + LOG_INFO("[sensosor]reg_init:[0x7d]: 0x%x\r\n", reg_val); + sensor_write_reg(0x7e,0x77); + sensor_read_reg(0x7e, ®_val); + LOG_INFO("[sensosor]reg_init:[0x7e]: 0x%x\r\n", reg_val); + sensor_write_reg(0x1B,0x35); + // check reg value + sensor_read_reg(0x1B, ®_val); + LOG_INFO("[sensosor]reg_init:[0x1B]: 0x%x\r\n", reg_val); + // sensor_write_reg(0x7f,0x01); + // sensor_write_reg(0x0B,0x00); + // sensor_write_reg(0x7f,0x00); + sensor_write_byte(0xff); + sensor_write_byte(0x01); + sensor_write_reg(0x0B,0x00); + sensor_write_byte(0xff); + sensor_write_byte(0x00); + + sensor_write_reg(0x09,0x00); //Lock WP + //sensor_poweron(); + } + +} /************************************************************************************************************************ * º¯ÊýÃû³Æ: sensor_init() * ¹¦ÄÜ˵Ã÷: ³õʼ»¯sensor @@ -256,23 +382,45 @@ uint8_t user_sensor_init(void) sensor_sclk_cpu_set(); sensor_sdio_cpu_set(); - sensor_read_reg(PRODUCT_ID1_REG, &sensor_id1); - sensor_read_reg(PRODUCT_ID2_REG, &sensor_id2); - LOG_INFO("[sensosor]id1: 0x%02x, id2: 0x%02x\r\n", sensor_id1, sensor_id2); - - for (uint8_t i = 0; i < SENSOR_MAX; i++) + + + // if(g_device_param.sensor_model ==PAW3205) + // { + // sensor_write_reg(0x09,0x5a); //Unlock WP + + // } + while(1) { - if (sensor_id1 == SENSOR_PID_TABLE[i][0] && sensor_id2 == SENSOR_PID_TABLE[i][1]) - { - g_device_param.sensor_model = i; - LOG_INFO("[sensosor]model: %s\r\n", sensor_type_str[g_device_param.sensor_model]); - snesor_dpi_init(user_data.dpi); - return 0; - } + + sensor_read_reg(PRODUCT_ID1_REG, &sensor_id1); + sensor_read_reg(PRODUCT_ID2_REG, &sensor_id2); + LOG_INFO("[sensosor]id1: 0x%02x, id2: 0x%02x\r\n", sensor_id1, sensor_id2); + for (uint8_t i = 0; i < SENSOR_MAX; i++) + { + if (sensor_id1 == SENSOR_PID_TABLE[i][0] && sensor_id2 == SENSOR_PID_TABLE[i][1]) + { + g_device_param.sensor_model = i; + LOG_INFO("[sensosor]model: %s\r\n", sensor_type_str[g_device_param.sensor_model]); + + // sensor_write_reg(0x26,0xb4); + // uint8_t data; + // sensor_read_reg(0x26, &data); + //LOG_INFO("[sensosor][0x26]: %02x\r\n", data); + //reg_init(); + snesor_dpi_init(user_data.dpi); + sensor_poweron(); + //while(1); + return 0; + } + } + sensor_sync_clk(); + co_delay_10us(5); + LOG_INFO("[sensosor]type unknown!!!!\r\n"); + } + //sensor_write_reg(0x09,0x00); //Lock WP - LOG_INFO("[sensosor]type unknown!!!!\r\n"); - while(1); + } /************************************************************************************************************************ @@ -282,17 +430,64 @@ uint8_t user_sensor_init(void) * Êä ³ö: ÎÞ * ×¢ÒâÊÂÏî: ÎÞ ************************************************************************************************************************/ +uint8_t SW_CPI; //CPI setting temp +uint8_t CPI_MAX; //Max value of cpi[2:0] +uint8_t CPI_Dft; //For THREE level CPI switch +uint8_t CPI_Low; +uint8_t CPI_Hi; +uint8_t CPI_3200; void sensor_poweron(void) { uint8_t reg_val = 0; - + LOG_INFO("[sensosor]%s\r\n", __func__); - + SW_CPI = 0x02; //1000 cpi + CPI_MAX = 0x04; //1600 cpi + + CPI_Dft = SW_CPI; //For THREE level, Default CPI(1000) + CPI_Low = 0x01; //For THREE level, LOW CPI(800) + CPI_Hi = 0x04; //For THREE level, High CPI(1600) + + CPI_3200= 0; + + SW_CPI += 0x01; + + #if 1 //THREE level CPI switch + if(SW_CPI > CPI_Hi) + SW_CPI = CPI_Low; + else if(SW_CPI > CPI_Dft) + SW_CPI = CPI_Hi; + else + SW_CPI = CPI_Dft; + #endif + + if(SW_CPI > CPI_MAX) + { + SW_CPI = 0x00; + } + reg_val = SW_CPI; sensor_gpio_cpu_init(); - + sensor_sclk_cpu_set(); + sensor_sdio_cpu_set(); + uint8_t data = 0; + sensor_read_reg(PRODUCT_ID1_REG,&data); + //co_delay_10us(1); + while( data != SENSOR_PID_TABLE[g_device_param.sensor_model][0]) + { + sensor_read_reg(PRODUCT_ID1_REG,&data); + co_delay_10us(1); + LOG_INFO("[sensosor]sensor_poweron:read ID error:!!!\n"); + sensor_sync_clk(); + //resync(); + } + co_delay_10us(5); + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x09,0x5a); //Unlock WP + } for (uint8_t i = 0; i < 32; i++) { - reg_val = 0x17; + reg_val = 0x02; LOG_INFO("[sensosor]cfg set reg_val: 0x%x\r\n", reg_val); sensor_write_reg(CONFIGURATION_REG, reg_val); co_delay_100us(10 * 3); @@ -301,7 +496,7 @@ void sensor_poweron(void) sensor_read_reg(CONFIGURATION_REG, ®_val); LOG_INFO("[sensosor]cfg curr: 0x%x\r\n", reg_val); - if (reg_val != 0x17) + if (reg_val != 0x02) { sensor_sync_clk(); } @@ -311,6 +506,12 @@ void sensor_poweron(void) break; } } + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x4B, 0x1B); + sensor_write_reg(0x09,0x00); //Lock WP + } + } /************************************************************************************************************************ @@ -323,19 +524,59 @@ void sensor_poweron(void) void sensor_powerdown(void) { uint8_t reg_val = 0; - + LOG_INFO("[sensosor]%s\r\n", __func__); sensor_gpio_cpu_init(); sensor_sclk_cpu_set(); sensor_sdio_cpu_clr(); - + SW_CPI = 0x02; //1000 cpi + CPI_MAX = 0x04; //1600 cpi + + CPI_Dft = SW_CPI; //For THREE level, Default CPI(1000) + CPI_Low = 0x01; //For THREE level, LOW CPI(800) + CPI_Hi = 0x04; //For THREE level, High CPI(1600) + + CPI_3200= 0; + + SW_CPI += 0x01; + + #if 1 //THREE level CPI switch + if(SW_CPI > CPI_Hi) + SW_CPI = CPI_Low; + else if(SW_CPI > CPI_Dft) + SW_CPI = CPI_Hi; + else + SW_CPI = CPI_Dft; + #endif + + if(SW_CPI > CPI_MAX) + { + SW_CPI = 0x00; + } + reg_val = SW_CPI; + uint8_t data = 0; + sensor_read_reg(PRODUCT_ID1_REG,&data); + //co_delay_10us(1); + while( data != SENSOR_PID_TABLE[g_device_param.sensor_model][0]) + { + sensor_read_reg(PRODUCT_ID1_REG,&data); + co_delay_10us(1); + LOG_INFO("[sensosor]sensor_powerdown:read ID error:!!!\n"); + sensor_sync_clk(); + //resync(); + } + co_delay_10us(5); + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x09,0x5a); //Unlock WP + } for (uint8_t i = 0; i < 32; i++) { sensor_read_reg(CONFIGURATION_REG, ®_val); LOG_INFO("[sensosor]cfg prev reg_val: 0x%x\r\n", reg_val); - reg_val = 0x1f; + reg_val = 0x0A; LOG_INFO("[sensosor]cfg set reg_val: 0x%x\r\n", reg_val); sensor_write_reg(CONFIGURATION_REG, reg_val); @@ -343,7 +584,7 @@ void sensor_powerdown(void) sensor_read_reg(CONFIGURATION_REG, ®_val); LOG_INFO("[sensosor]cfg curr reg_val: 0x%x\r\n", reg_val); - if (reg_val != 0x1f) + if (reg_val != 0x0A) { sensor_sync_clk(); } @@ -353,8 +594,14 @@ void sensor_powerdown(void) break; } } + if(g_device_param.sensor_model ==PAW3205) + { + sensor_write_reg(0x4B, 0x13); + sensor_write_reg(0x09,0x5a); //Unlock WP + } } + /************************************************************************************************************************ * º¯ÊýÃû³Æ: sensor_get_motion() * ¹¦ÄÜ˵Ã÷: »ñÈ¡sensorÒÆ¶¯ @@ -365,28 +612,60 @@ void sensor_powerdown(void) uint8_t sensor_get_motion(int8_t * p_x_delta, int8_t * p_y_delta) { #if 1 - uint8_t data = 0; - + uint8_t data = 0,t_motion_x = 0,t_motion_y = 0; + static uint8_t motion_x = 0,motion_y = 0; + + // if(g_device_param.sensor_model ==PAW3205) + // { + // sensor_write_reg(0x09,0x5a); //Unlock WP + // } + + + sensor_read_reg(PRODUCT_ID1_REG,&data); + //co_delay_10us(1); + while( data != SENSOR_PID_TABLE[g_device_param.sensor_model][0]) + { + sensor_read_reg(PRODUCT_ID1_REG,&data); + co_delay_10us(1); + LOG_INFO("[sensosor]sensor_get_motion:read ID error:!!!\n"); + sensor_sync_clk(); + //resync(); + } + //LOG_INFO("[sensosor]sensor_get_motion:read ID :0x%x ",data); sensor_read_reg(MOTION_STATUS_REG, &data); - + //LOG_INFO("[%02x]:0x%02x,",MOTION_STATUS_REG,data); + //LOG_INFO("[sensosor]sensor_get_motion: MOTION_STATUS_REG:0x%02x\n", data); if (data & 0x80) { + //LOG_INFO("[%02x]:0x%02x,",MOTION_STATUS_REG,data); sensor_read_reg(DELTA_X_REG, &data); + //LOG_INFO("[%02x]:0x%02x,",DELTA_X_REG,data); /* XÖá·½ÏòÑ¡Ôñ¼°Î¢µ÷ */ #if 0 - * p_x_delta = (data ^ 0xff) + 1; + t_motion_x = (data ^ 0xff) + 1; #else - *p_x_delta = -(data ^ 0xff) + 1; + t_motion_x = -(data ^ 0xff) + 1; #endif sensor_read_reg(DELTA_Y_REG, &data); + //LOG_INFO("[%02x]:0x%02x \n",DELTA_Y_REG,data); /* YÖá·½ÏòÑ¡Ôñ¼°Î¢µ÷ */ #if 1 - * p_y_delta = (data ^ 0xff); + t_motion_y = (data ^ 0xff); #else - *p_y_delta = -(data ^ 0xff) - 1; + t_motion_y = -(data ^ 0xff) - 1; #endif - + if(motion_x == t_motion_x && motion_y == t_motion_y) + { + //LOG_INFO("[sensosor]sensor_get_motion:return1: x:%d,y:%d data:%d\n",t_motion_x, t_motion_y,data); + return 1; + } + + motion_x = t_motion_x; + motion_y = t_motion_y; + *p_x_delta = t_motion_x; + *p_y_delta = t_motion_y; + //LOG_INFO("[sensosor]sensor_get_motion: x:%d,y:%d\n",motion_x, motion_y); return 0; } diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.h index 965f68b..d93f1f7 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/sensor.h @@ -44,16 +44,27 @@ * CONSTANTS (³£Á¿¶¨Òå) */ // User Definition -#define UNKNOWN 0x00 -#define PAW3205 0x01 -#define PAW3212 0x02 -#define PAW3065 0x03 -#define PAW3065XY 0x04 -#define KA8 0x05 -#define KA8G2 0x06 -#define KA5857 0x07 -#define SENSOR_MAX 0x08 - +// #define UNKNOWN 0x00 +// #define PAW3205 0x01 +// #define PAW3212 0x02 +// #define PAW3065 0x03 +// #define PAW3065XY 0x04 +// #define KA8 0x05 +// #define KA8G2 0x06 +// #define KA5857 0x07 +// #define SENSOR_MAX 0x08 + +enum sensor_type { + sensor_UNKNOWN, + PAW3205, + PAW3212, + PAW3065, + PAW3065XY, + KA8, + KA8G2, + KA5857, + SENSOR_MAX, +}; /* * GLOBAL VARIABLES (È«¾Ö±äÁ¿) */ diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.c b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.c index de48eda..f81a0ef 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.c +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.c @@ -16,7 +16,9 @@ #include "os_timer.h" #include "co_printf.h" - +#include "bizbus_common.h" +#include "os_mem.h" +#include "cJSON.h" uint16_t user_task_id; hid_mouse_param_t hid_mouse_param; @@ -53,7 +55,12 @@ static int user_task_func(os_event_t *param) case USER_EVT_BLE_RX: ble_rx_data_cope(param->param, param->param_len); break; - + case USER_EVT_ALIAPP_RX: + co_printf("\nUSER_EVT_ALIAPP_RX:%s\n",param->param); + co_printf("\nUSER_EVT_ALIAPP_RX:free_heap_size%d\n",os_get_free_heap_size()); + + bizbus_recv(param->param, param->param_len); + break; case USER_EVT_ENTER_SLEEP: g_device_param.is_enter_sleep = true; sensor_powerdown(); diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.h b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.h index 6f370a2..7bd08cc 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.h +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/code/user_task.h @@ -14,6 +14,7 @@ enum user_event_t { USER_EVT_SENSOR_TX, USER_EVT_QDEC_TX, USER_EVT_BLE_RX, + USER_EVT_ALIAPP_RX, USER_EVT_ENTER_SLEEP, USER_EVT_EXIT_SLEEP, }; diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/Output/config.json b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/Output/config.json index 16a974f..f127a34 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/Output/config.json +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/Output/config.json @@ -1 +1 @@ -{"write_times": 0, "uart_baud": "921600", "uart_port": "COM23", "boot_mode": true} \ No newline at end of file +{"write_times": 104, "uart_baud": "921600", "boot_mode": true, "uart_port": "COM93"} \ No newline at end of file diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvguix.Administrator b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvguix.Administrator index 0485eef..aa264ab 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvguix.Administrator +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvguix.Administrator @@ -1,54 +1,64 @@ - -5.1 + -6.1
### uVision Project, (C) Keil Software
+ + + + 38003 Registers - 115 275 + 140 90 346 Code Coverage - 850 160 + 1010 160 204 Performance Analyzer - 1010 + 1170 + + 35141 + Event Statistics + + 200 50 700 + 1506 Symbols - 133 133 133 + 80 80 80 1936 Watch 1 - 133 133 133 + 200 133 133 1937 Watch 2 - 133 133 133 + 200 133 133 1935 Call Stack + Locals - 133 133 133 + 200 133 133 2506 @@ -56,8 +66,16 @@ 75 135 130 95 70 230 200 150 + + 466 + Source Browser + 500 + 300 + + + 1 @@ -83,17 +101,17 @@ -1 - 222 - 112 - 1477 - 1017 + 514 + 86 + 1585 + 1428 0 - 304 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000067443A5C312E776F726B5C362ECAF3B1EA5C764D6F7573655C322E636F64655C312E73646B5C6578616D706C65735C6E6F6E655F65766D5C626C655F766F6963655F6D6F7573655C636F64655C616C696F735C757061795F6C6974655C616C696F735F6170692E63000000000B616C696F735F6170692E63000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000000C0200004C010000BD05000079020000 + 60 + 010000000400000001000000010000000100000001000000000000000200000000000000010000000100000000000000280000002800000000000000 @@ -112,11 +130,11 @@ 0 16 - 940100004F00000090050000DD000000 + F40000004F00000090050000DD000000 16 - 4D0100004C02000049050000DA020000 + 560000006D0000001E030000FB000000 @@ -132,11 +150,11 @@ 0 16 - 03000000660000008D01000063010000 + 0300000066000000ED000000AD020000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -152,11 +170,11 @@ 0 16 - 03000000660000008D01000063010000 + 0300000066000000ED000000AD020000 16 - D8000000EF000000F40100002B030000 + 560000006D00000072010000A9020000 @@ -172,11 +190,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 000000002902000090050000B7020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -192,11 +210,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -212,11 +230,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -232,11 +250,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -252,11 +270,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D050000FF000000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -272,11 +290,11 @@ 0 16 - 97010000660000008D050000C4000000 + F7000000660000008D050000C4000000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -296,7 +314,7 @@ 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -312,11 +330,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -332,11 +350,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -352,11 +370,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -372,11 +390,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -392,11 +410,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -412,11 +430,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -432,11 +450,11 @@ 0 16 - 03000000660000008D01000063010000 + 0300000066000000ED000000AD020000 16 - D8000000EF000000F40100002B030000 + 560000006D00000072010000A9020000 @@ -452,11 +470,11 @@ 0 16 - 03000000660000008D01000063010000 + 0300000066000000ED000000AD020000 16 - D8000000EF000000F40100002B030000 + 560000006D00000072010000A9020000 @@ -472,11 +490,11 @@ 0 16 - 000000009401000045050000E1020000 + 00000000DE020000CB05000058030000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -496,7 +514,7 @@ 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -512,11 +530,11 @@ 0 16 - 0300000097010000C805000061020000 + 03000000E10200008D0500003F030000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -532,11 +550,11 @@ 0 16 - 97010000660000008D050000C4000000 + F40000006300000090050000DD000000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -552,11 +570,11 @@ 0 16 - 97010000660000008D050000C4000000 + F7000000660000008D050000C4000000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -592,11 +610,11 @@ 0 16 - 03040000660000008D0500000C020000 + A0040000630000009005000025020000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -612,11 +630,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 000000002902000090050000A3020000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -632,11 +650,11 @@ 0 16 - 97010000660000008D050000C4000000 + F7000000660000008D050000C4000000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -652,11 +670,31 @@ 0 16 - 97010000660000008D050000C4000000 + F7000000660000008D050000C4000000 + + + 16 + 560000006D0000001E030000FB000000 + + + + 35141 + 35141 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F40000006300000090050000DD000000 16 - D8000000EF000000A00300007D010000 + 560000006D0000004601000036010000 @@ -672,11 +710,11 @@ 0 16 - 97010000660000008D050000C4000000 + F7000000660000008D050000C4000000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -692,11 +730,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -712,11 +750,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -732,11 +770,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -752,11 +790,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -772,11 +810,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -792,11 +830,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -812,11 +850,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -832,11 +870,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -852,11 +890,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -872,11 +910,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -892,11 +930,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -912,11 +950,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -932,11 +970,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -952,11 +990,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -972,11 +1010,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -992,11 +1030,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1012,11 +1050,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1032,11 +1070,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1052,11 +1090,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1072,11 +1110,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1092,11 +1130,11 @@ 0 16 - 03040000660000008D0500000C020000 + A3040000660000008D0500007A010000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1112,11 +1150,11 @@ 0 16 - 03000000660000008D0100007F020000 + 0300000066000000ED0000009E020000 16 - D8000000EF000000F40100002B030000 + 560000006D00000072010000A9020000 @@ -1132,11 +1170,11 @@ 0 16 - 0300000097010000C805000061020000 + 00000000DE0200009005000058030000 16 - D8000000EF000000A00300007D010000 + 560000006D0000001E030000FB000000 @@ -1152,11 +1190,11 @@ 0 16 - 0300000097010000C805000061020000 + 03000000E10200008D0500003F030000 16 - D8000000EF000000F40100002B030000 + 560000006D00000072010000A9020000 @@ -1172,11 +1210,11 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 @@ -1192,11 +1230,471 @@ 0 16 - 030000002C0200008D0500009E020000 + 030000002C0200008D0500008A020000 16 - D8000000EF000000680200007F020000 + 560000006D0000004601000036010000 + + + + 463 + 463 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E10200008D0500003F030000 + + + 16 + 560000006D00000072010000A9020000 + + + + 466 + 466 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 03000000E10200008D0500003F030000 + + + 16 + 560000006D00000072010000A9020000 + + + + 470 + 470 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + F7000000660000008D050000C4000000 + + + 16 + 560000006D0000001E030000FB000000 + + + + 50000 + 50000 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50001 + 50001 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50002 + 50002 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50003 + 50003 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50004 + 50004 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50005 + 50005 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50006 + 50006 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50007 + 50007 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50008 + 50008 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50009 + 50009 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50010 + 50010 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50011 + 50011 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50012 + 50012 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50013 + 50013 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50014 + 50014 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50015 + 50015 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50016 + 50016 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50017 + 50017 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50018 + 50018 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 + + + + 50019 + 50019 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + A3040000660000008D0500007A010000 + + + 16 + 560000006D0000004601000036010000 @@ -1206,13 +1704,13 @@ 0 0 0 - 940 + 32767 0 8192 0 16 - 0000000000000000B70300001C000000 + 0000000000000000D10300001C000000 16 @@ -1232,7 +1730,7 @@ 0 16 - 00000000E102000045050000F4020000 + 0000000058030000CB0500006B030000 16 @@ -1246,13 +1744,13 @@ 0 0 0 - 463 + 32767 0 8192 1 16 - 000000001C000000DA01000038000000 + 000000001C000000E701000038000000 16 @@ -1266,7 +1764,7 @@ 0 0 0 - 612 + 32767 0 8192 2 @@ -1279,16 +1777,36 @@ 0A0000000A0000006E0000006E000000 + + 824 + 824 + 0 + 0 + 0 + 0 + 32767 + 0 + 4096 + 0 + + 16 + 030000002C0200008D0500008A020000 + + + 16 + 560000006D0000004601000036010000 + + - 2619 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF94010000DD00000090050000E1000000000000000100000004000000010000000000000000000000FFFFFFFF06000000CB00000057010000CC000000F08B00005A01000079070000FFFF02000B004354616262656450616E6500200000000000004D0100004C02000049050000DA020000940100004F00000090050000DD0000000000000040280046060000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFFFC0300004F0000000004000025020000000000000200000004000000010000000000000000000000FFFFFFFF17000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000001800040000000000000B90300004C0200004905000022040000000400004F00000090050000250200000000000040410046170000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF900100004F000000940100007C010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000B9FFFFFF4C0200004901000095040000000000004F000000900100007C0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0E0000008F070000930700009407000095070000960700009007000091070000B5010000B8010000B9050000BA050000BB050000BC050000CB09000001800080000000000000B9FFFFFF1204000049050000B4040000000000001502000090050000B702000000000000404100460E0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000007C01000045050000800100000100000001000010040000000100000071FEFFFFF8000000FFFFFFFF04000000C5000000C7000000B40100007794000001800080000001000000B9FFFFFF990400008405000093050000000000008001000045050000E10200000000000040820056040000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 3312 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DD00000090050000E1000000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000560000006D0000001E030000FB000000F40000004F00000090050000DD0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000025020000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000560000006D0000004601000036010000A00400004F000000900500002502000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F4000000C6020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000560000006D0000004601000036010000000000004F000000F0000000C60200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000011020000900500001502000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000560000006D0000004601000036010000000000001502000090050000B702000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000015020000CC020000B702000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF00000000C6020000CB050000CA020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000560000006D0000001E030000FB00000000000000CA020000CB050000580300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2002 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000020000001500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E4C010000020001001A0000000F50726F6A6563742057696E646F7773000000000000000000000000010000000100000000000000000000000100000008002880DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002880DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002880E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002880E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000288018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000028800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002880D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002880E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65AC030000 + 2951 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000400020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000004000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000004000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000400000000000000000000000000000000000001000000010000009600000002002050000000000F696E7465726E616C5F6D616C6C6F639600000000000000140012646563696D616C5F706F696E745F7365656E0D75617274315F6973725F72616D0F696E7465726E616C5F6D616C6C6F630648415F42554618737065616B65725F676174745F6164645F736572766963650D6F735F74696D65725F696E69740D706D755F6973725F72616D5F430E7379735F74696D65725F696E69740B636F6E6669675F666C616717534C5F5343374132305F4932635F5370695F5772697465117472616E73706172656E745F73746172740D6170705F61745F726563765F630D75617274305F6973725F72616D0A756172745F706172616D15766353706F72744D6F74696F6E416C676F496E69741273656E645F6872735F646174615F666C61670D554152545F73656E645F62756616766353706F72744D6F74696F6E43616C63756C61746509636F5F7072696E74660D7274635F6765745F76616C75650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000004001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000 1423 @@ -1303,8 +1821,8 @@ 59399 Build - 692 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E00000000000000000000000000000000010000000100000001809E8A0000000000001F0000000000000000000000000000000001000000010000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000F626C655F766F6963655F6D6F757365960000000000000001000F626C655F766F6963655F6D6F757365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64CF010000 + 990 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050000000000F626C655F766F6963655F6D6F757365960000000000000001000F626C655F766F6963655F6D6F757365000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000 583 @@ -1319,8 +1837,8 @@ 59400 Debug - 2220 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000002001380D88B000000000000310000000757617463682031000000000000000000000000010000000100000000000000000000000100000000001380D98B0000000000003100000007576174636820320000000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000084D656D6F72792031000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000084D656D6F72792032000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000084D656D6F72792033000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000084D656D6F727920340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000755415254202331000000000000000000000000010000000100000000000000000000000100000000001380940700000000000033000000075541525420233200000000000000000000000001000000010000000000000000000000010000000000138095070000000000003300000007554152542023330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000000E49544D2F525441205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380658A000000000000340000000E4C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E00000014506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000D436F646520436F76657261676500000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000138001890000000000003600000007546F6F6C626F7800000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 2373 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000 898 @@ -1333,28 +1851,10 @@ 0 - 1707 - 1067 + 1920 + 1080 - - 1 - 0 - - 100 - 0 - - ..\code\alios\upay_lite\alios_api.c - 12 - 76 - 86 - 1 - - 0 - - - -
diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvoptx b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvoptx index 8c168a3..d35d229 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvoptx +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvoptx @@ -100,6 +100,9 @@ 1 0 0 + 1 + 0 + 0 6 @@ -157,6 +160,17 @@ + 0 + 0 + 0 + + + + + + + + @@ -171,7 +185,6 @@ 1 1 0 - 1 0 0 ..\code\proj_main.c @@ -184,7 +197,6 @@ 2 5 0 - 1 0 0 ..\code\config.h @@ -197,7 +209,6 @@ 3 1 0 - 1 0 0 ..\code\ble_simple_peripheral.c @@ -210,7 +221,6 @@ 4 5 0 - 1 0 0 ..\code\ble_simple_peripheral.h @@ -223,7 +233,6 @@ 5 1 0 - 1 0 0 ..\code\user_task.c @@ -236,7 +245,6 @@ 6 1 0 - 1 0 0 ..\code\timer.c @@ -249,7 +257,6 @@ 7 1 0 - 1 0 0 ..\code\gpio.c @@ -262,7 +269,6 @@ 8 1 0 - 1 0 0 ..\code\keyscan.c @@ -275,7 +281,6 @@ 9 1 0 - 1 0 0 ..\code\button.c @@ -288,7 +293,6 @@ 10 1 0 - 1 0 0 ..\code\sensor.c @@ -301,7 +305,6 @@ 11 1 0 - 1 0 0 ..\code\qdec.c @@ -314,7 +317,6 @@ 12 1 0 - 1 0 0 ..\code\amic.c @@ -327,7 +329,6 @@ 13 1 0 - 1 0 0 ..\code\app.c @@ -340,7 +341,6 @@ 14 1 0 - 1 0 0 ..\code\led.c @@ -353,7 +353,6 @@ 15 1 0 - 1 0 0 ..\code\inflash.c @@ -366,7 +365,6 @@ 16 1 0 - 1 0 0 ..\code\func.c @@ -379,7 +377,6 @@ 17 1 0 - 1 0 0 ..\code\adc.c @@ -391,7 +388,7 @@ audio - 0 + 1 0 0 0 @@ -400,7 +397,6 @@ 18 1 0 - 1 0 0 ..\..\..\..\components\modules\audio_code_sbc\sbc.c @@ -413,7 +409,6 @@ 19 1 0 - 1 0 0 ..\..\..\..\components\modules\audio_code_sbc\sbc_primitives.c @@ -426,7 +421,6 @@ 20 1 0 - 1 0 0 ..\..\..\..\components\modules\audio_code_adpcm\adpcm.c @@ -439,7 +433,6 @@ 21 1 0 - 1 0 0 ..\..\..\..\components\modules\audio_encode\audio_encoder.c @@ -451,7 +444,7 @@ profiles - 0 + 1 0 0 0 @@ -460,7 +453,6 @@ 22 1 0 - 1 0 0 ..\..\..\..\components\ble\profiles\ble_dev_info\dev_info_service.c @@ -473,7 +465,6 @@ 23 1 0 - 1 0 0 ..\..\..\..\components\ble\profiles\ble_simple_profile\simple_gatt_service.c @@ -486,7 +477,6 @@ 24 1 0 - 1 0 0 ..\..\..\..\components\ble\profiles\ble_hid\hid_service.c @@ -499,7 +489,6 @@ 25 1 0 - 1 0 0 ..\..\..\..\components\ble\profiles\ble_ota\ota_service.c @@ -512,7 +501,6 @@ 26 1 0 - 1 0 0 ..\..\..\..\components\ble\profiles\ble_ota\ota.c @@ -525,7 +513,6 @@ 27 1 0 - 1 0 0 ..\..\..\..\components\ble\profiles\ble_batt\batt_service.c @@ -537,7 +524,7 @@ driver - 0 + 1 0 0 0 @@ -546,7 +533,6 @@ 28 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_pmu.c @@ -559,7 +545,6 @@ 29 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_keyscan.c @@ -572,7 +557,6 @@ 30 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_pmu_qdec.c @@ -585,7 +569,6 @@ 31 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_rtc.c @@ -598,7 +581,6 @@ 32 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_uart.c @@ -611,7 +593,6 @@ 33 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_wdt.c @@ -624,7 +605,6 @@ 34 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_i2s.c @@ -637,7 +617,6 @@ 35 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_exti.c @@ -650,7 +629,6 @@ 36 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_timer.c @@ -663,7 +641,6 @@ 37 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_iic.c @@ -676,7 +653,6 @@ 38 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_efuse.c @@ -689,7 +665,6 @@ 39 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_codec.c @@ -702,7 +677,6 @@ 40 1 0 - 1 0 0 ..\..\..\..\components\driver\driver_adc.c @@ -714,7 +688,7 @@ platform - 0 + 1 0 0 0 @@ -723,7 +697,6 @@ 41 1 0 - 1 0 0 ..\..\..\..\components\modules\platform\source\core_cm3_isr.c @@ -736,7 +709,6 @@ 42 2 0 - 1 0 0 ..\..\..\..\components\modules\platform\source\app_boot_vectors.s @@ -748,7 +720,7 @@ patch - 0 + 1 0 0 0 @@ -756,8 +728,7 @@ 6 43 1 - 1 - 1 + 0 0 0 ..\..\..\..\components\modules\patch\patch.c @@ -769,7 +740,7 @@ lib - 0 + 1 0 0 0 @@ -778,7 +749,6 @@ 44 4 0 - 1 0 0 ..\..\..\..\components\ble\library\fr8010h_stack.lib @@ -797,13 +767,12 @@ 8 45 - 4 + 1 0 - 0 0 0 - ..\code\alios\upay_lite\upay_lite.lib - upay_lite.lib + ..\code\alios\upay_lite\alios_api.c + alios_api.c 0 0 @@ -812,24 +781,30 @@ 46 4 0 - 0 0 0 - ..\code\alios\upay_lite\cJSON.lib - cJSON.lib + ..\code\alios\upay_lite\upay_lite.lib + upay_lite.lib 0 0 + + + + cJSON + 1 + 0 + 0 + 0 - 8 + 9 47 1 0 - 0 0 0 - ..\code\alios\upay_lite\alios_api.c - alios_api.c + ..\code\alios\upay_lite\cJSON\cJSON.c + cJSON.c 0 0 diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvprojx b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvprojx index f2edf50..012c0f8 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvprojx +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/ble_voice_mouse.uvprojx @@ -10,11 +10,14 @@ ble_voice_mouse 0x4 ARM-ADS + 5060960::V5.06 update 7 (build 960)::ARMCC + 5060960::V5.06 update 7 (build 960)::ARMCC + 8 ARMCM3 ARM - ARM.CMSIS.4.2.0 + ARM.CMSIS.5.8.0 http://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M3") CLOCK(12000000) ESEL ELITTLE @@ -84,6 +87,8 @@ fromelf --text -a -c -o "Output/@L.asm" "#L" 0 0 + 0 + 0 0 @@ -106,11 +111,11 @@ SARMCM3.DLL - -MPU + DCM.DLL -pCM3 SARMCM3.DLL - -MPU + TCM.DLL -pCM3 @@ -122,47 +127,6 @@ 0 16 - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - - - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - - 0 - 6 - - - - - - - - - - - - - - Segger\JL2CM3.dll - @@ -221,12 +185,15 @@ 0 0 0 + 0 + 0 0 0 1 1 1 0 + 0 3 3 0 @@ -360,12 +327,20 @@ 0 0 1 + 0 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 - ..\..\..\..\components\ble\include;..\..\..\..\components\ble\include\gap;..\..\..\..\components\ble\include\gatt;..\..\..\..\components\driver\include;..\..\..\..\components\modules\os\include;..\..\..\..\components\modules\sys\include;..\..\..\..\components\modules\platform\include;..\..\..\..\components\modules\common\include;..\..\..\..\components\modules\lowpow\include;..\..\..\..\components\ble\profiles\ble_batt;..\..\..\..\components\ble\profiles\ble_dev_info;..\..\..\..\components\ble\profiles\ble_hid;..\..\..\..\components\ble\profiles\ble_ota;..\..\..\..\components\ble\profiles\ble_simple_profile;..\code;..\..\..\..\components\modules\audio_code_adpcm;..\..\..\..\components\modules\audio_code_sbc;..\..\..\..\components\modules\audio_encode;..\code\alios\upay_lite + ..\..\..\..\components\ble\include;..\..\..\..\components\ble\include\gap;..\..\..\..\components\ble\include\gatt;..\..\..\..\components\driver\include;..\..\..\..\components\modules\os\include;..\..\..\..\components\modules\sys\include;..\..\..\..\components\modules\platform\include;..\..\..\..\components\modules\common\include;..\..\..\..\components\modules\lowpow\include;..\..\..\..\components\ble\profiles\ble_batt;..\..\..\..\components\ble\profiles\ble_dev_info;..\..\..\..\components\ble\profiles\ble_hid;..\..\..\..\components\ble\profiles\ble_ota;..\..\..\..\components\ble\profiles\ble_simple_profile;..\code;..\..\..\..\components\modules\audio_code_adpcm;..\..\..\..\components\modules\audio_code_sbc;..\..\..\..\components\modules\audio_encode;..\code\alios\upay_lite;..\code\alios\upay_lite\cJSON @@ -378,6 +353,7 @@ 0 0 0 + 1 @@ -664,19 +640,24 @@ alios - upay_lite.lib - 4 - ..\code\alios\upay_lite\upay_lite.lib + alios_api.c + 1 + ..\code\alios\upay_lite\alios_api.c - cJSON.lib + upay_lite.lib 4 - ..\code\alios\upay_lite\cJSON.lib + ..\code\alios\upay_lite\upay_lite.lib + + + + cJSON + - alios_api.c + cJSON.c 1 - ..\code\alios\upay_lite\alios_api.c + ..\code\alios\upay_lite\cJSON\cJSON.c @@ -684,4 +665,10 @@ + + + + + + diff --git a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/feedback.txt b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/feedback.txt index f3b6d78..ffe2d95 100644 --- a/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/feedback.txt +++ b/2.code/1.sdk/examples/none_evm/ble_voice_mouse/keil/feedback.txt @@ -1,4 +1,4 @@ -;## ARM Linker, 5050106: Last Updated: Wed Feb 28 17:24:20 2024 +;## ARM Linker, 5060960: Last Updated: Mon Mar 11 11:32:51 2024 ;VERSION 0.2 ;FILE adc.o __asm___5_adc_c_e3544fbe____REV16 <= USED 0 @@ -16,30 +16,17 @@ calib_lld_receive <= USED 0 calib_lld_reset <= USED 0 calib_lld_send <= USED 0 calib_set_freq_config <= USED 0 +;FILE aes_decrypt.o +;FILE aes_encrypt.o +tc_aes128_set_encrypt_key <= USED 0 +tc_aes_encrypt <= USED 0 ;FILE alios_api.o ALIPAY_free <= USED 0 ALIPAY_malloc <= USED 0 ALIPAY_realloc <= USED 0 alipay_exec_env_init <= USED 0 -aos_free <= USED 0 -aos_idt_id2_pull_entry <= USED 0 -aos_idt_pk_cfg <= USED 0 -aos_kv_init <= USED 0 -aos_malloc <= USED 0 aos_printf <= USED 0 -bizbus_gtd_id2_init <= USED 0 -bizbus_gtd_wear_init <= USED 0 -bizbus_hal_recv <= USED 0 -bizbus_hal_send <= USED 0 -bizbus_recv_gtd_hdl <= USED 0 -bizbus_set_time <= USED 0 -hal_flash_id2_erase <= USED 0 -hal_flash_id2_read <= USED 0 -hal_flash_id2_write <= USED 0 is_need_to_request_cert <= USED 0 -upay_get_timestamp <= USED 0 -upay_id2_check_status <= USED 0 -upay_id2_init <= USED 0 ;FILE amic.o __asm___6_amic_c_fa3602f1____REV16 <= USED 0 __asm___6_amic_c_fa3602f1____REVSH <= USED 0 @@ -103,9 +90,22 @@ attmdb_svc_visibility_set <= USED 0 __asm___15_audio_encoder_c_f0e25b87____REV16 <= USED 0 __asm___15_audio_encoder_c_f0e25b87____REVSH <= USED 0 __asm___15_audio_encoder_c_f0e25b87____RRX <= USED 0 +;FILE base64.o ;FILE batt_service.o batt_gatt_notify <= USED 0 batt_gatt_op_cmp_handler <= USED 0 +;FILE bizbus_base.o +bizbus_unregister <= USED 0 +;FILE bizbus_fgs.o +;FILE bizbus_flash.o +HAL_GetProductKey <= USED 0 +HAL_SetDeviceName <= USED 0 +HAL_SetProductKey <= USED 0 +bizbus_register_dn_get <= USED 0 +bizbus_register_ds_get <= USED 0 +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 @@ -114,6 +114,73 @@ ble_send_debug <= USED 0 hid_consumer_value_send <= USED 0 ;FILE button.o button_deInit <= USED 0 +;FILE cbc_mode.o +tc_cbc_mode_encrypt_modified <= USED 0 +;FILE cjson.o +cJSON_AddArrayToObject <= USED 0 +cJSON_AddBoolToObject <= USED 0 +cJSON_AddFalseToObject <= USED 0 +cJSON_AddItemReferenceToArray <= USED 0 +cJSON_AddItemReferenceToObject <= USED 0 +cJSON_AddItemToArray <= USED 0 +cJSON_AddItemToObject <= USED 0 +cJSON_AddItemToObjectCS <= USED 0 +cJSON_AddNullToObject <= USED 0 +cJSON_AddNumberToObject <= USED 0 +cJSON_AddObjectToObject <= USED 0 +cJSON_AddRawToObject <= USED 0 +cJSON_AddTrueToObject <= USED 0 +cJSON_Compare <= USED 0 +cJSON_CreateArray <= USED 0 +cJSON_CreateArrayReference <= USED 0 +cJSON_CreateBool <= USED 0 +cJSON_CreateDoubleArray <= USED 0 +cJSON_CreateFalse <= USED 0 +cJSON_CreateFloatArray <= USED 0 +cJSON_CreateIntArray <= USED 0 +cJSON_CreateNull <= USED 0 +cJSON_CreateNumber <= USED 0 +cJSON_CreateObjectReference <= USED 0 +cJSON_CreateRaw <= USED 0 +cJSON_CreateStringArray <= USED 0 +cJSON_CreateStringReference <= USED 0 +cJSON_CreateTrue <= USED 0 +cJSON_DeleteItemFromArray <= USED 0 +cJSON_DeleteItemFromObject <= USED 0 +cJSON_DeleteItemFromObjectCaseSensitive <= USED 0 +cJSON_DetachItemFromArray <= USED 0 +cJSON_DetachItemFromObject <= USED 0 +cJSON_DetachItemFromObjectCaseSensitive <= USED 0 +cJSON_DetachItemViaPointer <= USED 0 +cJSON_Duplicate <= USED 0 +cJSON_GetArrayItem <= USED 0 +cJSON_GetArraySize <= USED 0 +cJSON_GetNumberValue <= USED 0 +cJSON_GetObjectItem <= USED 0 +cJSON_HasObjectItem <= USED 0 +cJSON_InsertItemInArray <= USED 0 +cJSON_IsArray <= USED 0 +cJSON_IsBool <= USED 0 +cJSON_IsFalse <= USED 0 +cJSON_IsInvalid <= USED 0 +cJSON_IsNull <= USED 0 +cJSON_IsNumber <= USED 0 +cJSON_IsObject <= USED 0 +cJSON_IsRaw <= USED 0 +cJSON_IsTrue <= USED 0 +cJSON_Minify <= USED 0 +cJSON_ParseWithLength <= USED 0 +cJSON_Print <= USED 0 +cJSON_PrintBuffered <= USED 0 +cJSON_PrintPreallocated <= USED 0 +cJSON_ReplaceItemInArray <= USED 0 +cJSON_ReplaceItemInObject <= USED 0 +cJSON_ReplaceItemInObjectCaseSensitive <= USED 0 +cJSON_ReplaceItemViaPointer <= USED 0 +cJSON_SetNumberHelper <= USED 0 +cJSON_SetValuestring <= USED 0 +cJSON_Version <= USED 0 +cJSON_malloc <= USED 0 ;FILE core_cm3_isr.o __asm___14_core_cm3_isr_c_5a2a0181____REV16 <= USED 0 __asm___14_core_cm3_isr_c_5a2a0181____REVSH <= USED 0 @@ -136,6 +203,7 @@ speaker_codec_init <= USED 0 __asm___14_driver_efuse_c_9109bb6a____REV16 <= USED 0 __asm___14_driver_efuse_c_9109bb6a____REVSH <= USED 0 __asm___14_driver_efuse_c_9109bb6a____RRX <= USED 0 +efuse_get_chip_unique_id <= USED 0 efuse_get_chip_unique_id_new <= USED 0 efuse_write <= USED 0 ;FILE driver_exti.o @@ -208,7 +276,6 @@ __asm___7_entry_c_a06f3641____REV16 <= USED 0 __asm___7_entry_c_a06f3641____REVSH <= USED 0 __asm___7_entry_c_a06f3641____RRX <= USED 0 check_and_set_rand_seed <= USED 0 -get_SDK_compile_date_time <= USED 0 pmu_recalib_rc <= USED 0 ;FILE flash.o __asm___7_flash_c_48468d59____REV16 <= USED 0 @@ -217,6 +284,8 @@ __asm___7_flash_c_48468d59____RRX <= USED 0 flash_OTP_erase <= USED 0 flash_OTP_protect <= USED 0 flash_OTP_write <= USED 0 +flash_protect_disable <= USED 0 +flash_protect_enable <= USED 0 flash_protect_enable1 <= USED 0 flash_read_id <= USED 0 ;FILE func.o @@ -871,10 +940,15 @@ sbc_init_msbc <= USED 0 sbc_reinit <= USED 0 ;FILE sbc_primitives.o ;FILE sensor.o -__asm___8_sensor_c_c8adf411____REV16 <= USED 0 -__asm___8_sensor_c_c8adf411____REVSH <= USED 0 -__asm___8_sensor_c_c8adf411____RRX <= USED 0 +__asm___8_sensor_c_f4deda73____REV16 <= USED 0 +__asm___8_sensor_c_f4deda73____REVSH <= USED 0 +__asm___8_sensor_c_f4deda73____RRX <= USED 0 +reg_init <= USED 0 sensor_gpio_pmu_init <= USED 0 +;FILE sha1.o +utils_sha1 <= USED 0 +utils_sha1_clone <= USED 0 +utils_sha1_free <= USED 0 ;FILE simple_gatt_service.o ;FILE smpc.o ;FILE smpc_api.o @@ -898,7 +972,6 @@ hex_arr_to_str <= USED 0 kalmanFilter <= USED 0 str_to_hex_arr <= USED 0 str_to_val <= USED 0 -system_get_curr_time <= USED 0 system_get_spare_exmem <= USED 0 system_optimize_power_consumption_set <= USED 0 system_power_off <= USED 0 @@ -916,7 +989,16 @@ ble_bond_addr_check_result <= USED 0 ble_bond_clr_info <= USED 0 ble_bond_get_last_bond_idx <= USED 0 gatt_load_peer_svc_from_flash <= USED 0 +;FILE user_mem.o +ke_free_user <= USED 0 +ke_get_mem_max_usage <= USED 0 +ke_malloc_user <= USED 0 +show_ke_malloc <= USED 0 +show_mem_list <= USED 0 +show_msg_list <= USED 0 ;FILE user_task.o __asm___11_user_task_c_b527fdeb____REV16 <= USED 0 __asm___11_user_task_c_b527fdeb____REVSH <= USED 0 __asm___11_user_task_c_b527fdeb____RRX <= USED 0 +;FILE utils.o +_compare <= USED 0