(6)板級支持包BSP 的基本思想
把嵌入式操作系統(tǒng)與具體的硬件平臺隔離開來。在BSP 當中,把所有與硬件相關(guān)的代
碼都封裝起來,并向上提供一個虛擬的硬件平臺,而操作系統(tǒng)就運行在這個虛擬的硬件平臺
上。它使用一組定義好的編程接口來與BSP 進行交互,并通過BSP 來訪問真正的硬件。
(7)一般來說。BSP 主要包括兩個方面的內(nèi)容:
A、引導(dǎo)加載程序BootLoader。
B、設(shè)備驅(qū)動程序。
(8)關(guān)于引導(dǎo)加載程序BoorLoader
引導(dǎo)加載程序是嵌入式系統(tǒng)加電后運行的第一段軟件代碼,是在操作系統(tǒng)內(nèi)核運行之
前運行的一段小程序,它的實現(xiàn)高度依賴于具體的硬件平臺,主要的基本功能如下:
A、片級初始化:純硬件初始化過程,把微處理器從上電的默認狀態(tài)設(shè)置成系
統(tǒng)要求的工作狀態(tài)。
B、板級初始化:同時有軟件和硬件在內(nèi)的初始化過程,設(shè)置各種硬件的寄
存器和設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù)。
C、加載內(nèi)核:將操作系統(tǒng)和應(yīng)用程序的映象從Flash 存儲器復(fù)制到系統(tǒng)內(nèi)存
當中,然后跳轉(zhuǎn)到系統(tǒng)內(nèi)核的第一條指令處繼續(xù)執(zhí)行。
補充:PC 系統(tǒng)的引導(dǎo)加載過程。
PC 系統(tǒng)的引導(dǎo)加載程序由兩部分代碼組成――BIOS 和MBR 中的引導(dǎo)程序。BIOS 在完成硬件檢測和資源
配置后,將硬盤主引導(dǎo)記錄MBR 中的引導(dǎo)程序讀到系統(tǒng)的內(nèi)存當中,然后將控制權(quán)交給它,由它負責(zé)把操
作系統(tǒng)的內(nèi)核映象從硬盤讀入到內(nèi)存,然后跳轉(zhuǎn)到內(nèi)核入口去運行,即啟動操作系統(tǒng)。
(9)設(shè)備驅(qū)動程序
在一個嵌入式系統(tǒng)中,操作系統(tǒng)可能有也可能無,但是設(shè)備驅(qū)動程序是必不可少的。
設(shè)備驅(qū)動程序,就是一組庫函數(shù),用來對硬件進行初始化和管理,并向上層軟件提供良好
的訪問接口。大多數(shù)設(shè)備驅(qū)動程序都具備下面的基本功能:啟動、關(guān)閉、停用、啟用、讀
操作、寫操作。這些功能一般用函數(shù)的形式來實現(xiàn),這些函數(shù)之間的組織結(jié)構(gòu)主要有兩種:
分層結(jié)構(gòu)和混合結(jié)構(gòu)。
(10)關(guān)于分層結(jié)構(gòu)
A、硬件接口:直接操作和控制硬件。
B、調(diào)用接口:不直接跟硬件大交道,為上層軟件提供服務(wù)和函數(shù)接口。
C、優(yōu)點:把所有與硬件相關(guān)的細節(jié)都封裝在硬件接口中,在硬件需要升級,需要更新
設(shè)備驅(qū)動程序的時候,只需要改動硬件接口中的函數(shù)即可,而上層調(diào)用接口中的函數(shù)不用做
任何修改。
D、混合結(jié)構(gòu):在設(shè)備驅(qū)動程序當中,沒有明確的層次關(guān)系,上層接口和硬件接口混在
一起,相互調(diào)用。
(11)嵌入式中間件
它是在操作系統(tǒng)內(nèi)核、設(shè)備驅(qū)動程序和應(yīng)用軟件之外的所有系統(tǒng)軟件,其基本思路是:
把原本屬于應(yīng)用軟件層的一些通用的功能模塊抽取出來,形成獨立的一層軟件,從而為運行
在它上面的那些應(yīng)用軟件提供一個靈活、安全。移植性好、相互通信、協(xié)同工作的平臺。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |