如果想了解驱动开发,请不要错过这篇。
这里的驱动测试,是针对新开发的硬体进行功能测试,硬件电路,需要与代码结合,让功能得以实现,比如:点亮一个小灯,实际是硬件的小灯电路和软件的代码控制高低电平,最后呈现出的效果。在测试的过程中,会发现硬件的设计是否有不合理之处。
在驱动测试的过程中,我发现了几个问题,总结出来,帮助自己做好开发。
新板硬件的功能是未知的
软件开发者的常用习惯,是用一块开发板,然后验证自己的代码功能,常年累积的习惯,让你拿到一个新设计的硬件电路板时,下意识地以为它是好用的,当测试一个功能时,结果没有按照正常的功能逻辑执行,第一反应是怀疑代码出了问题,一顿操作修改,却迟迟没有怀疑硬件方面的问题。
从测试方向的一开始,就出现了非常大的误区,开发板是一块经过验证的板子,它的硬件功能已经完善,但设计完的新板,驱动测试的目的就是为了搞清楚,硬件设计是否有问题,不是为了测试你的代码是否好用。先搞定硬件,再研究软件,这个顺序一定要搞清楚。
善用调试工具
硬件验证,需要常用的工具万用表、示波器、信号发生器等,万用表可以测试电路的问题,如:短路、断路等问题。示波器对于信号波形测试十分有用,比如CAN、LIN、PWM等波形,查看芯片的状态,判断是否处于正常的工作逻辑。
方便快捷地使用工具,可以帮助我们更快速地锁定电路的问题,配合代码,一步一步找出关键节点。
多和硬件工程师聊聊
有时候会想,自己的硬件知识都不太够啊,还给老师了,咋办呢?这时候又不免陷入了误区,为啥要自己搞呢?这个电路不是你设计的,当然是设计它的人最懂它,这时候,是需要向硬件工程师询问的,和他聊聊发现的问题,可以确认测试方式正确与否,可以一起联调测试问题,如果确认电路问题,硬件工程师会处理的,这边只需要记录你的测试过程即可。
当然要注意方法态度,不要一上来就认定是硬件的问题,这样是没办法沟通的,只阐述问题,不要阐述结论。什么是阐述问题?xx芯片工作波形不正常。什么是阐述结论?xx芯片不好用。
利用好驱动样例
硬件设计中,ECU芯片是非常重要的,所有针对它的外接电路,都是需要它来领路,现在的芯片厂提供的测试demo都非常多,可以参考官方提供的SDK及demo驱动,快速搭建环境,再根据实际情况,调整代码,完成初步测试。
这样可以帮助快速验证,至少保证软件代码的可靠性,对ECU不太熟悉的情况下,是一个可行的办法,但也存在风险。
手册与论坛大法
手册是重中之重,一切相关的寄存器配置及功能描述全在其中,可以按照时钟、定时器等功能,简单搭建ECU的配置架构。我想起了常看的罪案片,当没有线索的时候,一切都要回到案发现场,最初的地方,仔细寻找线索,手册的功能描述非常多,先关注功能,个个击破,再回顾全局。
论坛也是非常好的手段,检索问题:是否有人遇到同样的问题;检索芯片:不常见的芯片是否有人也在用;论坛需要耐心地去寻找答案,检索关键字是一个很关键的步骤,如果你可以掌握核心词,就会增加解惑的概率。
当然,如果你有困惑,芯片也比较少见,你可以直接在论坛发帖提问,这里我觉得用英文提问比较好,顺便练习英文读写,可以和全球的工程师进行交流,高频交流更容易找到答案。
驱动测试最重要的还是思维方式,要以测试硬件为主,而不是软件开发,当思维转换之后,会顺利很多,调试的时候不要想着一个人搞定,多问问其他人,烦闷了就休息一下,这是一个过程,当你把这个过程体会完之后,你会发现,自己收获的内容,N篇纸都写不完。
版权声明: 本文为 InfoQ 作者【水滴】的原创文章。
原文链接:【http://xie.infoq.cn/article/fe25ed36fd2b8c2409fb1547e】。文章转载请联系作者。
评论