P1调试,需要将主板上的每个外设全部验证、调试一遍,工作量比较大,通常给出的时间是一周。通常这是对已经接近成熟的芯片,从别的项目中继承过来的。最近调试遇到一个三合一(wifi fm bt)芯片的集成,因为是第一次调试这颗芯片,遇到了些问题,这期间有与部门沟通的缺失,还有供应商支持力度的不够,导致整个P1调试被严重滞后一个星期,在工作中遇到问题,一点也不可怕,关键就是沟通了。
调试过程中,为避免遗漏,每调试一项,最好用《P1硬件调试checklist》来记录结果。此阶段,比较容易出现的问题有:1、某个模块功能无法使用;2、整机电流偏大。分开来讲下两个问题的解决方法:
模块功能无法使用:
既然是P1阶段,那么硬件设计较之其他项目总会有些区别。如果某个模块无法使用,首先要仔细检查原理图,与硬件同事一起讨论,看看出问题的模块在设计上是否存在漏洞,软件上有没有按照硬件设计去修改自己的配置。在调试之前与硬件的同事们有个良好的沟通,了解新板子的改动,调试的时候特别注意下,就不会走很多弯路了。
多数情况下,模块功能的失效,主要还是软件没有照顾到硬件改动导致的。这就要求每个驱动人员必须能看懂原理图,能与硬件同事讨论改动会对软件造成什么样的影响。
实际举例:
1、 某个按键功能无法使用:查一下原理图,看看按键对应的位置是第几行第几列,软件上有没有按照这个去配置。
2、 没有声音:查看原理图,与硬件沟通,看当前主板上贴的是那个类型的功放,软件上对应的地方设置是否正确。
和这些类似的还有背光类型(外置还是内置)、闪光灯不亮(GPIO是否换过)等等。
整机电流偏大:
这个问题需要和硬件同事一起分析、实验。按照步骤,一般从外设开始分析,接着是主板上的器件(如wifi、GPS、FM),最后是memory和CPU。为了快速定位问题,我们驱动人员在调试过程中要多留心,调试好一个功能就去注意下电流是否异常,不要等到最后出现问题再挨个排查。
外设漏电:这个比较容易排查,每次拆除一个器件,然后量一次电流。如果定位到是外设的问题,分两个步骤去做:1、让硬件的同事查看电路设计是否存在问题;2、驱动人员检查自己的驱动有没有漏洞,睡眠的时候有没有让相关外设进入睡眠模式;
主板器件漏电:如果确认外设都是好的,就开始排查主板上的器件。这个时候,软硬件尤其要相互配合,硬件负责去掉某个模块,软件就去帮忙确认是否需要去掉该模块的软件相关功能。
Flash或者CPU漏电:如果以上两步都找不到原因,就要确认flash和cpu了。对于以上两个东西,我们需要做的事情很简单,flash就找其他已经使用过并确认不漏电的flash替换它;而CPU,一般就换同一款CPU中不同的批次。
在解决这类问题的时候,就是要有耐心,通过做不同的实验,比较结果,一般都能解决问题的。对于漏电问题,有很重要的一点要注意:不要用一块主板去分析问题!