• <u id="t4ggu"><table id="t4ggu"><em id="t4ggu"></em></table></u>

    1. <big id="t4ggu"><mark id="t4ggu"></mark></big>
      1. 欧美叉叉叉bbb网站,亚洲综合色成在线播放,日本无遮挡真人祼交视频,亚洲国产另类久久久精品网站 ,无码里番纯肉h在线网站,国产欧美日韩精品a在线观看,国产成人无码一区二区三区在线 ,色婷婷五月综合亚洲小说

        產(chǎn)品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質(zhì)分析|光譜儀|試驗機|試驗箱


        儀表網(wǎng)>技術(shù)中心>應(yīng)用設(shè)計>正文

        歡迎聯(lián)系我

        有什么可以幫您? 在線咨詢

        Android平臺Bootloader的刷屏功能擴展設(shè)計

           2013年01月11日 14:09  
          摘要:Android系統(tǒng)在正常啟動中,刷屏功能一般在內(nèi)核中執(zhí)行,而Bootloader的任務(wù)應(yīng)該是執(zhí)行硬件初始化,并盡快跳轉(zhuǎn)到Linux內(nèi)核。在Bootloader啟動過程中使能一個顯示驅(qū)動,實現(xiàn)刷屏功能,并不違背這一目標(biāo)。本文通過對Bootloader的原理分析和嵌入式芯片C6310中LCD控制器的研究,設(shè)計了Bootloader中LCD硬件初始化和軟件驅(qū)動程序。該設(shè)計完善了Bootloader的擴展功能,加快了手機動畫的實現(xiàn),改善了客戶的使用體驗。
          
          關(guān)鍵詞:Bootloader;LCD控制器;驅(qū)動設(shè)計
          
          引言
          
          Android自2011年以來實現(xiàn)了計算機誕生以來zui快速度的用戶群體增長,目前Android以每天85萬新激活數(shù)的速度快速征服世界,在世界范圍內(nèi)成為占有率zui高的智能手機操作系統(tǒng)。根據(jù)賽諾的調(diào)研報告,Android系統(tǒng)在中國的*高達(dá)74.7%。然而很多硬件制造商在舊設(shè)備的升級問題上動作緩慢。Android4.0的配置要求比起之前的Android系統(tǒng)有較大的提高,導(dǎo)致很多廠商在中低端市場的新機型和主推機型都無法達(dá)到zui低配置要求。根據(jù)市場的需求,低端Android手機存在著巨大商機。在低價格的情況下,如何實現(xiàn)高配置的要求,成為手機開發(fā)商研究的重點。
          
          對于Android系統(tǒng),Bootloader是基于特定平臺來實現(xiàn)的。Booloader是否解鎖關(guān)系到各方的利益,解鎖Bootloader將會給用戶帶來很大的好處,Android用戶將能夠自行根據(jù)需要刷寫固件,去掉可能導(dǎo)致扣費的運營商服務(wù),得到更加多樣的Android體驗。因此,本文根據(jù)定制的實際平臺,提出了一種面向客戶需求的實現(xiàn)Bootloader擴展功能的設(shè)計方案。
          
          1、Bootloador的基本原理及功能介紹
          
          Bootloader(系統(tǒng)啟動加載器),其實就是在系統(tǒng)啟動之前運行的一段程序。Bootloader的作用是對硬件設(shè)備初始化,建立內(nèi)存空間映像圖,從而把系統(tǒng)的軟件環(huán)境帶到一個合適的狀態(tài)。這樣,系統(tǒng)在調(diào)用內(nèi)核時就準(zhǔn)備好真正的環(huán)境,zui終引導(dǎo)系統(tǒng)正常啟動。對于Android系統(tǒng),通常并沒有PC機那樣的周件程序BIOS,因此Bootloader必須完成整個系統(tǒng)的加載任務(wù)。而且對于嵌入式系統(tǒng),其硬件的差別也是很大的,在操作系統(tǒng)啟動之前,必須完成這些硬件的初始化工作,這就導(dǎo)致嵌入式系統(tǒng)Bootloader的功能和具體實現(xiàn)都比PC系統(tǒng)復(fù)雜得多。
          
          LK(LinuxKernel)是小內(nèi)核小操作系統(tǒng),是AndroidBootloader的核心。在高通代碼中,AndroidBootloader位于bootable\bootloader\1k目錄下,Bootloader的功能性設(shè)計主要在app\aboot.c下,aboot_init函數(shù)是LK的功能入口點。aboot_init的執(zhí)行過程如下:
          
          ①設(shè)置NAND/EMMC讀取信息頁面大小;
          
          ②讀取按健信息。判斷是正常開機、進入fastboot,還是進入recovery模式;
          
          ③從NAND中加載內(nèi)核;
          
          ④啟動內(nèi)核。實現(xiàn)刷屏功能可以在讀取按鍵之前,所以Bootloader擴展功能的設(shè)計流程如圖1所示。
          
          2、LCD控制器及外圍設(shè)備連接
          
          2.1LCD控制器介紹
          
          LCD控制器是Android手機開發(fā)項目中C6310芯片的*模塊,它負(fù)責(zé)將需要顯示的數(shù)據(jù),如操作界面、圖像等送給LCD顯示設(shè)備。在手機的應(yīng)用中,LCD顯示設(shè)備主要有以下幾類:被動顯示模式STN屏、主動顯示模式TFT屏,以及主動模式OLED屏。根據(jù)顯示顏色不同,又可以分為單色屏和彩色屏。LCD控制器不直接和LCD顯示屏相連,而是和LCD驅(qū)動器相連,這樣簡化了接口信號數(shù)量和顯示控制過程。LCD控制器時序由控制信號和圖像數(shù)據(jù)兩部分組成,其中控制信號包括VCLK、HSYNC、VSYNC,分別為像素時鐘信號、行同步信號、幀同步信號。作為幀同步信號的VSYNC,每發(fā)出一個脈沖,都意味著新的一屏圖像數(shù)據(jù)開始發(fā)送。而作為行同步信號的HSYNC,每發(fā)出一個脈沖,都意味著新的一行圖像資料開始發(fā)送。在幀同步以及行同步的頭尾都必須保留回掃時間。這樣的時序安排起源于CRT顯示器電子槍偏轉(zhuǎn)所需的時間,但后來成為實際上的工業(yè)標(biāo)準(zhǔn),因此TFT屏也包含了回掃時間。
          
          C6310芯片內(nèi)部集成了一個LCD控制器,通常配置寄存器來控制其工作,命令和圖像數(shù)據(jù)的傳輸由LCD主控制器自動完成。C6310的LCD控制器采用并行或串行接口工作時,zui多支持3層圖像合并(L1、L2、L3),L4層用作命令存儲空間。命令存儲空間中一個命令有20位,占用32位空間。*個0~17位對應(yīng)LCD_CMD寄存器中0~17位;第19位用作命令、數(shù)據(jù)切換位。
          
          2.2LCD控制器和LCD驅(qū)動囂的硬件連接
          
          ILI9481是一個單芯片TFT液晶顯示驅(qū)動器,通常LCD控制器和LCD驅(qū)動器之間有并口、串口、RGB三種接口。采用RGB接口時,控制信息(行同步、場同步等)由主控制器發(fā)送;采用并口、串口時,控制信息包含在發(fā)送的圖像數(shù)據(jù)中,該項目采用的是C6310LCD控制器和ILI9481驅(qū)動器,它們采用并口連接,圖2描述了LCD主控制器和ILI9481的連接。
          
          驅(qū)動中針對硬件的操作主要為主控制器寄存器的配置,命令和圖像的傳輸由LCD主控制器完成。
          
          3、LCD控制器操作流程設(shè)計
          
          C6310采用L3層作為背景層、L4為命令層。當(dāng)緩沖區(qū)的圖像數(shù)據(jù)準(zhǔn)備好以后,通過B_LCD_BmpOntoScreen16Bpp_ILI9481()函數(shù)啟動LCD控制器,并將圖像數(shù)據(jù)搬移到LCD驅(qū)動器。B_LCD_BmlpOntoScreen16Bpp_ILI9481()啟動控制器后,啟動一個等待隊列,等待圖像數(shù)據(jù)傳輸完畢。
          
          圖像搬移過程中會產(chǎn)生中斷,這里用到L4_EOF、L3_EOF、和L1_EOF中斷,其中L4_EOF為命令傳輸完成中斷,L3_EOF和L1_EOF分別為L3層和L1層數(shù)據(jù)傳輸完成中斷。首先,C6310_LCDC向LCD驅(qū)動器發(fā)送一組數(shù)據(jù),命令發(fā)送完畢后產(chǎn)生L4_EOF中斷。然后,C6310_LCDC向LCD驅(qū)動器發(fā)送圖像數(shù)據(jù),發(fā)送完畢后產(chǎn)生L3_EOF和L1_EOF中斷。
          
          在LCD進行數(shù)據(jù)顯示前,首先要對LCD控制器的相關(guān)寄存器進行正確的設(shè)置。表1是C6310中的主要寄存器及其說明。
          
          連接16位RGB并行接口屏,其寄存器的操作流程如下;
          
          ①將命令index和命令數(shù)據(jù)寫入存儲器,如果命令是16位,則每一個字對應(yīng)15:0是命令。如果命令為8位,則每一個字對應(yīng)7:0是命令,通過每一個字中的第17位、WR_RD和第16位A0控制命令屬性,如果該命令是zui后一個命令,命令的第19位設(shè)置為1。
          
          ②配置LCD寄存器。配置第4層的起始地址為命令存儲地址,配置LCD_PCONF控制讀寫時序,配置LCD_L1_SIZE的屏幕大小,配置LCD_PCONF控制讀寫時序,配置LCD_LCONF控制每層的開關(guān)和透明覆蓋使能等。
          
          ③使能LCD控制位LCD_SEL,LCD控制器自動讀取存儲器中數(shù)據(jù)傳輸?shù)浇涌凇?br />  
          ④等待L1_SOF中斷產(chǎn)生后,可以寫下一幀所需要的命令和修改其他層起始地址等。
          
          ⑤等待BOF中斷可以配置下一幀的LCD_CTRL寄存器或者每一層起始地址。
          
          ⑥如果連接的是并口或者串口LCD屏,在圖像數(shù)據(jù)寫入存儲器的同時將命令寫到第4層圖像對應(yīng)地址,LCD控制器會自動讀取這些命令輸出。LCD控制器操作流程如圖3所示。
          
          從流程圖可以看出,當(dāng)EOF中斷產(chǎn)生之后,就可以配置LCD控制器下一幀數(shù)據(jù)的起始地址。此時,這些配置不會在當(dāng)前幀起效,而是在下一幀起效,如果需要當(dāng)前命令發(fā)送完畢之后發(fā)送圖像數(shù)據(jù),L4_WINTH需配置為大于實際命令發(fā)送個數(shù)。本驅(qū)動為了讓LCD控制器傳送一幀圖像后停止工作,當(dāng)L4_EOF中斷到來后,配置下一幀發(fā)送的命令為0x30003。
          
          4、LCD驅(qū)動程序設(shè)計
          
          LCD驅(qū)動程序開發(fā)過程中,主要需要實現(xiàn)的是底層驅(qū)動程序,底層驅(qū)動大體分為兩個部分:硬件初始化部分和實現(xiàn)splash_screen函數(shù)。
          
          4.1硬件初始化實現(xiàn)
          
          硬件初始化部分主要由display_init函數(shù)來實現(xiàn),主要包括初始化LCD控制器、初始化LCD處理器、Frame-buffer設(shè)備的配置等工作,主要實現(xiàn)的函數(shù)如下:
          
          fb_config首先使能I2S寫函數(shù),對ILI9481進行復(fù)位操作,fbcon_setup函數(shù)記錄了LCD屏幕參數(shù),包括屏幕分辨率、時序參數(shù)、像素比特數(shù)(bpp)等參數(shù),B_LCD_Init_ILI9481函數(shù)肩負(fù)著向framebuffer驅(qū)動程序傳遞數(shù)據(jù)的任務(wù)。初始化LCD控制器的寄存器主要是對LCD的PCD、ARM_INYEN、PBUS_WIDTH、OUT_BPP、LCD_TYPE等寄存器進行配置。LCD控制寄存器主要是對屏幕參數(shù)、ARM中斷使能、并口LCD中片選信號極性、LCD屏類型、時序特性進行配置。主要寄存器如下:
          
          PCD,配置像素時鐘分屏。
          
          ARM_INTEN,配置ARM中斷使能信號。當(dāng)信號為0時,達(dá)到中斷產(chǎn)生條件后,不產(chǎn)生送到ARM的中斷信號;當(dāng)信號為1時,達(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ù)主要是定義圖像的地址,通過framebuffer對圖像進行顯示。這里將顯示的圖像放在了U盤文件中,當(dāng)LK啟動時,直接從SDRAM中讀取圖像信息,并定義bmp圖像的地址為0x14000000。圖像顯示函數(shù)如下:

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

        免責(zé)聲明

        • 凡本網(wǎng)注明“來源:儀表網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-儀表網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:儀表網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
        • 本網(wǎng)轉(zhuǎn)載并注明自其它來源(非儀表網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或和對其真實性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品第一來源,并自負(fù)版權(quán)等法律責(zé)任。
        • 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
        聯(lián)系我們

        客服熱線: 15024464426

        加盟熱線: 15024464426

        媒體合作: 0571-87759945

        投訴熱線: 0571-87759942

        關(guān)注我們
        • 下載儀表站APP

        • Ybzhan手機版

        • Ybzhan公眾號

        • Ybzhan小程序

        溫馨提示

        該企業(yè)已關(guān)閉在線交流功能

        主站蜘蛛池模板: 精选国产av精选一区二区三区| 狠狠色婷婷久久综合频道日韩| 精品无码一区二区三区电影| 饥渴少妇高潮正在播放| 亚洲人成网7777777国产| 国产精品成人午夜福利| 女同另类激情在线三区| 亚洲一区黄色| 欧美高清一区三区在线专区| 青草热在线观看精品视频| 成人精品天堂一区二区三区 | 亚洲男女羞羞无遮挡久久丫| 日本免费人成视频在线观看 | 中文字幕V亚洲日本在线电影| 国产精品污www在线观看| 久久精品夜夜夜夜夜久久| 亚洲AV永久无码天堂网一线| 奇米四色7777中文字幕 | 国产乱码一区二区三区免费| 横山县| 人妻熟妇乱又伦精品无码专区| 九九热免费在线观看视频| 无套内谢少妇毛片aaaa片免费| 色综合久久夜色精品国产| 亚洲综合一区国产精品| 人人妻人人澡人人爽人人精品av| 国产欧美日韩视频一区二区三区| 中文字幕乱码一区二区免费| 连城县| 正在播放肥臀熟妇在线视频| 伊人久久精品一区二区三区 | 国产日韩久久免费影院| 国产精品一区高清在线观看| 国产成人8X人网站视频| 久久精品一区二区东京热| 果冻传媒mv免费播放在线观看| 美日韩精品一区二区三区| 国产永久免费高清在线| 久久精品久久电影免费理论片| 亚洲区中文字幕日韩精品| 欧洲无码一区二区三区在线观看|