CMSIS-Pack  Version 1.2
Delivery Mechanism for Software Packs
 All Pages
/package/devices/family level

/package/devices/family

Define properties that are in common to all devices of a family. These properties are inherited by subgroups or elements. This is a mechanism of granulation to reduce redundancy. Multiple <family> groups can be defined.

Example

<devices>
...
<family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
<processor .../>
<jtagconfig .../>
<swdconfig .../>
<compile .../>
<debug .../>
<memory .../>
<algorithm .../>
<book .../>
<description> Write texte here </description>
<feature .../>
<debugport .../>
<debug .../>
<trace .../>
<subfamily Dsubfamily="...">
...
</subfamily>
<device Dname="...">
...
</device>
</family>
...
</devices>

 

Parents Element Chain
devices /package/devices
Attributes Description Type Occurrence
Dfamily Name of the device family. xs:string 1..1
Dvendor Device vendor name. Predefined values must be selected. DeviceVendorEnum 1..1
Child Elements Description Type Occurrence
processor List all processors that are in common to devices of the family. ProcessorType 0..*
compile Specify compile or translate options that are relevant to all devices of the family. CompileType 0..*
jtagconfig Specify the debugger configuration for connections via JTAG relevant to all devices of the family. JtagConfigType 0..1
swdconfig Specify the debugger configuration for connections via Serial Wire debug protocol relevant to all devices of the family. SwdConfigType 0..1
debugport Describe a debug port and default options to configure a debug connection relevant to all devices of the family. DebugPortType 0..*
debug Specify debug options that are relevant to all devices of the family. DebugType 0..*
trace Specify trace options that are relevant to all devices of the family. TraceType 0..*
memory Specify memory areas that are available for all devices of the family. MemoryType 0..*
algorithm Specify Flash programming algorithms that are suitable for all devices. AlgorithmType 0..*
book Specify documents that are relevant for all devices of a family. BookType 0..*
description Describe the device family. DescriptionType 0..*
feature Specify features that are available in all members of the device family. FeatureType 0..*
subfamily A optional sub-family that is used to group devices. group 0..*
device Individual devices that belong to the device family. DeviceType 0..*

 


/package/devices/family/subfamily

Define properties that are in common to all devices of a subfamily. This is another mechanism of granulation to reduce redundancy. These properties are inherited by subgroups or elements. Multiple <subfamily> groups can be defined.

Example

<family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
...
<subfamily Dsubfamily="...">
<processor .../>
<jtagconfig .../>
<swdconfig .../>
<compile .../>
<debug .../>
<memory .../>
<algorithm .../>
<book .../>
<description> Write texte here </description>
<feature .../>
<debugport .../>
<debug .../>
<trace .../>
<device Dname="...">
...
</device>
</subfamily>
<subfamily Dsubfamily="STM32F2xx">
...
</subfamily>
</family>

 

Parents Element Chain
family /package/devices/family
Attributes Description Type Occurrence
Dfamily Name of the device family. xs:string 1..1
Child Elements Description Type Occurrence
processor Specify processors that are available in all devices of the sub-family. ProcessorType 0..*
compile Specify compile or translate options that are relevant to all devices of the sub-family. CompileType 0..*
jtagconfig Specify the debugger configuration for connections via JTAG relevant to all devices of the sub-family. JtagConfigType 0..1
swdconfig Specify the debugger configuration for connections via Serial Wire debug protocol relevant to all devices of the sub-family. SwdConfigType 0..1
debugport Describe a debug port and default options to configure a debug connection relevant to all devices of the sub-family. DebugPortType 0..*
debug Specify debug options that are relevant to all devices of the sub-family. DebugType 0..*
trace Specify trace options that are relevant to all devices of the sub-family. TraceType 0..*
memory Specify memory areas that are available in all device of the sub-family. MemoryType 0..*
algorithm Specify Flash programming algorithms that can be used by all device of the sub-family. AlgorithmType 0..*
book Specify documents relevant for all device of the sub-family. BookType 0..*
description Description of the device family. DescriptionType 0..*
feature Specify features available in devices of the sub-family. FeatureType 0..*
device List individual devices that belong to the device sub-family. DeviceType 0..*

 


/package/devices/family/../device

Define properties that are specific to a device. Properties defined on upper levels get inherited, unless they can be overwritten. Multiple <device> elements can be defined.

Example

