嵌入式基礎知識


1、嵌入式系統概念

  嵌入式系統是指應用為中心,以計算機技術為基礎,軟件硬件可剪裁,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。它主要由嵌入式微處理器、外圍硬件設備、嵌入式操作系統以及用戶應用軟件等部分組成。它具有“嵌入性”、“專用性”與“計算機系統”三個基本要素 。

2、嵌入式系統應用

人們平常所廣泛使用的手機、PDAMP3、機頂盒都屬於嵌入式系統設備;而車載 GPS 系統、機器人也是屬於嵌入式系統。 

 

3、嵌入式系統的特點

1)面向特定應用的特點。嵌入式系統與通用型系統的最大區別就在於嵌入式系統大多工作在為特定用戶群設計的系統中,因此它通常都具有低功耗、

體積小、集成度高等特點,並且可以滿足不用應用的特定需求。

2)嵌入式系統的硬件和軟件都必須進行高效地設計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現更高的性能,這樣才能在具體應用中對處理器的選擇更具有競爭力。

3)嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,從事嵌入式系統開發的人才也必須是復合型人才。

4)為了提高執行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲於磁盤中。

5)嵌入式開發的軟件代碼尤其要求高質量、高可靠性,其代碼必須有更高的要求。

6)嵌入式系統本身不具備二次開發能力,即設計完成后用戶通常不能對其中的程序功能進行修改,必須有一套開發工具和環境才能進行再次開發。 

4、嵌入式系統的體系結構

嵌入式系統作為一類特殊的計算機系統,一般包括以下 3 個方面:硬件設備、嵌入式操作系統和應用軟件。它們之間的關系如圖 4.2 所示。 

外圍設備是嵌入式系統中用於完成存儲、通信、調試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設備按功能可以分為存儲設備(如 RAMSRAMFlash 等)、通信設備(如 RS-232 接口、SPI 接口、以太網接口等)和顯示設備(如顯示屏等)3 類。 

 

5、幾種主流嵌入式操作系統分析

  嵌入式 Linux Linux 一樣,具有低成本、多種硬件平台支持、優異的性能和良好的網絡支持等優點。另外,為了更好地適應嵌入式領域的開發,嵌入式 Linux 還在 Linux 基礎上做了部分改進,如下所示 

· 改善的內核結構 

  在嵌入式系統經常采用的是另一種稱為微內核(Microkernel的體系結構,即內核本身只提供一些最基本的操作系統功能,如任務調度、內存管理、中斷處理等,而類似於文件系統和網絡協議等附加功能則運行在用戶空間中,並且可以根據實際需要進行取舍。這樣就大大減小了內核的體積,便於維護和移植。 

 · 提高的系統實時性 

  利用 Linux 作為底層操作系統,在其上進行實時化改造加快系統的運行和響應速度 ,從而構建出一個具有實時處理能力的嵌入式系統 。

6、ARM處理器硬件開發平台

6.1 ARM處理器簡介

  ARM 是一類嵌入式微處理器,同時也是一個公司的名字。ARM 公司於 1990 11 月成立於英國劍橋,它是一家專門從事 16/32 RISC 微處理器知識產權設計的供應商。ARM 司本身不直接從事芯片生產,而只是授權 ARM 內核,再給生產和銷售半導體的合作伙伴,同時也提供基於 ARM 架構的開發設計技術。世界各大半導體生產商從 ARM 公司處購買其設計的 ARM 微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己ARM 微處理器芯片進入市場 。

 6.2 ARM處理器特點

· 體積小、低功耗、低成本、高性能。
· 支持 Thumb16 位)/ARM32 位)雙指令集,能很好的兼容 8 /16 位器件。
· 大量使用寄存器,指令執行速度更快。
· 大多數數據操作都在寄存器中完成。
· 尋址方式靈活簡單,執行效率高。
· 指令長度固定。

6.3 ARM體系結構簡介

1ARM 微處理器工作狀態

ARM 微處理器的工作狀態一般有兩種,並可在兩種狀態之間切換。

  · 第一種為 ARM 狀態,此時處理器執行 32 位的字對齊的 ARM 指令。

  · 第二種為 Thumb 狀態,此時處理器執行 16 位的、半字對齊的 Thumb 指令。
2ARM 體系結構的存儲格式
  · 大端格式:在這種格式中,字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中。
  · 小端格式:與大端存儲格式相反,在小端存儲格式中,低地址中存放的是字數據的低字節,高地址存放的是字數據的高字節。

3ARM 處理器模式
ARM 微處理器支持 7 種運行模式,分別如下。
· 用戶模式(usr):ARM 處理器正常的程序執行狀態。
· 快速中斷模式(fiq):用於高速數據傳輸或通道處理。
· 外部中斷模式(irq):用於通用的中斷處理。
· 管理模式(svc):操作系統使用的保護模式。

· 數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用於虛擬存儲及存儲保護。
· 系統模式(sys):運行具有特權的操作系統任務。

6.4 ARM 微處理器系列簡介

7、交叉編譯

  交叉編譯就是在一個平台上生成可以在另一個平台上執行的代碼。

 

8、交叉調試

嵌入式系統的交叉調試有多種方法,主要可分為軟件方式和硬件方式兩種 

1)軟件方式

軟件方式調試主要是通過插入調試樁的方式來進行的。調試樁方式進行調試是通過目標操作系統和調試器內分別加入某些功能模塊,二者互通信息來進行調試。該方式的典型調試器有 Gdb 調試器。 

2)硬件調試

硬件調試器的基本原理是通過仿真硬件的執行過程,讓開發者在調試時可以隨時了解到系統的當前執行情況。目前嵌入式系統開發中最常用到的硬件調試器是 ROMMonitor

