Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Tools, Software and IDEs blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
Architectures and Processors blog White Paper: Cortex-M for Beginners - An overview of the Arm Cortex-M processor family and comparison
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • White Paper
  • Cortex-M23
  • Cortex-M
  • Cortex-M33
  • Armv8-M
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

White Paper: Cortex-M for Beginners - An overview of the Arm Cortex-M processor family and comparison

Ping Zuo 左平
Ping Zuo 左平
September 13, 2016
Less than one minute read time.

by Joseph Yiu

Abstract

The Arm Cortex-M family now has five processors. In this paper, we compare the features of various Cortex-M processors and highlight considerations for selecting the correct processor for your application. The paper includes detailed comparisons of the Cortex-M instruction sets and advanced interrupt capabilities, along with system-level features, debug and trace features, and performance comparisons.

Update 21 June 2017

Since writing this block we have announced further additions to the Cortex family, Cortex-M23 and Cortex-M33, and updated the document. The latest version is available here: Cortex-M for Beginners - An overview of the Arm Cortex-M processor family and comparison (2017).

Arm Cortex-M23 and Cortex-M33 are the first embedded processors using  the Armv8-M architecture, bringing the proven secure foundation of Arm TrustZone to the most constrained IoT nodes.

Download the White Paper - Cortex-M for Beginners

White Paper - Cortex-M for Beginners - 2016 (final v3).pdf
Anonymous
Parents
  • Joseph Yiu
    Offline Joseph Yiu over 6 years ago

    Hi Ashar,

    Exception numbers are from #0 to #255 in current Cortex-M designs..

    However, #0 to #15 are reserved for system exceptions inside the processor, and exception #16 to #255 (named as IRQ #0 to IRQ #239).

    - Exception #16 = IRQ#0

    - Exception #17 = IRQ#1

    ...

    Currently, only part of the reserved system exceptions are utilized:

    Exception #2 - Non-Maskable Interrupts

    Exception #3 - HardFault

    Exception #4 - MemmangeFault (Armv7-M / Armv8-M Mainline)

    Exception #5 - BusFault (Armv7-M / Armv8-M Mainline)

    Exception #6 - UsageFault (Armv7-M / Armv8-M Mainline)

    Exception #7 - SecureFault (Armv8-M Mainline)

    Exception #11 - SVCall

    Exception #12 - DebugMonitor (Armv7-M / Armv8-M Mainline)

    Exception #14 - PendSV

    Exception #15 - SysTick timer

    As a result of these internally reserved exception types, IRQ number only go up to #239 in Cortex-M3/M4 and M7.

    Thanks Carlos and Goodwin for the additional information :-)

    regards,

    Joseph

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Comment
  • Joseph Yiu
    Offline Joseph Yiu over 6 years ago

    Hi Ashar,

    Exception numbers are from #0 to #255 in current Cortex-M designs..

    However, #0 to #15 are reserved for system exceptions inside the processor, and exception #16 to #255 (named as IRQ #0 to IRQ #239).

    - Exception #16 = IRQ#0

    - Exception #17 = IRQ#1

    ...

    Currently, only part of the reserved system exceptions are utilized:

    Exception #2 - Non-Maskable Interrupts

    Exception #3 - HardFault

    Exception #4 - MemmangeFault (Armv7-M / Armv8-M Mainline)

    Exception #5 - BusFault (Armv7-M / Armv8-M Mainline)

    Exception #6 - UsageFault (Armv7-M / Armv8-M Mainline)

    Exception #7 - SecureFault (Armv8-M Mainline)

    Exception #11 - SVCall

    Exception #12 - DebugMonitor (Armv7-M / Armv8-M Mainline)

    Exception #14 - PendSV

    Exception #15 - SysTick timer

    As a result of these internally reserved exception types, IRQ number only go up to #239 in Cortex-M3/M4 and M7.

    Thanks Carlos and Goodwin for the additional information :-)

    regards,

    Joseph

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Children
No Data
Architectures and Processors blog
  • How Arm is making it easier to build platforms that support Confidential Computing

    Mark Knight
    Mark Knight
    With new open-source patches for the Realm Management Extension (RME) now available, this blog explores latest developments and techniques for confidential computing on Arm.
    • April 28, 2023
  • Apache Arrow optimization on Arm

    Yibo Cai
    Yibo Cai
    This blog introduces Arm optimization practices with two solid examples from Apache Arrow project.
    • February 23, 2023
  • Optimizing TIFF image processing using AARCH64 (64-bit) Neon

    Ramin Zaghi
    Ramin Zaghi
    This guest blog shows how 64-bit Neon technology can be used to improve performance in image processing applications.
    • October 13, 2022