<subFamily DsubFamily="STM32F405">
...
<device Dname="STM32F405OE">
<memory id="IROM1" start="0x08000000" size="0x80000" startup="1" default="1"/>
<algorithm name="Flash\STM32F4xx_1024.flm" start="0x08000000" size="0x80000" default="1"/>
<feature type="IOs" n="72" name="Input and Output Ports"/>
</device>
<device Dname="STM32F405OG">
<memory id="IROM1" start="0x08000000" size="0x100000" startup="1" default="1"/>
<algorithm name="Flash\STM32F4xx_1024.flm" start="0x08000000" size="0x100000" default="1"/>
<feature type="IOs" n="72" name="Input and Output Ports"/>
</device>
...
</subfamily>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
Attributes Description Type Use
Dname Specifies the name of the device. xs:string required
Child Elements Description Type Occurrence
processor Specify processors that are specific to this device. ProcessorType 0..*
compile Specify compile or translate options specific to this device. CompileType 0..*
jtagconfig Specify the debugger configuration for connections via JTAG specific to this device. JtagConfigType 0..1
swdconfig Specify the debugger configuration for connections via Serial Wire debug protocol specific to this device. SwdConfigType 0..1
debugport Describe a debug port and default options to configure a debug connection specific to this device. DebugPortType 0..*
debug Specify debug options specific to this device. DebugType 0..*
trace Specify trace options specific to this device. TraceType 0..*
memory Specify memory areas that specific to this device. MemoryType 0..*
algorithm Specify Flash programming algorithms that can be used by this device. AlgorithmType 0..*
book Specify documents specific to this device. BookType 0..*
description Description specific to this device. DescriptionType 0..*
feature Specify features specific to this device. FeatureType 0..*
variant Complex element specifying a variant of a device. VariantType 0..*

 


/package/devices/family/.../algorithm

Specify Flash programming algorithms with the address range and its size. An algorithm with <default> set to true gets configured automatically to the download options of the project. Algorithms can be defined on various levels. Multiple <algorithm> elements are possible.

Example

<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
...
<algorithm name="Flash\STM32F2xx_512.flm" start=0x08000000 size=0x10000 default="1"/> <!-- valid for all devices of the family -->
<subFamily DsubFamily="STM32F405">
<algorithm name="Flash\STM32F2xx_1024.flm" start=0x08000000 size=0x20000 default="1"/> <!-- valid for all devices of a subFamily -->
<device Dname="STM32F405OE">
<algorithm name="Flash\STM32F2xx_2048.flm" start=0x08000000 size=0x40000 default="1"/> <!-- finally, this is the default for the device -->
</device>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor identifier. This attribute is mandatory for devices that embed multiple processors. xs:string optional
name Flash Programming Algorithm file including the path, which is relative to the root folder of the Software Pack. xs:string required
start Base address for the Flash programming algorithm. NonNegativeInteger required
size Size covered by the Flash programming algorithm. End address = start + size - 1 NonNegativeInteger required
RAMstart Base address for the RAM where the Flash programming algorithm will be executed from. If specified, the memory element does not require a default attribute. NonNegativeInteger optional
RAMsize Maximum size of RAM available for the execution of the Flash programming algorithm. End address = start + size - 1 is used for the Stack. If specified, the memory element does not require a default attribute. NonNegativeInteger optional
default If true, then this is the default Flash programming algorithm that gets configured in a project. If not specified or set to false, then the Flash programming algorithm can be configured on a lower level. However, the Flash programming algorithm of a project can be changed manually at any time during development. xs:boolean optional

 


/package/devices/family/.../book

Specifies documents related to a device. Books can be entered on various levels. The book element contains the location, filename, and extension of the file. The title is used for display purposes.

Example

<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
...
<book name="Documents\STM32F40x_DS.PDF" title="STM32F40x Data Sheet"/> <!-- valid for all devices of the family -->
<subFamily DsubFamily="STM32F405">
<book name="Documents\STM32F4xx_RM.pdf" title="STM32F4 Series Reference Manual"/> <!-- valid for all devices of a subFamily -->
<device Dname="STM32F405OE">
<book name="Documents\STM32F405OE_DS.PDF" title="STM32F405OE - Data Sheet"/> <!-- valid for this device; Inherits all above -->
</device>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor identifier. This attribute is mandatory for devices that embed multiple processors. xs:string optional
name File name of the document including the extension. The document path is relative to the package base folder. Directory/file names are case-sensitive. xs:string required
title Book title. Can be used for being displayed in various environments. xs:string required

 


/package/devices/family/.../compile

Specify header files and preprocessor defines for programming. This element can occur on various levels. Multiple elements are allowed. The last occurrence in the hierarchy determines the actual define.

Note
  • In the example below, the device STM32F407IG will have a define STM32F407IG. Previous defines are overridden.
  • It is good practice to add both attributes (header and define) in the attributes list of the compile element together. This clarifies the relationship between header file and define.

