by Joseph Yiu
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.
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.
[CTAToken URL = "https://community.arm.com/cfs-file/__key/telligent-evolution-components-attachments/01-2142-00-00-00-00-52-96/White-Paper-_2D00_-Cortex_2D00_M-for-Beginners-_2D00_-2016-_2800_final-v3_2900_.pdf" target="_blank" text="Download the White Paper - Cortex-M for Beginners" class ="green"]
Cortex-M devices have only 240 (ie 0-239) vectors interruptions, each with 256 priority levels (0 to 255).
see this section "4.2. Nested Vectored Interrupt Controller" in the Cortex-M4 Devices Generic User Guide, the other Cortex-M series are equal.
I do not know the answer why the NVIC only handles interrupts and exceptions between 0 and 239 and really ignores the other 240-255, these values are used internally?