跳到主要內容

U BOOT 簡介

U BOOT 簡介

前言
目前市面上以嵌入式Linux為基礎的設備正以驚人的速度成長著,從大小僅3英吋的Gumstix系統到 PDA、Smart-phones等,嵌入式Linux系統幾乎無所不在。然而,在這些各式各樣不同的平台中安裝與啟動Linux卻是個艱難的工作。由於 平台差異性造成開發上的困難,因此開發人員希望能夠擁有一個功能強大且支援大量平台的Boot Loader來簡化開發的過程。而U-Boot就是在這種期望下所產生出來的產物。
所謂的Boot Loader,也有人稱之為Boot Code或Boot Monitor,即是在系統電源打開後最早執行的一小段程式。以執行Linux系統的PC為例,存在於硬碟MBR (Master Boot Record)中的Lilo或Grub程式,就是一種常見的Boot Loader。在PC中,當BIOS做完系統各種初始化後,便會執行MBR中的Boot Loader,接著Boot Loader提供必要的系統資訊給作業系統核心並啟動作業系統。
然而,在嵌入式系統中的Boot Loader則較為複雜,因為大部分的平台中並沒有BIOS來處理系統初始化的動作,且微處理器、記憶體控制器與其它的特定的硬體,其初始化的方式亦隨著 CPU或平台的不同而不同,因此我們並不希望將初始化的動作交付給作業系統,而是由Boot Loader來執行。
一個運作於嵌入式系統中的Boot Loader至少必需提供下列的功能
l 初始化硬體,特別是記憶體控制器
l 提供啟動時的參數給作業系統
l 啟動作業系統
除此之外,大部分的Boot Loader亦提供了許多額外的功能,如讀寫任意合法位址的記憶體資料、自我更新Boot Image或網路支援等。
U-Boot簡介
U- Boot是一個遵循GPL的自由軟體,而Wolfgang Denk為此專案現任的主導人。目前U-Boot已經支援了大量的嵌入式系統平台與各式各樣的CPU,其中包括了PowerPC、ARM、XScale、 MIPS、Coldfire、NIOS、Microblaze與x86等。因此你可以輕易的將U-Boot移植到你的平台上並享受它所提供的強大功能。
U- Boot最早起源於一個名為「8xxROM」的專案,目的是提供PowerPC系統一個功能完整的Boot Loader,當時主導此專案的人是Magnus Damm。而在2000年時,Wolfgang Denk,也就是目前的專案主導人,將此專案加入了Sourceforge組織,但由於該組織不允許以數字為開頭的專案名稱,因此Wolfgang Denk便將專案名稱改為「PPCBoot」。
由於PPCBoot所提供的功能與相關工具程式非常完整併且開放源始碼,在日漸受到大眾歡 迎之際,便開始有人將PPCBoot移植到其它平台上。2002年9月,PPCBoot已經支援了四種不同的ARM處理器,因此,相關人員又建立了名為 ARMBoot的專案。有鑑於程式支援的處理器愈來愈多,2002年11月,開發團隊最終決定建立一個新的專案來整合這些不同平台的移植版本,並將其命名 為「Das U-Boot」(Universal Boot Loader)。
事實上,U-Boot開發的方式非常接近Linux,甚至 有部分的程式亦直接取自Linux原始程式,尤其是設備驅動程式。U-Boot能夠啟動的作業系統包含了Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS等,其中以Linux的支援最為豐富。U-Boot的版本命名也與Linux類似,它使用三階段的版本編號,分別是Version、Sub- version與Patchlevel,以U-Boot-1.2.3為例,Version為1,Sub-version為2,而Patchlevel則為 3。其中Patchlevel用來識別該版本修訂的次數,通常當某版本正式釋出時,Patchlevel為0。
下表為U-Boot原始碼的目錄架構,熟悉Linux的讀者對於這種架構應該不陌生。若你有機會從事大型軟體開發的工作,不妨以此為參考範本,相信對於專案的進行會更加的順利。
目錄名稱 說明
board 包含所有已建立完成之開發板,與硬體相關之檔案,比如Makefile和u-boot.lds等都和具體開發板的硬體和地址分配有關。
common 與系統架構無關的檔案,包含環境變數的設定與執行遠端控制台各種命令的處理等。
cpu CPU 相關檔案,其中的子目錄都是以U-Boot所支援的CPU為名,比如有子目錄arm926ejs、mips、mpc8260和nios等,每個特定的子目 錄中都包括cpu.c和interrupt.c,start.S。其中cpu.c初始化CPU、設置指令(Instruction) Cache和資料(Data) Cache等;interrupt.c設置系統的各種中斷和異常/特殊事件(Exception),比如快速中斷、開關中斷、時鐘中斷、軟體中斷、預取中 止和未定義指令等;start.S是U-Boot啟動時執行的第一個檔案,它主要是設定系統堆疊(Stack)和工作方式,為進入C程式作好前置作業。
disk 磁碟驅動與分區處理(partition handling)相關的程式碼。
doc 相關說明文件。
drivers 各種硬體設備驅動程式(Device Driver),比如各種網路卡、支援CFI的Flash、串列埠(Serial Port)和USB等。
dtt 處理與溫度設備相關的控制。
examples 一些應用範例,例如:hello_world.c、sched.c等。
fs 與所支援檔案系統有關之原始程式,U-Boot現在支援cramfs、fat、fdos、jffs2和registerfs。
include 檔頭定義檔(.h),還有對各種硬體平台支援的組合語言檔(.asm),定義系統的各種配置,包含軟體與硬體。
lib_xxx 與各種不同架構相關的函式庫或程式碼。(lib_arm、lib_mips、lib_i386、lib_m68k等)。
lib_generic 公用的程式庫(Library),例如:crc32.c(CRC Check)、zlib.c(壓縮)、string.c(字串處理)等。
net 處理與網絡有關之相關程式,BOOTP協定(Protocol)、TFTP協定、RARP協定和NFS檔案統的實現。
post 提供Power On Self Test功能。
rtc Real Time Clock驅動程式。
tools 提供建立S-Record或U-Boot映像檔等工具程式。