Example

<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
...
<compile header="Device\Include\stm32f4xx.h"/>
<subFamily DsubFamily="STM32F407">
...
<compile header="Device\Include\stm32f4xx.h" define="STM32F40XX"/>
<device Dname="STM32F407IG">
<compile header="Device\Include\stm32f4xx.h" define="STM32F407IG"/>
</device>
</subfamily>
</family>
Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor identifier. This attribute is mandatory for devices that embed multiple processors. xs:string optional
header C-header file with path relative to the installation. xs:string optional
define C-file name with device specific preprocessor defines. The path is relative to the installation. xs:string optional

 



/package/devices/family/.../description

Brief description of the element. Can occur on various levels. Should only contain the unique features of the device. Number of bullet points should not exceed ten. To create a detailed feature list use the /package/devices/family/.../feature instead.

Example

<package>
<devices>
<family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
<description>
STM32F2 devices are designed for medical, industrial and consumer
applications and provide rich connectivity peripherals.
- At 120 MHz CPU clock: 150 DMIPS executing from Flash memory
- ART Accelerator for low-power Flash execution (175 ľA/MHz @ 120 MHz)
- Flexible Memory Controller supports Compact Flash, SRAM, PSRAM, NOR and NAND
</description>
</family>
</devices>
</package>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor Identifier. This attribute is mandatory for devices that embed multiple processors. xs:string optional

 


/package/devices/family/.../feature

This element specifies the peripherals that devices can have. Many device feature types are already predefined, such as timers, converters, Ethernet, USB, etc (for a complete list refer to DeviceFeatureTypeEnum). Features can be defined on various levels. Inner elements supersede outer elements.

Example

<package>
<devices>
<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
...
<!-- Features that are in common to this device family. -->
<feature type="TimerOther" n="1" name="Independent Watchdog Timer"/>
<feature type="TimerOther" n="1" name="Window Watchdog Timer"/> <!-- The same feature type can be specified multiple times -->
<feature type="Other" n="1" name="Temperature Sensor"/>
<feature type="CoreOther" n="1" name="96-bit Unique Identifier"/>
<feature type="CoreOther" n="1" name="CRC Calculation Unit"/>
<feature type="DMA" n="16" name="General Purpose DMA with Centralized FIFO and Burst Support"/>
<feature type="PowerOther" n="1" name="POR, PDR, PVD, and BOR"/>
<feature type="XTAL" n="4000000" m="26000000" name="Crystal Oscillator"/>
<feature type="IntRC" n="16000000" name="Internal Factory-Trimmed RC"/>
<feature type="IntRC" n="32000" name="Internal RC with Calibration"/>
<feature type="RTC" n="32000" name="RTC with 32 kHz calibrated Oscillator and Battery Backup"/>
<feature type="PowerMode" n="3" name="Run, Stop, Standby"/>
<feature type="Temp" n="-40" m="85"/>
<feature type="Temp" n="-40" m="105"/>
<feature type="Timer" n="4" m="16" name="General Purpose Timer"/>
...
<subFamily DsubFamily="STM32F407">
<!-- Features that are in common to this subfamily. -->
<feature type="IOs" n="36"/> <!-- adds new feature to subfamily -->
<feature type="Timer" n="7" m="32" name="General Purpose Timer"/> <!-- overrides settings from <family> -->
<device Dname="STM32F407IE">
<!-- Feature specific to this device. All above features are inherited. -->
<feature type="QFP" n="176" name="LQFP 176 24x24x1.4"/>
</device>
</subfamily>
</family>
</devices>
</package>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor Identifier. This attribute is mandatory for devices that embed multiple processors. xs:string optional
type A feature (peripheral), such as CAN, DMA, I/O, LCD, etc. Predefined tokens must be used. DeviceFeatureTypeEnum required
n Depending on the type. Check DeviceFeatureTypeEnum xs:decimal optional
m Depending on the type. Check DeviceFeatureTypeEnum xs:decimal optional
name Descriptive name of the feature. For example, "16-bit down counting timer". If omitted, the Default Name is used (refer to DeviceFeatureTypeEnum) xs:string optional

 


/package/devices/family/.../memory

This element specifies memory regions that devices can have. Memory types are predefined and can be selected. This element can be defined on various levels. Inner memory elements supersede outer elements.

Example

