Recently, a friend asked: What is the relationship between ARM9 and STM32?
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:
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
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
-
Cortex-M0, Cortex-M3, Cortex-M4
-
Cortex-R4, Cortex-R5
-
Cortex-A55, Cortex-A73

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