ARM9和STM32什么关系?

Posted strongerHuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARM9和STM32什么关系?相关的知识,希望对你有一定的参考价值。

关注+星标公众,不错过精彩内容

作者 | strongerHuang

微信公众号 | 嵌入式专栏

有小伙伴问:ARM9和STM32什么关系?

如果时间倒退10年,ARM9、 s3c2410还算是比较流行的年代,但STM32这类“新时代”的ARM处理器也问世了。

ARM9是早期的ARM处理器,STM32算是这些年流行的处理器。

ARM命名规则

ARM的命名规则有点复杂,早期和现在的命名规则有点变化。对于普通人,只需要了解几个大的命名规则即可。

ARM的命名分为指令集架构、 处理器架构、 处理器型号三类命名规则:

1.指令集架构

指令集架构命名格式: 

Armv + [n] + [variants] + [x(variants)]

Armv:固定字符, 即ARM Version

n:指令集版本号, 迄今为之, ARM架构版本发布了9个系列, 所以n=[1~9]

variants:变种

x(variants):表示不支持x后指定的变种

大版本:ARMv1 ~ ARMv9

然后可以进一步划分,比如:ARMv8-A、 ARMv8-R、 ARMv8-M

ARMv9架构是今年(2021年)才推出的,将有更多系列处理器。

2.处理器架构(系列)

自ARMv6架构开始,ARM根据处理器的性能和应用场景把处理器进一步划分为:Cortex-M、 Cortex-R、 Cortex-A三种不同类别的处理器系列。

早期的处理器其实没有进行这一步大分类。

3.处理器型号

这里的处理器型号和我们直接的处理器型号(比如:STM32F103ZET6)有区别,这里是站在ARM的角度来说。

早期(ARMv6之前)的处理器型号命名规则:

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:可综合版本

比如:ARM926, 属于ARMv5指令集架构的, CPU是ARM9系列的, 具备2个存储管理/保护单元, 6个 Cache。

ARMv6及之后的处理器型号就是现在大家比较熟悉的了,比如:

  • 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 ------------


●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。


点击“阅读原文”查看更多分享。

以上是关于ARM9和STM32什么关系?的主要内容,如果未能解决你的问题,请参考以下文章

STM32与ARM7ARM9ARM11

STM32怎么把程序存储在外部存储器执行

想学习嵌入式以后做驱动开发,直接学习ARM9,ARM11还是先学STM32?

STM32的中断处理流程是怎样的?与ARM7 ARM9相同吗?

过来人和你谈谈如何学STM32?

arm 学习选Cortex-M3还是arm9?