嵌入式系統概念以及嵌入式基礎知識
\\\插播一條:我自己在今年年初錄製了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的(禾厶-亻言-手戈)。最近比較閒,帶做畢設,帶學生參加省級以上比賽///綠色圖標【‟で】liutianwang123
嵌入式基礎知識
1、嵌入式系統概念
嵌入式系統是指以應用為中心,以計算機技術為基礎,軟體硬體可剪裁,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。它主要由嵌入式微處理器、外圍硬體設備、嵌入式作業系統以及用戶應用軟體等部分組成。它具有「嵌入性」、「專用性」與「計算機系統」的三個基本要素。
2、嵌入式系統應用
人們平常所廣泛使用的手機、PDA、MP3、機頂盒都屬於嵌入式系統設備;而車載 GPS系統、機器人也是屬於嵌入式系統。
3、嵌入式系統的特點
(1)面向特定應用的特點。嵌入式系統與通用型系統的最大區別就在於嵌入式系統大多工作在為特定用戶群設計的系統中,因此它通常都具有低功耗、
體積小、集成度高等特點,並且可以滿足不用應用的特定需求。
(2)嵌入式系統的硬體和軟體都必須進行高效地設計,量體裁衣、去除冗餘,力爭在同樣的矽片面積上實現更高的性能,這樣才能在具體應用中對處理器的選擇更具有競爭力。
(3)嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合後的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,從事嵌入式系統開發的人才也必須是復合型人才。
(4)為了提高執行速度和系統可靠性,嵌入式系統中的軟體一般都固化在存儲器晶片或單片機本身中,而不是存儲於磁碟中。
(5)嵌入式開發的軟體代碼尤其要求高質量、高可靠性,其代碼必須有更高的要求。
(6)嵌入式系統本身不具備二次開發能力,即設計完成後用戶通常不能對其中的程序功能進行修改,必須有一套開發工具和環境才能進行再次開發。
4、嵌入式系統的體系結構
嵌入式系統作為一類特殊的計算機系統,一般包括以下 3個方面:硬體設備、嵌入式作業系統和應用軟體。它們之間的關係如圖 4.2所示。
外圍設備是嵌入式系統中用於完成存儲、通信、調試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設備按功能可以分為存儲設備(如 RAM、SRAM、Flash等)、通信設備(如 RS-232接口、SPI接口、乙太網接口等)和顯示設備(如顯示屏等)3類。
5、幾種主流嵌入式作業系統分析
嵌入式 Linux同 Linux一樣,具有低成本、多種硬體平台支持、優異的性能和良好的網絡支持等優點。另外,為了更好地適應嵌入式領域的開發,嵌入式 Linux還在 Linux基礎上做了部分改進,如下所示
·改善的內核結構
在嵌入式系統經常採用的是另一種稱為微內核(Microkernel)的體系結構,即內核本身只提供一些最基本的作業系統功能,如任務調度、內存管理、中斷處理等,而類似於文件系統和網絡協議等附加功能則運行在用戶空間中,並且可以根據實際需要進行取捨。這樣就大大減小了內核的體積,便於維護和移植。
·提高的系統實時性
利用 Linux作為底層作業系統,在其上進行實時化改造加快系統的運行和響應速度,從而構建出一個具有實時處理能力的嵌入式系統。
6、ARM處理器硬體開發平台
6.1 ARM處理器簡介
ARM是一類嵌入式微處理對齊的 Thumb指令。
2.ARM體系結構的存儲格式
·大端格式:在這種格式中,字數據的高位元組存儲在低地址中,而字數據的低位元組則存放在高地址中。
·小端格式:與大端存儲格式相反,在小端存儲格式中,低地址中存放的是字數據的低位元組,高地址存放的是字數據的高位元組。
3.ARM處理器模式
ARM微處理器支持 7種運行模式,分別如下。
·用戶模式(usr):ARM處理器正常的程序執行狀態。
·快速中斷模式(fiq):用於高速數據傳輸或通道處理。
·外部中斷模式(irq):用於通用的中斷處理。
·管理模式(svc):作業系統使用的保護模式。
·數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用於虛擬存儲及存儲保護。
·系統模式(sys):運行具有特權的作業系統任務。
6.4 ARM微處理器系列簡介
7、交叉編譯
交叉編譯就是在一個平台上生成可以在另一個平台上執行的代碼。
8、交叉調試
嵌入式系統的交叉調試有多種方法,主要可分為軟體方式和硬體方式兩種
(1)軟體方式
軟體方式調試主要是通過插入調試樁的方式來進行的。調試樁方式進行調試是通過目標作業系統和調試器內分別加入某些功能模塊,二者互通信息來進行調試。該方式的典型調試器有 Gdb調試器。
(2)硬體調試
硬體調試器的基本原理是通過仿真硬體的執行過程,讓開發者在調試時可以隨時了解到系統的當前執行情況。目前嵌入式系統開發中最常用到的硬體調試器是 ROMMonitor、
ROMEmulator、In-CircuitEmulator和 In-CircuitDebugger。
問題一、從各方面比較嵌入式系統與通用計算機的區別。
答:(1)嵌入式系統與通用型系統的最大區別就在於嵌入式系統大多工作在為特定用戶群設計的系統中,因此它通常都具有低功耗、體積小、集成度高等特點,並且可以滿足不用應用的特定需求。
(2)嵌入式系統的硬體和軟體都必須進行高效地設計,量體裁衣、去除冗餘,力爭在同樣的矽片面積上實現更高的性能。
(3)嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合後的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統,從事嵌入式系統開發的人才也必須是復合型人才。
(4)為了提高執行速度和系統可靠性,嵌入式系統中的軟體一般都固化在存儲器晶片或單片機本身中,而不是存儲於磁碟中。
(5)嵌入式開發的軟體代碼尤其要求高質量、高可靠性,由於嵌入式設備所處的環境往往是無人職守或條件惡劣的情況下,因此,其代碼必須有更高的要求。
(6)嵌入式系統本身不具備二次開發能力,即設計完成後用戶通常不能對其中的程序功能進行修改,必須有一套開發工具和環境才能進行再次開發
問題二、ARM9有哪些優於ARM7的特性?
答:(1)ARM7處理器採用的 3級流水線設計,而 ARM9則采用 5級流水線設計.
通過使用 5級流水線機制,在每一個時鐘周期內可以同時執行 5條指令。這樣就大大提高了處理性能。
在同樣的加工工藝下,ARM9處理器的時鐘頻率是 ARM7的 1.8~2.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調試器。
硬體調試器的基本原理是通過仿真硬體的執行過程,讓開發者在調試時可以隨時了解到系統的當前執行情況。目前嵌入式系統開發中最常用到的硬體調試器是 ROMMonitor、ROMEmulator、In-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)調用啟動內核