</package>
...
<devices>
<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
<memory id="IRAM1" start="0x20000000" size="0x20000" init="0" default="1"/>
<subFamily DsubFamily="STM32F407">
<debug dp="dp0" ap="0" svd="SVD\STM32F40x.svd"/>
<memory id="IRAM1" start="0x20020000" size="0x20000" init="0" default="1"/>
<memory id="IRAM2" start="0x10000000" size="0x10000" init="0" default="1"/>
<device Dname="STM32F407IE">
<memory id="IROM1" start="0x08000000" size="0x80000" startup="1" default="1"/>
</device>
</subfamily>
</family>
</devices>
...
</package>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor identifier. This attribute is mandatory for devices that embed multiple processors. xs:string optional
id Identifier of the memory region consisting of a type indicator and an index (for example, IRAM1). Predefind values can be selected. MemoryIDTypeEnum required
start Base address of the memory using a hexadecimal value. NonNegativeInteger required
size Size of the memory in bytes using a hexadecimal value. NonNegativeInteger required
default Specifies the default memory region. If true, then this is the default memory region for the application code. Default value is false. If an algorithm element is specified (without RAMstart and RAMsize attributes), a default="1" is required for one IRAM. This makes the algorithm downloadable into the RAM for execution. xs:boolean optional
init Specifies whether the memory reagion should be initialized. If true, the memory will be initialized to 0 by default. This applies only to memory of type RAM. Default is false. xs:boolean optional
startup If true, the startup code of the application will be placed into this memory region. Default value is false. xs:boolean optional

 


/package/devices/family/.../processor

Specifies attributes of the device processor. The element can occur on various levels. Elements of multi-processor devices can be associated with a specific processor using the attribute <Pname>. If the information is relevant to all processors, no processor must be specified in <Pname>.

Example

<package>
...
<devices>
<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
<processor Dcore="Cortex-M4" DcoreVersion="r0p1"
Dfpu="1" Dmpu="1" Dendian="Little-endian" Dclock="168000000"/>
...
</family>
</devices>
...
</package>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Processor identifier. This attribute is mandatory for devices that embed multiple processors. Each processor needs a unique identifier and must be used consistently in the Pname attribute of the elements within the scope of the current device family section. xs:string optional
Dvendor Specfies the device vendor using a predefined string. DeviceVendorEnum optional
Dcore Specifies the processor core using a predefined string. DcoreEnum optional
Dfpu Specifies whether a hardware floating point unit is present in the processor or not (default: false). DfpuEnum optional
Dmpu Specifies whether a memory protection unit is present in the processor or not (default: false) DmpuEnum optional
Dendian Specifies the byte endianess of the processor DendianEnum optional
Dclock Specifies the max clock frequency of the processor subsystem xs:unsignedInt optional
DcoreVersion Hardware revision of the processor core xs:string required

 



/package/devices/family/.../jtagconfig

Debugger configuration when operating with JTAG protocol.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<jtagconfig default="1" clock="10000000"/>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
default Defines JTAG to be the default protocol for debug connections if set to 1. This value is used as a preselection for a debugger GUI and can be overriden by the user. If both <jtagconfig> and <swdconfig> elements are available, only one of them must be the default. xs:boolean required
clock Specifies the default debug clock setting in Hz for a connection via JTAG. Default value is 10000000. xs:unsignedInt optional

 


/package/devices/family/.../swdconfig

Debugger configuration when operating with Serial Wire debug protocol.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<swdconfig default="0" clock="10000000"/>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
default Defines the Serial Wire debug protocol to be the default protocol for debug connections if set to 1. This value is used as a preselection for a debugger GUI and can be overriden by the user. If both <jtagconfig> and <swdconfig> elements are available, only one of them must be the default. xs:boolean required
clock Specifies the default debug clock setting in Hz for a connection via Serial Wire debug protocol. Default value is 10000000. xs:unsignedInt optional

 


/package/devices/family/.../debugport

Describes a CoreSight debug port of the device. The element can occur on various levels. Multiple <debugport> elements are required if the device has more than one valid debug port of a protocol. Use unique identifiers for the attribute dp to distinguish multiple <debugport> elements.

<debugport> elements are only required for targets with multiple debug ports of the same protocol. Use the value auto in later dp references if no <debugport> element is defined for a target with a single CoreSight debug port.

Note
The *.PDSC format does not explicitly describe CoreSight access ports. A debugger needs to assume the following:
  • Packed Transfer support is testable via the CSW.AddrInc field for all ARM Debug Interface v5 architecture revisions.
  • Auto address increment wraps within a 1-KB address boundary.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<jtagconfig default="1" clock="10000000"/>
