Writing Linux LCD drivers
Writing Linux LCD drivers
×÷ÕߣºJimSheng
Writing Linux LCD drivers
Abstract
1 LCD Module\Driver\Controller
2 Linux Frame Buffer Driver
2.1 Why Frame Buffer?
2.2 What is Frame Buffer Devices?
2.3 How to Write Frame Buffer Device Drivers?
3 Analysis of Linux Frame Buffer Driver Source Codes
3.1 fb.h
3.2 fbmem.c
4 Skeleton of LCD controller rivers
4.1 Allocate a system memory as video memory
4.2 Implement the fb_ops functions
Reference
Abstract
This material discusses how to write a Linux frame buffer LCD device driver.
1 LCD Module\Driver\Controller
Besides the datasheet of LCD devices, there are two quite good books (.pdf format) on LCD technology. Both of them are written in Chinese. One is “Òº¾§ÏÔʾ¼¼Êõ”, and the other is “Òº¾§ÏÔʾÆ÷¼þ”. The two books give almost all needed LCD knowledge, including introductions to hardware implementation of LCD devices and low level software programming used to operate LCD devices. This helps LCD circuits design and low level LCD programming.
2 Linux Frame Buffer Driver
2.1 Why Frame Buffer?
If GUIs (Graphic User Interface) such as MiniGUI, MicroWindows are used, LCD device drivers must be implemented as Linux frame buffer device drivers in addition to those low level operations which only deal with commands provided by LCD controllers.
2.2 What is Frame Buffer Devices?
The frame buffer device provides an abstraction for the graphics hardware. It represents the frame buffer of some video hardware and allows application software to access the graphics hardware through a well-defined interface, so the software doesn't need to know anything about the low-level (hardware register) stuff.
The device is accessed through special device nodes, usually located in the /dev directory, i.e. /dev/fb*.
More description about frame buffer device can be found in two txt files: linux /Documentation /fb /framebuffer.txt and linux /Documentation /fb /interal.txt
2.3 How to
Ïà¹ØÎĵµ£º
Linux²»Êǽâ¾öÖйú·¢Õ¹¹ý³ÌÖдæÔÚµÄËùÓÐÎÊÌâµÄÍòÄÜÒ©£¬ËüÖ»ÊÇΪÎÒÃÇÌṩÁËÒ»¸ö¿ÉÒÔÃ÷ÏÔ½µµÍ³É±¾¡¢´Ù½ø¹ú¼ÊºÏ×÷ºÍ»ñµÃ¸ü¹ãÀ«·¢Õ¹Ç°¾°µÄÑ¡ÏîÖ®Ò»¡£Í¨³£Çé¿öÏ£¬¹ÍÓùúÍâÓÅÐã¹ÜÀíºÍ¼¼ÊõÈËÔ±ËùÐèµÄ·ÑÓûá¸ßµÄ¾ªÈË¡£²»½öÒªÏòÕâЩÈËÖ§¸¶¸ß¶îµÄ³ê½ð£¬Í¬Ê±ÒªÎªËûÃÇÓªÔìÒ ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
4
ÔÂ
10
ÈÕ£¬¿Æ¼¼²¿¾Í“¹ú¼Ò×ÔÖ÷´´Ð²úÆ·È϶¨¹¤×÷”·¢³ö֪ͨ£¬¹«¿ªÕ÷ÇóÒâ¼û£¬ÆäÖеÄ
Ö¸µ¼Ë¼ÏëÓÐÖØ´óÍ»ÆÆ¡£¾ßÌåÇé¿öÈçºÎ£¿
2009
Äê
10
ÔÂ
30
ÈÕ£¬ÔÚÎÒ¹úÕþ¸® ......
Linux»·¾³½ø³Ì¼äͨÐÅ£¨Ò»£©
http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/
Linux»·¾³½ø³Ì¼äͨÐÅ£¨¶þ£©ÉÏ
http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html
Linux»·¾³½ø³Ì¼äͨÐÅ£¨¶þ£©ÏÂ
http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html
Linux»·¾³½ø³Ì¼äͨÐÅ£ ......
http://blog.chinaunix.net/u2/62910/showart_1090856.html
Linux »ã±àÓïÑÔ¿ª·¢Ö¸ÄÏ
»ã±àÓïÑÔµÄÓŵãÊÇËٶȿ죬¿ÉÒÔÖ±½Ó¶ÔÓ²¼þ½øÐвÙ×÷£¬Õâ¶ÔÖîÈçͼÐδ¦ÀíµÈ¹Ø¼üÓ¦ÓÃÊǷdz£ÖØÒªµÄ¡£Linux ÊÇÒ»¸öÓà C ÓïÑÔ¿ª·¢µÄ²Ù×÷ϵͳ£¬ÕâʹµÃºÜ¶à³ÌÐòÔ±¿ªÊ¼Íü¼ÇÔÚ Linux Öл¹¿ÉÒÔÖ±½ÓʹÓûã±àÕâÒ»µ×²ãÓïÑÔÀ´ÓÅ»¯³ÌÐòµÄÐÔÄÜ¡£±¾ÎÄΪÄÇÐ©Ô ......
LinuxÉ豸Çý¶¯³ÌÐòѧϰ±Ê¼ÇϵÁÐÎÄÕÂÔ×÷ÕßÊÇ£ºTekkaman Ninja£¬Ëû²©¿ÍµØÖ·£º
http://blog.chinaunix.net/u1/34474/showart_404278.html
ÔÚ´ËÏòTekkaman Ninja±íʾ¸Ðл£¬Ð´³öÕâôºÃµÄÎÄÕ£¬Ê¹ÎÒÉÙ×ßÁ˺ܶàÍä·¡£
ͨ¹ýÒ»¸öÉ豸ÔÚÄÚºËÖÐÉúÃüÖÜÆڵĸ÷¸ö½×¶Î£¬¿ÉÒÔ¸üºÃµØÀí½âLinuxÉ豸ģÐÍ¡£ÎÒ½«Í¨¹ý·ÖÎölddbusºÍsculldµÄÔ ......