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