S5PV210(TQ210)學(xué)習(xí)筆記——LCD驅(qū)動(dòng)編寫
鑒于上面兩個(gè)原因,我們需要配置內(nèi)核支持Frame buffer和列舉出的三個(gè)函數(shù),另外,內(nèi)核中并沒有直接配置支持這三個(gè)函數(shù)的選項(xiàng),權(quán)宜之計(jì),修改下drivers/video目錄下的Kconfig文件,在config FB項(xiàng)中添加
- selectFB_CFB_FILLRECT
- selectFB_CFB_COPYAREA
- selectFB_CFB_IMAGEBLIT
- DeviceDrivers--->
- Graphicssupport--->
- <*>Supportforframebufferdevices--->
- insmodlcd.ko
(1) 在Linux主機(jī)上編譯下面的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
如果想將驅(qū)動(dòng)編譯進(jìn)內(nèi)核,并在啟動(dòng)時(shí)可以看到小企鵝,可以將上面的驅(qū)動(dòng)拷貝到內(nèi)核的drivers/video/目錄下,命名為tq210_fb.c,然后在該目錄下做如下修改:
(1)修改Kconfig,添加TQ210的LCD驅(qū)動(dòng)配置選項(xiàng)
在config FB_S4C項(xiàng)的后面添加如下內(nèi)容:
- configFB_TQ210
- tristate"TQ210lcdsupport"
- dependsonFB
- selectFB_CFB_FILLRECT
- selectFB_CFB_COPYAREA
- selectFB_CFB_IMAGEBLIT
- ---help---
- CurrentlythesuportisonlyfortheTQ210
- obj-$(CONFIG_FB_TQ210)+=tq210_fb.o
(3)退回到內(nèi)核根目錄下,執(zhí)行make menuconfig并按如下方式配置內(nèi)核
- DeviceDrivers--->
- Graphicssupport--->
- <*>Supportforframebufferdevices--->
- <*>TQ210lcdsupport
- [*]Bootuplogo--->
- [*]StandardblackandwhiteLinuxlogo
- [*]Standard16-colorLinuxlogo
- [*]Standard224-colorLinuxlogo
如果您在開發(fā)或配置過程遇到什么問題可以留言討論。
評(píng)論