版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
嵌入式微處理器系統(tǒng)及應(yīng)用第十一章嵌入式系統(tǒng)啟動程序開發(fā)主要內(nèi)容嵌入式系統(tǒng)的典型啟動過程及bootloader
幾種典型的嵌入式系統(tǒng)啟動程序簡介基于W90P710學(xué)習(xí)板的redboot移植實例嵌入式軟件運行流程上電復(fù)位系統(tǒng)升級引導(dǎo)/升級系統(tǒng)系統(tǒng)初始化應(yīng)用初始化多任務(wù)應(yīng)用板級初始化遠程升級本地升級基于多任務(wù)操作系統(tǒng)的嵌入式軟件的主要運行流程該運行流程主要分為5個階段11.1.1板級初始化CPU相關(guān)初始化:CPU狀態(tài)的初始化:對全局中斷控制的初始化、CPU其它狀態(tài)位的初始化;協(xié)處理器的初始化:對浮點寄存器、狀態(tài)寄存器等的初始化。Watchdog初始化有的CPU有Watchdog,系統(tǒng)上電后應(yīng)該禁止watchdog的工作,或者對Watchdog進行復(fù)位操作,以避免在后續(xù)的初始化過程中由于Watchdog的原因造成不期望的系統(tǒng)重新復(fù)位;如果上電后Watchdog沒有啟動,則應(yīng)該盡可能地延遲Watchdog的初始化11.1.1板級初始化GPIO初始化GPIO是用于控制一些通用或者復(fù)用的輸入輸出端口,有關(guān)GPIO各個引腳所具有的功能和配置方法在SOC芯片手冊中都有詳細的說明,另外在系統(tǒng)硬件板的手冊中也有相關(guān)連接和選擇跳線的說明。系統(tǒng)時鐘初始化首先明確系統(tǒng)時鐘是使用的外部時鐘還是內(nèi)部時鐘;其次明確各個時鐘的工作頻率及分頻關(guān)系;對系統(tǒng)時鐘的相關(guān)寄存器進行初始化11.1.1板級初始化內(nèi)存初始化內(nèi)存初始化主要是根據(jù)存儲系統(tǒng)的具體情況設(shè)置存儲空間。模式初始化設(shè)置處理器的工作模式,比如對于x86系列的處理器將其從實模式轉(zhuǎn)換為保護模式。中斷向量初始化需要對系統(tǒng)的中斷向量(包括異常向量)正確進行初始化。對于X86系列的處理器而言需要設(shè)置向量表寄存器IDTR,而對于ARM、PowerPC系列的處理器則需要將異常處理的指令放到向量位置中11.1.1板級初始化MMU與Cache的初始化對于帶有MMU(或MPU)、cache的處理器,需要在本階段對其進行相應(yīng)的初始化,包括是否使能它們的功能,以及當(dāng)使能時其具體的工作模式和相關(guān)參數(shù)的設(shè)置,以便根據(jù)系統(tǒng)的實際需要,實施有效的存儲空間隔離、保護、地址轉(zhuǎn)換映射,以及縮短平均訪存時間和提升系統(tǒng)性能語言相關(guān)初始化設(shè)置系統(tǒng)的調(diào)用棧,以便在函數(shù)調(diào)用時能使用堆棧對返回地址、狀態(tài)進行保存和恢復(fù),并可通過堆棧傳遞參數(shù)和返回值;對于使用C語言編程的軟件,需要對BSS段的數(shù)據(jù)做清零操作,并進行必要的數(shù)據(jù)搬移操作。11.1.2系統(tǒng)引導(dǎo)/升級在板級初始化完成后,進入系統(tǒng)引導(dǎo)/升級階段,用戶可以根據(jù)系統(tǒng)的提示按需要進入系統(tǒng)軟件引導(dǎo)部分或系統(tǒng)升級部分系統(tǒng)引導(dǎo)階段在系統(tǒng)引導(dǎo)階段,有操作系統(tǒng)的嵌入式系統(tǒng)通過BootLoader程序?qū)⒉僮飨到y(tǒng)內(nèi)核從外部存儲介質(zhì)拷貝到內(nèi)存中,并跳轉(zhuǎn)到內(nèi)核的首條指令。如果沒有操作系統(tǒng),則bootloader可直接加載應(yīng)用軟件。引導(dǎo)程序的3種情況將軟件從引導(dǎo)flash(通常是NORFlash)中讀取出來加載到RAM中運行,軟件存儲在flash中可以采用壓縮存儲的方式。這種方式的優(yōu)點在于,壓縮存儲可以減少對flash空間的需求,降低成本,而在RAM中運行又可以提供比flash更快的速度。將軟件從外存(如NandFlash、CF卡、MMC等)中讀取出來加載到RAM中運行,采用這種方式獲得更大的存儲空間,成本更低,但是啟動過程中軟件加載的速度會慢一些。不將軟件引導(dǎo)到RAM中而是讓其直接在NorFlash上運行,進入系統(tǒng)初始化階段引導(dǎo)方式的分類按是否需要引導(dǎo)程序分類需要引導(dǎo)程序的引導(dǎo)方式
不需要引導(dǎo)程序的引導(dǎo)方式
按存儲介質(zhì)分類從NorFlash啟動
單獨使用NorFlash啟動
NorFlash和NandFlash配合使用
從NANDFlash啟動
11.1.2系統(tǒng)引導(dǎo)/升級系統(tǒng)升級階段本地升級:一般是指將嵌入式系統(tǒng)設(shè)備連接到被升級軟件所在的主機,連接方式可以通過JTAG口、串口或網(wǎng)口,采用命令行或圖形化的升級工具來完成升級過程。遠程升級:是由嵌入式系統(tǒng)設(shè)備發(fā)出升級指示,通過Internet與提供升級服務(wù)的遠程服務(wù)器進行通訊,更新嵌入式系統(tǒng)中的軟件和數(shù)據(jù),從而完成升級的過程。嵌入式軟件運行流程系統(tǒng)初始化階段
在該階段進行操作系統(tǒng)等系統(tǒng)軟件各功能部分必需的初始化工作,如根據(jù)系統(tǒng)配置初始化數(shù)據(jù)空間、初始化系統(tǒng)所需的接口和外設(shè)等。系統(tǒng)初始化階段需要按特定順序進行,如首先完成內(nèi)核的初始化,然后完成網(wǎng)絡(luò)、文件系統(tǒng)等的初始化,最后完成中間件等的初始化工作。嵌入式軟件運行流程應(yīng)用初始化階段
在該階段進行應(yīng)用任務(wù)的創(chuàng)建,信號量、消息隊列的創(chuàng)建和與應(yīng)用相關(guān)的其它初始化工作。多任務(wù)應(yīng)用運行階段
各種初始化工作完成后,系統(tǒng)進入多任務(wù)狀態(tài),操作系統(tǒng)按照已確定的算法進行任務(wù)的調(diào)度,各應(yīng)用任務(wù)分別完成特定的功能。主要內(nèi)容嵌入式系統(tǒng)的典型啟動過程及bootloader幾種典型的嵌入式系統(tǒng)啟動程序簡介
基于W90P710學(xué)習(xí)板的redboot移植實例11.2.1U-bootU-Boot,全稱UniversalBootLoader,是遵循GPL條款的開放源碼項目U-Boot不僅僅支持嵌入式linux系統(tǒng)的引導(dǎo),還支持對其他操作系統(tǒng)的引導(dǎo),包括OpenBSD、NetBSD、FreeBSD、4.4BSD、Linux、SVR4等支持PowerPC系列的處理器外,還能支持MIPS、x86、ARM、NIOS、XScale等諸多常用的處理器系列U-boot的工作模式U-Boot提供了啟動加載和下載兩種工作模式啟動加載模式也稱為自主模式,是將存儲在目標(biāo)板Flash中的內(nèi)核和文件系統(tǒng)鏡像裝載到RAM中,整個過程無需用戶的介入。嵌入式系統(tǒng)產(chǎn)品一般工作在該模式下。工作在下載模式時,目標(biāo)板一般受PC機的控制,將在PC中新調(diào)試好的內(nèi)核和文件系統(tǒng)下載到目標(biāo)板中去。U-boot的特點開放源代碼,方便移植;支持多種嵌入式操作系統(tǒng)內(nèi)核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;支持多種處理器系列,如PowerPC、ARM、x86、MIPS;具有較高的可靠性和穩(wěn)定性;高度靈活的功能設(shè)置,滿足操作系統(tǒng)不同的引導(dǎo)需求,提供對軟件調(diào)試、產(chǎn)品發(fā)布的支持;具備豐富的設(shè)備驅(qū)動(源代碼),如串口、以太網(wǎng)、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;具有較為豐富的開發(fā)調(diào)試文檔與強大的網(wǎng)絡(luò)技術(shù)支持U-boot的主要功能系統(tǒng)引導(dǎo):支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統(tǒng)、從FLASH中引導(dǎo)壓縮或非壓縮的系統(tǒng)內(nèi)核程序;基本輔助功能:強大的操作系統(tǒng)接口功能;可靈活設(shè)置、傳遞多個關(guān)鍵參數(shù)給操作系統(tǒng),適應(yīng)系統(tǒng)在不同開發(fā)階段的調(diào)試與產(chǎn)品發(fā)布要求,尤其對Linux的支持最強;支持目標(biāo)板環(huán)境參數(shù)的多種存儲方式,如存儲在FLASH、NVRAM、EEPROM中;提供CRC32校驗功能,可校驗FLASH中內(nèi)核、RAMDISK鏡像文件是否完好;設(shè)備驅(qū)動:提供串口、SDRAM、FLASH、以太網(wǎng)、LCD、NVRAM、EEPROM、鍵盤、USB、PCMCIA、PCI、RTC等設(shè)備的驅(qū)動支持;上電自檢:SDRAM、FLASH大小自動檢測;SDRAM故障檢測;CPU型號檢測;特殊功能:XIP內(nèi)核引導(dǎo)功能U-Boot的啟動過程啟動過程都分為階段1(stage1)和階段2(stage2)兩大部分依賴于CPU體系結(jié)構(gòu)的代碼(如CPU初始化代碼等)通常都放在階段1中,并且通常用匯編語言實現(xiàn);階段2的代碼通常用高級編程語言如C語言來實現(xiàn),這樣可以實現(xiàn)更加復(fù)雜的功能,并且有更好的可讀性和可移植性。U-Boot的啟動過程階段1工作內(nèi)容設(shè)置異常向量
設(shè)置CPU工作模式
關(guān)閉看門狗
屏蔽(禁止)所有中斷
設(shè)置CPU的頻率
設(shè)置協(xié)處理器CP15
配置內(nèi)存區(qū)控制寄存器
初始化U-BOOT使用的堆??臻g
BSS段清0
搬移NandFlash中的代碼
進入C代碼部分,調(diào)用階段2處理函數(shù)U-Boot的啟動過程階段2工作內(nèi)容調(diào)用一系列的初始化函數(shù),以便:配置可用的Flash區(qū)、內(nèi)存分配函數(shù)初始化、nandflash初始化、初始化環(huán)境變量、外圍設(shè)備初始化、I2C總線初始化、LCD初始化、VIDEO初始化、鍵盤初始化、系統(tǒng)初始化、初始化網(wǎng)絡(luò)設(shè)備
進入UBOOT主命令行
11.2.2RedbootRedBoot是一個專門為嵌入式系統(tǒng)定制的引導(dǎo)裝載器,是一個獨立的開放源代碼的程序,最初由Redhat開發(fā),它與嵌入式操作系統(tǒng)eCos有非常緊密的聯(lián)系,可以被看作是eCos的一個最小配置的版本,現(xiàn)在由自由軟件組織(FSF)管理,遵循GPL的發(fā)布協(xié)議。任何人都可以從互聯(lián)網(wǎng)上下載具有紅帽eCos公共許可證的RedBoot源代碼。11.2.2RedbootRedboot能夠被用于其他嵌入式操作系統(tǒng)的系統(tǒng)中,甚至在沒有操作系統(tǒng)的系統(tǒng)中也能工作。RedBoot是一個集Bootloader、調(diào)試、軟件固化于一體的綜合性工具,支持串口、網(wǎng)絡(luò)等多種與主機的通訊方式,既可以用在產(chǎn)品的開發(fā)階段(提供軟件調(diào)試功能),也可以用在最終的產(chǎn)品上(Flash中軟件的固化更新、啟動和系統(tǒng)軟件加載)。RedBoot的特點可靠性高RedBoot是在嵌入式實時操作系統(tǒng)eCos的基礎(chǔ)上發(fā)展起來的,它繼承了eCos高可靠性的特點。通用性好,支持多種處理器架構(gòu)和硬件平臺RedBoot利用了eCos中成熟的硬件抽象層(HAL)技術(shù),支持ARM、MIPS、SH、PowerPC、x86等各種系列的CPU,具有良好的通用性。緊湊性RedBoot的典型安裝只需要64K的空間??刹眉粜訰edBoot的模塊化設(shè)計使用戶可以根據(jù)自己的需要對其進行剪裁,使之最大限度地適應(yīng)應(yīng)用的需求。它提供各種配置工具,可以讓用戶按自己的需要對系統(tǒng)進行合理的配置。低成本有了RedBoot強大的引導(dǎo)和調(diào)試功能,用戶不再需要采用昂貴的硬件調(diào)試器,即可進行嵌入式軟件的調(diào)試、引導(dǎo)嵌入式系統(tǒng),或更新有關(guān)的固件(燒寫flash)RedBoot的主要功能通信功能支持串口和以太網(wǎng)兩種通信方式Flash存儲器的管理(FIS系統(tǒng))RedBoot提供了豐富的管理功能來管理Flash存儲器和映像文件。用戶可以命令行的形式管理Flash上的映像。程序的下載、裝入和運行RedBoot既可以從Flash存儲器中也可以從宿主機或網(wǎng)絡(luò)上的其它節(jié)點下載程序到目標(biāo)機中,并啟動程序的運行RedBoot的主要功能程序的調(diào)試代理Redboot支持用GDB(GNUdebugger)調(diào)試器通過串口或者以太網(wǎng)調(diào)試嵌入式程序,即對gcc編譯的可執(zhí)行程序進行源代碼級調(diào)試。RedBoot的定制和擴展允許用戶按照自己的需要對RedBoot進行裁剪,并提供相應(yīng)接口以便添加新的功能。命令行用戶接口CLI(Commandlineuserinterface)使用戶能夠和RedBoot對話,控制RedBoot進行各種操作。CLI在兩種通信方式下都能工作Redboot的結(jié)構(gòu)Redboot的啟動過程主要內(nèi)容嵌入式系統(tǒng)的典型啟動過程及bootloader幾種典型的嵌入式系統(tǒng)啟動程序簡介基于W90P710學(xué)習(xí)板的redboot移植實例
Redboot的移植過程開發(fā)環(huán)境的建立redboot的配置移植方案的確定基本的Redboot移植添加網(wǎng)卡驅(qū)動添加Flash驅(qū)動Redboot的燒寫及更新Redboot的移植方案由于redboot建立在ecos的HAL層之
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 釀酒企業(yè)釀酒師聘用合同
- 2025知識產(chǎn)權(quán)合同范本計算機軟件許可協(xié)議
- 校園安全監(jiān)控系統(tǒng)施工協(xié)議
- 長春二手房買賣防水驗收合同
- 火車站個體出租車租賃合同
- 科技企業(yè)產(chǎn)品研發(fā)激勵方案
- 長沙市二手房贈送油漆合同
- 2024年度礦業(yè)設(shè)備買賣與安全生產(chǎn)監(jiān)督合同樣本3篇
- 勞動力調(diào)度溝通指南
- 酒店鍋爐房檢修服務(wù)協(xié)議
- 初中物理教師個人校本研修工作計劃(20篇)
- 第七章消費者權(quán)益
- 齊魯工業(yè)大學(xué)《食品原料學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 無薪留職協(xié)議樣本
- 工業(yè)區(qū)污水凈化服務(wù)合同
- 《建設(shè)項目工程總承包合同示范文本(試行)》GF-2011-0216
- 幼兒園中班音樂活動《小看戲》課件
- 2024年下半年貴州六盤水市直事業(yè)單位面向社會招聘工作人員69人易考易錯模擬試題(共500題)試卷后附參考答案
- 實+用法律基礎(chǔ)-形成性考核任務(wù)一-國開(ZJ)-參考資料
- 2024年小學(xué)校長工作總結(jié)(3篇)
- 江蘇省揚州市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含解析
評論
0/150
提交評論