目錄
4.1 考點分析
4.2 嵌入式微處理器
4.2.1嵌入式微處理器體系結構
5.2.2 嵌入式微處理器分類
4.2.3 多核處理器
4.3 嵌入式軟件
4.4 嵌入式系統
4.4.1 嵌入式系統的組成
4.4.2 嵌入式系統分類
4.4.3 嵌入式數據庫系統DBMS
4.4.4 嵌入式操作系統OS
4.4.5 嵌入式實時系統
4.5 嵌入式軟件設計
4.1 考點分析
考試分值:本章節偶爾會考到,一般也是占3-5分。
考點內容: 本章節之前考的時候就一直超綱,本來以為改版后會增加內容,誰知道第二版教材2.4關于嵌入式的描述十分簡略,只介紹了基本概念,所以大家還是以我們視頻為主了,但真的考到,估計還是會有50%超綱內容,只能通過每年直播講題補充。主要變化在嵌入式系統組成和特點說法改變。
4.2 嵌入式微處理器
4.2.1嵌入式微處理器體系結構
(1)馮諾依曼結構:傳統計算機采用馮諾依曼(Von Neumann)結構,也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。馮?諾依曼結構的計算機程序和數據共用一個存儲空間,程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置。
- 采用單一的地址及數據總線,程序指令和數據的寬度相同。
- 處理器執行指令時,先從儲存器中取出指令解碼,再取操作數執行運算,即使單條指令也要耗費兒個甚至幾十個周期,在高速運算時,在傳輸通道上會出現瓶頸效應。
(2)哈佛結構:哈佛結構是一種并行體系結構,它的主要特點是將程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問。
- 與兩個存儲器相對應的是系統中的兩套獨立的地址總線和數據總線。
- 這種分離的程序總線和數據總線可允許在一個機器周期內同時獲取指令字(來自程序存儲器)和操作數(來自數據存儲器),從而提高了執行速度,使數據的吞吐率提高了1倍。
5.2.2 嵌入式微處理器分類
根據嵌入式微處理器的字長寬度:可分為4位、8位、16位、32位和64位。一般把16位及以下的稱為嵌入式微控制器(Embedded Micro Controller),32位及以上的稱為嵌入式微處理器。
根據系統集成度劃分:可分為兩類,一種是微處理器內部僅包含單純的中央處理器單元,稱為一般用途型微處理器:另一種則是將CPU、ROM、RAM及I/O等部件集成到同一個芯片上,稱為單芯片微控制器(Single Chip Microcontroller)。
根據用途分類:一般分為嵌入式微控制器MCU、嵌入式微處理器MPU、嵌入式數字信號處理器DSP、嵌入式片上系統SOC等。
根據嵌入式微控制器MCU:典型代表是單片機,其片上外設資源比較豐富,適合于控制。MCU芯片內部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數器、看門狗、I/O、串行口、脈寬調制輸出、A/D、D/A、Flash RAM、EEPROM等各種必要功能和外設。和嵌入式微處理器相比,微控制器的最大特點是單片化體積大大減小,從而使功耗和成本下降、可靠性提高,其片上外設資源一般較豐富,適合于控制,是嵌入式系統工業的主流。
- 嵌入式微處理器MPU:由通用計算機中的CPU演變而來。它的特征是具有32位以上的處理器,具有較高的性能,當然其價格也相應較高。但與計算機處理器不同的是,在實際嵌入式應用中,只保留和嵌入式應用緊密相關的功能硬件去除其他的冗余功能部分,這樣就以最低的功耗和資源實現嵌入式應用的特殊要求。與工業控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低可靠性高的優點。目前常見的有ARM、MIPS、POWER PC等。
- 嵌入式數字信號處理器DSP:是專門用于信號處理方面的處理器,其在系統結構和指令算法方面進行了特殊設計,具有很高的編譯效率和指令的執行速度。采用哈佛結構,流水線處理,其處理速度比最快的CPU還快10-50倍。在數字濾波、FFT、譜分析等各種儀器上DSP獲得了大規模的應用。
- 嵌入式片上系統SOC:是追求產品系統最大包容的集成器件。SOC最大的特點是成功實現了軟硬件無縫結合,直接在處理器片內嵌入操作系統的代碼模塊。是一個有專用目標的集成電路,其中包含完整系統并有嵌入軟件的全部內容。
4.2.3 多核處理器
多核指多個微處理器內核,是將兩個或更多的微處理器封裝在一起,集成在一個電路中。多核處理器是單枚芯片,能夠直接插入單一的處理器插槽中。多核與多CPU相比,很好的降低了計算機系統的功耗和體積。在多核技術中,由操作系統軟件進行調度,多進程,多線程并發都可以。
2個或多個內核工作協調實現方式。
- 對稱多處理技術SMP:將2顆完全一樣的處理器封裝在一個芯片內,達到雙倍或接近雙倍的處理性能,節省運算資源。
- 非對稱處理技術AMP:2個處理內核彼此不同,各自處理和執行特定的功能,在軟件的協調下分擔不同的計算任務。多核CPU的調度。
多核CPU環境下進程的調度算法一般有全局隊列調度和局部隊列調度兩種。
- 全局隊列調度:是指操作系統維護一個全局的任務等待隊列,當系統中有一個CPU空閑時,操作系統就從全局任務等待隊列中選取就緒任務開始執行,CPU核心利用率高。
- 局部隊列調度:是操作系統為每個CPU內核維護一個局部的任務等待隊列,當系統中有一個CPU內核空閑時,就從該核心的任務等待隊列中選取適當的任務執行,優點是無需在多個cPU之間切換。
【真題】嵌入式處理器是嵌入式系統的核心部件,一般可分為嵌入式微處理器(MPU)、微控制器(MCU、數字信號處理器(DSP和片上系統SOC)。以下敘述中,錯誤的是(A)。
A.MPU在安全性和可靠性等方面進行增強,適用于運算量較大的智能系統。
B.MCU典型代表是單片機,體積小從而使功耗和成本下降。
C.DSP處理器對系統結構和指令進行了特殊設計,適合數字信號處理。
D.SOC是一個有專用目標的集成電路,其中包括完整系統并有嵌入式軟件的全部內容。
【真題】以下關于多核處理器的說法中,不正確的是(B)。
A.采用多核處理器可以降低計算機系統的功耗和體積。
B.SMP、BMP和AMP是多核處理器系統通常采用的三種結構,采用哪種結構與應用場景相關,而無須考慮硬件的組成差異。
C.在多核處理器中,計算機可以同時執行多個進程,而操作系統中的多個線程也可以并行執行。
D.多核處理器是將兩個或更多的獨立處理器封裝在一起,集成在一個電路中。
解析:A 選項多核可合理分配任務,降低功耗、減小體積;B 選項多核結構選擇既與應用場景有關,也受硬件組成差異影響,該項說不考慮硬件組成錯誤;C 選項多核有多個核心,可使多進程、多線程并行執行;D 選項多核處理器是將多個獨立處理器封裝集成在一個電路中。所以不正確的是 B 。
4.3 嵌入式軟件
嵌入式軟件是指應用在嵌入式計算機系統當中的各種軟件,除了具有通用軟件的一般特性,還具有一些與嵌入式系統相關的特點,包括規模較小、開發難度大、實時性和可靠性要求高、要求固化存儲。嵌入式軟件分類:
- 系統軟件:控制和管理嵌入式系統資源,為嵌入式應用提供支持的各種軟件,如設備驅動程序、嵌入式操作系統、嵌入式中間件等。
- 應用軟件:嵌入式系統中的上層軟件,定義了嵌入式設備的主要功能和用途,并負責與用戶交互,一般面向特定的應用領域,如飛行控制軟件、手機軟件、地圖等。
- 支撐軟件:輔助軟件開發的工具軟件,如系統分析設計工具、在線仿真工具交叉編譯器等。
板級支持包(BSP):是介于主板硬件和操作系統中驅動層程序之間的一層,一般認為它屬于操作系統一部分,主要是實現對操作系統的支特,為上層的驅動程序提供訪問硬件設備寄存器的函數包,使之能夠更好的運行于硬件主板。BSP主要包括兩個方面的內容:導加載程序Bootloader和設備驅動程序。具體功能包括:
- 單板硬件初始化,主要是CPU的初始化,為整個軟件系統提供底層硬件支持
- 為操作系統提供設備驅動程序和系統中斷服務程序
- 定制操作系統的功能,為軟件系統提供一個實時多任務的運行環境
- 初始化操作系統,為操作系統的正常運行做好準備。
BootLoader是嵌入式系統加電后運行的第一段軟件代碼,是在操作系統內核運行之前運行的一小段程序,通過這段程序,可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境設置到一個合適的狀態,以便為最終調用操作系統內核做好準備。一般包括以下功能:
- 片級初始化:主要完成微處理器的初始化,包括設置微處理器的核心寄存器和控制寄存器、微處理器的核心工作模式及其局部總線模式等。片級初始化把微處理器從上電時的默認狀態逐步設置成系統所要求的工作狀態。這是一個純硬件的初始化過程。
- 板級初始化:通過正確地設置各種寄存器的內容來完成微處理器以外的其他硬件設備的初始化。例如,初始化LED顯示設備、初始化定時器、設置中斷控制寄存器、初始化串口通信、初始化內存控制器、建立內存空間的地址映射等。在此過程中,除了要設置各種硬件寄存器以外,還要設置某些軟件的數據結構和參數。因此,這是一個同時包含有軟件和硬件在內的初始化過程。
- 加載內核(系統級初始化):將操作系統和應用程序的映像從s紈存儲器復制到系統的內存當中,然后跳轉到系統內核的第一條指令處繼續執行。
在一個嵌入式系統當中,操作系統是可能有也可能無的。但無論如何,設備驅動程序是必不可少的。所謂的設備驅動程序,就是一組庫函數,用來對硬件進行初始化和管理,并向上層軟件提供良好的訪問接口。
對于不同的硬件設備來說,它們的功能是不一樣的,所以它們的設備驅動程序也是不一樣的。但是一般來說,大多數的設備驅動程序都會具備以下的一些基本功能。
- 硬件啟動:在開機上電或系統重啟的時候,對硬件進行初始化。
- 硬件關閉:將硬件設置為關機狀態。
- 硬件停用:暫停使用這個硬件。
- 硬件啟用:重新啟用這個硬件。
- 讀操作:從硬件中讀取數據。
- 寫操作:往硬件中寫入數據。
4.4 嵌入式系統
4.4.1 嵌入式系統的組成
嵌入式系統的組成一般嵌入式系統由嵌入式處理器、相關支撐硬件、嵌入式操作系統、支撐軟件以及應用軟件組成。
(1)嵌式處理器。由于嵌入式系統一般是在惡劣的環境條件下工作,與一般處理器相比,嵌入式處理器應可抵抗惡劣環境的影響,比如高溫、寒冷、電磁、加速度等環境因素。為適應惡劣環境,嵌入式處理器芯片除滿足低功耗、體積小等需求外,根據不同環境需求,其工藝可分為民用、工業和軍用等三個檔次。
(2)相關支撐硬件。相關支撐硬件是指除嵌入式處理器以外的構成系統的其他硬件,包括存儲器、定時器、總線、1O接口以及相關專用硬件。
(3)嵌入式操作系統。嵌入式操作系統是指運行在嵌入式系統中的基礎軟件,主要用于管理計算機資源和應用軟件。與通用操作系統不同,嵌入式操作系統應具備實時性、可剪裁性和安全性等特征。
(4)支撐軟件。支撐軟件是指為應用軟件開發與運行提供公共服務、軟件開發、調試能力的軟件,支撐軟件的公共服務通常運行在操作系統之上,以庫的方式被應用軟件所引用。
(5)應用軟件。應用軟件是指為完成嵌入式系統的某一特定目標所開發的軟件。
4.4.2 嵌入式系統分類
根據不同用途可將嵌入式系統劃分為嵌入實時系統和嵌入非實時系統兩種,而實時系統又可分為強實時系統和弱實時系統。如果從安全性要求看,嵌入式系統還可分為安全攸關系統和非安全攸關系統。嵌入式系統分為硬件層、抽象層、操作系統層、中間件層和應用層等5層。
(1)硬件層。硬件層主要是為嵌入式系統提供運行支撐的硬件環境,其核心是微處理器、存儲器(ROM、SDRAM、Flash等)、I/O接口(A/D、D/A、I/O等)和通用設備以及總線、電源、時鐘等。
(2)抽象層。在硬件層和軟件層之間為抽象層,主要實現對硬件層的硬件進行抽象,為上層應用(操作系統〉提供虛擬的硬件資源:板級支持包(BSP)是一種硬件驅動軟件,它是面向硬件層的硬件芯片或電路進行驅動,為上層操作系統提供對硬件進行管理的支持。
(3)操作系統層。操作系統層主要由嵌入式操作系統、文件系統、圖形用戶接口、網絡系統和通用組件等可配置模塊組成。
(4)中間件層。中間件層一般位于操作系統之上,管理計算機資源和網絡通信,中間件層是連接兩個獨立應用的橋梁。
(5)應用層。應用層是指嵌入式系統的具體應用,主要包括不同的應用軟件。
4.4.3 嵌入式數據庫系統DBMS
一個完整的EDBMS由若干子系統組成,包括主數據庫、同步服務器、嵌入式數據庫和連接網絡等幾個子系統。嵌入式移動數據庫在實際應用中必須解決好數據的一致性(復制性)、高效的事務處理和數據的安全性等關鍵問題。
4.4.4 嵌入式操作系統OS
與通用操作系統相比,EOS主要有以下特點:
(1)微型化。E0S的運行平臺不是通用計算機,而是嵌入式系統。這類系統一般沒有大容量的內存,幾乎沒有外存,因此,E0S必須做得小巧,以占用盡量少的系統資源。
(2)代碼質量高。在大多數嵌入式應用中,存儲空間依然是寶貴的資源,這就要求程序代碼的質量要高,代碼要盡量精簡。
(3)專業化。嵌入式系統的硬件平臺多種多樣,處理器的更新速度快,每種處理器都是針對不同的應用領域而專門設計的。因此,E0S要有很好適應性和移植性,還要支持多種開發平臺。
(4)實時性強。嵌入式系統廣泛應用于過程控制、數據采集、通信、多媒體信息處理等要求實時響應的場合,因此,實時性成為0S的又一特點。
(5)可裁減和可配置。應用的多樣性要求EOS具有較強的適應能力,能夠根據應用的特點和具體要求進行靈活配置和合理裁減,以適應微型化和專業化的要求。
4.4.5 嵌入式實時系統
嵌入式實時系統:一種完全嵌入受控器件內部,為特定應用而設計的專用計算機系統。在嵌入式實時系統中,要求系統在投入運行前即具有確定性和可預測性。
- 可預測性:指系統在運行之前,其功能、響應特性和執行結果是可預測的:
- 確定性:指系統在給定的初始狀態和輸入條件下,在確定的時間內給出確定的結果。
實時操作系統RTOS的特點:當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統做出快速響應,并控制所有實時任務協調一致運行。因而,提供及時響應和高可靠性是其主要特點。
實時操作系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作系統設計時保證的;軟實時則只要按照任務的優先級,盡可能快地完成操作即可。
實時操作系統的特征:
(1)高精度計時系統:計時精度是影響實時性的個重要因素,在實時應用系統中,經常需要精確確定實時地操作某個設備或執行某個任務,或精確的計算一個時間函數。這些不僅依賴于一些硬件提供的時鐘精度,也依賴于實時操作系統實現的高精度計時功能。
(2)多級中斷機制:一個實時應用系統通常需要處理多種外部信息或事件,但處理的緊迫程度有輕重緩急之分。有的必須立即作出反應,有的側可以延后處理。因此,需要建立多級中斷嵌套處理機制,以確保對緊迫程度較高的實時事件進行及時響應和處理。
(3)實時調度機制:實時操作系統不僅要及時響應實時事件中斷,同時也要及時調度運行實時任務。但是,處理機調度并不能隨心所欲的進行,因為涉及到兩個進程之間的切換只能在確保“安全切換”的時間點上進行,實時調度機制包括兩個方面,一是在調度策略和算法上保證優先調度實時任務;二是建立更多“安全切換”時間點,保證及時調度實時任務。
【真題】以下關于RTOS(實時操作系統)的敘述中,不正確的是(A)。
A.RTOS不能針對硬件變化進行結構與功能上的配置及裁剪。
B.RTOS可以根據應用環境的要求對內核進行裁剪和重配。
C.RToS的首要任務是調度一切可利用的資源來完成實時控制任務。
D.RTOS實質上就是一個計算機資源管理程序,需要及時響應實時事件和中斷。
解析:RTOS(實時操作系統)具備靈活性,能針對硬件變化在結構與功能上進行配置及裁剪,以適配不同硬件環境,A 選項說法錯誤;它可依據應用環境要求對內核裁剪和重配 ,B 選項正確;其首要任務是調度資源完成實時控制任務,C 選項正確;RTOS 本質是計算機資源管理程序,需及時響應實時事件和中斷,D 選項正確。
【真題】以下描述中,(B)不是嵌入式操作系統的特點。
A.面向應用,可以進行裁剪和移植。
B.用于特定領域,不需要支持多任務。
C.可靠性高,無需人工干預獨立運行,并處理各類事件和故障。
D.要求編碼體積小,能夠在嵌入式系統的有效存儲空間內運行。
解析:嵌入式操作系統面向應用,可裁剪移植,A 選項是其特點;嵌入式操作系統常應用于特定領域,很多情況下需要支持多任務,如智能設備需同時處理多種功能任務,B 選項不是其特點;它可靠性高,能獨立運行處理各類事件和故障 ,C 選項是其特點;因嵌入式系統存儲空間有限,要求編碼體積小,D 選項是其特點。
4.5 嵌入式軟件設計
交叉編譯:嵌入式軟件開發所采用的編譯為交叉編譯。所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執行的代碼。編譯的最主要的工作就在將程序轉化成運行該程序的CPU所能識別的機器代碼,由于不同的體系結構有不同的指令系統。因此,不同的CPU需要有相應的編譯器,而交叉編譯就如同翻譯樣,把相同的程序代碼翻譯成不同CPU的對應可執行二進制文件。嵌入式系統的開發需要借助宿主機(通用計算機)來編譯出目標機的可執行代碼。
交叉調試:嵌入式軟件經過編譯和鏈接后即進入調試階段,調試是軟件開發過程中必不可少的一個環節,嵌入式軟件開發過程中的交叉調試與通用軟件開發過程中的調試方式有很大的差別。
在嵌入式軟件開發中,調試時采用的是在宿主機和目標機之間進行的交叉調試調試器仍然運行在宿主機的通用操作系統之上,但被調試的進程卻是運行在基于特定硬件平臺的嵌入式操作系統中,調試器和被調試進程通過串口或者網絡進行通信,調試器可以控制、訪問被調試進程,讀取被調試進程的當前狀態,并能夠改變被調試進程的運行狀態。
【真題】以下關于嵌入式系統開發的敘述,正確的是(C)。
A.宿主機與目標機之間只需要建立邏輯連接
B.宿主機與目標機之間只能采用串口通信方式
C.在宿主機上必須采用交叉編譯器來生成目標機的可執行代碼
D.調試器與被調試程序必須安裝在同一臺機器上
解析:A 選項宿主機與目標機之間不僅要建立邏輯連接,還需要建立物理連接(如通過串口、USB 等方式連接 ),才能實現數據傳輸等操作,該選項錯誤。B 選項宿主機與目標機之間的通信方式有多種,除了串口通信,還可以采用 USB、以太網等通信方式,并非只能采用串口通信,該選項錯誤。C 選項由于宿主機(一般是通用計算機,如 PC )和目標機(嵌入式設備)的硬件架構、操作系統等可能不同,所以在宿主機上需要采用交叉編譯器,將源代碼編譯成目標機能夠運行的可執行代碼,該選項正確。D 選項在嵌入式系統開發中,調試器可以運行在宿主機上,被調試程序運行在目標機上,通過一定的連接方式(如 JTAG、串口等 )進行調試,并非必須安裝在同一臺機器上,該選項錯誤。