From: penglei <1624952103@qq.com> Date: Thu, 12 Sep 2024 10:28:32 +0000 (+0800) Subject: 优化cywee chipinfo转mac密钥激活 X-Git-Tag: release_V1.2.70_20241020_135402~485^2~7^2~2 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=ae51f30a282b705b869608ef6dfc63174ee1695e;p=mirrors%2FFD230.git 优化cywee chipinfo转mac密钥激活 --- diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index 40ec79d24..d596327cb 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -84,8 +84,7 @@ static uint32_t abs_static_timestampe = 0; static uint32_t asleep_timestampe = 0; #ifdef CYWEE_MAC_ACTIVE -int cm__hs1__mac_c0_init(void); -int cm__hs1__mac_c0r_init(void); +int cm__hs1__mac_c1_init(void); int cm__hs1__deinit(void); uint8_t SEC_FILE_ADDR[78] = {0}; @@ -1106,8 +1105,21 @@ int cywee_main_dml(void) cywee_installized = 1; #ifdef CYWEE_MAC_ACTIVE + // /******************获取chipinfo 找到对应的btmac 并配置进去*************************/ + // int chipinfolen = strlen((char*)chipInfo); + // if (chipinfolen >= 4) + // { + //uint32_t chipinfo_num= *(uint32_t*)(&chipInfo[chipinfolen - 4]); + //change_mac_from_chipinfo_map(chipinfo_num); + //} + + change_mac_from_chipinfo_map(); uint16_t len = 78; uapi_cywee_get_mac_key(SEC_FILE_ADDR,&len); + // printf("SEC_FILE_ADDR : "); + // for(int i = 0 ; i < 78 ; i++) + // printf("0x%2x, ",SEC_FILE_ADDR[i]); + // printf("\n"); #endif int i; memset(&scl, 0, sizeof(scl)); @@ -1176,18 +1188,7 @@ int cywee_main_dml(void) uint32_t irqMask = 0; irqMask = osal_irq_lock(); #ifdef CYWEE_MAC_ACTIVE - - // /******************获取chipinfo 找到对应的btmac 并配置进去*************************/ - // int chipinfolen = strlen((char*)chipInfo); - // if (chipinfolen >= 4) - // { - //uint32_t chipinfo_num= *(uint32_t*)(&chipInfo[chipinfolen - 4]); - //change_mac_from_chipinfo_map(chipinfo_num); - //} - - change_mac_from_chipinfo_map(); - //cm__hs1__mac_c0_init();//若mac_address的排列為正相時呼叫的api - cm__hs1__mac_c0r_init();//若mac_address的排列為反相時呼叫的api + cm__hs1__mac_c1_init(); #else cm__hs1__init(); #endif diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index e26e4439c..91e1b762c 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -3358,20 +3358,21 @@ static chiinfo_mac_pair g_chipinfo_map[]={ {0x00FD,"d45d9057f5daa16a0a03780fab820100"}, {0x00FE,"d45d90576bd9a2540a03780f69820100"}, {0x00FF,"d45d905756362ff20a03780f81820100"}, -{0x0100,"d409441782b5a8ca0a03787507820100"}, -{0x0101,"d40944175563517a0a03787521820100"}, -{0x0102,"d4094417231002070a03787505820100"}, -{0x0103,"d4094417f128ae310a03781d27820100"}, +{0x0100,"7409441782b5a8ca0a03787507820100"}, +{0x0101,"740944175563517a0a03787521820100"}, +{0x0102,"74094417231002070a03787505820100"}, +{0x0103,"74094417f128ae310a03781d27820100"}, {0x0104,"d45dd617267bc5070a03780f4f830100"}, {0x0105,"d45dd6178656a6f10a03780f2d830100"}, -{0x0106,"d4094417cf5b57f10a03787521820100"}, -{0x0107,"d4094417ff4014470a0378750d820100"}, -{0x0108,"d4094417b9da89830a03787549820100"}, +{0x0106,"74094417cf5b57f10a03787521820100"}, +{0x0107,"74094417ff4014470a0378750d820100"}, +{0x0108,"74094417b9da89830a03787549820100"}, }; errcode_t change_mac_from_chipinfo_map(void) { uint8_t bd_addr[BD_ADDR_LEN]={0}; + uint32_t len = 6; uint8_t soc_id[20]={0}; uint8_t uid[16]={0}; char uid_str[33] = {0}; @@ -3384,10 +3385,15 @@ errcode_t change_mac_from_chipinfo_map(void) sprintf(uid_str + i * 2, "%02x", uid[i]); uid_str[32] = '\0'; + uapi_get_nv_btaddr(bd_addr,&len); + for (int i=0 ; i< sizeof(g_chipinfo_map)/sizeof(chiinfo_mac_pair);i++) { if(strcmp(uid_str, g_chipinfo_map[i].uid) == 0) { + if((bd_addr[4] << 8 | bd_addr[5]) == g_chipinfo_map[i].mac) + return ERRCODE_SUCC; + uint16_t btmac2 = g_chipinfo_map[i].mac; bd_addr[5] = (btmac2&0x00FF) ; bd_addr[4] = (btmac2&0xFF00) >>8 ; @@ -3395,7 +3401,7 @@ errcode_t change_mac_from_chipinfo_map(void) bd_addr[2] = 0x06 ; bd_addr[1] = 0x11 ; bd_addr[0] = 0x28 ; - ret = uapi_set_nv_btaddr(bd_addr, sizeof(bd_addr)); + ret = uapi_set_nv_btaddr(bd_addr, len); if (ret != ERRCODE_SUCC) { /* ERROR PROCESS */ // printf("found chipinfo 0x%08X and change btmac to 0xXXXXXX01%04X failed! ret %d\n",