留言

這個網誌中的熱門文章

Effortless English - MP3 Free Download ( 167 )

Effortless English - MP3 Free Download ( 167 ) You can download here free AJ Hoge's podcasts, upload them to your mp3 player and improve your English listening at least 30 minutes everyday. To download mp3 click right button of your mouse and select "Save as". Click here to go to the official Effortless English website! General: Power_English_Update.mp3 Models_Etc.mp3 Audio_Twitter_Tweets.mp3 AJ_Update.mp3 Hitch_1_Commentary.mp3 Hitch_1.mp3 Hitch_1_MS-POV.mp3 Hitch_1_MS.mp3 Hitch_1_Vocab.mp3 English_Mastery_Formula.mp3 New_English_Club.mp3 Learn_English_Naturally.mp3 Back_Home.mp3 The_Best_Investment.mp3 Seminar_In_Bangkok_Jan25.mp3 New_Year_Resolution.mp3 Subconscious_Learning.mp3 Intensely.mp3 Super_Fast.mp3 English_Learning_Psychology.mp3 English_Club_2.mp3 Your_First_Lesson.mp3 Business_English_For_New_Business.mp3 Learn_English_Conversation.mp3 Learn_English_Grammar.mp3 Business_vs_Self-Employment.mp3 Learn_Business_English_Eff...

如何將SRT亂碼轉換成繁體字幕

avi格式的電影常常需要搭配srt格式的檔案來顯示字幕,最常見的字幕有英文、簡體中文及繁體中文的格式,不過偶爾會發現出現的字幕是看不懂的文字。若不是翻譯品質的問題,別急著把字幕砍掉,透過幾個小步驟即可轉換為能夠正確顯示的字幕。 1. 打開Word2007,點選"開啟舊檔",將右下角的下拉選單選擇"所有檔案",即可看到.srt檔案。 2. 點選開啟之後,會出現一個選取文字編碼的對話框,選擇"其它編碼方式"中的" 簡體中文GB2312 "語系,預覽框即會出現正確的簡體文字。 3. 選擇工具列上的"校閱">"簡轉繁"功能,將簡體中文轉換為繁體中文。 4. 按Ctrl+A全選、再按Ctrl+C複製所有內容;關閉Word且不要存檔。此時會出現對話框詢問是否要保留複製的文字,按下"是"後離開Word。 5.將剛才的.srt檔案用記事本開啟,將所有的內容文字刪除,再按Ctrl+V將剛剛複製的內容貼上,覆蓋,存檔並關閉就OK了。 另一個快速將亂碼改為簡體中文的方法: 1. 將srt檔案用IE開啟 2. 開啟出來的畫面顯示出來的也是亂碼,接著按右鍵選擇"編碼",選取"簡體中文(GB2312)"的選項,會出現正確的簡體文字。 3.將網頁上的文字複製下來,再用記事本開啟.srt檔案,將原有的亂碼內容刪掉、並貼上剛剛複製的文字,存檔關閉,若有出現對話框,存檔類型選擇"所有檔案",編碼改為"Unicode",按下儲存就完成囉!