Android平臺(tái)Bootloader的刷屏功能擴(kuò)展設(shè)計(jì)
4 LCD驅(qū)動(dòng)程序設(shè)計(jì)
LCD驅(qū)動(dòng)程序開發(fā)過(guò)程中,主要需要實(shí)現(xiàn)的是底層驅(qū)動(dòng)程序,底層驅(qū)動(dòng)大體分為兩個(gè)部分:硬件初始化部分和實(shí)現(xiàn)splash_screen函數(shù)。
4.1 硬件初始化實(shí)現(xiàn)
硬件初始化部分主要由display_init函數(shù)來(lái)實(shí)現(xiàn),主要包括初始化LCD控制器、初始化LCD處理器、Frame-buffer設(shè)備的配置等工作,主要實(shí)現(xiàn)的函數(shù)如下:
fb_config首先使能I2S寫函數(shù),對(duì)ILI9481進(jìn)行復(fù)位操作,fbcon_setup函數(shù)記錄了LCD屏幕參數(shù),包括屏幕分辨率、時(shí)序參數(shù)、像素比特?cái)?shù)(bpp)等參數(shù),B_LCD_Init_ILI9481函數(shù)肩負(fù)著向framebuffer驅(qū)動(dòng)程序傳遞數(shù)據(jù)的任務(wù)。初始化LCD控制器的寄存器主要是對(duì)LCD的PCD、ARM_INYEN、PBUS_WIDTH、OUT_BPP、LCD_TYPE等寄存器進(jìn)行配置。LCD控制寄存器主要是對(duì)屏幕參數(shù)、ARM中斷使能、并口LCD中片選信號(hào)極性、LCD屏類型、時(shí)序特性進(jìn)行配置。主要寄存器如下:
PCD,配置像素時(shí)鐘分屏。
ARM_INTEN,配置ARM中斷使能信號(hào)。當(dāng)信號(hào)為0時(shí),達(dá)到中斷產(chǎn)生條件后,不產(chǎn)生送到ARM的中斷信號(hào);當(dāng)信號(hào)為1時(shí),達(dá)到中斷產(chǎn)生條件后,產(chǎn)生送到ARM的中斷。
PBUS_WIDTH,輸出數(shù)據(jù)線位寬,當(dāng)配置為并口顯示屏?xí)r有效。
OUT_BPP,配置BPP位寬。
LCD_TYPE,配置LCD屏類型選擇。00為普通RGB接口TFT顯示屏,01為Sharp接口TFT顯示屏,10為并口LCD顯示屏,11為串口LCD顯示屏。
4.2 讀取圖像信息
splash_screen函數(shù)主要是定義圖像的地址,通過(guò)framebuffer對(duì)圖像進(jìn)行顯示。這里將顯示的圖像放在了U盤文件中,當(dāng)LK啟動(dòng)時(shí),直接從SDRAM中讀取圖像信息,并定義bmp圖像的地址為0x14000000。圖像顯示函數(shù)如下:
LCD顯示數(shù)據(jù)大小是由顯示模式和顯示屏尺寸大小共同決定的。根據(jù)設(shè)計(jì)要求,使用的是320X480個(gè)像素、16bpp的256色LCD,顯示一屏圖像所需的顯示緩沖為320×480×16位。在顯示緩沖器中,每一個(gè)像素都占一個(gè)字節(jié),且每個(gè)字節(jié)又要區(qū)分RGB格式。在顯示圖像時(shí),需要配置相應(yīng)的寄存器,這些工作在初始化LCD控制器已經(jīng)完成。其次,確定圖像緩沖區(qū)的首地址,這個(gè)地址在4字節(jié)對(duì)齊的邊界上,而且要在SDRAM的4 MB空間之間,顯示緩沖區(qū)的數(shù)據(jù)會(huì)直接顯示到顯示屏上。LCD上顯示的不同圖像信息就是顯示緩沖區(qū)內(nèi)不同數(shù)據(jù)的輸出。
5 LK的測(cè)試與調(diào)試
在該模塊下編寫了一個(gè)Makefile文件,在調(diào)試LK模塊時(shí),可以單獨(dú)編譯LK模塊,這樣就節(jié)約了開發(fā)的時(shí)間。編譯LK模塊,得到1k.bin文件。開發(fā)板上電后,進(jìn)入U(xiǎn)盤模式,用最新生成的1k. bin文件替換掉U盤中原始的文件,通過(guò)超級(jí)終端連接串口,啟動(dòng)LK。LK啟動(dòng)打印信息如圖4所示,LK能正常工作,并能執(zhí)行LCD顯示驅(qū)動(dòng)。本文引用地址:http://www.ex-cimer.com/article/159564.htm
結(jié)語(yǔ)
本文通過(guò)對(duì)Bootloader的研究,提出了一種Android詳細(xì)給出了LCD控制器操作流程和LCD的驅(qū)動(dòng)設(shè)計(jì)。系統(tǒng)啟動(dòng)正常,運(yùn)行穩(wěn)定,達(dá)到了設(shè)計(jì)的要求。盡管LCD手機(jī)在LK啟動(dòng)過(guò)程中實(shí)現(xiàn)LCD顯示的設(shè)計(jì)方案,并且的種類很多,但驅(qū)動(dòng)程序的設(shè)計(jì)都可以遵循一定的模式,可以根據(jù)自己設(shè)計(jì)的需求選擇合適的方法。該方法對(duì)Android系統(tǒng)開發(fā)具有一定的借鑒意義和參考價(jià)值。
評(píng)論