2011軟件水平考試嵌入式系統(tǒng)設(shè)計師輔導(dǎo)筆記(16)
1、嵌入式軟件基礎(chǔ)
(1)嵌入式軟件的特點:
A、規(guī)模較小。
B、開發(fā)難度大。
C、實時性和可靠性要求高。
D、要求固化存儲。
(2)嵌入式軟件分類:
A、系統(tǒng)軟件:控制和管理嵌入式系統(tǒng)資源,如嵌入式操作系統(tǒng)、驅(qū)動程序、中間件等。
B、應(yīng)用軟件:定義嵌入式設(shè)備的主要功能和用途,負載與用戶進行交互。
C、支撐軟件:輔助軟件開發(fā)的工具軟件。
(3)無操作系統(tǒng)的嵌入式軟件的兩種實現(xiàn)方式:
A、循環(huán)輪轉(zhuǎn)
優(yōu)點:簡單、直觀、開銷小、可預(yù)測。
缺點:過于簡單,所有代碼順序執(zhí)行,無法處理異步事件,缺乏并行處理能力。
B、前后臺系統(tǒng)(在循環(huán)輪轉(zhuǎn)的基礎(chǔ)上增加了中斷處理功能)
前臺(事件處理級):中斷服務(wù)程序,負載處理異步事件。
后臺(任務(wù)級):一個無限循環(huán),負載資源分配、任務(wù)管理和系統(tǒng)調(diào)度。
(4)有操作系統(tǒng)的三大優(yōu)點:
A、提高系統(tǒng)的可靠性。
B、提高了系統(tǒng)的開發(fā)效率,降低了開發(fā)成本,縮短了開發(fā)周期。
C、有利于系統(tǒng)的擴展與移植。
(5)設(shè)備驅(qū)動層(也叫板級支持包BSP:包含了嵌入式系統(tǒng)中所有與硬件相關(guān)的代碼)
大多數(shù)的嵌入式硬件設(shè)備都需要某種類型軟件的初始化和管理。這部分工作由設(shè)備驅(qū)
動層來完成的,它負責直接與硬件大交道,對硬件進行管理和控制,為上層軟件提供所需的
驅(qū)動支持,類似PC 系統(tǒng)中的BIOS 和驅(qū)動程序。
(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)交給它,由它負責把操
作系統(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é)同工作的平臺。
【編輯推薦】