项目初期,板子中可能不包含IMEI号,但是又需要读取IMEI来验证某些功能。

2. 如何修改

通过修改NV550,其中ue_imei[0]表示的序列号的长度,这一位设置错误会导致设置的nv不生效,nv550如下图所示

开发初期IMEI号的写入

 

ue_imei[1]~ue_imei[8]为IMEI序列号,写入的值是反的,举例如下:

IMEI:1 23 45 67 89 87 65 43

写入的值为:1A 32 54 76 98 78 56 34

其中第一个值很特殊,A是可以用其他数字代替,在QMI消息读取IMEI号时,会将第一位排除,见下面的代码:

modem_proc\datamodem\interface\qmidata\src\ds_qmi_dms.c

static qmi_error_type_v01 qmi_dmsi_get_device_serial_numbers_ext
(
  boolean                   is_encrypted,
  void*                     resp_msg,
  qmi_dmsi_client_info_type *clnt_info
  
)
{
...
      /* Skip the first byte because it is just the ID */
      memscpy( (uint8*)dev_serial_num_info, 
               (NV_UE_IMEI_SIZE-1)*2-1,
               imei_ascii + 1, 
               (NV_UE_IMEI_SIZE-1)*2-1 );
...

3. 验证是否写入成功 

利用AT+CGSN命令,来查询IMEI,若出现下面结果,则代表IMEI写入成功。

开发初期IMEI号的写入

 

相关文章:

  • 2021-11-17
  • 2021-11-17
  • 2022-12-23
  • 2021-04-08
  • 2021-09-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-07
  • 2021-12-22
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2021-11-17
相关资源
相似解决方案