跳到主要內容

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映像檔等工具程式。

留言

這個網誌中的熱門文章

[試用心得] 日本無線上網超Wi-Ho(走SoftBank),一日不限流量NT299,可供多人使用,林氏璧讀者九五折優惠。

[試用心得] 日本無線上網超Wi-Ho(走SoftBank),一日不限流量NT299,可供多人使用,林氏璧讀者九五折優惠。 p.s.上面這張圖的吃到飽是錯的,Docomo小白機從去年就有限流量了,但特樂通聲稱Soft Bank小紅機是沒有限流量的。 我 是一個重度網路使用者,因為我有一個部落格需要管理。即使是在旅行的時候,我也很難忍受一天不能上網。去年從美國回來後終於入手了智慧型手機,這才發現這 個世界已經進步成什麼樣了!!一個小小手機就可以上網辦到好多事啊!!我也變成了一個低頭族,喜歡到處打卡,到了一個新地方就想上傳照片和粉絲專頁的朋友 們分享,或是用line或Skype和家人報平安。2012年8月我去東北的那一次是申請中華電信的漫遊,速度感覺不是很快或很穩定(當然也和東北多半比 較郊區有關)。這次回東京,終於試用到了網路上大名鼎鼎的上網神器:Wi-Ho。其實我想用用看WI-HO很久了,因為似乎比常用的B-MOBILE快很 多又不用裝SIM卡,這次終於有機會^^ 感謝日商特樂通資訊台灣分公司提供我們試用!!這次旅行途中一路暢通的網路,讓我體驗到活用各式App,google地圖等來定位,Tabelog找店家 等等的方便功能,真的深深感覺,傳統的玩東京的方式可以被行動上網徹底改變呢! 2013.7.19更新: 特樂通公司將推出兩台新機器,舊的小白機有可能慢慢淘汰,這篇介紹的小紅機還是不錯的選擇,但都有更好的機種了,請看: [新機上市] Wi-Ho黑旋風機(走Docomo適合郊區)及小黑機(走E-mobile適合城市),可使用超過十小時的日本無線上網新選擇,林氏璧讀者九五折優惠。 2013.7.3更新: 1.超WiHo! Softbank 3.5G (JP-S )(小紅機) 日本 $199/天 !! 說明:只有限前往日本及小紅機訊號優良地區,其他地區小紅機訊號不好處,需使用Docomo (JP-DM),仍維持原價$299 比方說我從6月15日借八天Soft bank小紅,不但一天199,整個金額會再打95折歐!快從這個林氏璧的專屬網址 線上申請 吧。(如果沒有打折,請在經銷商的欄位輸入linshibi,應該就會有打折了) 2.7~9月份使用的所有國家(包含日本),請即日起上網預訂,7~9月日本機器尚有充足貨源,...

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...