Understanding the Relationship Between ARM9 and STM32

Follow +Star Public Account, don’t miss exciting content

Understanding the Relationship Between ARM9 and STM32

Author | strongerHuang

WeChat Official Account | Embedded Column

Some friends asked: What is the relationship between ARM9 and STM32?
If we go back 10 years, ARM9 and s3c2410 were still relatively popular, but the “new era” ARM processors like STM32 have also emerged.
ARM9 is an early ARM processor, while STM32 is a processor that has become popular in recent years.

ARM Naming Rules

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

The naming of ARM is divided into Instruction Set Architecture, Processor Architecture, Processor Model three categories:

Understanding the Relationship Between ARM9 and STM32

1. Instruction Set Architecture

Instruction Set Architecture naming format:

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

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

n: Instruction set version number, so far, 9 series of ARM architecture versions have been released, so n=[1~9]
variants: Variants
x(variants): Indicates that the specified variants after x are not supported
Major Versions: ARMv1 ~ ARMv9
Then it can be further divided, for example: ARMv8-A, ARMv8-R, ARMv8-M
ARMv9 Architecture was only launched this year (2021), and will have more series of processors.
2. Processor Architecture (Series)
Since the ARMv6 architecture, ARM has further classified processors into three different categories based on performance and application scenarios: Cortex-M, Cortex-R, Cortex-A series.
Early processors did not undergo this major classification.
3. Processor Model
The processor model here is different from our direct processor model (for example: STM32F103ZET6), this is from ARM’s perspective.
Early (before ARMv6) processor model naming rules:
ARM + [x][y][z] + [variants]
x: Processor series, there are multiple series such as 6, 7, 9, 11
y: Memory management/protection unit
z: Cache
Variants can have the following 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 ARMv5 instruction set architecture, CPU is ARM9 series, with 2 memory management/protection units, and 6 caches.
ARMv6 and later processor models are what everyone is more familiar with now, for example:
  • Cortex-M0, Cortex-M3, Cortex-M4

  • Cortex-R4, Cortex-R5

  • Cortex-A55, Cortex-A73

Let’s put up another image:
Understanding the Relationship Between ARM9 and STM32

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 adopt the ARMv4T core architecture, but some processors adopt ARMv3 or ARMv5TEJ cores. This series adopts the von Neumann architecture.

ARM7 series was launched in 1993, classic ARM7 processors include ARM7TDMI, ARM7EJ-S, etc. (Early STM32 products like 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 how Windows jumped from 7 to 10).

ARM9 was still quite popular when I was studying, and there are still many learning materials about ARM9.

Understanding the Relationship Between ARM9 and STM32

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 know their existence, including many Linux development boards and materials on the market are designed based on these processors.

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

3. STM32 and Cortex-M3

STM32 is something that friends learning microcontrollers and embedded development are quite familiar with, it is a processor developed by ST (STMicroelectronics) based on the Cortex-M core and includes multiple series (STM32F0, F1, F4, L0, L1G0G4, etc.).

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

Finally

Finally, for beginners, there is no need to get too tangled in what the relationships and differences between these processors are.

When you are unclear, it is best to choose a currently popular processor to learn, buy a development board and start learning, write more code and think more.

———— END ————

Understanding the Relationship Between ARM9 and STM32

● Column “Embedded Tools”

● Column “Embedded Development”

● Column “Keil Tutorials”

● Selected Tutorials from Embedded Column

Follow the public account reply “Join Group” to join the technical exchange group according to the rules, reply “1024” to see more content.

Understanding the Relationship Between ARM9 and STM32

Understanding the Relationship Between ARM9 and STM32

Click “Read the Original” for more sharing.

Leave a Comment