<swdconfig default="0" clock="10000000"/>
<debugport dp="dp0" switchable="1">
<jtag tapindex="0"/>
<swd/>
</debugport>
<debugport dp="dp1" switchable="0">
<jtag tapindex="1"/>
</debugport>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
switchable A debugger can switch debug protocols for this port. The default value is 1. xs:boolean optional
dp Debug port identifier. This attribute is mandatory for devices with multiple CoreSight debug ports. Each debug port needs a unique identifier and must be used consistently in the dp attribute of the elements within the scope of the current device family section. xs:string required
Child Elements Description Type Occurrence
jtag Describe a JTAG Test Access Port (TAP) for access to this debug port. JtagType 0..1
swd Describe a CoreSight Serial Wire Debug Port (SW-DP) implementation of this debug port. SwdType 0..1
sequence Describe a DebugPortStart or DebugPortStop sequence. SequenceType 0..*

 


/package/devices/family/.../debugport/jtag

Indicates accessibility of the <debugport> parent element via JTAG. Its attributes allow a manual override of a debugger's automatic JTAG Test Access Port (TAP) detection.

Example

<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
...
<jtagconfig default="0" clock="10000000"/>
<debugport>
...
<jtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
...
</debugport>
...
</family>

 

Parents Element Chain
debugport /package/devices/family/.../debugport
Attributes Description Type Use
tapindex Specifies the TAP index relative to the JTAG scan chain of this device. A debugger needs to determine the absolute index if the device is part of an extended scan chain. Default value is 0. NonNegativeInteger optional
idcode Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. NonNegativeInteger optional
targetsel Specifies the value to write to a CoreSight debug port's TARGETSEL register to select this port for connection. The element is required for debug ports with multi-drop support. It is ignored otherwise. NonNegativeInteger optional
irlen Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. xs:unsignedInt optional

 


/package/devices/family/.../debugport/swd

Indicates accessibility of the <debugport> parent element via the Serial Wire Debug protocol. Its attributes allow a manual override of Serial Wire debug port characteristics as read from the target, as well as selecting a Serial Wire debug port in a system with multi-drop support.

Example

<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
...
<swdconfig default="1" clock="10000000"/>
<debugport>
...
<swd idcode="0x2BA01477"/>
...
</debugport>
...
</family>

 

Parents Element Chain
debugport /package/devices/family/.../debugport
Attributes Description Type Use
idcode Specifies the IDCODE of a Serial Wire debug port. This value overrides the IDCODE as read from the port's IDCODE register. NonNegativeInteger optional
targetsel Specifies the value to write to a CoreSight debug port's TARGETSEL register to select this port for connection. The element is required for debug ports with multi-drop support. It is ignored otherwise. NonNegativeInteger optional

 



/package/devices/family/.../debug

Describes configuration settings, default values, patches for data accesses, and functionality for a debugger to execute during a target connection. Multiple <debug> elements can be defined which are either specific to a processor identified by attribute Pname, or which apply to all connections.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<debug Pname="CoreCM4" dp="dp0" ap="0" svd="SVD\LPC43xx.svd"> <!-- Debug section valid for a debug connection to processor "CoreCM4" -->
...
<sequence name="ResetSystem">
...
</sequence>
...
</debug>
...
<debug Pname="CoreCM0" dp="dp1" svd="SVD\LPC43xx.svd"> <!-- Debug section valid for a debug connection to processor "CoreCM0" -->
...
<sequence name="ResetSystem">
...
</sequence>
...
</debug>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Reference to a processor identifier as specified for a <processor> element. This section only applies to the referenced processor. This attribute is required for targets with multiple <processor> elements. xs:string optional
dp Reference to a debug port identifier as specified for a <debugport> element. This is the default debug port to use for target accesses in this debug connection. Targets with a single CoreSight debug port do not require a <debugport> element. Use the reserved value auto for those. xs:string required
ap The default CoreSight access port to use for target accesses in a debug connection. xs:unsignedInt required
svd The system viewer description (*.SVD) file. The file path is relative to the package base folder. xs:string optional
Child Elements Description Type Occurrence
datapatch Specify a patch to apply for data reads during a target connection. DataPatchType 0..*
sequence Define a sequence of debugger commands to execute during a debug connection. SequenceType 0..*

 


/package/devices/family/.../debug/datapatch

Describes a patch a debugger shall apply when reading data from the device.

Example

<family Dfamily="LPC800 Series" Dvendor="NXP:11">
...
<debug svd="SVD\LPC800.svd">
...
<datapatch type="Mem" ap="0" address="0x1400000C" value="0x10000000" mask="0xFFFFFFFF"/>
...
</debug>
...
</family>

 

