嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者 978-7-302-20808-2 ch04_啟動程式

上传人:E**** 文档编号:89409382 上传时间:2019-05-24 格式:PPT 页数:44 大小:212KB
返回 下载 相关 举报
嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者  978-7-302-20808-2 ch04_啟動程式_第1页
第1页 / 共44页
嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者  978-7-302-20808-2 ch04_啟動程式_第2页
第2页 / 共44页
嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者  978-7-302-20808-2 ch04_啟動程式_第3页
第3页 / 共44页
嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者  978-7-302-20808-2 ch04_啟動程式_第4页
第4页 / 共44页
嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者  978-7-302-20808-2 ch04_啟動程式_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者 978-7-302-20808-2 ch04_啟動程式》由会员分享,可在线阅读,更多相关《嵌入式操作系统开发与应用程序设计 教学课件 ppt 作者 978-7-302-20808-2 ch04_啟動程式(44页珍藏版)》请在金锄头文库上搜索。

1、Chapter 4 啟動程式,銘傳大學 電腦與通訊工程學系 蘇瑞元 講師,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,系統啟動,開啟電腦裝置的電源時,就啟動了系統啟動程序。成功啟動系統是系統正常運作的先決條件。 系統啟動分成兩個部分:硬體啟動和載入作業系統。初始化平台週邊後,將作業系統映像檔載入到記憶體,並且跳到記憶體起始位置,將控制權交給作業系統,開始啟動作業系統。由BIOS或啟動載入器完成。,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,POST,Power on self test

2、POST會自動檢查系統內的元件是否正常 主記憶體 輸出入裝置 儲存媒體,POST程序,POST發生錯誤 啟動異常處理相關機制,如:關閉某部份的硬體功能或輸出錯誤訊息 由RS232輸出POST錯誤的訊息 非正規訊號聲 POST成功 正常啟動作業系統,或同時發出特定信號聲,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,啟動模式 - 嵌入式作業系統,使用啟動載入器 當裝置啟動後,啟動預先安裝的載入器 較有彈性 可事先檢查硬體周邊是否正常 可從不同來源載入作業系統 如乙太網路、USB、序列通訊埠或記憶卡 不使用啟動載入器 當裝置啟動後,直接啟動作業系

3、統 作業系統需事先安裝在該裝置的儲存媒體中,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,作業系統開機程序,ARM系統開機程序 無BIOS,啟動載入器需初始化所有硬體 X86開機程序 具有BIOS,啟動載入器可作為系統初始化的輔助功能,ARM與X86系統的差異,ARM開機程序,X86開機程序,相關開發工具,標準開發板(SDB) 微處理器廠商或工具廠商所設計之參考設計平台 板支援套件(BSP) 包含目標SDB的驅動程式與OEM Adaptation Layer (OAL) 用來快速在SDB上建置作業系統,以快速評估作業系統的功能 Platfor

4、m Builder 客製化與開發Windows CE作業系統的工具 Embedded Visual C+ Windows CE的C+編譯器 Compact .Net Framework 精簡的.Net平台,可快速移植桌上型程式到Windows CE平台中,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,BSP,主機板支援套裝 (Board support package),BSP元件關連圖,資料來源:Platform Builder for Microsoft Windows CE 5.0 Help,大綱,系統啟動 POST 啟動模式 開機程序

5、 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,驅動程式資料庫,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,啟動載入器,將OS映像檔載入到記憶體,並跳到記憶體起始位置 乙太網路啟動載入器 啟動載入器名稱為Eboot.nb0 透過Ethernet下載OS映像檔並啟動 序列埠啟動載入器 啟動載入器名稱為Sboot.nb0 透過序列埠下載OS映像檔並啟動 USB裝置可被模擬成網路卡或序列通訊埠,以載入作業系統,啟動載入器執行程序 (1/3),早期CPU初始化 進入管理程式模式 清除cache裡的指令和資料 清除轉換表緩衝區 (transla

6、tion look-aside buffers,TLB) 排除寫入緩衝區和填充緩衝區 組態RAM控制器並啟動之 確定中斷已經清除並遮罩 初始化相位閉鎖迴路(phase-locked loop,PLL)或timebase,啟動載入器執行程序 (2/3),將執行映像檔重新定向到RAM(非必須的) 啟動MMU和cache(非必須的) 將複製區段複製到最後面的位置 建立一個保留的記憶體區域,並移植於此 早期機板初始化 建立除錯UART 提供載入器組態選項的操作選單(非必須的) 初始化乙太網路控制器,啟動載入器執行程序 (3/3),取得目標設備的IP(非必須的) 初始化TFTP連線 下載副檔名為bin的

