Hi 大家好! 我是大联大诠鼎集团的 Devin, 我又来了,这次给大家分享一个很实用的知识点。。。。。。。。。。
在每个项目的开发和测试中,对工程师以及测试员最头疼的事情就是死机(PANIC)现象的分析和定位了。
实际上简单的PANIC的发生都是有原因的,以ADK6.4.0.43为例我简单的描述PANIC的现象发生后如何在软件上定位、优化、排除方法。
- Panic现象的定位:
如果想定位到是软件的某个条件或结果导致芯片PANIC,我们可以通过Debug的方式来跟踪判断。
耳机通过USB或者TRB链接电脑,我们通过MDE->Debug->Start Debug (Skip All Other Steps) 来实时跟踪LOG信息。
当PANIC发生的时候,我们可以通过fw_live_log 栏可以看到PANIC的发生地点。如下图所示:
还可以通过Callstack栏,可以定位到PANIC的原因。
- PANIC发生的解决方法:
大家可以通过上面的的方法,可以定位到发生PANIC的地方,分析相应的代码,然后根据自己的项目情况,绕开该PANIC的发生。如下图所示,就是当前耳机处于手机配对的条件下,触发了EventUsrGaiaUser16 事件。条件上是不允许的。可以通过Configuration Tool,配置EVENT触发的条件去掉配对情况就可以了.
- PANIC发生的优化:
如果大家没有分析代码的能力,可以在subsys0_config*.htf文件中,添加 “ResetOnAppPanicOrWatchdog = true”的PSK配置。这样耳机就会在发生PANIC后,会自动重启。
- 如果以上的要求都不能退出PANIC的状态,只能通过硬件复位来重启。
由于一般的耳机都只有一个按键,没有预留出RESET的按键出来。大家可以参考如下的原理图来利用sys_ctry键和Vrcg PIN配合使用。
以上是我在大大通上对ADK6.x PANIC的分析和排除方法,大家有什么疑问欢迎在大大通上对我的博文留言哦,我会第一时间答复大家。
后续我会继续给大家更新新的FAQ!!!!!重要的事情说三遍: 关注大大通! 关注大大通!关注大大通! 知识不容错过。
谢谢大家!
评论
福智黄工
2021年7月2日