LCD控制器
LCD控制器的功能是顯示驅動信號,進而驅動LCD。用戶只需要通過讀寫一系列的寄存器,完成配置和顯示驅動。在驅動LCD設計的過程中首要的是配置LCD控制器,而在配置LCD控制器中最重要的一步則是幀緩沖區(FrameBuffer)的指定。用戶所要顯示的內容皆是從緩沖區中讀出,從而顯示到屏幕上的。幀緩沖區的大小由屏幕的分辨率和顯示色彩數決定。驅動幀緩沖的實現是整個驅動開發過程的重點。S3C2410中的LCD控制器可支持STN和TFT兩種液晶。對于STN 液晶平板,該LCD控制器可支持4位雙掃描、4位單掃描和8位單掃描三種顯示類型,支持4級和16級灰度級單色顯示模式,支持256色和4096色顯示,可接多種分辨率的LCD,例如640×480、320×240和160×160等,在256色顯示模式時,最大可支持4096×1024、2048×2048和1024×4096顯示。TFT液晶平板可支持1-2-4-8bpp(bits per pixel)調色板顯示模式和16bpp非調色板真彩顯示。
幀緩沖區是出現在Linux 2.2.xx及以后版本內核當中的一種驅動程序接口,這種接口將顯示設備抽象為幀緩沖區設備區。幀緩沖區為圖像硬件設備提供了一種抽象化處理,它代表了一些視頻硬件設備,允許應用軟件通過定義明確的界面來訪問圖像硬件設備。這樣軟件無須了解任何涉及硬件底層驅動的東西(如硬件寄存器)。它允許上層應用程序在圖形模式下直接對顯示緩沖區進行讀寫和I/O控制等操作。通過專門的設備節點可對該設備進行訪問,如/dev/fb*。用戶可以將它看成是顯示內存的一個映像,將其映射到進程地址空間之后,就可以進行讀寫操作,而讀寫操作可以反映到LCD。
幀緩沖設備對應的設備文件是/dev/fb*。如果系統有多個顯卡,Linux還支持多個幀緩沖設備,最多可達32個,即/dev/fb0~/dev/fb31。而/dev/fb則指向當前的幀緩沖設備,通常情況下,默認的幀緩沖設備為/dev/fb0。
幀緩沖設備也屬于字符設備,采用“文件層-驅動層”的接口方式。在文件層為之定義了以下數據結構。
Static struct file_operations fb_fops={
ower: THIS_MODULE,
read: fb_read, /*讀操作*/
writ





