SoC
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
  • Arm Cortex M3
  • Contact
Reading: What is delivered in a Cortex-M processor?
SUBSCRIBE
SoCSoC
Font ResizerAa
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Search
  • Home
  • Arm
  • Arm Cortex M0/M0+
  • Arm Cortex M4
Have an existing account? Sign In
Follow US
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
© S-O-C.ORG, All Rights Reserved.
Arm

What is delivered in a Cortex-M processor?

Elijah Erickson
Last updated: September 9, 2023 9:01 am
Elijah Erickson 5 Min Read
Share
SHARE

Cortex-M processors from ARM are 32-bit reduced instruction set computing (RISC) processors optimized for embedded applications. They provide a balance of performance, power efficiency, and cost effectiveness. The key components delivered in a Cortex-M processor are the CPU core, memory interfaces, peripherals, debug/trace capabilities, and power management.

Contents
CPU CoreMemory InterfacesPeripheralsDebug and TracePower ManagementConclusion

CPU Core

The CPU core implements the ARMv6-M, ARMv7-M, or ARMv8-M architecture instruction sets. It contains a register bank, arithmetic logic unit (ALU), multiplier, barrel shifter, instruction pipeline, and memory management unit. Key features include:

  • 3-stage pipeline for efficient execution of instructions
  • Thumb-2 instruction set with both 16-bit and 32-bit instructions
  • Hardware multiply and divide support
  • Single-cycle fast integer math support
  • Low interrupt latency
  • Deterministic interrupt processing times
  • Banked stack pointers for fast, low overhead context switches

The CPU core executes the program code and instructions to carry out the desired functionality and applications. Cortex-M cores range from the ultra-low power Cortex-M0/M0+ to the higher performance Cortex-M4/M7 cores.

Memory Interfaces

Cortex-M processors include various memory interfaces to connect with different types of memory and peripherals:

  • Bus Matrix: Connects the CPU core to memory and peripherals using an AHB-Lite bus.
  • Flash Memory Interface: Provides interface to external flash memory for code storage.
  • SRAM Interface: Interface to fast on-chip or off-chip SRAM for data storage.
  • ROM Interface: Interface to mask ROM for boot code.
  • BIT Interface: Interface to execute code directly from flash memory.
  • ETB Interface: Interface to trace memory buffer.
  • SWD/JTAG Interface: Interface for debug access and flash programming.

These interfaces enable the processor to access necessary code and data storage as well as connect with peripherals and debugging tools.

Peripherals

Cortex-M processors integrate various peripherals to enable connectivity and I/O operations:

  • Timer/Counters: General purpose timer modules with capture, compare, and PWM capabilities.
  • Real-Time Clock (RTC): Clock module to maintain time and date.
  • Watchdog Timer: Resets the system if software fails to periodically service the timer.
  • Nested Vectored Interrupt Controller (NVIC): Handles prioritized interrupt requests.
  • SysTick Timer: 24-bit system tick timer and interrupt.
  • Serial Wire (SW): Serial wire viewer and debugger interface.
  • Serial Peripheral Interface (SPI): Synchronous serial interface for communicating with peripherals.
  • I2C Interface: Two-wire serial interface for sensors and slow peripherals.
  • Universal Synchronous/Asynchronous Receiver/Transmitter (USART): Asynchronous serial interface for communications.
  • Analog-to-Digital Converter (ADC): Converts analog inputs to digital values.

These integrated peripherals enable connectivity, timing, debugging, communications, and analog interfacing without needing external components.

Debug and Trace

Cortex-M processors provide debugging and tracing capabilities to assist with testing and validating software:

  • Debug Access Port (DAP): Debug port that enables halt, stepping, breakpoint, and watchpoint capabilities.
  • Instrumentation Trace Macrocell (ITM): Outputs trace data and printf logging information.
  • Embedded Trace Macrocell (ETM): Instruction and program flow tracing to off-chip trace buffer.
  • Micro Trace Buffer (MTB): On-chip trace buffer that captures trace and profiling data.
  • Data Watchpoint and Trace (DWT): Watchpoint and logging capabilities.
  • Flash Patch and Breakpoint (FPB): In-place code patch and breakpoint setting.

These features enable non-intrusive debugging of software without impacting real-time behavior. Developers can track down bugs, analyze code flow, and optimize performance.

Power Management

Cortex-M processors provide various power saving capabilities:

  • Wait for Interrupt (WFI): Places processor into low power idle state.
  • Wait for Event (WFE): Places processor into low power idle state until event occurs.
  • Sleep and Deep Sleep: Stops CPU clock while retaining main clock and peripherals.
  • Voltage Scaling: Operates CPU and peripherals at lower voltages to save power.
  • Clock Gating: Disables clocks to unused modules to reduce power.

Using these features allows Cortex-M processors to minimize power consumption in embedded battery-powered applications.

Conclusion

In summary, Cortex-M processors deliver a RISC CPU core, flexible memory interfaces, common peripherals, advanced debugging capabilities, and power management. This combination enables Cortex-M processors to meet the performance, power, cost, and ease-of-use requirements of a wide range of embedded applications in the automotive, industrial, consumer electronics, and IoT markets.

Newsletter Form (#3)

More ARM insights right in your inbox

 


Share This Article
Facebook Twitter Email Copy Link Print
Previous Article What is the difference between ARM Cortex-M1 and M3?
Next Article What is the difference between fault mask and Primask?
Leave a comment Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

2k Followers Like
3k Followers Follow
10.1k Followers Pin
- Sponsored-
Ad image

You Might Also Like

What is the difference between ARM Cortex-M0 and M4?

The main differences between the ARM Cortex-M0 and M4 microcontrollers…

6 Min Read

What is arm usage fault?

An arm usage fault is an exception that occurs when…

10 Min Read

What is the difference between ARM and x64 assembly?

ARM and x64 refer to two different instruction set architectures…

10 Min Read

Using Xilinx vs Altera FPGAs for Cortex-M0 DesignStart

When looking to implement an ARM Cortex-M0 design on an…

8 Min Read
SoCSoC
  • Looking for Something?
  • Privacy Policy
  • About Us
  • Sitemap
  • Contact Us
Welcome Back!

Sign in to your account