这个星期一直在搞OLED的linux驱动,其实也不是啦,应该有7天工作日,前2天一直在搞federa的samba服务,想不到搞了2天,就因为该死的selinux和防火墙问题,然后再1天就搞svn,然后2天看代码,看代码也不止是看OLED部分,主要是如何编译到arch里面的那些文件(Makefile和.config),然后在通读linux底层移植代码,在arch/arm/mach-mmp目录和arch/arm/plat-pxa目录下,这2个目录就完全是最基本的pxa系列的移植代码,mach-mmp目录主要是针对具体的pxa核的具体信息,而plat-pxa更多公共的信息,在mmp的更上一层,通读之后也记不起太多东西,感觉就是大概有个把握,知道大概的原理而已。。。
其实OLED的驱动主要是在drivers/video目录下,这里有文件fbmem.c,主要提供应用通过ioctl链接到底层的代码,注册一些设备信息,然后把pxa9xx的pan display函数链接到具体pxa9xx的spi函数里,因为项目中oled通过spi总线控制的,spi通过发送命令来控制屏幕的显示。
其后还必须写应用层的应用来测试是否能调用成功,自己也封装了一遍函数的调用,至少自己看的比较舒服,然后把同事的编译脚本修改一下添加编译应用的功能,最后搞完,发patch,收工。。。
下一步看来还有很多事情要慢慢的一个一个的搞出来,还有电源,按键。。。功耗。。。还有。。。
还是慢慢一步一步来,让上头再吹一会儿。。。呵呵。。。
阅读(2182) | 评论(0) | 转发(0) |