Understanding the Relationship Between STM32, Cortex-M3, and ARMv8-M

Follow our official account, and never miss exciting content.

Understanding the Relationship Between STM32, Cortex-M3, and ARMv8-M

Compiled by: Engineer Huang

Reference: Wikipedia

Reference link:
https://en.wikipedia.org/wiki/ARM_architecture
Everyone should know that STM32, Cortex-M3, and ARMv8-M are related to ARM, but may not be clear about their relationships or what they specifically are.
1. Overview
ARMv8-M: is an ARM architecture.
ARM architectures are divided into: ARMv1, ARMv2, … ARMv8.
ARMv8 is further divided into: ARMv8-A, ARMv8-R, ARMv8-M.
Cortex-M3: is an ARM processor core, which can also be understood as a member of the ARM processor family.
ARM processor cores are divided into: Classic cores and Cortex cores.
Classic cores: ARM7, ARM9, etc.
Cortex cores: Cortex-A, Cortex-R, Cortex-M, etc.
STM32: is a processor chip with an ARM core.
Most STM32 chips are based on the Cortex-M core, with a small number including Cortex-A7 (e.g., STM32MP).
As shown in the figure:

Understanding the Relationship Between STM32, Cortex-M3, and ARMv8-M

In fact, there can be many more subdivisions, in addition to these, there are some common topics such as the ARM instruction set, Thumb-2 instruction set, etc.
The above is the overview; below are some further details.

2. Architecture

Since 1995, the ARM Architecture Reference Manual has been the primary source of ARM documentation, providing details about ARM processor architecture and instruction sets, distinguishing interfaces, and noting that the implementation details of all ARM processors (such as instruction semantics) may vary. This architecture has evolved over time, and with the introduction of the Cortex series cores, three “configurations” are defined as follows:

“Application” configuration: Cortex-A series

“Embedded” configuration: Cortex-R series

“Microcontroller” configuration: ARM Cortex-M series.

Each configuration allows for its subset of the architecture. For example, a subset ARMv7-M architecture (which supports fewer instructions) is used for ARMv6-M configurations (Cortex M0 / M0+ / M1).

3. CPU Modes

At any time, the CPU can only be in one mode, but can switch modes due to external events (interrupts) or by programming.

User mode: Non-privileged mode only.

System mode: Privileged mode that does not require exceptions to enter. It only enters by executing instructions that explicitly write to the CPSR mode bits.

(svc) mode: Privileged mode entered when the CPU is reset or when the SWI instruction is executed.

Abort mode: Privileged mode entered when a prefetch or data abort exception occurs.

Undefined mode: Privileged mode entered when an undefined instruction exception occurs.

IRQ mode: Privileged mode entered when the processor accepts an IRQ interrupt.

Fast IRQ mode: Privileged mode entered when the processor accepts an IRQ interrupt.

Hyp mode: Management mode introduced for hardware virtualization in the Cortex-A15 processor of ARMv-7a.

4. ARM Licensing Model

ARM itself does not manufacture or sell CPUs based on its designs but licenses its processor architectures to interested manufacturers.

The STM32 mentioned in the title is a processor that ARM has licensed the Cortex-M core to STMicroelectronics to produce.

ARM provides various licensing terms, including pricing and distribution. For licensees, ARM provides the integration hardware description of the ARM core, complete software development tools (compiler, debugger, SDK), and sales rights for silicon chips containing ARM CPU.

Many semiconductor companies hold ARM licenses: Atmel, ST, NXP, TI, IBM, etc.

In the intellectual property industry, ARM is known as one of the most expensive CPU cores. A single customer product containing a basic ARM core can incur a one-time licensing fee of up to $200,000. If it involves significant architectural modifications, the fee can exceed ten million dollars.

5. ARM Core Timeline

The classic ARM7 was launched back in 1993, leading up to the Cortex-A series processors we see today.

Understanding the Relationship Between STM32, Cortex-M3, and ARMv8-M

In fact, before ARM7, there were several related processors; interested friends can look it up online.

Disclaimer: This article is sourced from Wikipedia, and the copyright belongs to the original author. If there are copyright issues, please contact me for removal.

Recommendations for Further Reading:

Selected Summary | Directory | Search

Accessing Non-standard SPI Interfaces with MCU

The Most Impactful C++20 Features in the Last Decade

Follow the WeChat public account “strongerHuang”, reply “1024” to see more exciting content.

Understanding the Relationship Between STM32, Cortex-M3, and ARMv8-M

Long press to go to the WeChat public account included in the image and follow.

Leave a Comment

×