Android平臺Bootloader的刷屏功能擴展設計
4 LCD驅動(dòng)程序設計
LCD驅動(dòng)程序開(kāi)發(fā)過(guò)程中,主要需要實(shí)現的是底層驅動(dòng)程序,底層驅動(dòng)大體分為兩個(gè)部分:硬件初始化部分和實(shí)現splash_screen函數。
4.1 硬件初始化實(shí)現
硬件初始化部分主要由display_init函數來(lái)實(shí)現,主要包括初始化LCD控制器、初始化LCD處理器、Frame-buffer設備的配置等工作,主要實(shí)現的函數如下:

fb_config首先使能I2S寫(xiě)函數,對ILI9481進(jìn)行復位操作,fbcon_setup函數記錄了LCD屏幕參數,包括屏幕分辨率、時(shí)序參數、像素比特數(bpp)等參數,B_LCD_Init_ILI9481函數肩負著(zhù)向framebuffer驅動(dòng)程序傳遞數據的任務(wù)。初始化LCD控制器的寄存器主要是對LCD的PCD、ARM_INYEN、PBUS_WIDTH、OUT_BPP、LCD_TYPE等寄存器進(jìn)行配置。LCD控制寄存器主要是對屏幕參數、ARM中斷使能、并口LCD中片選信號極性、LCD屏類(lèi)型、時(shí)序特性進(jìn)行配置。主要寄存器如下:
PCD,配置像素時(shí)鐘分屏。
ARM_INTEN,配置ARM中斷使能信號。當信號為0時(shí),達到中斷產(chǎn)生條件后,不產(chǎn)生送到ARM的中斷信號;當信號為1時(shí),達到中斷產(chǎn)生條件后,產(chǎn)生送到ARM的中斷。
PBUS_WIDTH,輸出數據線(xiàn)位寬,當配置為并口顯示屏時(shí)有效。
OUT_BPP,配置BPP位寬。
LCD_TYPE,配置LCD屏類(lèi)型選擇。00為普通RGB接口TFT顯示屏,01為Sharp接口TFT顯示屏,10為并口LCD顯示屏,11為串口LCD顯示屏。
4.2 讀取圖像信息
splash_screen函數主要是定義圖像的地址,通過(guò)framebuffer對圖像進(jìn)行顯示。這里將顯示的圖像放在了U盤(pán)文件中,當LK啟動(dòng)時(shí),直接從SDRAM中讀取圖像信息,并定義bmp圖像的地址為0x14000000。圖像顯示函數如下:


LCD顯示數據大小是由顯示模式和顯示屏尺寸大小共同決定的。根據設計要求,使用的是320X480個(gè)像素、16bpp的256色LCD,顯示一屏圖像所需的顯示緩沖為320×480×16位。在顯示緩沖器中,每一個(gè)像素都占一個(gè)字節,且每個(gè)字節又要區分RGB格式。在顯示圖像時(shí),需要配置相應的寄存器,這些工作在初始化LCD控制器已經(jīng)完成。其次,確定圖像緩沖區的首地址,這個(gè)地址在4字節對齊的邊界上,而且要在SDRAM的4 MB空間之間,顯示緩沖區的數據會(huì )直接顯示到顯示屏上。LCD上顯示的不同圖像信息就是顯示緩沖區內不同數據的輸出。
5 LK的測試與調試
在該模塊下編寫(xiě)了一個(gè)Makefile文件,在調試LK模塊時(shí),可以單獨編譯LK模塊,這樣就節約了開(kāi)發(fā)的時(shí)間。編譯LK模塊,得到1k.bin文件。開(kāi)發(fā)板上電后,進(jìn)入U盤(pán)模式,用最新生成的1k. bin文件替換掉U盤(pán)中原始的文件,通過(guò)超級終端連接串口,啟動(dòng)LK。LK啟動(dòng)打印信息如圖4所示,LK能正常工作,并能執行LCD顯示驅動(dòng)。本文引用地址:http://dyxdggzs.com/article/159564.htm
結語(yǔ)
本文通過(guò)對Bootloader的研究,提出了一種Android詳細給出了LCD控制器操作流程和LCD的驅動(dòng)設計。系統啟動(dòng)正常,運行穩定,達到了設計的要求。盡管LCD手機在LK啟動(dòng)過(guò)程中實(shí)現LCD顯示的設計方案,并且的種類(lèi)很多,但驅動(dòng)程序的設計都可以遵循一定的模式,可以根據自己設計的需求選擇合適的方法。該方法對Android系統開(kāi)發(fā)具有一定的借鑒意義和參考價(jià)值。
評論