CMSIS-SVD
Version 1.10
CMSIS System View Description
|
All fields of a register are enclosed between the <fields> opening and closing tags
A bit-field has a name that is unique within the register. The position and size within the register is either described by the combination of the least significant bit's position (lsb) and the most significant bit's position (msb), or the lsb and the bit-width of the field. A field may define an enumeratedValue in order to make the display more intuitive to read.
<fields>
<field derivedFrom="identifierType">
<name>xs:Name</name>
<description>xs:string</description>
<choice>
<!-- bitRangeLsbMsbStyle -->
<bitOffset>scaledNonNegativeInteger<bitOffset>
<bitWidth>scaledNonNegativeInteger</bitWidth>
or
<!-- bitRangeOffsetWidthStyle -->
<lsb>scaledNonNegativeInteger</lsb>
<msb>scaledNonNegativeInteger</msb>
or
<!-- bitRangePattern -->
<bitRange>pattern</bitRange>
</choice>
<access>accessType</access>
<modifiedWriteValues>writeValueType</modifiedWriteValues>
<writeConstraint>writeConstraintType</writeConstraint>
<readAction>readActionType</readAction>
<enumeratedValues>
...
</enumeratedValues>
</field>
...
<field>
...
</field>
<fields>
Attribute Name | Description | Type | Occurrence |
---|---|---|---|
derivedFrom | The field is cloned from a previously defined field with a unique name. | xs:Name | 0..1 |
Element Name | Description | Type | Occurrence |
name | Name string used to identify the field. Field names must be unique within a register. | xs:string | 1..1 |
description | String describing the details of the register. | xs:string | 0..1 |
Choice of | Three options exist to describe the field's bit-range. The options are to be used mutually exclusive: | 1..1 | |
1. bitRangeLsbMsbStyle | |||
bitOffset | Value defining the position of the least significant bit of the field within the register it belongs to. | scaledNonNegativeInteger | 1..1 |
bitWidth | Value defining the bit-width of the bitfield within the register it belongs to. | scaledNonNegativeInteger | 0..1 |
2. bitRangeOffsetWidthStyle | |||
lsb | Value defining the bit position of the least significant bit within the register it belongs to. | scaledNonNegativeInteger | 1..1 |
msb | Value defining the bit position of the most significant bit within the register it belongs to. | scaledNonNegativeInteger | 1..1 |
3. bitRangePattern | |||
bitRange | A string in the format: "[<msb>:<lsb>]" | bitRangeType | 0..1 |
access | Predefined strings can be used to define the allowed access types for this field: read-only, write-only, read-write, writeOnce, and read-writeOnce. Can be omitted if it matches the access permission set for the parent register. | accessType | 0..1 |
modifiedWriteValues | Describe the manipulation of data written to a field. If not specified, the value written to the field is the value stored in the field. The other options are bitwise operations:
| modifiedWriteValuesType | 0..1 |
writeConstraint | Three options exist to set write-constraints: | 0..1 | |
1. writeAsRead | If TRUE, only the last read value can be written. | xs:boolean | 0..1 |
2. useEnumeratedValues | If TRUE, only the values listed in the enumeratedValues list are considered valid write values. | xs:boolean | 0..1 |
3. range | Consists of the following two elements: | 0..1 | |
minimum | Specifies the smallest number to be written to the field. | scaledNonNegativeInteger | 1..1 |
maximum | Specifies the largest number to be written to the field. | scaledNonNegativeInteger | 1..1 |
readAction | If set, it specifies the side effect following a read operation. If not set, the field is not modified after a read. The defined side effects are:
| readActionType | 0..1 register |
enumeratedValues | Next lower level of description. See section Enumerated Values Level for details. | 0..2 |