版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(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)升級引導(dǎo)/升級系統(tǒng)系統(tǒng)初始化應(yīng)用初始化多任務(wù)應(yīng)用板級初始化遠(yuǎn)程升級本地升級基于多任務(wù)操作系統(tǒng)的嵌入式軟件的主要運(yùn)行流程該運(yùn)行流程主要分為5個(gè)階段11.1.1板級初始化CPU相關(guān)初始化:CPU狀態(tài)的初始化:對全局中斷控制的初始化、CPU其它狀態(tài)位的初始化;協(xié)處理器的初始化:對浮點(diǎn)寄存器、狀態(tài)寄存器等的初始化。Watchdog初始化有的CPU有Watchdog,系統(tǒng)上電后應(yīng)該禁止watchdog的工作,或者對Watchdog進(jìn)行復(fù)位操作,以避免在后續(xù)的初始化過程中由于Watchdog的原因造成不期望的系統(tǒng)重新復(fù)位;如果上電后Watchdog沒有啟動(dòng),則應(yīng)該盡可能地延遲Watchdog的初始化11.1.1板級初始化GPIO初始化GPIO是用于控制一些通用或者復(fù)用的輸入輸出端口,有關(guān)GPIO各個(gè)引腳所具有的功能和配置方法在SOC芯片手冊中都有詳細(xì)的說明,另外在系統(tǒng)硬件板的手冊中也有相關(guān)連接和選擇跳線的說明。系統(tǒng)時(shí)鐘初始化首先明確系統(tǒng)時(shí)鐘是使用的外部時(shí)鐘還是內(nèi)部時(shí)鐘;其次明確各個(gè)時(shí)鐘的工作頻率及分頻關(guān)系;對系統(tǒng)時(shí)鐘的相關(guān)寄存器進(jìn)行初始化11.1.1板級初始化內(nèi)存初始化內(nèi)存初始化主要是根據(jù)存儲(chǔ)系統(tǒng)的具體情況設(shè)置存儲(chǔ)空間。模式初始化設(shè)置處理器的工作模式,比如對于x86系列的處理器將其從實(shí)模式轉(zhuǎn)換為保護(hù)模式。中斷向量初始化需要對系統(tǒng)的中斷向量(包括異常向量)正確進(jìn)行初始化。對于X86系列的處理器而言需要設(shè)置向量表寄存器IDTR,而對于ARM、PowerPC系列的處理器則需要將異常處理的指令放到向量位置中11.1.1板級初始化MMU與Cache的初始化對于帶有MMU(或MPU)、cache的處理器,需要在本階段對其進(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í)能使用堆棧對返回地址、狀態(tài)進(jìn)行保存和恢復(fù),并可通過堆棧傳遞參數(shù)和返回值;對于使用C語言編程的軟件,需要對BSS段的數(shù)據(jù)做清零操作,并進(jìn)行必要的數(shù)據(jù)搬移操作。11.1.2系統(tǒng)引導(dǎo)/升級在板級初始化完成后,進(jìn)入系統(tǒng)引導(dǎo)/升級階段,用戶可以根據(jù)系統(tǒng)的提示按需要進(jìn)入系統(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)核從外部存儲(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ǔ)可以減少對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)/升級系統(tǒng)升級階段本地升級:一般是指將嵌入式系統(tǒng)設(shè)備連接到被升級軟件所在的主機(jī),連接方式可以通過JTAG口、串口或網(wǎng)口,采用命令行或圖形化的升級工具來完成升級過程。遠(yuǎn)程升級:是由嵌入式系統(tǒng)設(shè)備發(fā)出升級指示,通過Internet與提供升級服務(wù)的遠(yuǎn)程服務(wù)器進(jìn)行通訊,更新嵌入式系統(tǒng)中的軟件和數(shù)據(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)建,信號量、消息隊(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),還支持對其他操作系統(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)需求,提供對軟件調(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ā)布要求,尤其對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)檢測;SDRAM故障檢測;CPU型號檢測;特殊功能: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的代碼通常用高級編程語言如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使用的堆??臻g
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)和硬件平臺RedBoot利用了eCos中成熟的硬件抽象層(HAL)技術(shù),支持ARM、MIPS、SH、PowerPC、x86等各種系列的CPU,具有良好的通用性。緊湊性RedBoot的典型安裝只需要64K的空間??刹眉粜訰edBoot的模塊化設(shè)計(jì)使用戶可以根據(jù)自己的需要對其進(jìn)行剪裁,使之最大限度地適應(yīng)應(yīng)用的需求。它提供各種配置工具,可以讓用戶按自己的需要對系統(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)試嵌入式程序,即對gcc編譯的可執(zhí)行程序進(jìn)行源代碼級調(diào)試。RedBoot的定制和擴(kuò)展允許用戶按照自己的需要對RedBoot進(jìn)行裁剪,并提供相應(yīng)接口以便添加新的功能。命令行用戶接口CLI(Commandlineuserinterface)使用戶能夠和RedBoot對話,控制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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廊坊衛(wèi)生職業(yè)學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試備考題庫含詳細(xì)答案解析
- 2026年昆明市盤龍區(qū)面向全國引進(jìn)中學(xué)教育管理人才備考考試題庫及答案解析
- 2026年鐘山職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試模擬試題含詳細(xì)答案解析
- 2026年南昌交通學(xué)院單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年云南錫業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫及答案詳細(xì)解析
- 2026年太原幼兒師范高等??茖W(xué)校單招綜合素質(zhì)筆試參考題庫含詳細(xì)答案解析
- 2026年武漢警官職業(yè)學(xué)院單招職業(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年無錫職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細(xì)答案解析
- 2026年1月武夷山職業(yè)學(xué)院人才增補(bǔ)招聘二考試參考試題及答案解析
- 私人供水協(xié)議書
- 2026年及未來5年市場數(shù)據(jù)中國水合肼行業(yè)市場深度分析及投資戰(zhàn)略數(shù)據(jù)分析研究報(bào)告
- 探空氣球課件
- 雨課堂學(xué)堂在線學(xué)堂云人類行為與社會(huì)環(huán)境內(nèi)蒙古大學(xué)單元測試考核答案
- 消防志愿隊(duì)培訓(xùn)
- 2025年軍事知識點(diǎn)及題庫答案
- 小麥栽培課件
- 左額顳枕頂急性硬膜下血腫
- 國企財(cái)務(wù)管理制度細(xì)則及執(zhí)行標(biāo)準(zhǔn)
- 2025全國注冊監(jiān)理工程師繼續(xù)教育考試題庫及參考答案
- “無廢醫(yī)院”建設(shè)指引
評論
0/150
提交評論