新闻中心

EEPW首页>嵌入式系统>设计应用> S5PV210(TQ210)学习笔记——LCD驱动编写

S5PV210(TQ210)学习笔记——LCD驱动编写

作者: 时间:2016-11-28 来源:网络 收藏

鉴于上面两个原因,我们需要配置内核支持Frame buffer和列举出的三个函数,另外,内核中并没有直接配置支持这三个函数的选项,权宜之计,修改下drivers/video目录下的Kconfig文件,在config FB项中添加

  1. selectFB_CFB_FILLRECT
  2. selectFB_CFB_COPYAREA
  3. selectFB_CFB_IMAGEBLIT
添加时一定保证格式正确,参考下该文件下的其他配置项即可。配置完成后执行make menuconfig作如下配置:
  1. DeviceDrivers--->
  2. Graphicssupport--->
  3. <*>Supportforframebufferdevices--->
配置后保存配置,编译内核并将编译好的内核下载到开发板或者NFS运行,同时将编译好的LCD驱动程序拷贝到开发板运行环境中进行安装,如果驱动文件名为lcd.ko,则执行:
  1. insmodlcd.ko
这时,你可以看到屏幕被重新初始化了。虽然LCD已经初始化了,但是不知道如何进行测试,可以按照韦东山老师视频中讲述的方法进行LCD驱动测试,但是我们移植的3.8.3内核默认不支持字库,还需要作其他配置,我是用画线的方式测试的屏幕,这里我讲一下我用的测试方法:

(1) 在Linux主机上编译下面的C++程序

  1. #include
  2. unsignedlongbuffer[480][800]={0};
  3. voidput_long_hex(unsignedlongv){
  4. for(inti=0;i!=4;++i){
  5. std::cout.put(static_cast (0xff&(v>>(8*(3-i)))));
  6. }
  7. }
  8. intmain(){
  9. for(inti=0;i!=480;++i){
  10. buffer[i][0]=0x00ff0000;
  11. buffer[i][799]=0x0000ff00;
  12. }
  13. for(inti=0;i!=800;++i){
  14. buffer[0][i]=0xff000000;
  15. buffer[479][i]=0x00ffff00;
  16. }
  17. for(inti=0;i!=480;++i){
  18. for(intj=0;j!=800;++j){
  19. put_long_hex(buffer[i][j]);
  20. }
  21. }
  22. }
编译指令如下:
  1. g++-omainmain.cpp
然后如下方式执行程序:
  1. ./main>/nfsroot/rootfs/test.img
我是直接将文件生成在NFS的根文件系统下了,你也可以用其他方式将生成的文件拷贝到开发板运行环境内,然后执行如下指令:
  1. cattest.img>/dev/fb0
这时,就可以在屏幕上看到一个矩形且矩形的四条边颜色不相同。

如果想将驱动编译进内核,并在启动时可以看到小企鹅,可以将上面的驱动拷贝到内核的drivers/video/目录下,命名为tq210_fb.c,然后在该目录下做如下修改:

(1)修改Kconfig,添加TQ210的LCD驱动配置选项

在config FB_S4C项的后面添加如下内容:

  1. configFB_TQ210
  2. tristate"TQ210lcdsupport"
  3. dependsonFB
  4. selectFB_CFB_FILLRECT
  5. selectFB_CFB_COPYAREA
  6. selectFB_CFB_IMAGEBLIT
  7. ---help---
  8. CurrentlythesuportisonlyfortheTQ210
(2)修改Makefile,添加如下内容:
  1. obj-$(CONFIG_FB_TQ210)+=tq210_fb.o

(3)退回到内核根目录下,执行make menuconfig并按如下方式配置内核

  1. DeviceDrivers--->
  2. Graphicssupport--->
  3. <*>Supportforframebufferdevices--->
  4. <*>TQ210lcdsupport
  5. [*]Bootuplogo--->
  6. [*]StandardblackandwhiteLinuxlogo
  7. [*]Standard16-colorLinuxlogo
  8. [*]Standard224-colorLinuxlogo

然后执行指令make zImage或者make uImage来编译内核,将编译好的内核烧写到开发板或者是放到NFS下即可正常运行。

如果您在开发或配置过程遇到什么问题可以留言讨论。


上一页 1 2 3 下一页

关键词:S5PV210LCD驱动编

评论


技术专区

关闭