前段时间,有小伙伴问:ARM9与STM32什么关系?
ARM命名规则
ARM的命名规则有点复杂,早期和现在的命名规则有点变化。对于普通人,只需要了解几个大的命名规则即可。
ARM的命名分为指令集架构、 处理器架构、 处理器型号三类命名规则:
1、指令集架构
指令集架构命名格式:
Armv + [n] + [variants] + [x(variants)]
Armv:固定字符, 即ARM Version
n:指令集版本号, 迄今为之, ARM架构版本发布了9个系列, 所以n=[1~9] variants:变种 x(variants):表示不支持x后指定的变种
ARM + [x][y][z] + [varians]
x:处理器系列, 有6, 7, 9 , 11等多个系列 y:存储管理/保护单元 z:cache variants有以下字母可选: T:支持Thumb指令集 D:支持片上调试 M:支持快速乘法器 I:支持Embedded ICE, 支持嵌入式跟踪调试 E:支持增强型DSP指令 J:支持Jazelle (F):具备向量浮点单元VFP -S:可综合版本
Cortex-M0、Cortex-M3、Cortex-M4
Cortex-R4、 Cortex-R5
Cortex-A55、 Cortex-A73
处理器的区别
了解ARM处理器命名规则之后,我们再来看一下ARM7、ARM9、s3c2410、STM32、Cortex-M3之间的区别。
1、ARM7
ARM7是一个处理器系列(大版本,或者说ARM7家族),其中包含很多种类的处理器。
大多数都采用 ARMv4T核心架构,但也有部分处理器采取ARMv3或ARMv5TEJ核心。这个系列采用冯纽曼架构。
ARM7系列于1993年问世,经典的ARM7处理器有ARM7TDMI、 ARM7EJ-S等。(STM32早期的产品STM7,也是采用 ARM7TDMI 32位 RISC内核)
2、ARM9 和 s3c2410
ARM7之后就是ARM9,其实还有一个过渡产品ARM8(就像Win7直接跳到Win10一样)。
ARM9在我读书那会儿都还比较流行,包括现在还有很多关于 ARM9 的学习资料。
经典的 s3c2410 其实就是一款基于 ARM920T 内核的处理器,继S3C2410之后的S3C2416、 S3C2440等可以说学习嵌入式Linux的同学都知道他们的存在,包括市面上很多Linux开发板和资料都是基于这几款处理器而设计。
目前,嵌入式Linux开发板很多都是基于NXP 的iMX.6处理器(Cortex-A9)。
3、STM32 和 Cortex-M3
STM32可以说学习单片机和嵌入式开发的朋友都比较熟悉了,它是ST(意法半导体)公司基于 Cortex-M内核的处理器,包含多个系列(STM32F0、 F1、 F4、L0、 L1、 G0、 G4等)。
Cortex-M3只是一个ARM处理器的内核,很多半导体公司都基于Cortex-M3内核开发自己的产品。
写在最后
最后,对于初学者,没有必要过多纠结这些处理器到底有什么关系,到底有什么区别。
在你不清楚的情况下,选在一款当下流行的处理器来学习就对了,买块开发板直接开学,多敲代码多思考。
END
→点关注,不迷路←