Air720系列4G模块软件异常死机后,如何dump死机现场数据

如何dump 4G模块死机现场数据

一、背景

            客户在使用Air720系列4G模块开发调试过程中,有时会遇到blf运行异常导致的重启问题,例如下图表示的一个例子

1.     EE LOG: PC: 0x6767cc4
2.      EE LOG: SP: 0x72adb80
3.      EE LOG: MSA Disable Sleep
4.      EE LOG: Wait for DSP L1 Memory dump...
5.      EE LOG: first entry!
6.      EE LOG: Software version: NZ_NZ_CP_2.178.000X
7.      EE LOG: Compilation time: Jun 13 2019 09:17:56
8.      Ep0: TX 0, RX 0
9.      AT: TX 0, RX 0, CTRL 0
10.     DIAG: TX 0, RX 0, CTRL 0
11.     RNDIS: TX 0, RX 1, CTRL 0
12.     MassStorage: TX 0, RX 0
13.     EE LOG: Cancel RNDIS transfer
14.     EE LOG: Prepare for Sd dump
15.     EE LOG: eeSDDumpPrepare Enter
16.     EE LOG: eeSDDumpPrepare Exit
17.     EE LOG: Prepare for diag transmit
18.     EE LOG: finalAction:5, eeFatalActionExt:602453d, eeMode:3f
19.     EE LOG: IPCIIR 0x0, APBC_IPC_CLK 0x4, AIRQ_IPC_ENABLE 0x3d10

            如果客户根据日志信息无法解决异常时,可能需要dump异常现场数据给合宙技术支持人员分析,本文章介绍如何dump现场数据

二、代码准备工作

            合宙官方对外正式发布的固件,无论是AT版本还是Lua版本, 默认配置为自动重启模式,意味着一旦出现异常,会自动重启

            在自动重启模式下,用户无法dump现场数据,所以首先要做的是:把固件配置为死机模式,配置为死机模式后,一旦再出现异常,不再自动重启,用户就有充足的时间来dump现场信息。

            那么如何配置为死机模式呢,有如下两种方法:

            (1)AT版本和Lua版本有稍许差别

                 AT版本:MCU通过4G模块的AT口发送AT*EXASSERT=1命令

                 Lua版本:在main.luasys.init(...)前增加一行代码ril.request("AT*EXASSERT=1")

            (2)PC上通过串口工具向4G模块USB口映射出的ASR Modem Device AT口发送AT*EXASSERT=1命令

            注意:

            A、无论使用何种方法,每次开机(无论是正常开机还是异常开机)都要重新配置一次,鉴于此,推荐使用第(1)中方法,可以在程序中自动处理

            B、为保证万无一失,配置后,PC上通过串口工具向4G模块USB口映射出的ASR Modem Device AT口发送AT*EXASSERT?命令查询是否配置成功,如果返回*EXASSERT: 1表示配置成功

            C问题解决之后,所用测试模块,一定要再次配置为自动重启模式,配置方法是发送AT*EXASSERT=0命令,配置后重启,发送AT*EXASSERT?命令查询是否配置成功,如果返回*EXASSERT: 0表示配置成功;为了防止遗忘,用户在正式发布的程序中,可以在开机初始化时发送AT*EXASSERT=0命令

            代码配置为死机模式之后,接下来就可以用USB口一直挂测抓日志,复现异常问题之后,会进入死机模式不再自动重启,此时电脑设备管理器中的端口如下图所示

                                                                                                     

            复现死机问题后,就可以参考第三章来dump现场数据了

三、利用Tera Term工具dump现场数据           

1、下载安装Tera Term工具

      链接: https://pan.baidu.com/s/1ij16KQnucnjgNE3Vk9OuIw

            提取码: g77v

            默认安装即可

2、运行配置Tera Term工具

            运行安装目录下的ttermpro.exe,会自动弹出new connection界面,如下图配置(COM58为模块死机时,映射出的ASR Modem Device端口,根据实际情况修改)

          点击OK后,再点击菜单Setup--->Serial port...,如下图配置(COM58为模块死机时,映射出的ASR Modem Device端口,根据实际情况修改)

          点击OK后,如下图打开receive传输窗口

          接下来,会自动传输数据,如下图所示,正常情况下,传输需要67分钟,请耐心等待

          传输结束后,会弹出如下窗口

          此时,dump过程已经完成,所有dump出来的数据文件,存储在teraterm工具安装目录下,如下图所示,为所有dump出来的数据文件

          将这些文件打包发给合宙技术支持人员即可

          注意:打包发出去之后,将此目录下的这些文件删除,避免下次dump时,文件重名导致不必要的麻烦

 

  • 发表于 2019-08-02 12:13
  • 阅读 ( 4007 )
  • 分类:默认分类

0 条评论

请先 登录 后评论
不写代码的码农
朱天华

软件工程师

19 篇文章

作家榜 »

  1. 技术销售Delectate 43 文章
  2. 陈夏 26 文章
  3. 国梁 24 文章
  4. miuser 21 文章
  5. 晨旭 20 文章
  6. 朱天华 19 文章
  7. 金艺 19 文章
  8. 杨奉武 18 文章