资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
4-1Chapter 4 啟動程式銘傳大學 講師:蘇瑞元4-2本章重點lPOSTl作業系統啟動啟動模式啟動載入器開機程序Boot loader設計4-3POSTlPower on self testlPOST會自動檢查系統內的元件是否正常主記憶體輸出入裝置儲存媒體4-4POST程序lPOST發生錯誤啟動異常處理相關機制,如:關閉某部份的硬體 功能或輸出錯誤訊息由RS232輸出POST錯誤的訊息非正規訊號聲lPOST成功正常啟動作業系統,或同時發出特定信號聲4-5本章重點lPOSTl作業系統啟動啟動模式啟動載入器開機程序Boot loader設計4-6嵌入式作業系統啟動模式l使用啟動載入器(boot loader)當裝置啟動後,啟動預先安裝的載入器較有彈性l可事先檢查硬體周邊是否正常l可從不同來源載入作業系統如乙太網路、USB、序列通訊埠或記憶卡l不使用啟動載入器當裝置啟動後,直接啟動作業系統作業系統需事先安裝在該裝置的儲存媒體中4-7本章重點lPOSTl作業系統啟動啟動模式啟動載入器開機程序Boot loader設計4-8啟動載入器 (boot loader)將作業系統影像載入到記憶體並跳到記憶體起始位置l乙太網路啟動載入器啟動載入器名稱為Eboot.nb0透過Ethernet下載作業系統影像(image)並啟動l序列埠啟動載入器啟動載入器名稱為Sboot.nb0透過序列埠下載作業系統影像並啟動lUSB裝置可被模擬成網路卡或序列通訊埠以載入作 業系統4-9本章重點lPOSTl作業系統啟動啟動模式啟動載入器開機程序Boot loader設計4-10Windows CE .Net作業系統開機程序lARM系統開機程序無BIOS,需自行初始化所有硬體lX86開機程序具有BIOS,可作為系統初始化的輔助功能4-11ARM與X86系統的差異ARMx86指令集RISC 32 bits (ARM) 16 bits (Thumb)CISC意外處理Exception Vector (Reset, Undefined, )Interrupt Vector Table (INT0INT255)開機/重置進入點0x00000000 (Boot loader)0xFFFF:0000 (BIOS)電源消耗LowHigh4-12ARM開機程序電源開啟初始化硬體映像檔複製到RAM從RAM啟動映像檔從Flash直接啟動映 像檔ROM BootloaderDirectly4-13X86開機程序電源開啟ROM 初始化硬體組態檔 (DRAM Controller, host bridge, PCI enumeration)載入MBR載入啟動區段IDE載入映像檔BIOS初始化 POST & 硬體組態檔 (DRAM Controller, host bridge, PCI enumeration, etc.)載入MBR載入啟動區段載入啟動區段啟動DOS執行Autoexec.bat執行Loadcepc.exe載入映像檔BIOS BootloaderBIOS + DOS +LoadcepcROM BootloaderFloppyHD/CF/DOC4-14相關開發工具l標準開發板(SDB)微處理器廠商或工具廠商所設計之參考設計平台l板支援套件(BSP)包含目標SDB的驅動程式與OEM Adaptation Layer (OAL)用來快速在SDB上建置作業系統,以快速評估作業系統的功能lPlatform Builder客製化與開發Windows CE作業系統的工具lEmbedded Visual C+Windows CE的C+編譯器lCompact .Net Framework精簡的.Net平台,可快速移植桌上型程式到Windows CE平台中 4-15BSPlBoard support package元件說明啟動程式系統啟動時,啟動程式會下載作業系統 (OS)映像檔。OEM配階層 (OAL)連結核心映像檔,將硬體初始化並管理之。裝置驅動程式執行時,驅動機板上或週邊的裝置。組態檔藉由環境變數或修改*.bib和*.reg檔案,可 將BSP重新組態。4-16Win CE啟動程序流程圖4-17本章重點lPOSTl作業系統啟動啟動模式啟動載入器開機程序Boot loader設計4-18Boot loader 設計l啟動程式的主要元件OEM startup codeMain code4-19OEM startup codel組合語言撰寫l啟動程式第一個執行的程式碼l記憶體初始化啟動記憶體存取設定CPU頻率cache初始化4-20Main codelC語言撰寫lBLCOMMON程式碼的一部份l控制啟動程式之執行l範例%WINCE420publiccommonoakDRIVERSET HDBGBLCOMMONBLCOMMON.C4-21流程控制圖BootLoaderMain()OEMDebugInit()OEMPlatformInit()OEMPreDownLoad()DownLoadImage()OEMLaunch()StartUp()OEMReadData()OEMMapMemAddr()OEMShowProgress()OEMIsFlashAddr()OEMFinishEraseFlash()OEMWriteFlash()OEMContinueEraseFlsh()OEMStartEraseFlsh()FLASH functionsDownload functionsBLCOMMON4-22BootLoaderMain()4-23BootLoaderMain() (cont.)lOEMDebugInit()將除錯傳輸埠初始化lOEMPlatformInit()將除錯所需的平台初始化lOEMPreDownLoad()負責下載前的所有工作可自訂顯示內容4-24BootLoaderMain() (cont.)lDownloadImage()將OS映像檔下載至RAM或FlashlOEMLaunch()開始啟動OS4-25Download function4-26Download function (cont.)lOEMReadData()下載期間,從傳輸裝置讀取資料lOEMMapMemAddr()將映像檔暫存的快閃記憶體位址轉換成RAM位址lOEMShowProgress()告知使用者正在進行下載4-27Flash function4-28Flash function (cont.)lOEMIsFlashAddr()如果為flash位址,回傳TRUE反之,回傳FALSElOEMWriteFlash將映像檔寫入FlashlOEMStartEraseFlash()開始下載時,清除快閃記憶體,以容納新的映像 檔4-29Flash function (cont.)lOEMFinishEraseFlash()映像檔下載完成後,啟動程式結束所有的快閃記 憶體清除程序lOEMContinueEraseFlash()下載失敗,啟動程式繼續執行快閃記憶體清除程 序4-30Ethernet Port I/OlOEMEthGetFrame()直接從NIC讀取資料lOEMEthSendFrame()直接將資料寫入NIC4-31Debug serial Port I/Ol允許啟動程式透過序列埠傳送和接收工作站 的資料。lOEMInitDebugSerial()序列埠初始化lOEMReadDebugByte()從除錯序列埠讀取位元組lOEMWriteDebugByte()從除錯序列埠輸出位元組4-32Building a boot loaderl選擇Build選單的Open Build Release Directory l將參數設定複製到%_FLATRELEASEDIR%底下cd %_FLATRELEASEDIR% Set WINCEREL=1l修改Boot.bib檔cd %_TARGTPLATROOT%EbootlBuild Eboot.binBuild -cfs4-33Step1 選擇Build選單的Open Build Release Directory (1/2)4-34Step 1 跳出視窗 (2/2)4-35Step 2 - 複製參數設定 Step 3 - 修改Boot.bib檔4-36Step 4 build Eboot.bin (1/3)4-37Step 4 building (2/3)4-38Step 4 build complete (3/3)4-39下載 - Ethernet Port I/Ol下載程序n平台的IP位址n廣播BOOTME封包lBOOTME codel平台的位址l平台的編號nPlatform Builder回應BOOTMEn透過TFTP完成下載4-40Step1 - 取得平台位址4-41Step2 平台發送boot me 封包4-42Step 3 platform builder回應封包4-43Step 4 下載 (1/2)4-44Step 4 完成 (2/2)4-45結語l作業系統啟動模式l啟動載入器的功能和載入方式lX86和ARM的開機程序lBoot loader設計4-46謝謝指教!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号