基于ARM嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn).doc_第1頁
基于ARM嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn).doc_第2頁
基于ARM嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn).doc_第3頁
基于ARM嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn).doc_第4頁
基于ARM嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于ARM嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn) 緒 論:隨著嵌入式產(chǎn)品中高端微處理器ARM的加入以及軟件上操作系統(tǒng)的支持,使得整個(gè)嵌入式系統(tǒng)擁有了完整的構(gòu)架。現(xiàn)在,專門為嵌入式產(chǎn)品開發(fā)的各個(gè)操作系統(tǒng)層出不窮,WINDOW CE,POCKET PC,Linux等等,各界關(guān)注地也特別多。然而,如何進(jìn)行加載操作系統(tǒng)這個(gè)問題卻很少有人提出。這就產(chǎn)生了另一個(gè)相關(guān)主題bootloader。Bootloader本身的功能就是引導(dǎo)與加載內(nèi)核鏡像。如何實(shí)現(xiàn)bootloader的基本功能,如何針對基于ARM體系的微處理器來實(shí)現(xiàn)bootloader,就成為本課題的一個(gè)基本論題。,除了基本功能,bootloader還能有什么更加具體的擴(kuò)展功能來方便各個(gè)系統(tǒng)開發(fā)者,都屬于本課題討論的范疇。第一章:ARM簡介第一節(jié):ARM微處理器嵌入式系統(tǒng)的核心部件是各種類型的嵌入式處理器。目前據(jù)不完全統(tǒng)計(jì),全世界嵌入式處理器的品種總量已經(jīng)超過1000多種,流行體系結(jié)構(gòu)有30多個(gè)系列。嵌入式微處理目前主要有Am186/88、386EX、SC-400、Power PC、MIPS、ARM系列等。其中,ARM是一種今年來在嵌入式系統(tǒng)中有著強(qiáng)大影響力的微處理器設(shè)計(jì)商和制造商,ARM的設(shè)計(jì)非常適合與小的電源供電系統(tǒng)。特別是,隨著近年來,微處理器結(jié)構(gòu)由RISC(精簡指令集)全面取代傳統(tǒng)的CISC(復(fù)雜指令集),因?yàn)锳RM是著名的RISC的擁護(hù)者。采用RISC結(jié)構(gòu)的ARM微處理器一般具有如下特點(diǎn):1 體積小、低功耗、低成本、高性能;2 支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8/16位器件;3 大量使用寄存器,指令執(zhí)行速度更快;4 大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5 尋址方式靈活簡單,執(zhí)行效率高;6 指令長度固定;下圖所示的是ARM構(gòu)架圖。它由32位ALU、若干個(gè)32位通用寄存器以及狀態(tài)寄存器、328位乘法器、3232位桶形移位寄存器、指令譯碼以及控制邏輯、指令流水線和數(shù)據(jù)/地址寄存器組成。1 ALU:它有兩個(gè)操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果以及零檢測邏輯構(gòu)成。2 桶形移位寄存器:ARM采用了3232位的桶形移位寄存器,這樣可以使在左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成。3 高速乘法器:乘法器一般采用“加一移位”的方法來實(shí)現(xiàn)乘法。ARM為了提高運(yùn)算速度,則采用兩位乘法的方法,根據(jù)乘數(shù)的2位來實(shí)現(xiàn)“加一移位”運(yùn)算 ;ARM高速乘法器采用328位的結(jié)構(gòu),這樣,可以降低集成度(其相應(yīng)芯片面積不到并行乘法器的1/3)。4 浮點(diǎn)部件:浮點(diǎn)部件是作為選件供ARM構(gòu)架使用。FPA10浮點(diǎn)加速器是作為協(xié)處理方式與ARM相連,并通過協(xié)處理指令的解釋來執(zhí)行??刂破鳎篈RM的控制器采用的是硬接線的可編程邏輯陣列PLA。 A31:0 控制地址寄存器 指令譯碼及控制 增值器 寄存器堆 A L U 總 乘法器 線 線 總 A 桶式 B 移位器 總 線 ALU 數(shù)據(jù)輸出寄存器 數(shù)據(jù)輸入寄存器 D31:0ARM構(gòu)架圖處理器模式可以通過軟件控制進(jìn)行切換,也可以通過外部中斷或異常處理過程進(jìn)行切換。大多數(shù)的用戶程序運(yùn)行在用戶模式下,這時(shí),應(yīng)用程序不能夠訪問一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源,應(yīng)用程序也不能直接進(jìn)行處理器模式的切換。當(dāng)需要進(jìn)行處理器模式的切換時(shí),應(yīng)用程序可以產(chǎn)生異常處理,在異常處理過程中進(jìn)行模式的切換。這種體系結(jié)構(gòu)可以使操作系統(tǒng)控制整個(gè)系統(tǒng)的資源。ARM處理器共有7種運(yùn)行模式,如下表所示:第二節(jié):ARM最小系統(tǒng)的描述對于任何一個(gè)系統(tǒng),都希望不是一個(gè)虛擬系統(tǒng),也就是說系統(tǒng)都希望是特定系統(tǒng),即有具體的CPU,有具體的存儲(chǔ)芯片以及有各種具體的外圍控制模塊。對于本課題來說,最終的bootloader也必須在具體的系統(tǒng)上運(yùn)行起來。但是,任何一個(gè)ARM系統(tǒng),在沒有特定指定的條件下,仍然可以將通用特性(一些通用基本控制模塊)描述出來,在此稱之為ARM最小系統(tǒng),見下圖:處理器模式處理器模式描述用戶模式(User,usr)正常程序執(zhí)行的模式快速中斷模式(FIQ,fiq)用于高速數(shù)據(jù)傳輸和通道處理普通中斷模式(IRQ,irq)用于通常的中斷處理監(jiān)管模式(Supervisor,svc)供操作系統(tǒng)使用的一種保護(hù)模式數(shù)據(jù)訪問中止模式(Abort,abt)用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)未定義指令中止模式(Undefined,und)用于支持通過軟件方針硬件的協(xié)處理器系統(tǒng)模式(System,sys)用于運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù) Memory 控制器 GPIO控制模塊 系 外 統(tǒng) 總線橋接 圍 總 串口 線 總 線ARM core 中斷控制器 中斷ARM最小系統(tǒng)第二章:Bootloader的概念第一節(jié):感念介紹bootloader就是在操作系統(tǒng)內(nèi)核運(yùn)行前運(yùn)行地一段小程序。通過這段小程序,我們可以初始化必要的硬件設(shè)備,創(chuàng)建內(nèi)核需要的一些信息并將這些信息通過相關(guān)機(jī)制傳遞給內(nèi)核,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),最終調(diào)用操作系統(tǒng)內(nèi)核,真正起到引導(dǎo)和加載內(nèi)核的作用。bootloader是依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式系統(tǒng)中。不同的體系結(jié)構(gòu)需求的bootloader是不同的;除了體系結(jié)構(gòu),bootloader還依賴于具體的嵌入式板級(jí)設(shè)備的配置。也就是說,對于兩塊不同的嵌入式板而言,即使它們基于相同的CPU構(gòu)建,運(yùn)行在其中一塊電路板上的bootloader,未必能夠運(yùn)行在另一塊電路開發(fā)板上。一個(gè)嵌入式Linux系統(tǒng)從軟件的角度看通??梢苑譃樗膫€(gè)層次:引導(dǎo)加載程序、Linux內(nèi)核、文件系統(tǒng)、用戶應(yīng)用程序。第二節(jié):bootloader的操作模式大多數(shù)bootloader都包含兩種不同的操作模式:“啟動(dòng)加載”模式和“下載”模式,這種區(qū)別對于開發(fā)人員才有意義。但從最終用戶的角度看,bootloader的作用永遠(yuǎn)就是用來加載操作系統(tǒng),而并不存在所謂的啟動(dòng)加載模式與下載工作模式的區(qū)別。啟動(dòng)加載模式:這種模式也稱為“自主”模式,即bootloader從目標(biāo)機(jī)上的某個(gè)固體存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過程沒有用戶的介入。這種模式是bootloader的正常工作模式,因此當(dāng)以嵌入式產(chǎn)品發(fā)布的時(shí)候,bootloader必須工作在這種模式下。下載模式:在這種模式下,目標(biāo)機(jī)上的bootloader將通過串口或者網(wǎng)絡(luò)連接或者其它通信手段從主機(jī)下載文件,比如:下載內(nèi)核鏡像和根文件系統(tǒng)鏡像等。從主機(jī)下載的文件通常首先被bootloader保存到目標(biāo)機(jī)的RAM中,然后被bootloader寫到目標(biāo)機(jī)上的FLASH類固態(tài)存儲(chǔ)設(shè)備中。Bootloader的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)使用;此外,以后的系統(tǒng)更新也會(huì)使用bootloader的這種工作模式。工作于這種模式下的bootloader通常都會(huì)向它的中斷用戶提供一個(gè)簡單的命令行接口。第三節(jié):模式設(shè)計(jì)對于普通用戶來說只需要bootloader的啟動(dòng)加載模式,但是對于開發(fā)者來說,則需要下載模式,因?yàn)樗麄冃枰獣r(shí)時(shí)刻刻地進(jìn)行一些鏡像的更新。為了在兩者之間做到兼顧,本課題既支持啟動(dòng)加載模式,也支持下載模式,具體思路為:在bootloader做完一些硬件初始化工作后,而在加載內(nèi)核鏡像之前,先在一定的時(shí)間內(nèi)等待有沒有用戶有鍵盤輸入,如果沒有,則為啟動(dòng)加載模式,直接加載內(nèi)核鏡像進(jìn)行啟動(dòng);如果有,則進(jìn)入命令行格式,這時(shí)開發(fā)者就可以根據(jù)自己的需要以及bootloader的支持情況,做一些其他的工作。模式的轉(zhuǎn)換設(shè)計(jì)主要在階段2中實(shí)現(xiàn)。綜合起來,整個(gè)bootloader的實(shí)現(xiàn)流程可以如下圖所示: 基本硬件初始化 階段1 拷貝階段2鏡像至RAM 進(jìn)入階段2開始執(zhí)行 擴(kuò)展功能所需硬件初始化 拷貝內(nèi)核鏡像至RAM中 階段2 等待50ms 看是否串口有 輸入 是 否 進(jìn)入下載模式 跳轉(zhuǎn)至內(nèi)核鏡像 接收命令第三章:總結(jié)本文主要介紹的是基于ARM嵌入式系統(tǒng)通用bootloader的設(shè)計(jì)與實(shí)現(xiàn)。由于bootloader是與具體的硬件系統(tǒng)緊密相關(guān)的,所以在具體的實(shí)現(xiàn)上,主要以Intel Xscale 核心的PXA255為處理器構(gòu)建的硬件系統(tǒng)為硬件平臺(tái),以Linux為操作系統(tǒng)來闡明一個(gè)bootloader的設(shè)計(jì)過程。而對于ARM系統(tǒng)的通用bootloader,本文則從理論上來闡述對于一個(gè)ARM系統(tǒng),bootloader所要實(shí)現(xiàn)的功能以及在實(shí)現(xiàn)bootloader時(shí)的一些軟硬件上的規(guī)定,并且結(jié)合實(shí)現(xiàn)的bootloder,進(jìn)一步的說明如何通過已實(shí)現(xiàn)的bootloader來進(jìn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論