Parents Element Chain
debug /package/devices/family/.../debug
Attributes Description Type Use
type The type of data access to patch, such as DP, AP, and Mem. Predefined tokens must be used. DataAccessTypeEnum optional
dp Reference to a debug port identifier as specified for a <debugport> element. This is the debug port for which to apply the path. Targets with a single CoreSight debug port do not require a <debugport> element. In that case use the reserved value auto. This element uses the dp value as defined for the current section if not specified here. xs:string optional
ap The CoreSight access port to apply the patch for. This element uses the ap value as defined for the current section if not specified here. xs:unsignedInt optional
address The address to apply the patch for. ExpressionType required
value The value the debugger patches the data access with. value is specified in little-endian format. ExpressionType required
mask The bits of the data access to patch. The mask value is specified in little-endian format. NonNegativeInteger optional

 



/package/devices/family/.../trace

Describes configuration settings, default values, and functionality for a debugger to execute for capturing trace. Multiple <trace> elements can be defined which are either specific to a processor identified by attribute Pname, or which apply to all connections.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<trace Pname="CoreCM4" dp="dp0" ap="0"> <!-- Trace section valid for a debug connection to processor "CoreCM4" -->
...
<sequence name="TraceStart">
...
</sequence>
...
</trace>
...
</family>

 

Parents Element Chain
family /package/devices/family
subfamily /package/devices/family/subfamily
device /package/devices/family/../device
Attributes Description Type Use
Pname Reference to a processor identifier as specified for a <processor> element. This section only applies to the referenced processor. This attribute is required for targets with multiple <processor> elements. xs:string optional
dp Reference to a debug port identifier as specified for a <debugport> element. This is the default debug port to use for target accesses in this section. Targets with a single CoreSight debug port do not require a <debugport> element. Use the reserved value auto for those. xs:string required
ap The default CoreSight access port to use for target accesses in this section. xs:unsignedInt required
Child Elements Description Type Occurrence
serialwire Describe the configuration and sequences to execute for serial wire trace output of the processor. SerialWireType 0..*
traceport Describe the configuration and sequences to execute for parallel trace port output of the processor. TracePortType 0..*
tracebuffer Describe the configuration and sequences to execute for an on-device trace buffer. TraceBufferType 0..*

 


/package/devices/family/.../trace/serialwire

Indicates serial wire trace capabilities for the specified processor. This element describes configuration settings, default values, and functionality for a debugger to execute for capturing the trace.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<trace Pname="CoreCM4" dp="dp0" ap="0">
...
<serialwire>
...
</serialwire>
...
</trace>
...
</family>

 

Parents Element Chain
trace /package/devices/family/.../trace
Child Elements Description Type Occurrence
sequence Describe a sequence to enable serial wire trace capturing. SequenceType 0..*

 


/package/devices/family/.../trace/traceport

Indicates parallel trace port capabilities for the specified processor. This element describes configuration settings, default values, and functionality for a debugger to execute for capturing the trace.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<trace Pname="CoreCM4" dp="dp0" ap="0">
...
<traceport width="1">
...
</traceport>
...
<traceport width="2">
...
</traceport>
...
<traceport width="4">
...
</traceport>
...
</trace>
...
</family>

 

Parents Element Chain
trace /package/devices/family/.../trace
Attributes Description Type Use
width The trace port width in bits for which this element applies. The default value 0 indicates that this element is applied to all possible trace port widths. If an element's width is 0 it must be the only element associated with a core. xs:string optional
Child Elements Description Type Occurrence
sequence Describe a sequence to enable parallel trace port capturing. SequenceType 0..*

 


/package/devices/family/.../trace/tracebuffer

This element indicates trace buffer capabilities for the specified processor. This element describes configuration settings, default values, and functionality for a debugger to execute for capturing the trace and reading it from the buffer.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<trace Pname="CoreCM4" dp="dp0" ap="0">
...
<tracebuffer triggerdelay="4">
...
</tracebuffer>
...
</trace>
...
</family>

 

Parents Element Chain
trace /package/devices/family/.../trace
Attributes Description Type Use
triggerdelay Default trigger delay setting. This is the number of trace data words to capture after receiving a trace trigger signal. Default value is 0. NonNegativeInteger optional
start Default start address of the on-chip memory used as trace buffer. NonNegativeInteger optional
size Default size of the on-chip memory used as trace buffer in bytes. NonNegativeInteger optional
Child Elements Description Type Occurrence
sequence Describe a sequence to enable capturing trace and reading it from the buffer. SequenceType 0..*

 



/package/devices/family/.../sequence

Describes a sequence of debugger commands to execute at a predefined event. The debugger commands are executed in the order of their appearance in this section.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<trace Pname="CoreCM4" dp="dp0" ap="0">
...
<sequence name="TraceStart">
...
</sequence>
...
</trace>
...
</family>

 