ROMEmulatorIn-CircuitEmulator In-CircuitDebugger

問題一、從各方面比較嵌入式系統與通用計算機的區別。

答:(1)嵌入式系統與通用型系統的最大區別就在於嵌入式系統大多工作在為特定用戶群設計的系統中,因此它通常都具有低功耗、體積小、集成度高等特點,並且可以滿足不用應用的特定需求。

       (2)嵌入式系統的硬件和軟件都必須進行高效地設計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現更高的性能 。

  (3)嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,從事嵌入式系統開發的人才也必須是復合型人才。

  (4)為了提高執行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存儲於磁盤中。

  (5)嵌入式開發的軟件代碼尤其要求高質量、高可靠性,由於嵌入式設備所處的環境往往是無人職守或條件惡劣的情況下,因此,其代碼必須有更高的要求。

  (6)嵌入式系統本身不具備二次開發能力,即設計完成后用戶通常不能對其中的程序功能進行修改,必須有一套開發工具和環境才能進行再次開發 

問題二、ARM9有哪些優於ARM7的特性?

答:(1)ARM7 處理器采用的 級流水線設計,而 ARM9 則采用 級流水線設計.

  通過使用 5 級流水線機制,在每一個時鍾周期內可以同時執行 5 條指令。這樣就大大提高了處理性能。

在同樣的加工工藝下,ARM9 處理器的時鍾頻率是 ARM7 1.82.2 倍。 

(2)ARM9采用的是哈佛結構,ARM7采用的是馮諾依曼結構

   馮·諾依曼結構共用數據存儲空間和程序存儲空間,它們共享存儲器總線,這也是以往設計時常用的方式;

而哈佛結構則具有分離的數據和程序空間及分離的訪問總線。所以哈佛結構在指令執行時,取址和取數可以並行,因此具有更高的執行效率 。

(3)ARM9引入了高速緩存和寫緩存提高了存儲器的訪問速度。

(4)支持MMU 

  MMU 是內存管理單元,它把內存以“頁”為單位來進行處理。一頁內存是指一個具有一定大小的連續的內存塊,通常為 4096B 8192B。操作系統為每個正在運行的程序

建立並維護一張被稱為進程內存映射的表,表中記錄了程序可以存取的所有內存頁以及它們的實際位置。

  每當程序存取一塊內存時,它會把相應的虛擬地址(virtual address)傳送給 MMU,而MMU 會在 PMM 中查找這塊內存的實際位置,也就是物理地址(physical address),物理地

址可以在內存中或磁盤上的任何位置。如果程序要存取的位置在磁盤上,就必須把包含該地址的頁從磁盤上讀到內存中,並且必須更新 PMM 以反映這個變化(這被稱為 pagefault,即

頁錯)。只有擁有了 MMU 才能真正實現內存保護。例如當 A 進程的程序試圖直接訪問屬於 B 程的虛擬地址中的數據,那么 MMU 會產生一個異常(Exception)來阻止 A 的越界操作。這樣,通過內存保護,一個進程的失敗並不會影響其他進程的運行,從而增強了系統的穩定性,

ARM9 也正是因此擁有了 MMU,比 ARM7 有了更強的穩定性和可靠性。

問題三、什么是交叉編譯?為什么要進行交叉編譯?

答:交叉編譯就是在一個平台上生成可以在 另一個平台上執行的代碼 。

編譯的最主要的工作就在將程序轉化成運行該程序的 CPU 所能識別的機器代碼,由於不同的體系結構有不同的指令系統。因此,不同

CPU 需要有相應的編譯器,而交叉編譯就如同翻譯一樣,把相同的程序代碼翻譯稱不同的CPU 對應語言。 

問題四、嵌入式開發常用的調試手段有哪幾種?說出它們各自的優缺點?

 答:嵌入式系統常用的調試手段時交叉調試,主要分為軟件調試和硬件調試兩種方式。

軟件方式調試主要是通過插入調試樁的方式來進行的。調試樁方式進行調試是通過目標操作系統和調試器內分別加入某些功能模塊,二者互通信息來進行調試。該方式的典型調試器有 Gdb 調試器。 

硬件調試器的基本原理是通過仿真硬件的執行過程,讓開發者在調試時可以隨時了解到系統的當前執行情況。目前嵌入式系統開發中最常用到的硬件調試器是 ROMMonitorROMEmulatorIn-CircuitEmulator In-CircuitDebugger。 

問題五、嵌入式硬件系統一般由哪幾部分組成?核心是什么?核心由哪幾部分組成?他們的關系是怎樣的(請用圖表示出來)?

 答:嵌入式系統一般由嵌入式處理器、存儲器和輸入/輸出部分組成。

其中嵌入式微處理器是嵌入式硬件系統的核心,通常由三大部分組成:控制單元、算術邏輯單元和寄存器

問題六、Boot loader在嵌入式系統中主要起什么作用?完成哪些主要的工作?

答: Boot Loader是在操作系統運行之前執行的一段程序,通過這段程序,初始化硬件設備,建立內存空間的映射表,從而建立適當的系統軟硬件環境,為最終

調用操作系統內核做好准備。

Boot Loader的stage1通常包括以下工作:

(1)硬件設備初始化。

(2)加載BootLoader的stage2准備RAM空間。

(3)拷貝BootLoader的stage2到RAM空間。

(4)設置堆棧

(5)跳轉到stage2的C入口點。

Boot Loader的stage2通常包括以下工作:

(1)初始化本階段要使用的硬件設備

(2)檢測系統內存映射

(3)將內核映像和根文件系統映像從flash設備上復制到RAM空間中

(4)設置內核啟動參數

(5)調用啟動內核

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM