做了几年的驱动,发现还是Ctrl+C和Ctrl+V用的最多,自己动手写的代码少的可怜,估计很多做驱动的朋友都有同感,但是也这样一路走过来了,说明这种方式也是可行的。
回过头来想想,这个Ctrl+C和Ctrl+V的使用也不是这么简单的,个人认为一个合格的驱动开发者必须具备以下几种能力:
1. 读懂外设芯片spec的能力。这一条需要一点英文基础。
2. 读懂外设芯片读写时序图的能力。这条需要一些模电数电,微机原理等硬件知识。
3. 把芯片spec上的操作说明转化为代码的能力。这部分主要是逻辑流程了,比如如何初始化芯片,如何让芯片上电、复位,如何将芯片的读写操作时序转化为具体的读写函数等。
4. 熟练使用示波器的能力。这一点对于debug硬件很重要。调试之前,首先充分测试硬件,确保硬件原理和连线没有问题,各个电源电压、IO电压以及时钟都正常。
5. 读软件代码的能力。很多厂家都会提供芯片驱动的sample code,或者BSP,首先需要我们能够看懂别人的代码,这样才能够准确的Ctrl+C和Ctrl+V。这一条需要有一定的C或者C++基础。
6. 对操作系统的整体把握能力。对你所用的嵌入式操作系统有一个大体的认识。
以上为个人意见,欢迎拍砖、补充!!!
Hzh
2010.02.05 4:35 PM