|
嵌入式开发这几年,调试工具换了不少。最早用几十块的USB转串口,后来借同事的示波器,再后来自己买了逻辑分析仪和J-Link。如果现在让我选一个最离不开的,我选逻辑分析仪。 第一次觉得这玩意儿真有用,是调SPI Flash的时候。当时读ID一直读不出来,用示波器看四根线都在动,频率也对,但就是收不到正确的数据。接了逻辑分析仪把通信过程抓下来,直接解码成十六进制,才发现片选信号在传输过程中间莫名其妙被拉高了一下,数据就断了。就那一瞬间的异常,示波器波形上不注意根本看不出来。要是没有这玩意儿,这个问题估计得猜好几个小时。 后来各种协议基本都靠它。UART看波形能看出电平对不对,但看不出数据对不对。逻辑分析仪一抓,发的是什么收的是什么一目了然。有次调一个模块,发的数据是对的,但模块一直没响应,逻辑分析仪一看才发现波特率算错了,误差太大导致模块把数据当成了乱码。还有一次调红外遥控解码,红外接收头的输出信号就一根线,用示波器看就是一串脉冲,数高电平低电平的宽度数到眼花。逻辑分析仪配上红外解码插件,直接把每个脉冲的宽度标出来,协议帧结构一清二楚。 再说J-Link。这东西确实稳定,烧录大固件从来没失败过,速度也快。之前用过一个便宜的调试器,烧录大一点的固件经常失败,进度条走到一半卡住,或者烧完校验不通过。换了J-Link之后这些毛病都没了。不过J-Link也有不顺手的地方,软件更新有点频繁,更新完之后有时候和旧版本e2 studio配合会有问题,所以现在用的还是老版本,不轻易升级。 至于示波器,反而是用的最少的一个。操作门槛高,探头一接上去波形是有,但怎么读数、怎么测周期、怎么触发,每次都得想半天。除非看电源纹波或者晶振起振这种必须测模拟信号的情况,一般不怎么动它。逻辑分析仪接几根线,点一下开始,数据就出来了,还能自动解码各种协议,是真能提升调试效率的东西。 如果预算有限只能买一个调试工具,逻辑分析仪是最实用的。几十块的也能用,几百块的带协议解码功能更好,贵点也值。它解决的是“到底发生了什么”的问题,知道了问题出在哪,方向对了,剩下的就是怎么改的事了。
|