基于嵌入式系統(tǒng)的彩色液晶顯示驅(qū)動控制
pxafb_check_var(fbi->fb.var,fbi->fb); //為控制設(shè)備驅(qū)動的高層提供一個驅(qū)動Frame Buffer的界面
pxafb_set_par(fbi->fb); //配置用戶定義的顯示控制臺,并進(jìn)一步調(diào)用pxafb_activate_var()函數(shù),將fb_var_screeninfo數(shù)據(jù)結(jié)構(gòu)中的參數(shù)寫到 PXA270 LCD控制器,來生成LCCR0~LCCR3等多個相關(guān)寄存器映像,從而達(dá)到設(shè)置LCDC寄存器的目的
ret = register_framebuffer(fbi->fb); //注冊Frame Buffer使其與控制臺設(shè)備驅(qū)動的高層連接
5.3 顯示緩沖區(qū)的訪問操作
在用戶程序中對顯示緩沖區(qū)設(shè)備/dev/fb的訪問是通過調(diào)用文件層的操作函數(shù)來實現(xiàn)。首先用Linuxdriversvideo fbmem.c中的fb_open()打開代表Frame Buffer的/dev/fb設(shè)備文件;然后通過fb_ioctl()操作獲取LCD顯示屏的分辨率屏長、屏寬和每個像素點(diǎn)的位數(shù)bpp值等,進(jìn)而計算得到Frame Buffer的大小并通過fb_mmap()將其映射到用戶空間;最后即可通過fb_read()、fb_write()直接對Frame Buffer進(jìn)行讀、寫操作,顯示相應(yīng)圖像。
驅(qū)動程序經(jīng)編譯和連接,定位后加載到kernel,燒到目標(biāo)板,實現(xiàn)PXA270對TFT-LCD的顯示驅(qū)動。
6 結(jié)論
本文作者創(chuàng)新點(diǎn):提出了一種基于PXA270和Linux-2.4.19內(nèi)核的TFT-LCD嵌入式驅(qū)動方案,通過分析TFT-LCD與 PXA270內(nèi)嵌的LCD控制器的工作原理與時序,設(shè)計了TFT-LCD的驅(qū)動硬件電路和相應(yīng)軟件,實現(xiàn)了PXA270 對LCD的驅(qū)動,經(jīng)在目標(biāo)板上運(yùn)行效果顯示,各個信號的時序完全滿足TFT-LCD的要求。本設(shè)計應(yīng)用于工控領(lǐng)域作為顯示輸出設(shè)備,具有硬件緊湊簡單、軟件可裁剪和移植、便攜性、可視化等優(yōu)點(diǎn)。
參考文獻(xiàn):
[1] 寧志剛,汪仁煌. 基于PXA270的PDA交通管理系統(tǒng)在Linux環(huán)境下的實現(xiàn)[J].電子技術(shù)應(yīng)用,2004,(4):15-17
[2] Intel Corporation. Intel? PXA270 Processor Developer’s Manual[R].2004.1
[3] 鄭靈翔.嵌入式系統(tǒng)設(shè)計與應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006.2
[4] 安吉宇,等.基于Intel PXA270的TFT-LCD驅(qū)動設(shè)計[J].液晶與顯示,2006,21(6):279-282
[5] 蘭立榮,陸以勤,呂錦.基于ARM系統(tǒng)高分辨率彩屏設(shè)計方法[J].微計算機(jī)信息,2006,22(9-2):122-123
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評論