在无法直接捕获日志时,如何提取系统崩溃的DUMP文件

面对EC7XX系列芯片那“寸土寸金”的Flash空间,我们在处理异常或死机情况时,无法直接将整个RAM内容无差别地转储(dump)到Flash中以供后续详尽分析。

咱们不能像玩618系列那样,随便把RAM里的内容一股脑儿往Flash里倒,毕竟空间有限嘛。

遇到系统异常或“罢工”的时候,咱们得玩点高级的,得学会“抓重点”。

本文适用于合宙7xx芯片系列模块,例如718p/716s 

我采取了一种更为精炼而高效的方法:专注于捕获并保存关键性系统信息至Flash中。

用户随后可以将这些从Flash中提取的关键数据发送至计算机进行进一步分析,从而在不牺牲系统

正常运行所需Flash空间的前提下,实现对潜在死机问题的有效追踪与解决。

一、准备


csdk需要更新到2024年7月9日之后的版本
luatools更新到2.2.29,目前未发布,不影响使用,只是无法自动获取flashdump
flashtools更新到专用版本 FlashTools_hardfault.7z
EPAT工具更新到EPAT_V1.3.262.573 EPAT_V1.3.262.573.zip

二、如何开启

LuatOS开发
luatos脚本加入mcu.hardfault(3)

三、如何确认保存了死机信息


ecFlashDumpOccuredCheck(),此接口返回值为 ture,则说明芯片因异常而重启
在 dump 数据从 Flash 中读出来后,建议擦除一下 Flash dump 空间

四、死机后如何获取数据


方法一:
代码里从flash中读出16KB数据,然后通过串口/USB/网络等方式上传,串口/USB方式参考example_flash_dump

方法二:
luatools升级到2.2.29,可以自动读出并保存成文件,但是USB要能正常使用

方法三:
通过flashtools读取,USB或者UART1留出即可,以USB为例

选择好prj file和binpkg文件

在readback界面里选择hardfault dump

操作模块进入烧录模式,点击start即可,文件保存在binpkg所在目录

五、数据如何解析


项目编译生成目录里找到comdb.txt,如果对方提供了soc文件,解压出comdb.txt
EPAT里确保db文件是上述的comdb.txt,在主选项栏‘Log‘选项中可看到’
Exception Info‘的子选项,

 选中此选项后会弹出 dump 文件处理窗,选择对应的 dump 文件后,会在 Excep Info 窗里显示解析后的 dump 数据,如图所示。

 详细资料获取请点击: www.openluat.com 

 

 

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值