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