S5PV210(TQ210)学习笔记——LCD驱动编写
鉴于上面两个原因,我们需要配置内核支持Frame buffer和列举出的三个函数,另外,内核中并没有直接配置支持这三个函数的选项,权宜之计,修改下drivers/video目录下的Kconfig文件,在config FB项中添加
- selectFB_CFB_FILLRECT
- selectFB_CFB_COPYAREA
- selectFB_CFB_IMAGEBLIT
- DeviceDrivers--->
- Graphicssupport--->
- <*>Supportforframebufferdevices--->
- insmodlcd.ko
(1) 在Linux主机上编译下面的C++程序
- #include
- unsignedlongbuffer[480][800]={0};
- voidput_long_hex(unsignedlongv){
- for(inti=0;i!=4;++i){
- std::cout.put(static_cast
(0xff&(v>>(8*(3-i))))); - }
- }
- intmain(){
- for(inti=0;i!=480;++i){
- buffer[i][0]=0x00ff0000;
- buffer[i][799]=0x0000ff00;
- }
- for(inti=0;i!=800;++i){
- buffer[0][i]=0xff000000;
- buffer[479][i]=0x00ffff00;
- }
- for(inti=0;i!=480;++i){
- for(intj=0;j!=800;++j){
- put_long_hex(buffer[i][j]);
- }
- }
- }
- g++-omainmain.cpp
- ./main>/nfsroot/rootfs/test.img
- cattest.img>/dev/fb0
如果想将驱动编译进内核,并在启动时可以看到小企鹅,可以将上面的驱动拷贝到内核的drivers/video/目录下,命名为tq210_fb.c,然后在该目录下做如下修改:
(1)修改Kconfig,添加TQ210的LCD驱动配置选项
在config FB_S4C项的后面添加如下内容:
- configFB_TQ210
- tristate"TQ210lcdsupport"
- dependsonFB
- selectFB_CFB_FILLRECT
- selectFB_CFB_COPYAREA
- selectFB_CFB_IMAGEBLIT
- ---help---
- CurrentlythesuportisonlyfortheTQ210
- obj-$(CONFIG_FB_TQ210)+=tq210_fb.o
(3)退回到内核根目录下,执行make menuconfig并按如下方式配置内核
- DeviceDrivers--->
- Graphicssupport--->
- <*>Supportforframebufferdevices--->
- <*>TQ210lcdsupport
- [*]Bootuplogo--->
- [*]StandardblackandwhiteLinuxlogo
- [*]Standard16-colorLinuxlogo
- [*]Standard224-colorLinuxlogo
如果您在开发或配置过程遇到什么问题可以留言讨论。
评论