Parents Element Chain
debugport /package/devices/family/.../debugport
debug /package/devices/family/.../debug
trace /package/devices/family/.../trace
Attributes Description Type Use
name A predefined sequence name indicating the event at which a sequence is executed. SequenceNameEnum required
protocol The debug protocol this sequence applies for. It can be one of swd and jtag. This <sequence> element applies for all supported debug protocols if protocol is unspecified or an empty string. ProtocolTypeEnum optional
Child Elements Description Type Occurrence
block Describe a block of debugger commands. BlockType 0..*
assign Assign a value to a variable. AssignType 0..*
datawrite Describe a data write access. DataWriteType 0..*
waitfor Describe a command to the debugger to wait for an expression to become true. WaitForType 0..*

 


/package/devices/family/.../sequence/block

Describes a block of debugger commands for which to apply specific settings and conditions.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<debug Pname="CoreCM4" dp="dp0" ap="0" svd="SVD\LPC43xx.svd">
...
<sequence name="ResetSystem">
...
<assign name="doBlock" value="1"/>
<block if_true="doBlock">
...
</block>
...
</sequence>
...
</debug>
...
</family>

 

Parents Element Chain
sequence /package/devices/family/.../sequence
Attribute Description Type Use
if_true Reference to a variable identifier as specified for a <assign> element. The child elements of this block are executed if the value is different from 0 or if this attribute is unspecified. xs:string optional
if_false Reference to a variable identifier as specified for a <assign> element. The child elements of this block are executed if the value is 0 or if this attribute is unspecified. xs:string optional
dp Reference to a debug port identifier as specified for a <debugport> element. This is the default debug port for target accesses in this <block>. Targets with a single CoreSight debug port do not require a <debugport> element. In that case use the reserved value auto. This element uses the dp value as defined for the current section if not specified here. xs:string optional
ap The default CoreSight access port to use for target accesses in this block. This element uses the ap value as defined for the current section if not specified here. xs:unsignedInt optional
protocol The debug protocol this sequence applies for. It can be one of swd and jtag. This <block> element applies for all supported debug protocols if protocol is unspecified or an empty string. ProtocolTypeEnum optional
Child Elements Description Type Occurrence
assign Assign a value to a variable. AssignType 0..*
datawrite Describe a data write access. DataWriteType 0..*
waitfor Describe a command to the debugger to wait for an expression to become true. WaitForType 0..*

 


/package/devices/family/.../sequence/.../assign

Assigns the result of an expression to a variable. This element is part of a <sequence> or a <block> element. A debugger has to treat the assigned values as 64-bit unsigned integer values.

Note
  • Referencing a variable which has not been assigned causes an error.
  • Variables set by <assign> elements live only from the time of their first assignment. A variable is destroyed when the sequence execution leaves the <sequence> or <block> section where it has been assigned for the first time.
  • Variables set by <assign> elements which are direct children of a <sequence> element are overwritten if used as the destination of an <assign> element within a <block>.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<debug Pname="CoreCM4" dp="dp0" ap="0" svd="SVD\LPC43xx.svd">
...
<sequence name="ResetClearCatch">
...
<assign name="running" value="((read32(0xE000EDF0) & 0x00020000) == 0)" <!-- Check HCSR if core is halted -->
...
</sequence>
...
</debug>
...
</family>

 

Parents Element Chain
sequence /package/devices/family/.../sequence
block /package/devices/family/.../sequence/block
Attributes Description Type Use
if_true Reference to a variable name as specified for another <assign> element. This element is executed if the value is different from 0 or if this attribute is unspecified. xs:string optional
if_false Reference to a variable identifier as specified for a <assign> element. This element is executed if the value is 0 or if this attribute is unspecified. xs:string optional
variable Variable identifier for later reference of this value in a if_true, if_false, or expression attribute. Reusing a previously defined variable value will overwrite it. xs:string required
expression Expression to evaluate. The result of the expression can be used in other elements by referencing this element's variable value. ExpressionType required

 


/package/devices/family/.../sequence/.../datawrite

Describes a data write access. This element is part of a <sequence> or a <block> element.

Example

