尴尬的三个星期
三个星期前,接到一个项目是关于无线接入台的,就是在一个新的模块上面添加无线接入台的功能,表示从未接触过。老大说让我先把接入台的底层加进去。弄这个底层,需要看得懂电路原理图,需要会写程序的驱动,刚开始我一接到这个项目不提有多激动。可是慢慢的接触后发现并不是想象的那么简单,像我这个以前只会一味写软件代码的软件工程师,看到这原理图,看到这抽象的底层驱动,头大了,而且还要面对没有屏幕的无线接入台。调试工具更不好使了,以前写软件程序的时候,不管是java还是c都可以边运行,边调试,可是这个项目不是的,你要先把程序刷到接入台后,然后运行接入台,看trace,每运行一次,trace的行数都是以万行来计数的,当时头都大了。
刚开始接入台一直重启,死机等等原因,但是也不知道是哪里出错了,实在解决不了的时候,我请教了我们老大,他说,像这样的项目调试,你要善于运用trace,有系统trace,工具trace,你要学会分析这个程序会在哪里出错,然后再在那个地方打一个trace,最后在生成的trace文件中查看是否打出,如果打出了再分析为何会在这里出错。慢慢的我解决了接入台的重启,声音。后来出现一个问题就是一拨出电话,接入台就死机了,这让我纠结了很久,一直找不到原因,后来问了我们老大,老大一点拨,我就解决了。老大还说,我想通过这个项目锻炼你自己发现问题解决问题的能力,所以你一定要仔细分析问题,然后自己解决问题,实在解决不出来的话再寻求别人的帮助。经过老大的点拨,我突然发现那个错误实在是太简单了,可是回头想想,为什么我当时就没有想到了?回到家里我再质问自己,于是我总结了一些道理拿出来分享给大家。虽然我第一次接触底层的开发与调试,对很多原理,功能都不是很熟悉,但是这不是最重要的,重要的是我们面对问题的时候,要善于懂得从什么角度切入分析,从哪个切面分析,这个不行,就换一个,不要一根筋,要善于打Trace。课余更要多熟悉下原理图等硬件方面的知识。
历时3个星期,终于稍稍有些成就了,这不,下个星期,老大让我提交驱动方面的代码,O(∩_∩)O哈哈~,加油!!!