EG810 CAT1增加ICCID的获取
authorpenglei <1624952103@qq.com>
Fri, 26 Sep 2025 07:15:55 +0000 (15:15 +0800)
committerpenglei <1624952103@qq.com>
Fri, 26 Sep 2025 07:15:55 +0000 (15:15 +0800)
code/sdk/bootloader/flashboot/brandy/nandflash/nandflash_config.c
code/sdk/drivers/drivers/driver/nand_flash/nand/nandflash_config.c
code/sdk/zhihui/4g/cat1Service/Service/cat1_server.c
code/sdk/zhihui/4gTest/cat1_porting.c

index e56ffeb..2514d09 100644 (file)
@@ -51,31 +51,26 @@ struct nand_driver_struct *get_nand_flash(void)
 {\r
 #if 1\r
     static struct nand_driver_struct *cached_driver = NULL;\r
-    \r
-    // 如果已经缓存了驱动,直接返回\r
+\r
     if (cached_driver != NULL) {\r
         return cached_driver;\r
     }\r
-    \r
-    // 初始化NAND驱动硬件\r
+\r
     nand_driver_init(SPEED_MID);\r
-    \r
-    // 读取CHIP ID\r
+\r
     uint16_t chip_id = 0;\r
     qspi_data_type_def qspi_data = {0};\r
     qspi_data.instruction = CMD_FLASH_ID;\r
     \r
     chip_id = read_id(&qspi_data);\r
-    \r
-    // 根据CHIP ID查找对应的驱动\r
+\r
     for (uint32_t i = 0; i < NAND_CHIP_MAPPINGS_COUNT; i++) {\r
         if (nand_chip_mappings[i].chip_id == chip_id) {\r
             cached_driver = nand_chip_mappings[i].driver;\r
             return cached_driver;\r
         }\r
     }\r
-    \r
-    // 如果没有找到匹配的CHIP ID,使用默认驱动\r
+\r
     cached_driver = &g_ds35x1g_driver;\r
     return cached_driver;\r
 #else\r
index 737f55c..910629d 100644 (file)
@@ -79,35 +79,30 @@ struct nand_driver_struct *get_nand_flash(void)
 {\r
 #if 1\r
     static struct nand_driver_struct *cached_driver = NULL;\r
-    \r
-    // 如果已经缓存了驱动,直接返回\r
+\r
     if (cached_driver != NULL) {\r
         return cached_driver;\r
     }\r
-    \r
-    // 初始化NAND驱动硬件\r
+\r
     nand_driver_init(SPEED_MID);\r
-    \r
-    // 读取CHIP ID\r
+\r
     uint16_t chip_id = 0;\r
     qspi_data_type_def qspi_data = {0};\r
     qspi_data.instruction = CMD_FLASH_ID;\r
     \r
     chip_id = read_id(&qspi_data);\r
     \r
-    PRINT("检测到NAND Flash CHIP ID: 0x%04X\r\n", chip_id);\r
-    \r
-    // 根据CHIP ID查找对应的驱动\r
+    PRINT("find nand flash chip id: 0x%04X\r\n", chip_id);\r
+\r
     for (uint32_t i = 0; i < NAND_CHIP_MAPPINGS_COUNT; i++) {\r
         if (nand_chip_mappings[i].chip_id == chip_id) {\r
             cached_driver = nand_chip_mappings[i].driver;\r
-            PRINT("选择NAND Flash驱动: %s\r\n", nand_chip_mappings[i].name);\r
+            PRINT("nand flash %s start init\r\n", nand_chip_mappings[i].name);\r
             return cached_driver;\r
         }\r
     }\r
-    \r
-    // 如果没有找到匹配的CHIP ID,使用默认驱动\r
-    PRINT("未找到匹配的CHIP ID 0x%04X,使用默认驱动 DS35X1G\r\n", chip_id);\r
+\r
+    PRINT("No matching nand flash chip id 0x%04X found, using default driver DS35X1G\r\n", chip_id);\r
     cached_driver = &g_ds35x1g_driver;\r
     return cached_driver;\r
 #else\r
index 9f2ba67..9f07fba 100644 (file)
@@ -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)
index dc40932..7fed784 100644 (file)
@@ -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");