CMSIS-SVD: Extensions to the Device Section

| CMSIS-SVD Version 1.10 CMSIS System View Description

- CMSIS
- CORE
- DSP
- RTOS API
- SVD

- Main Page
- Usage and Description
- Reference

Extensions to the Device Section
SVD Extension in Version 1.1

A number of elements have been added to the device section. These elements are optional but are highly recommended to enable the generation of consistent and CMSIS-compliant device header files from SVD descriptions.

    <device schemaVersion="xs:decimal" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
        <vendor>stringType</vendor>
        <vendorID>stringType</vendorID>
        <name>identifierType</name>
        <series>stringType</series>
        <version>xs:string</version>
        <description>xs:string</description>
        <licenseText>xs:string</licenseText>
        <cpu>cpuType</cpu>
        <headerSystemFilename>identifierType</headerSystemFilename>
        <headerDefinitionsPrefix>identifierType</headerDefinitionsPrefix>

        ...
    </device>

Element Name | Description | Type | Occurrence
--- | --- | --- | ---
vendor | This specifies the vendor of the device using the full name. | stringType | 0..1
vendorID | This specifies the vendor of the device using the vendor abbreviation that does not contain any spaces or special characters. This information shall be used for defining the directory. | stringType | 0..1
series | This element specifies the name of the device series. | stringType | 0..1
licenseText | The content of this tag will be copied into the header section of the generated device header file and shall contain the legal disclaimer. New lines can be inserted by using "\n". This section is mandatory if the SVD file shall be used for generating the device header file. | stringType | 0..1
headerSystemFilename | This tag specifies the file name (without extension) of the device-specific system include file (`system_<device>.h`; See CMSIS-Core description). This tag is used by the header file generator for customizing the include statement referencing the CMSIS system file within the CMSIS device header file. By default, the filename is "<kbd>system_<i>device:name</i>.h". In cases where a device series shares a single system header file, the name of the series shall be used instead of the individual device name. | identifierType | 0..1
headerDefinitionsPrefix | The element specifies the string being prepended to all type definition names generated in the CMSIS-Core device header file. This is used if the silicon vendor's software requires vendor-specific types in order to avoid name clashes with other definied types. | identifierType | 0..1

# Example:

...
<device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1.xsd">
<vendor>Advanced RISC Machines</vendor>
<vendorID>ARM</vendorID>
...
<series>ARMCM3</series>
...
<licenseText>
ARM Limited (ARM) is supplying this software for use with Cortex-M \n
processor based microcontrollers. This file can be freely distributed \n
within development tools that are supporting such ARM based processors. \n
\n
THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED \n
OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF \n
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. \n
ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR \n
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
</licenseText>
...
<headerSystemFilename>system_ARMCM4</headeSystemFilename>
<headerDefinitionsPrefix>ARM_</headerDefinitionsPrefix>
...
</device>
...

This example describes a device from the vendor Advanced RISC Machines using ARM as short name. The device belongs to the device family identified by ARMCM4. The legal disclaimer in the header files generated from this description is captured and formatted in accordance to the standard ARM CMSIS disclaimer. The CMSIS system file included by the generated device header file is named system_ARMCM4.h and all type definitions will be prepended with ARM_.