嵌入式系統的軟件組成_學習筆記(1)

前言

    計算機三級_嵌入式系統開發技術_學習筆記 , 第四章 : 嵌入式系統的軟件組成

正文

4.1 嵌入式系統的軟件組成
4.1.1 嵌入式操作系統的特點:

·軟硬件一體化,軟件固化存儲
·軟件代碼的時間和空間上要求嚴格,具有較高的實時性
·軟件可剪裁,儘可能的高效:保證產品在價格體積功耗和性能方面具有競爭力
·軟件的應用環境複雜,要求較高的安全性和可靠性
·開發難度大 : 涉及底層軟件
·軟件產業高度分散 : 沒有哪個嵌入式操作系統或應用軟件可以壟斷絕大部分市場
·軟件具有較長的生命週期


4.1.2 嵌入式系統的軟件結構
[多樣性的需求是 嵌入式系統 與 通用計算機系統 相比最明顯的特徵] 
1.簡單的輪詢(Round-Robin)結構: 
·適合低端嵌入式系統,功能簡單,處理能力較低,存儲容量小;
2.帶中斷的輪詢結構
3.監控式操作系統 + 應用軟件 :
·以多任務的方式運行,選配EOS(嵌入式操作系統);
·中端嵌入式系統中只包含內核(kernel):任務調度、任務間通信、中斷管理;
4.通用嵌入式操作系統 + 應用軟件 :
·高端的嵌入式操作系統,具備強大的人機接口、支持多種協議的網絡、通信和多媒體接口;
·高端嵌入式系統的軟件層次結構包含:
·應用軟件層;
·系統軟件層:中間層、操作系統層、硬件抽象層;
·硬件層;
(p.s.中間層是具有標準程序接口和協議的通用服務,可以減輕開發難度並減少工作量,獲得相對穩定的開發和運行環境)


4.1.3 硬件抽象層與極板支持包 (HAL & BSP)
1.HAL & BSP的概念
1.1 HAL是 操作系統 和 硬件 之間的獨立接口軟件層 ,其直接依賴於硬件 ,包括:引導程序、硬件配置程序和硬件訪問代碼等;
1.2 HAL可對硬件進行抽象,即將控制所有硬件電路的軟件代碼封裝起來,通過HAL API向操作系統提供服務;
1.3 常見的HAL規範大多由OS廠商提供;
1.4 BSP 是HAL 在特定操作系統環境下的具體實現,BSP必須針對特定的硬件專門編寫;
1.5 BSP 在系統復位以後對系統軟硬件環境初始化 , 功能如下 :
·系統復位時,對必須的硬件進行初始化;
·BSP 中包含硬件相關的驅動程序,即提供硬件相關的驅動支持;
·加載完硬件環境後,BSP 設置軟件的基本數據結構和參數、操作系統自身的工作環境、定製操作系統功能等;
2.HAL & BSP實例
2.1 HAL 系統提供如下服務:
·ANSI C標準庫;
·外設驅動;
·HAL API;
·系統初始化 和 設備初始化;
3.BSP 開發 & 移植
·BSP 既要與特定的電路板相匹配,又必須按照操作系統所要求的接口方式爲其提供服務
·開發BSP 分爲兩種方式 : 開發全新的 BSP 和 移植類似的BSP 
·BSP 的調試 : 1.最小系統的調試;2.外設驅動程序的調試;


4.1.4 引導加載程序 
1. bootloader : 

·是底層軟件的一部分,在嵌入式系統上電覆位後首先運行的一段程序,負責系統的上電自檢、硬件初始化、建立存儲空間映射、配置系統參數、建立上層軟件的運行環境、並加載和啓動操作系統;
·bootloader存儲在bootROM(引導只讀存儲器),當前使用最多的是 NOR Flash ROM。在大多數嵌入式系統中,bootROM不僅存儲bootloader程序,還存儲操作系統映像、應用程序代碼和用戶配置數據等信息;
2.嵌入式操作系統的加載方式 : 根據操作系統映像存放的位置不同,嵌入式操作系統的引導加載可以採用不同方式 ,如下:
2.1 bootloading模式:

·在ROM中直接運行操作系統代碼: 操作系統和應用程序的映像預先是燒製在ROM存儲器中的,ROM可以隨機讀出,不需要額外的驅動程序。當嵌入式處理器執行完bootloader代碼後,直接跳轉到ROM存儲器中操作系統入口函數處執行;
·在RAM中運行操作系統代碼: bootloader代碼在完成必要的硬件初始化後,把ROM中的操作系統拷貝到RAM中,然後跳轉到RAM存儲器中操作系統入口處繼續執行;此種方式中,RAM的訪問速度要比ROM快很多,而且RAM存儲單元中的數據可以很方便的改寫,所以實現了程序代碼的動態修改,利於調試;
·從外存儲器加載操作系統代碼運行;
2.2 downloading模式:
·從通信端口加載操作系統代碼運行 : 此種方式從串口、以太網接口等通信端口加載操作系統和應用程序;在bootloader中增加通信端口驅動程序,並且還需要相應的通信協議軟件支持通信端口上的數據傳輸;

  

4.1.5 嵌入式系統的設備驅動程序
1.設備驅動程序(device driver)是直接與硬件相互作用並控制硬件的軟件,驅動程序是對硬件操作的抽象,以實現高層軟件對硬件的訪問。通過驅動程序,應用軟件工程師可以不必關心I/O設備的中斷、I/O寄存器、輸入輸出控制器等細節,對硬件實現透明訪問。
驅動程序由如下兩個基本特性:
·只能背高層軟件調用而不能自己運行;
·對上層軟件屏蔽硬件細節,對下層硬件直接操作;
2.驅動程序的功能:
·設備初始化;
·設備打開和關閉;
·設備讀取和寫入;
·設備狀態查詢和設備控制操作;
3.設備驅動程序的實現方式
小型的操作系統中開發操作由軟件工程師自行完成;大型的嵌入式操作系統往往自帶標準設備的驅動程序,並且定義了統一的設備驅動程序框架。某些操作系統會按照分層的方法設計驅動程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章