这是一个很大的标题,情况各不一样,但思路一定要明晰。
首先,都肯定是从log日志开始分析,log日志也分很多种,要善于综合来分析,有的时候要借助模拟器来定位问题。
一般的重启,死机都会有一些log日志出现,这样对分析很有帮组。
最怕的就是没有log日志的这种:我遇到过的主要是内存出错和驱动操作硬件出问题。
内存出错的情况比较少见,因为mtk的内存管理写得还是很健壮的,平时出现这方面的问题,基本上都是由于基础知识不扎实,滥用数据类型导致的。
驱动出错如果放在项目开发前期很好解决,因为有一个可以回溯的历史,最怕的是多人开发,然后代码的整理没有一个阶段性,最后出问题了,很难找到问题点。
这次我碰到的问题就是同时操作gpio口,并且模式还不一样。理论上同时操作是不会有问题的,但是一旦模式有变化就会出现重启。
总结:反正出现这种难找问题一定要把之前你认为可以的东西,全部推翻来重新确认,当做一个新项目,同时要静下心来。就目前比较成熟的软件平台来说,问题最终还是可以解决的,只要不是平台缺陷。
欢迎有问题的朋友交流。
==============================本文作为一个错误的分析案例记载===============================