芯片flash空间紧张,抓不了log,怎么导出死机DUMP?

简介:

在面对EC7XX系列芯片时,鉴于其Flash空间的局限性,与常见的618系列芯片不同,我们在处理异常或死机情况时,无法直接将整个RAM内容无差别地转储(dump)到Flash中以供后续详尽分析。

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

在确保在难以捕捉日志的复杂环境下,用户依然能够获取到足以进行初步至深入问题分析的关键数据。通过精心筛选和记录这些关键信息,如寄存器状态、关键变量值、堆栈跟踪片段以及任何可能指示系统崩溃原因的异常标志等,我们能够极大地提升问题诊断的效率与准确性。

用户随后可以将这些从Flash中提取的关键数据发送至计算机进行进一步分析,从而在不牺牲系统正常运行所需Flash空间的前提下,实现对潜在死机问题的有效追踪与解决。


注:718S软件上不支持,无法使用

准备

  • 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‘的子选项,

 

03.PNG&pos_id=img-jVkSkbO2-1721272283124)


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

 

 资料介绍链接: www.openluat.com

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值