Understanding the Relationship Between ARM9 and STM32

Recently, a friend asked: What is the relationship between ARM9 and STM32?

If we turn back time 10 years, ARM9 and S3C2410 were quite popular, but the “new era” ARM processors like STM32 also emerged.
ARM9 is an early ARM processor, while STM32 is a more popular processor in recent years.

ARM Naming Rules

The ARM naming rules are a bit complex, with some changes from the early days to now. For the average person, it’s enough to understand a few major naming rules.

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

Understanding the Relationship Between ARM9 and STM32

1. Instruction Set Architecture

The naming format for the instruction set architecture is:

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

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

n: Instruction set version number, up to now, 9 series of ARM architecture versions have been released, so n=[1~9]
variants: Variants
x(variants): Indicates not supporting the specified variants after x
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 will have more series of processors.
2. Processor Architecture (Series)
Since the ARMv6 architecture, ARM has further divided processors into three different categories based on performance and application scenarios: Cortex-M, Cortex-R, Cortex-A.
In the early processors, this major classification was not performed.
3. Processor Model
The processor model here differs from our direct processor model (for example: STM32F103ZET6), as it refers to ARM’s perspective.
The naming rule for processor models before ARMv6 is:
ARM + [x][y][z] + [variants]
x: Processor series, there are multiple series such as 6, 7, 9, 11, etc.
y: Memory management/protection unit
z: Cache
Variants have the following letters to choose from:
T: Supports Thumb instruction set
D: Supports on-chip debugging
M: Supports fast multiplier
I: Supports Embedded ICE, supports embedded tracing debugging
E: Supports enhanced DSP instructions
J: Supports Jazelle
(F): Equipped with a vector floating-point unit VFP
-S: Synthesizable version
For example: ARM926, belongs to the ARMv5 instruction set architecture, CPU is of ARM9 series, equipped with 2 memory management/protection units, 6 caches.
ARMv6 and later processor models are the ones that everyone is more familiar with now, for example:
  • Cortex-M0, Cortex-M3, Cortex-M4

  • Cortex-R4, Cortex-R5

  • Cortex-A55, Cortex-A73

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

Differences Between Processors

After understanding the ARM processor naming rules, let’s take a 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 use ARMv3 or ARMv5TEJ core. This series uses the von Neumann architecture.

The ARM7 series was introduced in 1993, with classic ARM7 processors like 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 was actually a transitional product ARM8 (just like how Windows jumped directly 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, the S3C2416 and S3C2440 are known to many students learning embedded Linux, as 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 processor (Cortex-A9).

3. STM32 and Cortex-M3

STM32 is well-known among those 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 products based on the Cortex-M3 core.

Final Thoughts

Finally, for beginners, there is no need to overly obsess over 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.

Author: strongerHuang
Source: Embedded Column
Friendly Reminder:

Due to recent changes in the WeChat public platform push rules, many readers have reported not seeing updated articles in a timely manner. According to the latest rules, it is recommended to frequently click “Recommended Reading, Share, Collect”, to become a regular user.

Recommended Reading:

  • Qualcomm sends a “reassurance”: continues to supply Huawei!

  • Female employee complains about TSMC: everyday is a struggle against backstabbers

  • Awkward! Google version of ChatGPT’s debut flops, losing 717.2 billion overnight

Please click 【View】 to give the editor a thumbs up

Understanding the Relationship Between ARM9 and STM32

Leave a Comment

×