7、檔案 從Platform Builder取得使用者的各種設定 執行下載的bin檔,確定系統已經正確組態,然後跳至作業系統映像檔的啟動位址,啟動載入器建議事項,存放在永久儲存裝置中 提供錯誤訊息輸出和載入狀態或程序 利用微軟提供的支援程式庫開發啟動載入器 同時具有載入作業系統映像檔和啟動載入器映像檔等能力,而且還能選擇下載到RAM或永久儲存裝置 檢查下載資料的checksum,檢查資料是否正確 啟動載入器和OAL共享平台初始化程式碼,啟動載入器的檔案類型,啟動載入器開發程序結束後,會得到.bin和.nb0兩個檔案 .bin 包含標頭資訊 將資料數量最小化,並直接下載至目標設備,不需要輸入指令控制

8、 .nb0 不包含標頭資訊 是一種原始的啟動載入器二進制映像檔,狀態如同在記憶體裡的啟動載入器一樣 nb0檔案比.bin大,硬體考量,ROM或flash記憶體能夠被置換,並支援JTAG介面 提供空間充足的RAM和flash記憶體 對記憶體提供硬體切換或軟體切換的功能 早期開發階段,在目標設備裝置除錯LED,方便偵錯,大綱,系統啟動 POST 啟動模式 開機程序 BSP 驅動程式資料庫 啟動載入器 啟動載入器設計,啟動載入器 設計,啟動程式的主要元件 OEM startup code Main code,OEM startup code,組合語言撰寫 啟動程式第一個執行的程式碼 記憶體初始化 啟

9、動記憶體存取 設定CPU頻率 cache初始化,Main code,C語言撰寫 BLCOMMON程式碼的一部份 控制啟動程式之執行 範例 %WINCE50publiccommonoakDRIVERSETHDBGBLCOMMONBLCOMMON.C,流程控制圖,BootLoaderMain(),OEMDebugInit(),OEMPlatformInit(),OEMPreDownLoad(),DownLoadImage(),OEMLaunch(),StartUp(),OEMReadData(),OEMMapMemAddr(),OEMShowProgress(),OEMIsFlashAddr(),

10、OEMFinishEraseFlash(),OEMWriteFlash(),OEMContinueEraseFlsh(),OEMStartEraseFlsh(),FLASH functions,Download functions,BLCOMMON,BootLoaderMain(),BootLoaderMain() (cont.),OEMDebugInit() 將除錯傳輸埠初始化 OEMPlatformInit() 將除錯所需的平台初始化 OEMPreDownLoad() 負責下載前的所有工作 可自訂顯示內容,BootLoaderMain() (cont.),DownloadImage() 將

11、OS映像檔下載至RAM或Flash 選擇使用Ethernet或serial port做啟動 OEMLaunch() 開始啟動OS,Ethernet Port I/O,OEMEthGetFrame() 直接從NIC讀取資料 OEMEthSendFrame() 直接將資料寫入NIC,Serial Port I/O,允許啟動程式透過序列埠傳送和接收工作站的資料。 OEMInitDebugSerial() 序列埠初始化 OEMReadDebugByte() 從除錯序列埠讀取位元組 OEMWriteDebugByte() 從除錯序列埠輸出位元組,Download function,Download fu

12、nction (cont.),OEMReadData() 下載期間,從傳輸裝置讀取資料 OEMMapMemAddr() 將映像檔暫存的快閃記憶體位址轉換成RAM位址 OEMShowProgress() 告知使用者正在進行下載,Flash function,Flash function (cont.),OEMIsFlashAddr() 如果為flash位址,回傳TRUE 反之,回傳FALSE OEMWriteFlash 將映像檔寫入Flash OEMStartEraseFlash() 開始下載時,清除快閃記憶體,以容納新的映像檔,Flash function (cont.),OEMFinishEraseFlash() 映像檔下載完成後,啟動程式結束所有的快閃記憶體清除程序 OEMContinueEraseFlash() 下載失敗,啟動程式繼續執行快閃記憶體清除程序,結語,作業系統啟動模式 X86和ARM的開機程序 啟動載入器的功能和載入方式 啟動載入器設計,謝謝指教!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号