From: penglei <1624952103@qq.com> Date: Fri, 26 Sep 2025 07:15:55 +0000 (+0800) Subject: EG810 CAT1增加ICCID的获取 X-Git-Tag: V1.0.9_20251128_194606_LN~250^2~45^2~4^2~1 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=830e3b99d6b6eae69b1d6f557ee6b50a2ac3cc29;p=mirrors%2FFD230.git EG810 CAT1增加ICCID的获取 --- diff --git a/code/sdk/bootloader/flashboot/brandy/nandflash/nandflash_config.c b/code/sdk/bootloader/flashboot/brandy/nandflash/nandflash_config.c index e56ffebe8..2514d097d 100644 --- a/code/sdk/bootloader/flashboot/brandy/nandflash/nandflash_config.c +++ b/code/sdk/bootloader/flashboot/brandy/nandflash/nandflash_config.c @@ -51,31 +51,26 @@ struct nand_driver_struct *get_nand_flash(void) { #if 1 static struct nand_driver_struct *cached_driver = NULL; - - // 如果已经缓存了驱动,直接返回 + if (cached_driver != NULL) { return cached_driver; } - - // 初始化NAND驱动硬件 + nand_driver_init(SPEED_MID); - - // 读取CHIP ID + uint16_t chip_id = 0; qspi_data_type_def qspi_data = {0}; qspi_data.instruction = CMD_FLASH_ID; chip_id = read_id(&qspi_data); - - // 根据CHIP ID查找对应的驱动 + for (uint32_t i = 0; i < NAND_CHIP_MAPPINGS_COUNT; i++) { if (nand_chip_mappings[i].chip_id == chip_id) { cached_driver = nand_chip_mappings[i].driver; return cached_driver; } } - - // 如果没有找到匹配的CHIP ID,使用默认驱动 + cached_driver = &g_ds35x1g_driver; return cached_driver; #else diff --git a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c index 737f55cb9..910629d66 100644 --- a/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c +++ b/code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c @@ -79,35 +79,30 @@ struct nand_driver_struct *get_nand_flash(void) { #if 1 static struct nand_driver_struct *cached_driver = NULL; - - // 如果已经缓存了驱动,直接返回 + if (cached_driver != NULL) { return cached_driver; } - - // 初始化NAND驱动硬件 + nand_driver_init(SPEED_MID); - - // 读取CHIP ID + uint16_t chip_id = 0; qspi_data_type_def qspi_data = {0}; qspi_data.instruction = CMD_FLASH_ID; chip_id = read_id(&qspi_data); - PRINT("检测到NAND Flash CHIP ID: 0x%04X\r\n", chip_id); - - // 根据CHIP ID查找对应的驱动 + PRINT("find nand flash chip id: 0x%04X\r\n", chip_id); + for (uint32_t i = 0; i < NAND_CHIP_MAPPINGS_COUNT; i++) { if (nand_chip_mappings[i].chip_id == chip_id) { cached_driver = nand_chip_mappings[i].driver; - PRINT("选择NAND Flash驱动: %s\r\n", nand_chip_mappings[i].name); + PRINT("nand flash %s start init\r\n", nand_chip_mappings[i].name); return cached_driver; } } - - // 如果没有找到匹配的CHIP ID,使用默认驱动 - PRINT("未找到匹配的CHIP ID 0x%04X,使用默认驱动 DS35X1G\r\n", chip_id); + + PRINT("No matching nand flash chip id 0x%04X found, using default driver DS35X1G\r\n", chip_id); cached_driver = &g_ds35x1g_driver; return cached_driver; #else diff --git a/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c b/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c index 9f2ba67ba..9f07fbaae 100644 --- a/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c +++ b/code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c @@ -652,6 +652,9 @@ static int decodeNetStat(char* msg) { update++; cat1_api_runtime_set_cat1_imei(ppbuf); + + cat1_print_info("IMEI received, sending AT+ICCID command\n"); + cat1_at_cmd("AT+ICCID"); } continue; }else if(strncmp(s,"sim:",4) == 0) diff --git a/code/sdk/zhihui/4gTest/cat1_porting.c b/code/sdk/zhihui/4gTest/cat1_porting.c index dc40932ba..7fed78416 100644 --- a/code/sdk/zhihui/4gTest/cat1_porting.c +++ b/code/sdk/zhihui/4gTest/cat1_porting.c @@ -263,12 +263,13 @@ errcode_t cat1_msg_callback(MESSAGE_4G_T msg, void *msg_buf, uint16_t msglen) cat1_print_warning("MESSAGE_4G_NETWORK_DISCONNECTED"); break; case MESSAGE_4G_NETWORK_STAT_CHANGED: //含signal,sim,运营商, - cat1_print_warning("MESSAGE_4G_NETWORK_STAT_CHANGED netstat(%d),signal(%d),sim(%d),network(%s),imei(%s),operator(%s)", + cat1_print_warning("MESSAGE_4G_NETWORK_STAT_CHANGED netstat(%d),signal(%d),sim(%d),network(%s),imei(%s),iccid(%s),operator(%s)", cat1_api_runtime_get_cat1_networkstat(), cat1_api_runtime_get_cat1_signal(), cat1_api_runtime_get_cat1_simstat(), cat1_api_runtime_get_cat1_networktype()==0?"无网络":(cat1_api_runtime_get_cat1_networktype()==1?"GSM":(cat1_api_runtime_get_cat1_networktype()==2?"3G":"4G/LTE")), cat1_api_runtime_get_cat1_imei(), + cat1_api_runtime_get_cat1_iccid(), cat1_api_runtime_get_cat1_operator() ); break; @@ -289,6 +290,13 @@ errcode_t cat1_msg_callback(MESSAGE_4G_T msg, void *msg_buf, uint16_t msglen) break; case MESSAGE_4G_AT_RECEIVED: //返回值为字符串 cat1_print_warning("MESSAGE_4G_AT_RECEIVED %s",msg_buf); + if(strlen(msg_buf) == 28 && strncmp(msg_buf, "+ICCID: ", 8) == 0) + { + char iccid_buffer[21] = {0}; + strncpy(iccid_buffer, msg_buf + 8, 20); + cat1_api_runtime_set_cat1_iccid(iccid_buffer); + cat1_print_warning("ICCID extracted and set: %s", iccid_buffer); + } break; case MESSAGE_4G_TIME_SYNCED: //无参数 cat1_print_warning("MESSAGE_4G_TIME_SYNCED");