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