CMSIS-SVD
Version 1.3.1
CMSIS System View Description
|
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> <fpuDP>xs:boolean</fpuDP> <icachePresent>xs:boolean</icachePresent> <dcachePresent>xs:boolean</dcachePresent> <itcmPresent>xs:boolean</itcmPresent> <dtcmPresent>xs:boolean</dtcmPresent> <vtorPresent>xs:boolean</vtorPresent> <nvicPrioBits>scaledNonNegativeInteger</nvicPrioBits> <vendorSystickConfig>xs:boolean</vendorSystickConfig> <deviceNumInterrupts>scaledNonNegativeInteger<deviceNumInterrupts> <sauNumRegions>scaledNonNegativeInteger</sauRegions> <sauRegionsConfig>sauRegionsConfigType</sauRegionsConfig> </cpu>
Element Name | Description | Type | Occurrence |
---|---|---|---|
name | The predefined tokens are:
| 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:
| 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 and Cortex-M7 are 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 |
fpuDP | Indicates that the processor is equipped with a double precision floating point unit. Flag is only valid if fpuPresent is set true. Cortex-M7 is currently the only Cortex-M processor available with a double precision floating point unit. | boolean | 0..1 |
icachePresent | Indicates that the processor has an instruction cache. Note: only an option for Cortex-M7 based devices. | boolean | 0..1 |
dcachePresent | Indicates that the processor has an data cache. Note: only an option for Cortex-M7 based devices. | boolean | 0..1 |
itcmPresent | Indicates that the processor has an instruction tightly coupled memory. Note: only an option for Cortex-M7 based devices. | boolean | 0..1 |
dtcmPresent | Indicates that the processor has an data tightly coupled memory. Note: only an option for Cortex-M7 based devices. | boolean | 0..1 |
vtorPresent | This is an optional flag used for the Cortex-M0+ based devices only. It indicates whether the Vector Table Offset Register (VTOR) is implemented in the Cortex-M0+ device or not. This tag is either set to true or false, 1 or 0. If it is not specified VTOR is assumed to be present. | 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 |
deviceNumInterrupts | Specifies the total number of interrupts implemented by the device. This value can be used to validate the number of described interrupts | scaledNonNegativeInteger | 0..1 |
sauNumRegions | If set and not zero this flag indicates that the device is equipped with a Security Attribution Unit (SAU) and the maximum number of available address regions. | scaledNonNegativeInteger | 0..1 |
sauRegionsConfig | If the Secure Attribution Unit is preconfigured by HW or Firmware, the settings are described here. <sauRegionsConfig enabled=true protectionWhenDisabled="s">
</sauRegionsConfig>
| SauRegionsConfigType | 0..1 |
This example describes a device based on a Cortex-M7 core of HW revision r0p0, with fixed little endian memory scheme, including Memory Protection Unit and double precision hardware Floating Point Unit. It has and instruction and a data cache but no Tightly Coupled Memories. 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.