CMSIS-SVD  Version 1.10
CMSIS System View Description
CPU Section (New)

The CPU section describes the processor included in the microcontroller device. This section is mandatory if the SVD file shall be used for the device header file generation.

<cpu>
    <name>cpuNameType<name>
    <revision>revisionType<revision>
    <endian>endianType<endian>
    <mpuPresent>xs:boolean<mpuPresent>
    <fpuPresent>xs:boolean<fpuPresent>
    <nvicPrioBits>scaledNonNegativeInteger<nvicPrioBits>
    <vendorSystickConfig>xs:boolean<vendorSystickConfig>
</cpu>
Element Name Description Type Occurrence
name The predefined tokens are:
  • CM0: ARM Cortex-M0
  • CM0PLUS: ARM Cortex-M0+
  • CM3: ARM Cortex-M3
  • CM4: ARM Cortex-M4
  • SC000: ARM Secure Core SC000
  • SC300: ARM Secure Core SC300
  • other: other processor architectures
cpuNameType 1..1
revisionType Defines the HW revision of the processor. The defined version format is rNpM (N,M = [0 - 9]). revisionType 1..1
endian Defines the endianess of the processor being one of:
  • little: little endian memory (least significant byte gets allocated at the lowest address).
  • big: byte invariant big endian data organization (most significant byte gets allocated at the lowest address).
  • selectable: little and big endian are configurable for the device and become active after the next reset.
  • other: the endianess is neither little nor big endian.
endianType 1..1
mpuPresent Indicates that the processor is equipped with a memory protection unit (MPU). This tag is either set to true or false, 1 or 0. boolean 1..1
fpuPresent Indicates that the processor is equipped with a hardware floating point unit (FPU). Cortex-M4 is the only available Cortex-M processor with an optional FPU. This tag is either set to true or false, 1 or 0. boolean 1..1
nvicPrioBits Defines the number of bits that are available in the Nested Vectored Interrupt Controller (NVIC) for configuring the priority. scaledNonNegativeInteger 1..1
vendorSystickConfig Indicates whether the processor implements a vendor-specific System Tick Timer. If false, then the ARM defined System Tick Timer is available. If true, then a vendor-specific System Tick Timer must be implemented. This tag is either set to true or false, 1 or 0. boolean 1..1

Example:

...
<cpu>
    <name>CM4</name> 
    <revision>r0p0</revision>
    <endian>little</endian>
    <mpuPresent>true</mpuPresent>
    <fpuPresent>true</fpuPresent>
    <nvicPrioBits>4</nvicPrioBits>
    <vendorSystickConfig>false</vendorSystickConfig> 
</cpu>  
...

This example describes a Cortex-M4 core of HW revision r0p0, with fixed little endian memory scheme, including Memory Protection Unit and hardware Floating Point Unit. The Nested Vectored Interrupt Controller uses 4 bits for configuring the priority of an interrupt. It is equipped with the standard System Tick Timer as defined by ARM.