- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter4启动程式5
Chapter 4 啟動程式 銘傳大學 講師:蘇瑞元 本章重點 POST 作業系統啟動 啟動模式 啟動載入器 開機程序 Boot loader設計 POST Power on self test POST會自動檢查系統內的元件是否正常 主記憶體 輸出入裝置 儲存媒體 POST程序 POST發生錯誤 啟動異常處理相關機制,如:關閉某部份的硬體功能或輸出錯誤訊息 由RS232輸出POST錯誤的訊息 非正規訊號聲 POST成功 正常啟動作業系統,或同時發出特定信號聲 本章重點 POST 作業系統啟動 啟動模式 啟動載入器 開機程序 Boot loader設計 嵌入式作業系統啟動模式 使用啟動載入器(boot loader) 當裝置啟動後,啟動預先安裝的載入器 較有彈性 可事先檢查硬體周邊是否正常 可從不同來源載入作業系統 如乙太網路、USB、序列通訊埠或記憶卡 不使用啟動載入器 當裝置啟動後,直接啟動作業系統 作業系統需事先安裝在該裝置的儲存媒體中 本章重點 POST 作業系統啟動 啟動模式 啟動載入器 開機程序 Boot loader設計 啟動載入器 (boot loader) 將作業系統影像載入到記憶體並跳到記憶體起始位置 乙太網路啟動載入器 啟動載入器名稱為Eboot.nb0 透過Ethernet下載作業系統影像(image)並啟動 序列埠啟動載入器 啟動載入器名稱為Sboot.nb0 透過序列埠下載作業系統影像並啟動 USB裝置可被模擬成網路卡或序列通訊埠以載入作業系統 本章重點 POST 作業系統啟動 啟動模式 啟動載入器 開機程序 Boot loader設計 Windows CE .Net作業系統開機程序 ARM系統開機程序 無BIOS,需自行初始化所有硬體 X86開機程序 具有BIOS,可作為系統初始化的輔助功能 ARM與X86系統的差異 ARM開機程序 X86開機程序 相關開發工具 標準開發板(SDB) 微處理器廠商或工具廠商所設計之參考設計平台 板支援套件(BSP) 包含目標SDB的驅動程式與OEM Adaptation Layer (OAL) 用來快速在SDB上建置作業系統,以快速評估作業系統的功能 Platform Builder 客製化與開發Windows CE作業系統的工具 Embedded Visual C++ Windows CE的C++編譯器 Compact .Net Framework 精簡的.Net平台,可快速移植桌上型程式到Windows CE平台中 BSP Board support package Win CE啟動程序流程圖 本章重點 POST 作業系統啟動 啟動模式 啟動載入器 開機程序 Boot loader設計 Boot loader 設計 啟動程式的主要元件 OEM startup code Main code OEM startup code 組合語言撰寫 啟動程式第一個執行的程式碼 記憶體初始化 啟動記憶體存取 設定CPU頻率 cache初始化 Main code C語言撰寫 BLCOMMON程式碼的一部份 控制啟動程式之執行 範例 %WINCE420\public\common\oak\DRIVERS\ETHDBG\BLCOMMON\BLCOMMON.C 流程控制圖 BootLoaderMain() BootLoaderMain() (cont.) OEMDebugInit() 將除錯傳輸埠初始化 OEMPlatformInit() 將除錯所需的平台初始化 OEMPreDownLoad() 負責下載前的所有工作 可自訂顯示內容 BootLoaderMain() (cont.) DownloadImage() 將OS映像檔下載至RAM或Flash OEMLaunch() 開始啟動OS Download function Download function (cont.) OEMReadData() 下載期間,從傳輸裝置讀取資料 OEMMapMemAddr() 將映像檔暫存的快閃記憶體位址轉換成RAM位址 OEMShowProgress() 告知使用者正在進行下載 Flash function Flash function (cont.) OEMIsFlashAddr() 如果為flash位址,回傳TRUE 反之,回傳FALSE OEMWriteFlash 將映像檔寫入Flash OEMStartEraseFlash() 開始下載時,清除快閃記憶體,以容納新的映像檔 Flash function (cont.) OEMFinishEraseFlash() 映像檔下載完成後,啟動程式結束所有的快閃記憶體清除程序 OEMContinueEraseFlash() 下載失敗,啟動程
文档评论(0)