Android平臺Bootloader的刷屏功能擴展設計
摘要:Android系統在正常啟動(dòng)中,刷屏功能一般在內核中執行,而Bootloader的任務(wù)應該是執行硬件初始化,并盡快跳轉到Linux內核。在Bootloader啟動(dòng)過(guò)程中使能一個(gè)顯示驅動(dòng),實(shí)現刷屏功能,并不違背這一目標。本文通過(guò)對Bootloader的原理分析和嵌入式芯片C6310中LCD控制器的研究,設計了Bootloader中LCD硬件初始化和軟件驅動(dòng)程序。該設計完善了Bootloader的擴展功能,加快了手機動(dòng)畫(huà)的實(shí)現,改善了客戶(hù)的使用體驗。
關(guān)鍵詞:Bootloader;LCD控制器;驅動(dòng)設計
引言
Android自2011年以來(lái)實(shí)現了計算機誕生以來(lái)最快速度的用戶(hù)群體增長(cháng),目前Android以每天85萬(wàn)新激活數的速度快速征服世界,在世界范圍內成為占有率最高的智能手機操作系統。根據賽諾的調研報告,Android系統在中國的市場(chǎng)份額高達74.7%。然而很多硬件制造商在舊設備的升級問(wèn)題上動(dòng)作緩慢。Android 4.0的配置要求比起之前的Android系統有較大的提高,導致很多廠(chǎng)商在中低端市場(chǎng)的新機型和主推機型都無(wú)法達到最低配置要求。根據市場(chǎng)的需求,低端Android手機存在著(zhù)巨大商機。在低價(jià)格的情況下,如何實(shí)現高配置的要求,成為手機開(kāi)發(fā)商研究的重點(diǎn)。
對于A(yíng)ndroid系統,Bootloader是基于特定平臺來(lái)實(shí)現的。Booloader是否解鎖關(guān)系到各方的利益,解鎖Bootloader將會(huì )給用戶(hù)帶來(lái)很大的好處,Android用戶(hù)將能夠自行根據需要刷寫(xiě)固件,去掉可能導致扣費的運營(yíng)商服務(wù),得到更加多樣的Android體驗。因此,本文根據定制的實(shí)際平臺,提出了一種面向客戶(hù)需求的實(shí)現Bootloader擴展功能的設計方案。
1 Bootloador的基本原理及功能介紹
Bootloader(系統啟動(dòng)加載器),其實(shí)就是在系統啟動(dòng)之前運行的一段程序。Bootloader的作用是對硬件設備初始化,建立內存空間映像圖,從而把系統的軟件環(huán)境帶到一個(gè)合適的狀態(tài)。這樣,系統在調用內核時(shí)就準備好真正的環(huán)境,最終引導系統正常啟動(dòng)。對于A(yíng)ndroid系統,通常并沒(méi)有PC機那樣的周件程序BIOS,因此Bootloader必須完成整個(gè)系統的加載任務(wù)。而且對于嵌入式系統,其硬件的差別也是很大的,在操作系統啟動(dòng)之前,必須完成這些硬件的初始化工作,這就導致嵌入式系統Bootloader的功能和具體實(shí)現都比PC系統復雜得多。
LK(Linux Kernel)是小內核小操作系統,是AndroidBootloader的核心。在高通代碼中,Android Bootloader位于bootable\bootloader\1k目錄下,Bootloader的功能性設計主要在app\aboot.c下,aboot_init函數是LK的功能入口點(diǎn)。aboot_init的執行過(guò)程如下:
①設置NAND/EMMC讀取信息頁(yè)面大??;
②讀取按健信息。判斷是正常開(kāi)機、進(jìn)入fastboot,還是進(jìn)入recovery模式;
③從NAND中加載內核;
④啟動(dòng)內核。實(shí)現刷屏功能可以在讀取按鍵之前,所以Bootloader擴展功能的設計流程如圖1所示。
2 LCD控制器及外圍設備連接
2.1 LCD控制器介紹
LCD控制器是Android手機開(kāi)發(fā)項目中C6310芯片的必備模塊,它負責將需要顯示的數據,如操作界面、圖像等送給LCD顯示設備。在手機的應用中,LCD顯示設備主要有以下幾類(lèi):被動(dòng)顯示模式STN屏、主動(dòng)顯示模式TFT屏,以及主動(dòng)模式OLED屏。根據顯示顏色不同,又可以分為單色屏和彩色屏。LCD控制器不直接和LCD顯示屏相連,而是和LCD驅動(dòng)器相連,這樣簡(jiǎn)化了接口信號數量和顯示控制過(guò)程。LCD控制器時(shí)序由控制信號和圖像數據兩部分組成,其中控制信號包括VCLK、HSYNC、VSYNC,分別為像素時(shí)鐘信號、行同步信號、幀同步信號。作為幀同步信號的VSYNC,每發(fā)出一個(gè)脈沖,都意味著(zhù)新的一屏圖像數據開(kāi)始發(fā)送。而作為行同步信號的HSYNC,每發(fā)出一個(gè)脈沖,都意味著(zhù)新的一行圖像資料開(kāi)始發(fā)送。在幀同步以及行同步的頭尾都必須保留回掃時(shí)間。這樣的時(shí)序安排起源于CRT顯示器電子槍偏轉所需的時(shí)間,但后來(lái)成為實(shí)際上的工業(yè)標準,因此TFT屏也包含了回掃時(shí)間。
C6310芯片內部集成了一個(gè)LCD控制器,通常配置寄存器來(lái)控制其工作,命令和圖像數據的傳輸由LCD主控制器自動(dòng)完成。C6310的LCD控制器采用并行或串行接口工作時(shí),最多支持3層圖像合并(L1、L2、L3),L4層用作命令存儲空間。命令存儲空間中一個(gè)命令有20位,占用32位空間。第一個(gè)0~17位對應LCD_CMD寄存器中0~17位;第19位用作命令、數據切換位。
評論