硬件資料:
操作系統:(非虛擬機)
zws@z-pc:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty
內核版本:
zws@z-pc:~$ uname -a Linux z-pc 4.4.0-38-generic #57~14.04.1-Ubuntu SMP Tue Sep 6 17:20:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
編譯器版本:
gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) //gcc
gcc version 4.5.1 (ctng-1.8.1-FA) //arm-linux-gcc
開發板:TINY4412/Super4412SDK 1506
核心板:TINY4412 1306 (SOC:Exynos 4412 Cortex-A9 四核 1.5Ghz )
LCD屏:S702 5V/1A
一、 嵌入式系統硬件架構:
微處理器:
按位數:4位、8位、16位、32位和64位。
按用途:嵌入式DSP和通用的嵌入式微處理器。
嵌入式DSP專用於數字信號處理,采用哈佛結構,程序和說一句分開存儲,采用一系列措施保證數字信號的處理速度。
通用嵌入式處理器一般集成了通用微處理器的核、總線、外圍借口和設備的SOC芯片,有些還會將SDP作為協處理器。
一般的嵌入式處理器包括:
1. 片內存儲器。
2. 外部存儲器的控制器、外設接口。
3. LCD控制器。
4. 中斷控制器。
5. 定時器、A/D、D/A轉換器。
6. 多媒體加速器。
7.總線。
8. 其他標准接口或外設。
常用的嵌入式微處理器按照體系結構不同,可以分為以下幾個系列:
1. ARM系列:過去稱為高級精簡指令集機器,是一個32位精簡指令集RISC處理器架構。
2.MIPS系列:是一種采取精簡指令集RISC的處理器架構。
3. PowerPC:是一種精簡指令集RISC架構的中央處理器(CPU)。
總線:
總線是CPU與存儲器和設備通信的機制,是計算機各部件之間傳遞數據、地址和控制信息的公共通道。
有3個重要的參數:
1. 總線寬度: 又稱為總線位寬,指的是總線能同時傳送數據的位數。
2. 總線頻率: 工作速度的一個重要參數,頻率越高速度越快。
3. 總線帶寬: 又稱總線傳輸速率,指在一定時間內總線上可傳送的數據總量,用每秒最大傳輸數據量來衡量。
例如:總線寬度為32位,總線頻率為66MHz,則總線帶寬等於(32/8)x66=264MB/s。
對於ARM系列的處理器而言會按照AMBA規范來設計總線。
1. AHB(Advanced High-performance Bus):用於高性能、高時鍾頻率的系統模塊連接。
2. ASB(Advance System Bus): 用於並不要求AHB高性能特征的地方。
3. APB(Advance Peripheral Bus):用於較低性能外設的簡單連接。一般是接在AHB或ASB總線上的二級總線。
還有其他流行的片外總線:I2C總線.SPI總線、UART總線、USB總線等等。
存儲器:
典型的嵌入式系統的存儲器包括芯片內部的緩存(Cache)、隨機存儲器(RAM)、只讀存儲器(ROM)、芯片外部的主存(如Nor Flash、SRAM、DRAM等)和外存(如Nand Flash、SD卡等)。
高速緩存(Cache)存放的是當前使用得最多的程序代碼和數據,即主存中部分內容的副本。在嵌入式系統中,Cache全部集成在嵌入式微處理器內,可分為數據Cache、指令Cache或混合Cache。一般在中高端的嵌入式微處理器中才會有。
主存是處理器能直接訪問的存儲器,即內存。
外村就是Nand Flas、 SD卡等。
二、 嵌入式系統的軟件架構:
嵌入式系統包含一系列抽象層次,這里是正對Linux系統進行討論的。
最底層是硬件層,即在嵌入式系統的硬件架構中提到的內容。
Linux內核建立在硬件層之上,是操作系統的核心組件。其目的是為上層應用程序提供訪問底層硬件的抽象接口,以適合上層軟件開發。
在整個Linux內核中,存在着高層抽象和底層抽象。高層抽象主要是為應用程序提供接口,而底層抽象主要是負責外設的驅動。處於高層抽象和底層抽象之間的是文件系統和網絡協議。由於大量的文件系統和網絡協議的存在,Linux內核必須處理不同格式的文件系統,而且並不會因為文件系統的不同而影響高層抽象為應用程序提供的接口。這點兒對於網絡協議同樣適用。