




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式微處理器系統及應用第十一章嵌入式系統啟動程序開發主要內容嵌入式系統的典型啟動過程及bootloader
幾種典型的嵌入式系統啟動程序簡介基于W90P710學習板的redboot移植實例嵌入式軟件運行流程上電復位系統升級引導/升級系統系統初始化應用初始化多任務應用板級初始化遠程升級本地升級基于多任務操作系統的嵌入式軟件的主要運行流程該運行流程主要分為5個階段11.1.1板級初始化CPU相關初始化:CPU狀態的初始化:對全局中斷控制的初始化、CPU其它狀態位的初始化;協處理器的初始化:對浮點寄存器、狀態寄存器等的初始化。Watchdog初始化有的CPU有Watchdog,系統上電后應該禁止watchdog的工作,或者對Watchdog進行復位操作,以避免在后續的初始化過程中由于Watchdog的原因造成不期望的系統重新復位;如果上電后Watchdog沒有啟動,則應該盡可能地延遲Watchdog的初始化11.1.1板級初始化GPIO初始化GPIO是用于控制一些通用或者復用的輸入輸出端口,有關GPIO各個引腳所具有的功能和配置方法在SOC芯片手冊中都有詳細的說明,另外在系統硬件板的手冊中也有相關連接和選擇跳線的說明。系統時鐘初始化首先明確系統時鐘是使用的外部時鐘還是內部時鐘;其次明確各個時鐘的工作頻率及分頻關系;對系統時鐘的相關寄存器進行初始化11.1.1板級初始化內存初始化內存初始化主要是根據存儲系統的具體情況設置存儲空間。模式初始化設置處理器的工作模式,比如對于x86系列的處理器將其從實模式轉換為保護模式。中斷向量初始化需要對系統的中斷向量(包括異常向量)正確進行初始化。對于X86系列的處理器而言需要設置向量表寄存器IDTR,而對于ARM、PowerPC系列的處理器則需要將異常處理的指令放到向量位置中11.1.1板級初始化MMU與Cache的初始化對于帶有MMU(或MPU)、cache的處理器,需要在本階段對其進行相應的初始化,包括是否使能它們的功能,以及當使能時其具體的工作模式和相關參數的設置,以便根據系統的實際需要,實施有效的存儲空間隔離、保護、地址轉換映射,以及縮短平均訪存時間和提升系統性能語言相關初始化設置系統的調用棧,以便在函數調用時能使用堆棧對返回地址、狀態進行保存和恢復,并可通過堆棧傳遞參數和返回值;對于使用C語言編程的軟件,需要對BSS段的數據做清零操作,并進行必要的數據搬移操作。11.1.2系統引導/升級在板級初始化完成后,進入系統引導/升級階段,用戶可以根據系統的提示按需要進入系統軟件引導部分或系統升級部分系統引導階段在系統引導階段,有操作系統的嵌入式系統通過BootLoader程序將操作系統內核從外部存儲介質拷貝到內存中,并跳轉到內核的首條指令。如果沒有操作系統,則bootloader可直接加載應用軟件。引導程序的3種情況將軟件從引導flash(通常是NORFlash)中讀取出來加載到RAM中運行,軟件存儲在flash中可以采用壓縮存儲的方式。這種方式的優點在于,壓縮存儲可以減少對flash空間的需求,降低成本,而在RAM中運行又可以提供比flash更快的速度。將軟件從外存(如NandFlash、CF卡、MMC等)中讀取出來加載到RAM中運行,采用這種方式獲得更大的存儲空間,成本更低,但是啟動過程中軟件加載的速度會慢一些。不將軟件引導到RAM中而是讓其直接在NorFlash上運行,進入系統初始化階段引導方式的分類按是否需要引導程序分類需要引導程序的引導方式
不需要引導程序的引導方式
按存儲介質分類從NorFlash啟動
單獨使用NorFlash啟動
NorFlash和NandFlash配合使用
從NANDFlash啟動
11.1.2系統引導/升級系統升級階段本地升級:一般是指將嵌入式系統設備連接到被升級軟件所在的主機,連接方式可以通過JTAG口、串口或網口,采用命令行或圖形化的升級工具來完成升級過程。遠程升級:是由嵌入式系統設備發出升級指示,通過Internet與提供升級服務的遠程服務器進行通訊,更新嵌入式系統中的軟件和數據,從而完成升級的過程。嵌入式軟件運行流程系統初始化階段
在該階段進行操作系統等系統軟件各功能部分必需的初始化工作,如根據系統配置初始化數據空間、初始化系統所需的接口和外設等。系統初始化階段需要按特定順序進行,如首先完成內核的初始化,然后完成網絡、文件系統等的初始化,最后完成中間件等的初始化工作。嵌入式軟件運行流程應用初始化階段
在該階段進行應用任務的創建,信號量、消息隊列的創建和與應用相關的其它初始化工作。多任務應用運行階段
各種初始化工作完成后,系統進入多任務狀態,操作系統按照已確定的算法進行任務的調度,各應用任務分別完成特定的功能。主要內容嵌入式系統的典型啟動過程及bootloader幾種典型的嵌入式系統啟動程序簡介
基于W90P710學習板的redboot移植實例11.2.1U-bootU-Boot,全稱UniversalBootLoader,是遵循GPL條款的開放源碼項目U-Boot不僅僅支持嵌入式linux系統的引導,還支持對其他操作系統的引導,包括OpenBSD、NetBSD、FreeBSD、4.4BSD、Linux、SVR4等支持PowerPC系列的處理器外,還能支持MIPS、x86、ARM、NIOS、XScale等諸多常用的處理器系列U-boot的工作模式U-Boot提供了啟動加載和下載兩種工作模式啟動加載模式也稱為自主模式,是將存儲在目標板Flash中的內核和文件系統鏡像裝載到RAM中,整個過程無需用戶的介入。嵌入式系統產品一般工作在該模式下。工作在下載模式時,目標板一般受PC機的控制,將在PC中新調試好的內核和文件系統下載到目標板中去。U-boot的特點開放源代碼,方便移植;支持多種嵌入式操作系統內核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;支持多種處理器系列,如PowerPC、ARM、x86、MIPS;具有較高的可靠性和穩定性;高度靈活的功能設置,滿足操作系統不同的引導需求,提供對軟件調試、產品發布的支持;具備豐富的設備驅動(源代碼),如串口、以太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;具有較為豐富的開發調試文檔與強大的網絡技術支持U-boot的主要功能系統引導:支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統、從FLASH中引導壓縮或非壓縮的系統內核程序;基本輔助功能:強大的操作系統接口功能;可靈活設置、傳遞多個關鍵參數給操作系統,適應系統在不同開發階段的調試與產品發布要求,尤其對Linux的支持最強;支持目標板環境參數的多種存儲方式,如存儲在FLASH、NVRAM、EEPROM中;提供CRC32校驗功能,可校驗FLASH中內核、RAMDISK鏡像文件是否完好;設備驅動:提供串口、SDRAM、FLASH、以太網、LCD、NVRAM、EEPROM、鍵盤、USB、PCMCIA、PCI、RTC等設備的驅動支持;上電自檢:SDRAM、FLASH大小自動檢測;SDRAM故障檢測;CPU型號檢測;特殊功能:XIP內核引導功能U-Boot的啟動過程啟動過程都分為階段1(stage1)和階段2(stage2)兩大部分依賴于CPU體系結構的代碼(如CPU初始化代碼等)通常都放在階段1中,并且通常用匯編語言實現;階段2的代碼通常用高級編程語言如C語言來實現,這樣可以實現更加復雜的功能,并且有更好的可讀性和可移植性。U-Boot的啟動過程階段1工作內容設置異常向量
設置CPU工作模式
關閉看門狗
屏蔽(禁止)所有中斷
設置CPU的頻率
設置協處理器CP15
配置內存區控制寄存器
初始化U-BOOT使用的堆棧空間
BSS段清0
搬移NandFlash中的代碼
進入C代碼部分,調用階段2處理函數U-Boot的啟動過程階段2工作內容調用一系列的初始化函數,以便:配置可用的Flash區、內存分配函數初始化、nandflash初始化、初始化環境變量、外圍設備初始化、I2C總線初始化、LCD初始化、VIDEO初始化、鍵盤初始化、系統初始化、初始化網絡設備
進入UBOOT主命令行
11.2.2RedbootRedBoot是一個專門為嵌入式系統定制的引導裝載器,是一個獨立的開放源代碼的程序,最初由Redhat開發,它與嵌入式操作系統eCos有非常緊密的聯系,可以被看作是eCos的一個最小配置的版本,現在由自由軟件組織(FSF)管理,遵循GPL的發布協議。任何人都可以從互聯網上下載具有紅帽eCos公共許可證的RedBoot源代碼。11.2.2RedbootRedboot能夠被用于其他嵌入式操作系統的系統中,甚至在沒有操作系統的系統中也能工作。RedBoot是一個集Bootloader、調試、軟件固化于一體的綜合性工具,支持串口、網絡等多種與主機的通訊方式,既可以用在產品的開發階段(提供軟件調試功能),也可以用在最終的產品上(Flash中軟件的固化更新、啟動和系統軟件加載)。RedBoot的特點可靠性高RedBoot是在嵌入式實時操作系統eCos的基礎上發展起來的,它繼承了eCos高可靠性的特點。通用性好,支持多種處理器架構和硬件平臺RedBoot利用了eCos中成熟的硬件抽象層(HAL)技術,支持ARM、MIPS、SH、PowerPC、x86等各種系列的CPU,具有良好的通用性。緊湊性RedBoot的典型安裝只需要64K的空間。可裁剪性RedBoot的模塊化設計使用戶可以根據自己的需要對其進行剪裁,使之最大限度地適應應用的需求。它提供各種配置工具,可以讓用戶按自己的需要對系統進行合理的配置。低成本有了RedBoot強大的引導和調試功能,用戶不再需要采用昂貴的硬件調試器,即可進行嵌入式軟件的調試、引導嵌入式系統,或更新有關的固件(燒寫flash)RedBoot的主要功能通信功能支持串口和以太網兩種通信方式Flash存儲器的管理(FIS系統)RedBoot提供了豐富的管理功能來管理Flash存儲器和映像文件。用戶可以命令行的形式管理Flash上的映像。程序的下載、裝入和運行RedBoot既可以從Flash存儲器中也可以從宿主機或網絡上的其它節點下載程序到目標機中,并啟動程序的運行RedBoot的主要功能程序的調試代理Redboot支持用GDB(GNUdebugger)調試器通過串口或者以太網調試嵌入式程序,即對gcc編譯的可執行程序進行源代碼級調試。RedBoot的定制和擴展允許用戶按照自己的需要對RedBoot進行裁剪,并提供相應接口以便添加新的功能。命令行用戶接口CLI(Commandlineuserinterface)使用戶能夠和RedBoot對話,控制RedBoot進行各種操作。CLI在兩種通信方式下都能工作Redboot的結構Redboot的啟動過程主要內容嵌入式系統的典型啟動過程及bootloader幾種典型的嵌入式系統啟動程序簡介基于W90P710學習板的redboot移植實例
Redboot的移植過程開發環境的建立redboot的配置移植方案的確定基本的Redboot移植添加網卡驅動添加Flash驅動Redboot的燒寫及更新Redboot的移植方案由于redboot建立在ecos的HAL層之
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 球員合同協議書怎么寫
- 機械加工鉗工試題及答案
- 借資入股合同協議書
- 經緯度試題及答案解析
- 二建實務考試題型及答案
- 道路檢測員面試題及答案
- 新沂地理中考試題及答案
- 數字藝術作品在虛擬現實領域的創作與版權保護分析報告
- 交接車合同協議書模板
- 2025年工業互聯網平臺同態加密技術在工業互聯網安全防護體系中的應用價值分析報告
- 近五年安徽中考英語真題及答案2024
- 2024年高校輔導員考試題庫試題及答案
- 現澆箱梁施工培訓課件
- 2024年系統分析師考試的重要趨勢發現:試題及答案
- 關于“高中整本書閱讀教學策略”的文獻綜述
- 軟著申請流程
- 測繪管理考試試題及答案
- 青馬班面試試題及答案
- 2025年廣東物理中考二輪專題復習之質量與密度(含答案)
- 2025年山東科技面試試題及答案
- 朋友出去旅游免責協議書7篇
評論
0/150
提交評論