2011軟件水平考試嵌入式系統設計師輔導筆記(16)
1、嵌入式軟件基礎
(1)嵌入式軟件的特點:
A、規模較小。
B、開發難度大。
C、實時性和可靠性要求高。
D、要求固化存儲。
(2)嵌入式軟件分類:
A、系統軟件:控制和管理嵌入式系統資源,如嵌入式操作系統、驅動程序、中間件等。
B、應用軟件:定義嵌入式設備的主要功能和用途,負載與用戶進行交互。
C、支撐軟件:輔助軟件開發的工具軟件。
(3)無操作系統的嵌入式軟件的兩種實現方式:
A、循環輪轉
優點:簡單、直觀、開銷小、可預測。
缺點:過于簡單,所有代碼順序執行,無法處理異步事件,缺乏并行處理能力。
B、前后臺系統(在循環輪轉的基礎上增加了中斷處理功能)
前臺(事件處理級):中斷服務程序,負載處理異步事件。
后臺(任務級):一個無限循環,負載資源分配、任務管理和系統調度。
(4)有操作系統的三大優點:
A、提高系統的可靠性。
B、提高了系統的開發效率,降低了開發成本,縮短了開發周期。
C、有利于系統的擴展與移植。
(5)設備驅動層(也叫板級支持包BSP:包含了嵌入式系統中所有與硬件相關的代碼)
大多數的嵌入式硬件設備都需要某種類型軟件的初始化和管理。這部分工作由設備驅
動層來完成的,它負責直接與硬件大交道,對硬件進行管理和控制,為上層軟件提供所需的
驅動支持,類似PC 系統中的BIOS 和驅動程序。
(6)板級支持包BSP 的基本思想
把嵌入式操作系統與具體的硬件平臺隔離開來。在BSP 當中,把所有與硬件相關的代
碼都封裝起來,并向上提供一個虛擬的硬件平臺,而操作系統就運行在這個虛擬的硬件平臺
上。它使用一組定義好的編程接口來與BSP 進行交互,并通過BSP 來訪問真正的硬件。
(7)一般來說。BSP 主要包括兩個方面的內容:
A、引導加載程序BootLoader。
B、設備驅動程序。
(8)關于引導加載程序BoorLoader
引導加載程序是嵌入式系統加電后運行的第一段軟件代碼,是在操作系統內核運行之
前運行的一段小程序,它的實現高度依賴于具體的硬件平臺,主要的基本功能如下:
A、片級初始化:純硬件初始化過程,把微處理器從上電的默認狀態設置成系
統要求的工作狀態。
B、板級初始化:同時有軟件和硬件在內的初始化過程,設置各種硬件的寄
存器和設置某些軟件的數據結構和參數。
C、加載內核:將操作系統和應用程序的映象從Flash 存儲器復制到系統內存
當中,然后跳轉到系統內核的第一條指令處繼續執行。
補充:PC 系統的引導加載過程。
PC 系統的引導加載程序由兩部分代碼組成――BIOS 和MBR 中的引導程序。BIOS 在完成硬件檢測和資源
配置后,將硬盤主引導記錄MBR 中的引導程序讀到系統的內存當中,然后將控制權交給它,由它負責把操
作系統的內核映象從硬盤讀入到內存,然后跳轉到內核入口去運行,即啟動操作系統。
(9)設備驅動程序
在一個嵌入式系統中,操作系統可能有也可能無,但是設備驅動程序是必不可少的。
設備驅動程序,就是一組庫函數,用來對硬件進行初始化和管理,并向上層軟件提供良好
的訪問接口。大多數設備驅動程序都具備下面的基本功能:啟動、關閉、停用、啟用、讀
操作、寫操作。這些功能一般用函數的形式來實現,這些函數之間的組織結構主要有兩種:
分層結構和混合結構。
(10)關于分層結構
A、硬件接口:直接操作和控制硬件。
B、調用接口:不直接跟硬件大交道,為上層軟件提供服務和函數接口。
C、優點:把所有與硬件相關的細節都封裝在硬件接口中,在硬件需要升級,需要更新
設備驅動程序的時候,只需要改動硬件接口中的函數即可,而上層調用接口中的函數不用做
任何修改。
D、混合結構:在設備驅動程序當中,沒有明確的層次關系,上層接口和硬件接口混在
一起,相互調用。
(11)嵌入式中間件
它是在操作系統內核、設備驅動程序和應用軟件之外的所有系統軟件,其基本思路是:
把原本屬于應用軟件層的一些通用的功能模塊抽取出來,形成獨立的一層軟件,從而為運行
在它上面的那些應用軟件提供一個靈活、安全。移植性好、相互通信、協同工作的平臺。
【編輯推薦】