亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于S3C2440的U-Boot開機logo的設計與實現(xiàn)

        2011-06-09 10:14:30劉青山
        電子設計工程 2011年22期
        關鍵詞:嵌入式設置設備

        袁 帥,楊 著,劉青山

        (西南科技大學 計算科學與技術學院,四川 綿陽 621010)

        隨著科技進步以及多媒體應用的推動下,LCD被廣泛應用到嵌入式相關產品中,從而提高用戶視覺體驗效果。本設計基于S3C2440處理器為硬件平臺,通過在U-Boot中的添加LCD驅動并實現(xiàn)開機logo功能,通過驗證表明,該設計可為開發(fā)者提供友好的調試信息,并為用戶提供友好的開機界面。

        1 系統(tǒng)總體結構

        系統(tǒng)采用S3C2440為主控處理器,該處理器是基于ARM920T的32位嵌入式微處理器,具有低功耗,高性能等特點,被廣泛應用于嵌入式設備中[1]。文中結合S3C2440處理器的特點,同時對U-Boot的體系結構、啟動流程進行深入分析,并根據(jù)LCD圖形顯示原理完成基于U-Boot的相關硬件設備驅動程序,最終實現(xiàn)基于S3C2440的U-Boot開機logo的設計與實現(xiàn)。

        2 U-Boot分析

        Bootloader是在操作系統(tǒng)啟動前運行的一段用于對硬件設備進行初始化的程序,該程序為內存空間建立映射圖,并為操作系統(tǒng)的啟動配置相關環(huán)境等工作。

        2.1 U-Boot簡介

        U-Boot(Universal Boot Loader)是由 DENX 小組開發(fā)的遵循GPL條款的開源程序,其主要工作包括對硬件設備初始化、操作系統(tǒng)代碼搬運等。同時,U-Boot還支持多種嵌入式操作系統(tǒng)以及多種類型的處理器,并具有較高的可靠性和穩(wěn)定性,而且豐富的設備驅動程序以及開發(fā)文檔,強大的網(wǎng)絡技術支持等,為嵌入式軟件開發(fā)提高效率[2]。

        2.2 U-Boot啟動分析

        U-Boot通過兩個階段分別實現(xiàn)硬件設備初始化和操作系統(tǒng)的引導啟用功能。而系統(tǒng)啟動的入口點是通過在文件uboot.lds中指定,并在編譯過程中將入口點通知編譯器,通過文件中的ENTRY(_start)指出程序從_start開始運行,其具體指向的是start.o(即start.s生成的目標文件)文件。在系統(tǒng)加電后,根據(jù)指定地址取出第一條指令并運行,通過這種方式實現(xiàn)U-Boot的引導啟動。

        第一階段的啟動代碼主要包含在start.s文件中,該階段首先對中斷向量表進行設置,將CPU模式置為管理模式(svc),關閉看門狗,設置時鐘頻率(對 FCLK,HCLK,PCLK三者之間的比例進行設置),設置寄存器等工作,如圖1所示;其次,為使系統(tǒng)獲得更快的執(zhí)行速度,U-Boot會將自己從非易失性存儲器搬移到 RAM中執(zhí)行啟動,如圖2所示;最后,分配堆棧空間,設置堆棧指針,清零BSS,并通過指令ldr pc,_start_armboot實現(xiàn)跳轉,從而完成U-Boot第一階段啟動工作。完成對處理器相關的初始化工作后,系統(tǒng)通過調用lib_arm/board.c中的start_armboot函數(shù)進入第二階段。該階段為U-Boot的主體部分,但為了提高程序的可讀性和可移植性,該階段的代碼通過C語言來完成對設備的進一步初始化工作,主要包括對Flash設備的初始化,內存分配,并對硬件設備進行初始化等任務。完成一系列初始化工作后,程序引導進入while主循環(huán),等待用戶選擇系統(tǒng)啟動模式,如果用戶選擇進入下載模式,將接受從終端輸入的命令并執(zhí)行,否則直接調用預先設置的環(huán)境參數(shù)bootcmd,根據(jù)設置的參數(shù)引導操作系統(tǒng)的啟動,流程如圖3所示。

        圖1 U-Boot第一階段啟動流程Fig.1 The first stage of boot process for U-Boot

        圖2 U-Boot內存分布圖Fig.2 U-Boot memory map

        圖3 U-Boot第二階段啟動流程Fig.3 The second stage of boot process for U-Boot

        3 U-Boot開機Logo實現(xiàn)

        3.1 系統(tǒng)開發(fā)環(huán)境

        系統(tǒng)采用32位的嵌入式RISC微處理器S3C2440,其主頻最高可達533 MHz,并擁有豐富的片上資源:4通道DMA,4通道脈寬調制定時器,8通道10位的A/D控制器及觸摸屏接口等。其中,處理器上的LCD控制器可用于傳輸視頻數(shù)據(jù)并產生必要的控制信號(如VFRAME、VLINE、VCLK、VM等),而視頻數(shù)據(jù)輸出是通過端口[1]VD[23:0]。

        3.2 LCD控制原理

        LCD能夠正常顯示圖像或文字信息,需要LCD驅動器和控制器兩者的支持。其中,LCD驅動器是以COF/COG的形式與LCD玻璃基板制作在一起;而LCD控制器[4]則是由外部電路來實現(xiàn),通過LCD控制器就可以產生LCD驅動器所需要的控制信號,并利用這些控制信號來控制STN/TFT屏的顯示。

        在S3C2440處理器內部已經(jīng)集成有LCD控制器,其結構如圖4所示。該處理器主要由 REGBANK、LCDCDMA、TIMEGEN、VIDPRCS寄存器組成。其中,REGBANK寄存器由17個可編程的寄存器組以及一塊256×16的調色板內存組成,用于配置LCD控制器;LCDCDMA寄存器是一個專用的DMA,DMA通道主要實現(xiàn)視頻在不需要CPU的干預下直接顯示到LCD屏上;VIDPRCS寄存器用于接收從LCDCDMA中傳遞的視頻數(shù)據(jù),并將數(shù)據(jù)轉換為合適的數(shù)據(jù)格式,最后通過數(shù)據(jù)輸出端口VD[23:0]將視頻數(shù)據(jù)傳送到LCD顯示屏;TIMEGEN寄存器由可編程的邏輯單元組成,用于生成LCD驅動器所需要的VSYNC、HSYNC、VCLK和 LEND等控制信號,而這些控制信號又與REGBANK寄存器組中的LCDCON1/2/3/4/5的配置密切相關,通過不同的配置,TIMEGEN就能產生不同的信號形態(tài),從而實現(xiàn)對不同的LCD設備的支持[3-5]。

        3.3 驅動開發(fā)

        要實現(xiàn)基于U-Boot的開機logo,首先需要對不同的LCD顯示屏開發(fā)相應的驅動程序。根據(jù)U-Boot中文件管理方式,與顯示屏相關的驅動程序均放在目錄drivers/video/下,在該文件夾中添加本設計需要的驅動文件s3c2440_fb.c。在文件中通過調用函數(shù)void*video_hw_init(void)檢測系統(tǒng)顯示屏型號,并對檢測到的設備進行相關的初始化,包括通過環(huán)境變量獲取圖像顯示模式(videomode)、設置顯示模式、計算水平同步信號寬度 (HSYNCH)和垂直同步脈沖寬度(VSYNCH)、對圖像硬件設備所依賴的結構體進行初始化,以及設置BPP(圖像的每個像素值所需要的位數(shù),bits_per_pixel)等,主要初始化過程及核心代碼如下:

        圖4 S3C2440 LCD控制器結構Fig.4 S3C2440 LCD controller block diagram

        1)計算 HSYNCH和VSYNCH:

        2)硬件設備初始化

        3)分辨率設置

        3.4 模式設置

        模式設置用于確定LCD分辨率及工作模式,根據(jù)對LCD屏的時序分析設置適當?shù)臅r鐘信號,從而實現(xiàn)在固定的場、行周期內顯示完整畫面,使顯示分辨率達到最好效果;同時結合行、場同步信號時序,設置水平、垂直起始位置及顯示區(qū)域等信息,從而使LCD能正確顯示有效數(shù)據(jù)。因此,結合LCD數(shù)據(jù)手冊在文件videomodes.c中添加顯示模式選項:

        其中 le、ri、up、lo、hs、vs分別根據(jù)硬件特性設置為 HBPD(horizontal back porch, 對 應 驅 動 中 的 left_margin)、HFPD(horizontal front porth, 對 應 驅 動 中 的 right_margin)、VBPD(vertical back porch, 對 應 驅 動 中 的 upper_margin)、VFBD(vertical front porch, 對 應 驅 動 中 的 lower_margin)、HSPW(horizontal sync pulse width,對應驅動中的 hsync_len)、VSPW(vertical sync pulse width,對應驅動中的 vsync_len)[6]。

        3.5 功能測試

        在U-Boot中實現(xiàn)硬件設備驅動以及相關的配置程序后,重新編譯U-Boot,并將生成的二進制文件下載到實驗平臺,上電后在顯示屏左上角可看到顯示的denx.bmp圖片,即實現(xiàn)基于U-Boot的開機logo功能。這里所使用的默認圖片位于路徑tools/logos/中,當需要采用其它圖片作為開機logo時,只需要將denx.bmp文件替換為需要的圖片并重新編譯即可。

        4 結束語

        通過在U-Boot添加開機logo方便開發(fā)者了解系統(tǒng)啟動過程,也為用戶提供友好的開機界面。同時,在需要對開機logo進行修改時,只需要對相應的圖片進行替換并編譯,不再使用其他的轉換工具對圖片進行處理,或重新配置相關的程序源文件,因此,方便開機logo的修改。

        [1]宣言,曾連蓀.基于ARM的真彩LCD驅動程序設計[J].電腦知識與技術,2009,5(8):2023-2025.XUAN Yan, ZENG Lian-sun.Based on ARM’s true color LCD driver design[J].Computer Knowledge and Technology,2009,5(8):2023-2025.

        [2]DENX.The DENX U-Boot and Linux Guide (DULG)for canyonlands[EB/OL]. (2010-10)[2010-10-1].http://www.denx.de/wiki/DULG/Manual.

        [3]宮莉莉,趙勇.基于嵌入式Linux系統(tǒng)的LCD驅動實現(xiàn)[J].微計算機信息,2008,24(12-2):1-3.GONG Li-li,ZHAO Yong.Implementation of LCD driver based on embedded Linux [J].Microcomputer Information,2008,24(12-2):1-3.

        [4]Samsung semiconductor. S3C2440A 32-Bit CMOS Microcontroller User’s Manual[EB/OL]. (2004)[2010-8-12].http://www.docin.com/p-24716747.htm l.

        [5]黃勇亮.基于嵌入式S3C2440的船舶導航系統(tǒng)設計[J].微計算機信息,2008,24(4-2):134-136,154.HUANG Yong-liang.Design of steamboat navigation system based on embest S3C2440 [J].Microcomputer Information,2008,24(4-2):134-136,154.

        [6]Innolux Display Corporation.LCD Module Specification[EB/OL]. (2007-05-11)[2010-9-5].http://www.elecfans.com/soft/softdown.asp?softid=13151.

        猜你喜歡
        嵌入式設置設備
        諧響應分析在設備減振中的應用
        中隊崗位該如何設置
        少先隊活動(2021年4期)2021-07-23 01:46:22
        基于MPU6050簡單控制設備
        電子制作(2018年11期)2018-08-04 03:26:08
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
        500kV輸變電設備運行維護探討
        本刊欄目設置說明
        中俄臨床醫(yī)學專業(yè)課程設置的比較與思考
        原來他們都是可穿戴設備
        消費者報道(2014年7期)2014-07-31 11:23:57
        Altera加入嵌入式視覺聯(lián)盟
        放荡的少妇2欧美版| 精品一区二区亚洲一二三区| 中文字幕有码在线亚洲| 久久精品国产字幕高潮| 影音先锋每日av色资源站| 丝袜欧美视频首页在线| 国内精品女同一区二区三区| 久久精品国产亚洲av麻豆会员 | 国产亚洲精品aaaa片小说| 中文字幕少妇AV| 亚洲熟女一区二区三区不卡| 伊人中文字幕亚洲精品乱码| 国产午夜精品一区二区三区软件 | 开心五月激情五月五月天| 久久精品国产精品| 久久国产偷| 又爽又猛又大又湿的视频| 水蜜桃在线观看一区二区| 久久久久久国产精品无码超碰动画| 亚洲中文字幕久久精品蜜桃| 青青草绿色华人播放在线视频| 亚洲中国精品精华液| 影视先锋av资源噜噜| 99热这里只有精品久久6| 亚洲无毛成人在线视频| 国产偷国产偷精品高清尤物| 射精情感曰妓女色视频| 一区二区在线视频大片| 女同视频一区二区在线观看| 欧洲熟妇色xxxxx欧美老妇伦| 中文人妻无码一区二区三区| 91羞射短视频在线观看| 男人扒开女人双腿猛进视频| 欧美成人看片黄a免费看| 国产西西裸体一级黄色大片| 穿着白丝啪啪的av网站| 国产午夜福利100集发布| 国产成人精品日本亚洲语音1| 国产一区二区三区精品毛片 | 老子影院午夜精品无码| 音影先锋色天堂av电影妓女久久|