999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于S3C2440的U-Boot開機logo的設計與實現

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

袁 帥,楊 著,劉青山

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

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

1 系統總體結構

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

2 U-Boot分析

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

2.1 U-Boot簡介

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

2.2 U-Boot啟動分析

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

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

3.1 系統開發環境

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

3.2 LCD控制原理

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

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

3.3 驅動開發

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

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

1)計算 HSYNCH和VSYNCH:

2)硬件設備初始化

3)分辨率設置

3.4 模式設置

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

其中 le、ri、up、lo、hs、vs分別根據硬件特性設置為 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中實現硬件設備驅動以及相關的配置程序后,重新編譯U-Boot,并將生成的二進制文件下載到實驗平臺,上電后在顯示屏左上角可看到顯示的denx.bmp圖片,即實現基于U-Boot的開機logo功能。這里所使用的默認圖片位于路徑tools/logos/中,當需要采用其它圖片作為開機logo時,只需要將denx.bmp文件替換為需要的圖片并重新編譯即可。

4 結束語

通過在U-Boot添加開機logo方便開發者了解系統啟動過程,也為用戶提供友好的開機界面。同時,在需要對開機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系統的LCD驅動實現[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的船舶導航系統設計[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的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 久久国产毛片| 国产自无码视频在线观看| 日本国产在线| 四虎成人免费毛片| 欧美人在线一区二区三区| 欧美一级大片在线观看| 99精品热视频这里只有精品7| 一本久道久久综合多人| 一本二本三本不卡无码| 天堂成人在线视频| 久久香蕉国产线看观看式| 一本色道久久88综合日韩精品| 亚洲国产亚洲综合在线尤物| 精品久久777| 午夜无码一区二区三区| 97se亚洲综合在线天天| 欧美在线黄| 日韩在线影院| 91亚洲精选| 特级毛片免费视频| 大学生久久香蕉国产线观看| 国产综合日韩另类一区二区| 伊人久久大香线蕉综合影视| 亚洲日本中文综合在线| 四虎永久免费地址| 久久成人18免费| 国产精品美女网站| 一区二区三区高清视频国产女人| 国产美女在线免费观看| 在线视频亚洲欧美| 国产成人高清亚洲一区久久| 久热中文字幕在线| 亚洲国产成人精品无码区性色| 中文字幕有乳无码| 午夜人性色福利无码视频在线观看| 国产大全韩国亚洲一区二区三区| 成人免费一级片| 女同国产精品一区二区| 国产丝袜91| 亚洲高清无在码在线无弹窗| 国产欧美日韩视频一区二区三区| 极品性荡少妇一区二区色欲| 欧美精品一区在线看| av无码久久精品| 91区国产福利在线观看午夜| 在线色国产| 无码高潮喷水专区久久| 特级做a爰片毛片免费69| 国产天天射| 亚洲小视频网站| 怡红院美国分院一区二区| 国产视频一区二区在线观看| 无码区日韩专区免费系列| 亚洲第一福利视频导航| 国产美女自慰在线观看| 亚洲欧美日本国产综合在线| 久久这里只有精品免费| 黄色网页在线播放| 亚洲欧美人成电影在线观看| 四虎永久在线视频| 在线国产毛片手机小视频| 自拍亚洲欧美精品| 亚洲国产日韩视频观看| 九九免费观看全部免费视频| 高清乱码精品福利在线视频| 精品成人一区二区三区电影| 在线中文字幕网| 老色鬼久久亚洲AV综合| 亚洲中久无码永久在线观看软件 | 国产高潮视频在线观看| 欧美日韩免费| 在线视频精品一区| 亚洲欧美不卡| 中文字幕在线播放不卡| 亚洲免费成人网| 久久精品一卡日本电影| 欧美精品亚洲二区| 国产成人精品三级| 国产在线观看精品| 欧美日韩免费在线视频| 真实国产乱子伦高清| 国产欧美亚洲精品第3页在线|