一、SoC和CPU區別
1、 SOC = System on chip (硅片上有一個系統,也就是片上系統)
CPU = 運算器 + 控制器
SOC =運算器 + 控制器 + 集成到CPU內部的外設;就是在CPU內部把許多外設通過CPU內部總線集成到CPU內部。
芯片發展方向;從CPU到SOC
現在已經沒有純粹的CPU了,都是SOC
ARM出賣內核其實就是CPU(當然還有總線,為了讓半導體廠商根據產品需求添加功能)的設計方案
各種外設是半導體廠商自己添加的。
2、外設(peripheral)
就是外部設備(這里的外部就是CPU的外部,當然這是以前的說法,現在的SOC就是高集成的CPU)
Soc中外設大部分都跑進了CPU和CPU做在一個硅片上(高度集成)
網卡、音視頻編解碼等個別還經常在外面。
芯片的設計趨勢是更大集成度,近幾年甚至將音視頻編解碼、DDR都集成進了 CPU內做。
裸機的學習其實就是學習CPU內核(CPU表現為匯編指令集)和各種外設如串口等控制器。
二、交叉編譯工具鏈
1、兩種開發模式
非嵌入式開發,A(類)機編寫(源代碼)、編譯得到可執行程序,發部給A(類)機運行。
嵌入式開發,A(類)機編寫(源代碼)、編譯得到可執行程序,發部給B(類)機運行。
A 類:筆計本電腦
B類:嵌入式開發板
2、為何使用交叉編譯
嵌入式開發的CPU比較簡單,本身無法搭建開發環境,有些甚至操作系統都沒有。
交叉編譯可以用高性能機器為低性能機器開發軟件(包括裸機、系統和應用級軟件)。
3、交叉編譯的特點
必須使用專用(對應平臺的)的交叉編譯工具鏈。
由于執行程序不能在本地運行調試,因此必須配合一定手段(專用調試器、JTAG調試器、USB下載、串口下載、SD啟動、網絡共享等)
將可執行程序加載到目標嵌入式設備上運行及調試。
三、地址總線和數據總線
CPU通過地址總線尋址,然后通過數據總線與外部設備互換信息。
地址總線的位數決定CPU尋址范圍;數據總線的位數決定CPU單次通信能交換的信息數量;
總線的速度決定CPU和外設互換信息的速度。
注意:
CPU的地址總線位數和數據總線位數可以不相同(典型代表就是51單片機),但一般都是相同的。
CPU的位數指的是數據總線的位數。
32位CPU的尋址范圍是2的32次方4G,所以最多支持4G內存。
數據總線是32位的,內存也是32位的,所以編程最好用int。
內存的計算方法:4G = 2exp32 相當于32根地址線。
2exp10 =k;
k exp 10 = m
m exp 10 = g
例如計算32位空間: 2exp30=1G 再左移兩位相相當于乖4,2exp30 乘4 =4G;
四、ARM版本號區分:
年深日久造就了一系列的ARM架構,要說明的是,架構版本號后的數字和發布日期的次序沒有關系。
ARM的三種版本號
(架構)內核版本號、SoC版本號、芯片型號
ARMv7 內核版本號,v 是指 version
Cortex-A8 SoC版本號
S5PV210 芯片型號
ARMv7和ARM7不是一回事,前一個是內核版本號,后一個是SOC版本號,而且這兩個沒有對應關系。ARMv7內核版本號對就的是Cortex
系列的SOC版本號。
知道架構版本號就是(內核版本號)ARM內核版本號和Soc版本號是由ARM確定的,而芯片型號是由半導體公司(三星、華為)確定的;
ARMv7—Cortex三個產品對應了Cortex-A、Cortex-R、Cortex-M。后綴字母就是ARM的拆分。
m microcontroller 微控制器 就是單片機 STM32
a Application 應用級處理器 就是手機,平板電腦
r realtime 實時處理器 響應速度快,主要應用于工業,航天領域。
m: m0 m0+ m3 m4 m7
m0低功耗
m4填加了浮點運算
m7低功耗物聯網應用
分成三種:是因為一個內核版本對應三部分SOC版本號。
————————————————
本文為CSDN博主「qq_41680432」的原創文章