有小伙伴問(wèn):ARM9和STM32什么關(guān)系? ?
如果時(shí)間倒退10年,ARM9、?s3c2410還算是比較流行的年代,但STM32這類(lèi)“新時(shí)代”的ARM處理器也問(wèn)世了。 ?
ARM9是早期的ARM處理器,STM32算是這些年流行的處理器。??
ARM命名規(guī)則
ARM的命名規(guī)則有點(diǎn)復(fù)雜,早期和現(xiàn)在的命名規(guī)則有點(diǎn)變化。對(duì)于普通人,只需要了解幾個(gè)大的命名規(guī)則即可。
ARM的命名分為指令集架構(gòu)、 處理器架構(gòu)、 處理器型號(hào)三類(lèi)命名規(guī)則:
1.指令集架構(gòu)
指令集架構(gòu)命名格式:?
?
Armv + [n] + [variants] + [x(variants)]
?
Armv:固定字符, 即ARM Version
n:指令集版本號(hào), 迄今為之, ARM架構(gòu)版本發(fā)布了9個(gè)系列, 所以n=[1~9] variants:變種 x(variants):表示不支持x后指定的變種
大版本:ARMv1 ~?ARMv9 然后可以進(jìn)一步劃分,比如:ARMv8-A、 ARMv8-R、 ARMv8-M ARMv9架構(gòu)是今年(2021年)才推出的,將有更多系列處理器。 ?
2.處理器架構(gòu)(系列)
自ARMv6架構(gòu)開(kāi)始,ARM根據(jù)處理器的性能和應(yīng)用場(chǎng)景把處理器進(jìn)一步劃分為:Cortex-M、 Cortex-R、 Cortex-A三種不同類(lèi)別的處理器系列。 ?
早期的處理器其實(shí)沒(méi)有進(jìn)行這一步大分類(lèi)。 ?
3.處理器型號(hào)
這里的處理器型號(hào)和我們直接的處理器型號(hào)(比如:STM32F103ZET6)有區(qū)別,這里是站在A(yíng)RM的角度來(lái)說(shuō)。 ?
早期(ARMv6之前)的處理器型號(hào)命名規(guī)則:
ARM + [x][y][z] + [varians]?
?
x:處理器系列, 有6, 7, 9 , 11等多個(gè)系列
y:存儲(chǔ)管理/保護(hù)單元
z:cache ? variants有以下字母可選:
T:支持Thumb指令集
D:支持片上調(diào)試
M:支持快速乘法器
I:支持Embedded ICE, 支持嵌入式跟蹤調(diào)試
E:支持增強(qiáng)型DSP指令
J:支持Jazelle
(F):具備向量浮點(diǎn)單元VFP
-S:可綜合版本
比如:ARM926, 屬于A(yíng)RMv5指令集架構(gòu)的, CPU是ARM9系列的, 具備2個(gè)存儲(chǔ)管理/保護(hù)單元, 6個(gè) Cache。 ?
ARMv6及之后的處理器型號(hào)就是現(xiàn)在大家比較熟悉的了,比如:
Cortex-M0、Cortex-M3、Cortex-M4
Cortex-R4、?Cortex-R5
Cortex-A55、?Cortex-A73
? 再放一張圖:
處理器的區(qū)別
了解ARM處理器命名規(guī)則之后,再來(lái)看ARM7、ARM9、s3c2410、STM32、Cortex-M3它們之間的區(qū)別。
1.ARM7
ARM7是一個(gè)處理器系列(大版本,或者說(shuō)ARM7家族),其中包含很多種類(lèi)的處理器。
大多數(shù)都采用 ARMv4T核心架構(gòu),但也有部分處理器采取ARMv3或ARMv5TEJ核心。這個(gè)系列采用馮紐曼架構(gòu)。
ARM7系列于1993年問(wèn)世,經(jīng)典的ARM7處理器有ARM7TDMI、 ARM7EJ-S等。(STM32早期的產(chǎn)品STM7,也是采用 ARM7TDMI 32位 RISC內(nèi)核)
2.ARM9 和?s3c2410
ARM7之后就是ARM9,其實(shí)還有一個(gè)過(guò)渡產(chǎn)品ARM8(就像Win7直接跳到Win10一樣)。
ARM9在我讀書(shū)那會(huì)兒都還比較流行,包括現(xiàn)在還有很多關(guān)于 ARM9 的學(xué)習(xí)資料。
?
經(jīng)典的 s3c2410 其實(shí)就是一款基于 ARM920T 內(nèi)核的處理器,繼S3C2410之后的S3C2416、 S3C2440等可以說(shuō)學(xué)習(xí)嵌入式Linux的同學(xué)都知道他們的存在,包括市面上很多Linux開(kāi)發(fā)板和資料都是基于這幾款處理器而設(shè)計(jì)。
目前嵌入式Linux開(kāi)發(fā)板很多都是基于NXP 的iMX.6處理器(Cortex-A9)。
3.STM32 和?Cortex-M3
STM32可以說(shuō)學(xué)習(xí)單片機(jī)和嵌入式開(kāi)發(fā)的朋友都比較熟悉了,它是ST(意法半導(dǎo)體)公司基于?Cortex-M內(nèi)核的處理器,包含多個(gè)系列(STM32F0、 F1、 F4、L0、 L1、?G0、?G4等)。
Cortex-M3只是一個(gè)ARM處理器的內(nèi)核,很多半導(dǎo)體公司都基于Cortex-M3內(nèi)核開(kāi)發(fā)自己的產(chǎn)品。
最后
最后,對(duì)于初學(xué)者,沒(méi)有必要過(guò)多糾結(jié)這些處理器到底有什么關(guān)系,到底有什么區(qū)別。
在你不清楚的情況下,選在一款當(dāng)下流行的處理器來(lái)學(xué)習(xí)就對(duì)了,買(mǎi)塊開(kāi)發(fā)板直接開(kāi)學(xué),多敲代碼多思考。
審核編輯:湯梓紅
評(píng)論