Understanding the Differences and Connections Between ARM7, ARM9, S3C2410, STM32, and Cortex-M3

Seeing that the number 9 in ARM9 is larger, do you think it is better?
Seeing that a lot of information is based on S3C2410, do you think it is still quite popular now?
If we could turn back time 10 years, ARM9 and S3C2410 were indeed quite popular. Why do I say this? Because they were a batch of processors before ARM.
This article will review various ARM processors and discuss the connections and differences between ARM7, ARM9, S3C2410, STM32, and Cortex-M3.

ARM Naming Rules

The naming rules of ARM are a bit complicated, with some changes between the early and current naming conventions. For the average person, it is sufficient to understand a few major naming rules.

ARM naming is divided into instruction set architecture, processor architecture, and processor model three categories of naming rules:

Understanding the Differences and Connections Between ARM7, ARM9, S3C2410, STM32, and Cortex-M3

1. Instruction Set Architecture

The naming format for instruction set architecture:

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

Armv:Fixed character, i.e., ARM Version

n:Instruction set version number, up to now, ARM architecture version has released 9 series, so n=[1~9]
variants:Variants
x(variants):Indicates that the specified variant after x is not supported
Major Versions: ARMv1 ~ ARMv9
Then it can be further divided, for example: ARMv8-A, ARMv8-R, ARMv8-M
ARMv9 Architecture was just launched this year (2021), and there will be more series of processors.
2. Processor Architecture (Series)
Since the ARMv6 architecture, ARM has further divided processors into three different categories: Cortex-M, Cortex-R, Cortex-A based on processor performance and application scenarios.
Earlier processors did not undergo this major classification.
3. Processor Model
The processor models here differ from the processor models we directly refer to (for example: STM32F103ZET6), this is from ARM’s perspective.
The naming rules for processor models before ARMv6:
ARM + [x][y][z] + [variants]
x:Processor series, with multiple series such as 6, 7, 9, 11, etc.
y:Memory management/protection unit
z:Cache
Variants have the following optional letters:
T:Supports Thumb instruction set
D:Supports on-chip debugging
M:Supports fast multipliers
I:Supports Embedded ICE, supports embedded trace debugging
E:Supports enhanced DSP instructions
J:Supports Jazelle
(F):Equipped with vector floating-point unit VFP
-S:Synthesizable version
For example: ARM926, belongs to the ARMv5 instruction set architecture, CPU is ARM9 series, equipped with 2 memory management/protection units, 6 caches.
ARMv6 and later processor models are the ones everyone is more familiar with, for example:
  • Cortex-M0, Cortex-M3, Cortex-M4

  • Cortex-R4, Cortex-R5

  • Cortex-A55, Cortex-A73

Here’s another picture:
Understanding the Differences and Connections Between ARM7, ARM9, S3C2410, STM32, and Cortex-M3

Differences Between Processors

After understanding the ARM processor naming rules, let’s look at the differences between ARM7, ARM9, S3C2410, STM32, and Cortex-M3.

1. ARM7

ARM7 is a processor series (major version, or ARM7 family), which includes many types of processors.

Most of them adopt the ARMv4T core architecture, but some processors also use ARMv3 or ARMv5TEJ cores. This series adopts the von Neumann architecture.

The ARM7 series was launched in 1993, classic ARM7 processors include ARM7TDMI, ARM7EJ-S, etc. (The early STM32 products STM7 also used the ARM7TDMI 32-bit RISC core).

2. ARM9 and S3C2410

After ARM7 comes ARM9, there is actually a transitional product ARM8 (just like Win7 jumped directly to Win10).

ARM9 was still quite popular during my studies, and even now there are many learning materials about ARM9.

Understanding the Differences and Connections Between ARM7, ARM9, S3C2410, STM32, and Cortex-M3

The classic S3C2410 is actually a processor based on the ARM920T core, and after S3C2410, S3C2416, S3C2440, etc., can be said that students learning embedded Linux are aware of their existence, including many Linux development boards and materials are designed based on these processors.

Currently, many embedded Linux development boards are based on NXP’s iMX.6 processor (Cortex-A9).

3. STM32 and Cortex-M3

STM32 is known to friends learning microcontrollers and embedded development, it is a processor based on the Cortex-M core from ST (STMicroelectronics), which includes multiple series (STM32F0, F1, F4, L0, L1, G0, G4, etc.).

Cortex-M3 is just a core of an ARM processor, and many semiconductor companies develop their own products based on the Cortex-M3 core.

In Conclusion

Finally, for beginners, there is no need to get too hung up on the relationships and differences between these processors.

When in doubt, just choose a popular processor to learn, buy a development board, and start learning, write more code, and think more.

END
Understanding the Differences and Connections Between ARM7, ARM9, S3C2410, STM32, and Cortex-M3
Recommended Reading:

Project Sharing | Electric Competition Series | Artificial Intelligence | Postgraduate Entrance Examination

Essential Knowledge Points | Graduation Project | Switch Power Supply | Job Seeking

We are Nimo, the founders of Darwin, who only talk about technology and not flirt with men. Darwin is an online education platform aimed at serving professionals in the electronics industry, providing skill training videos covering popular topics in various subfields, such as embedded systems, FPGA, artificial intelligence, etc. It customizes tiered learning content for different groups, such as commonly used knowledge points, disassembly assessments, electric competitions/intelligent cars/postgraduate entrance examinations, etc. Welcome to follow.

Official website: www.darwinlearns.com
Bilibili: Darwin
QQ Group: Group 1: 786258064 (full)
Group 2: 1057755357 (full)
Group 3: 871373286Understanding the Differences and Connections Between ARM7, ARM9, S3C2410, STM32, and Cortex-M3

Leave a Comment

×