<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
...
<trace Pname="CoreCM4" dp="dp0" ap="0">
...
<traceport>
...
<sequence name="TraceStart">
<!-- Trace Port Pin Setup -->
<datawrite address="0x40086790" value="0x000000B2"/> <!-- LPC_SCU->SFSPF_4 = 2 -->
<datawrite address="0x40086794" value="0x000000B3"/> <!-- LPC_SCU->SFSPF_5 = 3 -->
<datawrite address="0x40086798" value="0x000000B3"/> <!-- LPC_SCU->SFSPF_6 = 3 -->
<datawrite address="0x4008679C" value="0x000000B3"/> <!-- LPC_SCU->SFSPF_7 = 3 -->
<!-- LPC_SCU->SFSPF_8 = 3 -->
<!-- "dp", "ap", "mask", and "size" attributes are redundant for the following element -->
<datawrite type="Mem" dp="dp0" ap="0" address="0x400867A0" value="0x000000B3" mask="0xFFFFFFFF" size="4"/>
</sequence>
...
</traceport>
...
</debug>
...
</family>

 

Parents Element Chain
sequence /package/devices/family/.../sequence
block /package/devices/family/.../sequence/block
Attributes Description Type Use
if_true Reference to a variable identifier as specified for another <assign> element. This element is executed if the value is different from 0 or if this attribute is unspecified. xs:string optional
if_false Reference to a variable identifier as specified for a <assign> element. This element is executed if the value is 0 or if this attribute is unspecified. xs:string optional
type The type of data write access, such as DP, AP, and Mem. Predefined tokens must be used. DataAccessTypeEnum

optional

dp Reference to a debug port identifier as specified for a <debugport> element. This is the debug port to use for the target access. Targets with a single CoreSight debug port do not require a <debugport> element. In that case use the reserved value auto. This element uses the dp value as defined for the current section if not specified here. xs:string optional
ap The default CoreSight access port to use for the target access. This element uses the ap value as defined for the current section if not specified here. xs:unsignedInt optional
address The address to write to. ExpressionType required
value The value to write. value is specified in little-endian format. ExpressionType required
mask The bits of value to write. If one or more bits of mask are 0, then the debugger has to read the value from the target, modify the masked bits, and write the modified value. mask is specified in little-endian format. NonNegativeInteger optional
size The number of bytes to write. Allowed values are 1, 2, 4, and 8. Default value is 4. DataAccessSizeType optional

 


/package/devices/family/.../sequence/.../waitfor

Describes a debugger command to wait for an expression to become true. This element is part of a <sequence> or a <block> element.

Example

<family Dfamily="LM3Sxxx Series" Dvendor="Texas Instruments:16">
...
<debug dp="dp0" ap="0">
...
<sequence name="ResetSystem">
...
<!-- wait for pending flash operations -->
<waitfor if_true="type0" expression="(read32(0x400FD008) & 0xFFFF) == 0" timeout="100" timeouterr="1"/> <!-- FLASH_FMC -->
...
</sequence>
...
</debug>
...
</family>

 

Parents Element Chain
sequence /package/devices/family/.../sequence
block /package/devices/family/.../sequence/block
Attributes Description Type Use
if_true Reference to a variable identifier as specified for another <assign> element. This element is executed if the value is different from 0 or if this attribute is unspecified. xs:string optional
if_false Reference to a variable identifier as specified for a <assign> element. This element is executed if the value is 0 or if this attribute is unspecified. xs:string optional
expression Expression to evaluate. This element successfully ends its execution when the expression evaluates to true. The <waitfor> element waits for timeout milliseconds if expression is empty or undefined. In this case, no error is issued on timeout. ExpressionType optional
timeout Timeout for this element in milliseconds. The overall execution time of this element must at least have lasted for this time. The current evaluation iteration may finish after the timeout has been reached. xs:unsignedInt required
timeouterr Specifies whether reaching the timeout is interpreted as an error. Its default value is 1. No timeout error is issued if expression is empty or undefined. xs:boolean optional

 


/package/devices/family/.../device/variant

Defines a device variant. The element is optional. Can exist multiple times.

Example

<device Dname="STM32F205RB">
...
<variant Dvariant="STM32F205RBT6">
<book name="doc\STM32F2_RM.PDF" title="STM32F2 Reference Manual"/>
<description>Use this device as an alternative.</description>
<feature type="QFP" count="64" name="LQFP 64 10x10x1.4" />
<feature type="Temp" n="-40" m="85" name="Industrial Temperature Range"/>
</variant>
<variant Dvariant="STM32F205RBT7">
<feature type="QFP" count="64" name="LQFP 64 10x10x1.4" />
<feature type="Temp" n="-40" m="105" name="Extended Temperature Range"/>
</variant>
...
</device>

 

Parents Element Chain
device /package/devices/family/../device
Attributes Description Type Use
Dvariant Name of the device variant xs:string required
Child Elements Description Type Occurrence
book List books that are specific to this variant. BookType 0..*
description Device description. DescriptionType 0..*
feature Define features for this device variant. FeatureType 0..*