|
|
@@ -1,4225 +1,4250 @@
|
|
|
-/**
|
|
|
-\page pdsc_devices_pg /package/devices element
|
|
|
-
|
|
|
-The level \elem{devices} contains all devices for which support is provided by the \ref CP_SWComponents "Software Pack".
|
|
|
-
|
|
|
-Devices can be organized in hierarchy groups to limit redundancy. The hierarchy levels are:
|
|
|
-- \ref element_family "family": the attributes of a device family which includes also the processor.
|
|
|
-- \ref element_subFamily "subFamily": attributes of an optional sub-family; this adds or modifies features of a family.
|
|
|
-
|
|
|
-Device characteristics can be defined in:
|
|
|
-- \ref element_device "device": attributes of a specific silicon device
|
|
|
-- \ref element_variant "variant": attributes of a device variant (for example, with different package or temperature range) or an
|
|
|
- OEM device or board that integrates the device.
|
|
|
-
|
|
|
-A device is described by the following properties:
|
|
|
- - \ref element_description "description": textual device description
|
|
|
- - \ref element_feature "feature": categorized list of device peripherals and features
|
|
|
- - \ref element_book "book": documentation about the device and its processor(s)
|
|
|
- - \ref element_processor "processor": processor and processor features embedded in the device
|
|
|
- - \ref element_compile "compile": device specific general settings for the build tools
|
|
|
- - \ref element_debugconfig "debugconfig": default settings for a debug connection
|
|
|
- - \ref element_debugvars "debugvars": global debug access variables for use in sequences.
|
|
|
- - \ref element_sequences "sequences": debug access sequences.
|
|
|
- - \ref element_debugport "debugport": debug port description of the device for the debugger to configure a debug connection.
|
|
|
- - \ref element_debug "debug": device specific information for the debugger to configure a debug connection including System View Description files.
|
|
|
- - \ref element_trace "trace": device specific information for the debugger to configure trace.
|
|
|
- - \ref element_memory "memory": memory layout of the device for internal and external RAM and ROM regions
|
|
|
- - \ref element_algorithm "algorithm": device specific Flash programming algorithms
|
|
|
-
|
|
|
-A device will inherit the specifications from both the family and sub-family levels. Some properties are required to be unique.
|
|
|
-For example, the name of the svd file attribute of the \elem{debug} property.
|
|
|
-Therefore, the svd file specified on the family level can be redefined by the attribute on the sub-family or device level.
|
|
|
-Information like the description and feature entries are concatenated, starting with the information from the family and sub-family level
|
|
|
-and finalizing with the information on the device level.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<package>
|
|
|
- ...
|
|
|
- <devices>
|
|
|
- <!-- family level -->
|
|
|
- <family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
|
|
|
- <processor Dcore="Cortex-M3" DcoreVersion="r2p1"
|
|
|
- Dfpu="0" Dmpu="1" Dendian="Little-endian" Dclock="120000000"/>
|
|
|
-
|
|
|
- <compile header="Device/Include/stm32f2xx.h" define="STM32F2XX"/>
|
|
|
- <debug svd="SVD/STM32F20x.svd"/>
|
|
|
- <algorithm name="Flash/STM32F2xx_OPT.flm" start="0x1FFFC000" size="0x00000010" style="Keil"/>
|
|
|
- <book name="doc/STM32F2.PDF" title="STM32F2 Reference Manual"/>
|
|
|
-
|
|
|
- <description>
|
|
|
- ARM 32-bit Cortex-M3 CPU based Microcontroller
|
|
|
- - 120 MHz maximum frequency producing 150 DMIPS/1.25 DMIPS/MHz
|
|
|
- - Memory Protection Unit
|
|
|
- - Flexible static memory controller (supports Compact Flash, SRAM, PSRAM, NOR, NAND memories)
|
|
|
- - LCD parallel interface, 8080/6800 modes
|
|
|
- - Clock, reset and supply management
|
|
|
- </description>
|
|
|
-
|
|
|
- <feature type="Timer" n="10" m="32" name="General Purpose Timer with 60 MHz"/>
|
|
|
- <feature type="Timer" n="2" m="16" name="Advanced Control Timer with 120 MHz"/>
|
|
|
- <feature type="Timer" n="2" m="16" name="Basic Timer with 60 MHz"/>
|
|
|
- <feature type="TimerOther" n="1" name="Independent Watchdog Timer"/>
|
|
|
- <feature type="TimerOther" n="1" name="Window Watchdog Timer"/>
|
|
|
- <feature type="DAC" n="2" m="12"/>
|
|
|
- <feature type="SPI" n="3" name="SPI Interface (two of them can be used as I2S)"/>
|
|
|
- <feature type="I2C" n="3"/>
|
|
|
- <feature type="USART" n="4" name="USART Interface up to 7.5 Mbit/s"/>
|
|
|
- <feature type="UART" n="2" name="UART Interface up to 3.75 Mbit/s"/>
|
|
|
- <feature type="USBOTG" n="1" name="USB OTG (Full-Speed) with PHY and ULPI"/>
|
|
|
- <feature type="USBOTG" n="1" name="USB OTG (High-Speed) with PHY and ULPI"/>
|
|
|
- <feature type="CAN" n="2" name="CAN Interface (2.0b Active)"/>
|
|
|
- <feature type="SDIO" n="1" m="8" name="Supporting SD/MicroSD/MMC"/>
|
|
|
- <feature type="VCC" n="1.8" m="3.6"/>
|
|
|
-
|
|
|
- <!-- sub family level -->
|
|
|
- <subFamily DsubFamily="128 Flash">
|
|
|
- <memory name="SRAM" access="rwx" start="0x20000000" size="0x10000" default="1"/>
|
|
|
- <memory name="Flash" access="rx" start="0x08000000" size="0x20000" startup="1" default="1"/>
|
|
|
-
|
|
|
- <!-- device level -->
|
|
|
- <device Dname="STM32F205RB">
|
|
|
- <feature type="IOs" n="51" name="Input and Output Ports"/>
|
|
|
- <variant Dvariant="STM32F205RBT6">
|
|
|
- <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>
|
|
|
-
|
|
|
- <device Dname="STM32F205VB">
|
|
|
- <feature type="IOs" n="82" name="Input and Output Ports"/>
|
|
|
- <variant Dvariant="STM32F205VBT6">
|
|
|
- <feature type="QFP" count="100" name="LQFP 100 14x14x1.4" />
|
|
|
- <feature type="Temp" n="-40" m="85" name="Industrial Temperature Range"/>
|
|
|
- </variant>
|
|
|
- </device>
|
|
|
- </subFamily>
|
|
|
-
|
|
|
- </family>
|
|
|
- </devices>
|
|
|
-</package>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_devices /package/devices
|
|
|
-
|
|
|
-Group level containing device \subpage pdsc_family_pg "family" descriptions. A package can contain only one element \elem{devices}.
|
|
|
-The group is not mandatory.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<package>
|
|
|
- ...
|
|
|
- <devices>
|
|
|
- ...
|
|
|
- </devices>
|
|
|
- ...
|
|
|
-</package>
|
|
|
-
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: devices">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_package "package"</td>
|
|
|
- <td colspan="3">\ref element_package "/package"</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td>Device family group. Define all properties that are in common to devices of a family.</td>
|
|
|
- <td>complexType</td>
|
|
|
- <td>1..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-*/
|
|
|
-
|
|
|
-/**
|
|
|
-\page pdsc_family_pg /package/devices/family element
|
|
|
-
|
|
|
-\section element_family /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.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<devices>
|
|
|
- ...
|
|
|
- <family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
|
|
|
- <processor .../>
|
|
|
- <debugconfig .../>
|
|
|
- <debugvars .../>
|
|
|
- <sequences .../>
|
|
|
- <compile .../>
|
|
|
- <memory .../>
|
|
|
- <algorithm .../>
|
|
|
- <book .../>
|
|
|
- <description> Write texte here </description>
|
|
|
- <environment> ... </environment>
|
|
|
- <feature .../>
|
|
|
- <debugport .../>
|
|
|
- <debug .../>
|
|
|
- <trace .../>
|
|
|
-
|
|
|
- <subFamily DsubFamily="...">
|
|
|
- ...
|
|
|
- <device Dname="...">
|
|
|
- ...
|
|
|
- </device>
|
|
|
- ...
|
|
|
- </subFamily>
|
|
|
- ...
|
|
|
- </family>
|
|
|
- ...
|
|
|
-</devices>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: family">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_devices "devices"</td>
|
|
|
- <td colspan="3">\ref element_devices</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dfamily</td>
|
|
|
- <td>Name of the device family.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dvendor</td>
|
|
|
- <td>Device vendor name. Use predefined values as listed in the table \ref DeviceVendorEnum "Device Vendor".</td>
|
|
|
- <td>\ref DeviceVendorEnum "DeviceVendorEnum"</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_processor "processor"</td>
|
|
|
- <td>List all processors that are in common to devices of the family.</td>
|
|
|
- <td>ProcessorType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_compile "compile"</td>
|
|
|
- <td>Specify compile or translate options that are relevant to all devices of the family.</td>
|
|
|
- <td>CompileType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugconfig "debugconfig"</td>
|
|
|
- <td>Specify default settings for the debug connection relevant to all devices of the family.</td>
|
|
|
- <td>DebugConfigType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugvars "debugvars"</td>
|
|
|
- <td>Define global debug access variables for settings relevant to all devices of the family unless replaced by debugvars on subFamily, device or variant level</td>
|
|
|
- <td>DebugVarsType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequences "sequences"</td>
|
|
|
- <td>Describe debug access sequences relevant to all devices of the family.</td>
|
|
|
- <td>SequencesType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugport "debugport"</td>
|
|
|
- <td>Describe a debug port relevant to all devices of the family.</td>
|
|
|
- <td>DebugPortType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debug "debug"</td>
|
|
|
- <td>Specify debug options that are relevant to all devices of the family.</td>
|
|
|
- <td>DebugType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace "trace"</td>
|
|
|
- <td>Specify trace options that are relevant to all devices of the family.</td>
|
|
|
- <td>TraceType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_memory "memory"</td>
|
|
|
- <td>Specify memory areas that are available for all devices of the family.</td>
|
|
|
- <td>MemoryType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_algorithm "algorithm"</td>
|
|
|
- <td>Specify Flash programming algorithms that are suitable for all devices.</td>
|
|
|
- <td>AlgorithmType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_book "book"</td>
|
|
|
- <td>Specify documents that are relevant for all devices of a family.</td>
|
|
|
- <td>BookType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_description "description"</td>
|
|
|
- <td>Describe the device family.</td>
|
|
|
- <td>DescriptionType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_environment "environment"</td>
|
|
|
- <td>Specify tool specific settings.</td>
|
|
|
- <td>EnvironmentType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_feature "feature"</td>
|
|
|
- <td>Specify features that are available in all members of the device family.</td>
|
|
|
- <td>FeatureType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td>A optional sub-family that is used to group devices.</td>
|
|
|
- <td>group</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td>Individual devices that belong to the device family.</td>
|
|
|
- <td>DeviceType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_subFamily /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.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
|
|
|
- ...
|
|
|
- <subFamily DsubFamily="...">
|
|
|
- <processor .../>
|
|
|
- <debugconfig .../>
|
|
|
- <debugvars .../>
|
|
|
- <sequences .../>
|
|
|
- <compile .../>
|
|
|
- <memory .../>
|
|
|
- <algorithm .../>
|
|
|
- <book .../>
|
|
|
- <description> Write texte here </description>
|
|
|
- <feature .../>
|
|
|
- <debugport .../>
|
|
|
- <debug .../>
|
|
|
- <trace .../>
|
|
|
- <device Dname="...">
|
|
|
- ...
|
|
|
- </device>
|
|
|
- </subFamily>
|
|
|
-
|
|
|
- <subFamily DsubFamily="STM32F2xx">
|
|
|
- ...
|
|
|
- </subFamily>
|
|
|
-
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: subFamily">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>DsubFamily</td>
|
|
|
- <td>Name of the device sub family.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_processor "processor"</td>
|
|
|
- <td>Specify processors that are available in all devices of the sub-family.</td>
|
|
|
- <td>ProcessorType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_compile "compile"</td>
|
|
|
- <td>Specify compile or translate options that are relevant to all devices of the sub-family.</td>
|
|
|
- <td>CompileType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugconfig "debugconfig"</td>
|
|
|
- <td>Specify default settings for the debug connection relevant to all devices of the sub-family.</td>
|
|
|
- <td>DebugConfigType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugvars "debugvars"</td>
|
|
|
- <td>Define global debug access variables for user-defined settings relevant to all devices of the sub-family.</td>
|
|
|
- <td>DebugVarsType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequences "sequences"</td>
|
|
|
- <td>Describe debug access sequences relevant to all devices of the sub-family.</td>
|
|
|
- <td>SequencesType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugport "debugport"</td>
|
|
|
- <td>Describe a debug port relevant to all devices of the sub-family.</td>
|
|
|
- <td>DebugPortType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debug "debug"</td>
|
|
|
- <td>Specify debug options that are relevant to all devices of the sub-family.</td>
|
|
|
- <td>DebugType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace "trace"</td>
|
|
|
- <td>Specify trace options that are relevant to all devices of the sub-family.</td>
|
|
|
- <td>TraceType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_memory "memory"</td>
|
|
|
- <td>Specify memory areas that are available in all device of the sub-family.</td>
|
|
|
- <td>MemoryType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_algorithm "algorithm"</td>
|
|
|
- <td>Specify Flash programming algorithms that can be used by all device of the sub-family.</td>
|
|
|
- <td>AlgorithmType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_book "book"</td>
|
|
|
- <td>Specify documents relevant for all device of the sub-family.</td>
|
|
|
- <td>BookType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_description "description"</td>
|
|
|
- <td>Description of the device family.</td>
|
|
|
- <td>DescriptionType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_feature "feature"</td>
|
|
|
- <td>Specify features available in devices of the sub-family.</td>
|
|
|
- <td>FeatureType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td>List individual devices that belong to the device sub-family.</td>
|
|
|
- <td>DeviceType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_device /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.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<subFamily DsubFamily="STM32F405">
|
|
|
- ...
|
|
|
- <device Dname="STM32F405OE">
|
|
|
- <memory name="Flash" access="rx" start="0x08000000" size="0x80000" startup="1" default="1"/>
|
|
|
- <algorithm name="Flash/STM32F4xx_1024.flm" start="0x08000000" size="0x80000" default="1" style="Keil"/>
|
|
|
- <feature type="IOs" n="72" name="Input and Output Ports"/>
|
|
|
- </device>
|
|
|
-
|
|
|
- <device Dname="STM32F405OG">
|
|
|
- <memory name="Flash" access="rx" start="0x08000000" size="0x100000" startup="1" default="1"/>
|
|
|
- <algorithm name="Flash/STM32F4xx_1024.flm" start="0x08000000" size="0x100000" default="1" style="Keil"/>
|
|
|
- <feature type="IOs" n="72" name="Input and Output Ports"/>
|
|
|
- </device>
|
|
|
- ...
|
|
|
-</subFamily>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: device">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dname</td>
|
|
|
- <td>Specifies the name of the device. Only alphabetical characters, decimal digits, '-' and '_' are allowed</td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_processor "processor"</td>
|
|
|
- <td>Specify processors that are specific to this device.</td>
|
|
|
- <td>ProcessorType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_compile "compile"</td>
|
|
|
- <td>Specify compile or translate options specific to this device.</td>
|
|
|
- <td>CompileType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugconfig "debugconfig"</td>
|
|
|
- <td>Specify default settings for the debug connection specific to this device.</td>
|
|
|
- <td>DebugConfigType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugvars "debugvars"</td>
|
|
|
- <td>Define debug access variables for user-defined settings specific to this device.</td>
|
|
|
- <td>DebugVarsType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequences "sequences"</td>
|
|
|
- <td>Describe debug access sequences specific to this device.</td>
|
|
|
- <td>SequencesType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugport "debugport"</td>
|
|
|
- <td>Describe a debug port specific to this device.</td>
|
|
|
- <td>DebugPortType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debug "debug"</td>
|
|
|
- <td>Specify debug options specific to this device.</td>
|
|
|
- <td>DebugType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace "trace"</td>
|
|
|
- <td>Specify trace options specific to this device.</td>
|
|
|
- <td>TraceType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_memory "memory"</td>
|
|
|
- <td>Specify memory areas that specific to this device.</td>
|
|
|
- <td>MemoryType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_algorithm "algorithm"</td>
|
|
|
- <td>Specify Flash programming algorithms that can be used by this device.</td>
|
|
|
- <td>AlgorithmType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_book "book"</td>
|
|
|
- <td>Specify documents specific to this device.</td>
|
|
|
- <td>BookType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_description "description"</td>
|
|
|
- <td>Description specific to this device.</td>
|
|
|
- <td>DescriptionType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_feature "feature"</td>
|
|
|
- <td>Specify features specific to this device.</td>
|
|
|
- <td>FeatureType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_variant "variant"</td>
|
|
|
- <td>Complex element specifying a variant of a device.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_algorithm /package/devices/family/.../algorithm
|
|
|
-
|
|
|
-Specify Flash programming algorithms with the address range and its size. An algorithm with
|
|
|
-\<default> set to \token{true} gets configured automatically to the download options of the project.
|
|
|
-Algorithms can be defined on various levels. Multiple \<algorithm> elements are possible. If the
|
|
|
-memory range and style are identical, the one on the lower level takes precedence.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
- ...
|
|
|
- <!-- use for all devices of the family -->
|
|
|
- <algorithm name="Flash\STM32F2xx_512.flm" start=0x08000000 size=0x10000 default="1" style="Keil"/>
|
|
|
-
|
|
|
- <subFamily DsubFamily="STM32F405">
|
|
|
- <!-- use for all devices of a subFamily -->
|
|
|
- <algorithm name="Flash/STM32F2xx_1024.flm" start=0x08000000 size=0x20000 default="1" style="Keil"/>
|
|
|
-
|
|
|
- <device Dname="STM32F405OE">
|
|
|
- <!-- finally, this is the default for the device -->
|
|
|
- <algorithm name="Flash/STM32F2xx_2048.flm" start=0x08000000 size=0x40000 default="1" style="Keil"/>
|
|
|
- </device>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Type: AlgorithmType">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors that require different algorithms</b>.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>name</td>
|
|
|
- <td>Flash Programming Algorithm file including the path, which is relative to the root folder of the \ref CP_SWComponents "Software Pack".</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>start</td>
|
|
|
- <td>Base address for the Flash programming algorithm.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>size</td>
|
|
|
- <td>Size covered by the Flash programming algorithm. End address = start + size - 1</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>RAMstart</td>
|
|
|
- <td>Base address for the RAM where the Flash programming algorithm will be executed from. If
|
|
|
- specified, the \ref element_memory "memory" element does not require a \c default attribute.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>RAMsize</td>
|
|
|
- <td>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 \ref element_memory
|
|
|
- "memory" element does not require a \c default attribute.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>default</td>
|
|
|
- <td>If \token{true}, then this is the default Flash programming algorithm that gets configured
|
|
|
- in a project. If not specified or set to \token{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.
|
|
|
- </td>
|
|
|
- <td>xs:boolean</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>style</td>
|
|
|
- <td>[Version 1.4.0] Today different tool-chains support different styles of incompatible flash
|
|
|
- programming algorithms. The attribute specifies the style of the specified flash programming
|
|
|
- algorithm. For backward compatibility the default value is "Keil". The aim is to converge to
|
|
|
- the <em>CMSIS</em> style.
|
|
|
- </td>
|
|
|
- <td>\ref AlgorithmStyleEnum "AlgorithmStyleEnum"</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_book /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.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<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>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Type: BookType">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors and where the book refers to a single processor only</b>.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>name</td>
|
|
|
- <td>File name of the document including the extension. The document path is relative to the package base folder. Directory/file names are case-sensitive.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>title</td>
|
|
|
- <td>Book title. Can be used for being displayed in various environments.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_compile /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 \b STM32F407IG will have a define \c STM32F407IG. Previous defines
|
|
|
- are overridden.
|
|
|
-- It is good practice to add both attributes (\c header and \c define) in the attributes list of the
|
|
|
- \c compile element together. This clarifies the relationship between header file and define.
|
|
|
-- The name of the header file should be exported by the IDE to the \ref RTE_Components_h file using the \#define CMSIS_device_header.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<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>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: compile">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors if the header and define is different for each processor</b>.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>header</td>
|
|
|
- <td>C-header file with path relative to the installation.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>define</td>
|
|
|
- <td>C-file name with device specific preprocessor defines. The path is relative to the installation.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_description /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 \ref element_feature instead.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<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>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: description">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor Identifier. This attribute <b>is mandatory for devices that embed multiple processors and
|
|
|
- where the description is specific to a single processor</b>.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-
|
|
|
-\section element_environment /package/devices/family/.../environment
|
|
|
-
|
|
|
-Tool-specific elements for a device.
|
|
|
-
|
|
|
-Can occur on various levels.
|
|
|
-
|
|
|
-Contains information that is specific for a <b>development tool</b> identified by the \em name attribute.
|
|
|
-The structure of the \em element is not specified in the schema file which gives the <b>development tool</b>
|
|
|
-full control of the \em element usage.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<package>
|
|
|
- <devices>
|
|
|
- <family Dfamily="MySeries" Dvendor="Generic:5">
|
|
|
- ...
|
|
|
- <environment name="MyConfigTool">
|
|
|
- <file>MyConfigFile.cfg</file>
|
|
|
- <control>MyControlString</control>
|
|
|
- ...
|
|
|
- </environment>
|
|
|
- ...
|
|
|
- </family>
|
|
|
- </devices>
|
|
|
-</package>
|
|
|
-\endcode
|
|
|
-
|
|
|
-\code
|
|
|
-<package>
|
|
|
- <devices>
|
|
|
- <family Dfamily="XMC1000 Series" Dvendor="Infineon:7">
|
|
|
- ...
|
|
|
- <environment name="uv" Pname="M0">
|
|
|
- <CMisc>--C99</CMisc>
|
|
|
- ...
|
|
|
- </environment>
|
|
|
- ...
|
|
|
- </family>
|
|
|
- </devices>
|
|
|
-</package>
|
|
|
-\endcode
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: description">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>name</td>
|
|
|
- <td>Name of the development tool (e.g. "uv" for uVision)</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Identifies the processor the setting belongs to.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>any</td>
|
|
|
- <td>Any element that is available for the specified development tool.<br>
|
|
|
- For uVision, the following elements are available: \<CMisc>, \<AMisc\>, \<LMisc\>, \<preBuild1\>, \<preBuild2\>, \<preRun1\>, \<preRun2\>, \<postBuild1\>, \<postBuild2\>, \<postRun1\>, \<postRun\>.</td>
|
|
|
- <td>xs:anyAttribute</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-
|
|
|
-\section element_feature /package/devices/family/.../feature
|
|
|
-
|
|
|
-This element specifies peripherals that devices can have. This can be used on \b web \b sites for the display of device
|
|
|
-features.
|
|
|
-
|
|
|
-Many device feature types are already predefined, such as timers, converters, Ethernet, USB, etc (for a complete list refer
|
|
|
-to table \ref DeviceFeatureTypeEnum "Device Feature Types"). Features can be defined on various levels. Inner elements
|
|
|
-supersede outer elements.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<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"/> <!-- Adds to 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>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: feature">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor Identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>type</td>
|
|
|
- <td>A feature (peripheral), such as \token{CAN}, \token{DMA}, \token{I/O}, \token{LCD}, etc. Predefined values must be used
|
|
|
- as listed in the table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
- <td>DeviceFeatureTypeEnum</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>n</td>
|
|
|
- <td>Depends on the element \em \b type. Check table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
- <td>xs:decimal</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>m</td>
|
|
|
- <td>Depends on the elemen \em \b type. Check table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
- <td>xs:decimal</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>name</td>
|
|
|
- <td>Descriptive name of the feature. For example, "16-bit down counting timer". If omitted, the <b>Default Name</b> is used
|
|
|
- as described in the table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DeviceFeatureTypeEnum <b>Table: Device Feature Types</b>
|
|
|
-
|
|
|
-The table lists predefined device features (peripherals).
|
|
|
-\note The attribute \a name of the element \ref element_feature is a descriptive text for a feature. If \a name is omitted, then the <b>Default Name</b> is used.
|
|
|
-
|
|
|
-|type=|n=|m=|Default Name|Example|Example shown as|
|
|
|
-|-----|--|--|------------|-------|----------------|
|
|
|
-|NVIC|Number of NVIC Interrupts|N/A|NVIC|\<feature type="NVIC" n="120" name="NVIC"/\>|NVIC with 120 interrupt sources|
|
|
|
-|DMA|Number of DMA Channels|N/A|DMA|\<feature type="DMA" n="16" name="High-Speed DMA"/\>|16-channel High-Speed DMA|
|
|
|
-|Crypto|Bitwidth, given as decimal Number (see example)|N/A|Cryptographic Engine|\<feature type="Crypto" n="128.256" name="HW accelerated AES Encryption Engine"/\>|128/256-bit HW accelerated AES Encryption Engine|
|
|
|
-|RNG|Number of RNGs|N/A|Random Number Generator|\<feature type="RNG" name="True Random Number Generator"/\>|True Random Number Generator|
|
|
|
-|CoreOther|Number of Features|N/A|Other Core Feature|\<feature type="CoreOther" n=1 name="96-bit Unique Identifier"/\>|1 x 96-bit Unique Identifier|
|
|
|
-|Memory|Number of Bytes|N/A|Memory|\<feature type="Memory" n="128" name="EEPROM"/\>|128 byte EEPROM|
|
|
|
-|MemoryOther|Number of Memories|N/A|Other Memory Type|\<feature type="MemoryOther" n="1" name="1 kB MRAM"/\>|1 x 1 kB MRAM|
|
|
|
-|ExtBus|Bitwidth of Bus Interface|N/A|External Bus Interface|\<feature type="ExtBus" n="16" name="External Bus Interface for SRAM Communication"/\>|16-bit External Bus Interface for SRAM Communication|
|
|
|
-|XTAL|Minimum Frequency in Hz|Maximum Frequency in Hz|External Crystal Oscillator|\<feature type="XTAL" n="4000000" m="25000000" name="External Crystal Oscillator"/\>|4 MHz .. 25 MHz External Crystal Oscillator|
|
|
|
-|IntRC|Minimum Frequency in Hz|Maximum Frequency in Hz|Internal RC Oscillator|\<feature type="IntRC" n="16000000" name="Internal RC Oscillator with +/- 1% accuracy"/\>|16 MHz Internal RC Oscillator with +/- 1% accuracy|
|
|
|
-|PLL|Number of PLLs|N/A|PLL|\<feature type="PLL" n="3" name="Internal PLL"/\>|3 Internal PLL|
|
|
|
-|RTC|RTC Frequency|N/A|RTC|\<feature type="RTC" n="32000" name="Internal RTC"/\>|32 kHz Internal RTC|
|
|
|
-|ClockOther|Number of Peripherals|N/A|Other Clock Peripheral|\<feature type="ClockOther" name="My special clock feature"/\>|My special clock feature|
|
|
|
-|PowerMode|Number of Power Modes|N/A|Power Modes|\<feature type="Mode" n="3" name="Run, Sleep, Deep-Sleep"/\>|3 Power Modes: Run, Sleep, Deep-Sleep|
|
|
|
-|VCC|Minimum Supply Voltage|Maximum Supply Voltage|Operating Voltage|\<feature type="VCC" n="1.8" m="3.6"/\>|1.8 V .. 3.6 V|
|
|
|
-|Consumption|Minimum Power Consumption|Typical Power Consumption|Power Consumption|\<feature type="Consumption" n="0.00004" m="0.002" name="Ultra-Low Power Consumption"/\>|40 uW/MHz .. 2 mW/MHz Ultra-Low Power Consumption|
|
|
|
-|PowerOther|Number of Features|N/A|Other Power Feature|\<feature type="PowerOther" n="1" name="POR"/\>|1 x POR|
|
|
|
-|BGA|Number of Balls|N/A|BGA|\<feature type="BGA" n="256" name="Plastic Ball Grid Array"/\>|256-ball Plastic Ball Grid Array|
|
|
|
-|CSP|Number of Leads|N/A|CSP|\<feature type="CSP" n="28" name="Wafer-Level Chip-Scale Package"/\>|28-ball Wafer-Level Chip-Scale Package|
|
|
|
-|PLCC|Number of Leads|N/A|PLCC|\<feature type="PLCC" n="20" name="PLCC Package"/\>|20-lead PLCC Package|
|
|
|
-|QFN|Number of Leads|N/A|QFN|\<feature type="QFN" n="33" name="QFN Package"/\>|33-pad QFN Package|
|
|
|
-|QFP|Number of Leads|N/A|QFP|\<feature type="QFP" n="128" name="Low-Profile QFP Package"/\>|128-lead Low-Profile QFP Package|
|
|
|
-|SOP|Number of Leads|N/A|SOP|\<feature type="SOP" n="16" name="SSOP Package"/\>|16-lead SSOP Package|
|
|
|
-|DIP|Number of Leads|N/A|SOP|\<feature type="DIP" n="16" name="Dual In-Line Package"/\>|16-lead Dual In-Line Package|
|
|
|
-|PackageOther|Number of Pins|N/A|Other Package Type|\<feature type="PackageOther" n="44" name="My other Package"/\>|44-contacts My other Package|
|
|
|
-|IOs|Number of I/Os|N/A|Inputs/Outputs|\<feature type="IOs" n="112" name="General Purpose I/Os, 5V tolerant"/\>|112 General Purpose I/Os, 5V tolerant|
|
|
|
-|ExtInt|Number of External Interrupts|N/A|External Interrupts|\<feature type="ExtInt" n="12"/\>|12 External Interrupts|
|
|
|
-|Temp|Minimum Operating Temperature|Maximum Operating Temperature|Operating Temperature Range|\<feature type="Temp" n="-40" m="105" name="Extended Operating Temperature Range"/\>|-40 °C .. +105 °C Extended Operating Temperature Range|
|
|
|
-|ADC|Number of Channels|Resolution in Bit|ADC|\<feature type="ADC" n="5" m="12" name="High-Performance ADC"/\>|5-channel x 12-bit High-Performance ADC|
|
|
|
-|DAC|Number of Channels|Resolution in Bit|DAC|\<feature type="DAC" n="2" m="10"/\>|2 x 12-bit DAC|
|
|
|
-|TempSens|Number of Sensors|N/A|Temperature Sensor|\<feature type="TempSens" n="1"/\>|1 x Temperature Sensor|
|
|
|
-|AnalogOther|Number of Features|N/A|Other Analog Peripheral|\<feature type="AnalogOther" n="1" name="My Analog"/\>|1 x My Analog|
|
|
|
-|Timer|Number of Channels|Resolution in Bit|Timer/Counter Module|\<feature type="Timer" n="2" m="32" name="Timer Module with Quadrature Encoding"/\>|2 x 32-bit Timer Module with Quadrature Encoding|
|
|
|
-|PWM|Number of Channels|Resolution in Bit|PWM|\<feature type="PWM" n="2" m="16" name="Pulse Width Modulation"/\>|2 x 16-bit Pulse Width Modulation|
|
|
|
-|WDT|Number of Watchdogs|N/A|Watchdog|\<feature type="WDT" n="1"/\>|1 x Watchdog Timer|
|
|
|
-|TimerOther|Number of Features|N/A|Other Timer Peripheral|\<feature type="TimerOther" n="1" name="Quadrature En-/Decoder"/\>|1 x Quadrature En-/Decoder|
|
|
|
-|MPSerial|Number of Serial Peripherals|N/A|Multi-Purpose Serial Peripheral|\<feature type="MPSerial" n="4" name="Multi-Purpose Serial Interface Module: I2C, I2S, SPI, UART"/\>|4 x Multi-Purpose Serial Interface Module: I2C, I2S, SPI, UART|
|
|
|
-|CAN|Number of CAN Interfaces|N/A|CAN|\<feature type="CAN" n="2" name="CAN 2.0b Controller"/\>|2 x CAN 2.0b Controller|
|
|
|
-|ETH|Number of Ethernet Interfaces|Data Rate in Bit/s|Ethernet|\<feature type="ETH" n="1" m="10000000" name="Integrated Ethernet MAC with PHY"/\>|1 x 10 Mbit/s Integrated Ethernet MAC with PHY|
|
|
|
-|I2C|Number of I2C Interfaces|N/A|I2C|\<feature type="I2C" n="2"name="Low-Power I2C"/\>|2 x Low-Power I2C|
|
|
|
-|I2S|Number of I2S Interfaces|N/A|I2S|\<feature type="I2S" n="3"/\>|3 x I2S|
|
|
|
-|LIN|Number of LIN Interfaces|N/A|LIN|\<feature type="LIN" n="4"/\>|4 x LIN|
|
|
|
-|SDIO|Number of SDIO Interfaces|Bitwidth of SDIO Interface|SDIO|\<feature type="SDIO" n="1" m="4" name="SDIO Interface"/\>|1 x 4-bit SDIO Interface|
|
|
|
-|SPI|Number of SPI Interfaces|Data Rate in Bit/s|SPI|\<feature type="SPI" n="2" m="20000000" name="SPI Interface"/\>|2 x 20 Mbit/s SPI Interface|
|
|
|
-|UART|Number of UART Interfaces|Data Rate in Bit/s|UART|\<feature type="UART" n="4" m="3000000" name="High-Speed UART Interface"/\>|4 x 3 Mbit/s High-Speed UART Interface|
|
|
|
-|USART|Number of USART Interfaces|Data Rate in Bit/s|USART|\<feature type="USART" n="2" m="1000000" name="High-Speed USART Interface"/\>|2 x 1 Mbit/s High-Speed USART Interface|
|
|
|
-|USBD|Number of USB Dvice Interfaces|N/A|USB Device|\<feature type="USBD" n="2" name="Full-Speed USB Device"/\>|2 x Full-Speed USB Device|
|
|
|
-|USBH|Number of USB Host Interfaces|N/A|USB Host|\<feature type="USBH" n="2" name="High-Speed USB Host"/\>|2 x High-Speed USB Host|
|
|
|
-|USBOTG|Number of USB OTG Interfaces|N/A|USB OTG|\<feature type="USBOTG" n="1" name="High-Speed USB OTG with PHY"/\>|1 x High-Speed USB OTG with PHY|
|
|
|
-|ComOther|Number of other Communication Peripherals|N/A|Other Communication Peripheral|\<feature type="ComOther" n="1" name="ZigBee"/\>|1 x ZigBee|
|
|
|
-|Camera|Number of Camera Interface|Resolution in Bit|Camera Interface|\<feature type="Camera" n="1" m="8" name="Digital Camera Interface"/\>|1 x 8-bit Digital Camera Interface|
|
|
|
-|GLCD|Number of Graphic LCD Controller|Maximum Resolution as a decimal number (see example)|Graphic LCD Controller|\<feature type="GLCD" n="1" m="320.240" name="TFT LCD Controller"/\>|1 x 320 x 480 pixel TFT LCD Controller|
|
|
|
-|LCD|Number of Segment LCD Controller|Com.Seg as a decimal number (see example)|Segment LCD Controller|\<feature type="LCD" n="1" m="16.40" name="Segment LCD Controller"/\>|1 x 16 x 40 Segment LCD Controller|
|
|
|
-|Touch|Number of Touch Channels|N/A|Capacitive Touch Inputs|\<feature type="Touch" n="10" name="Capacitive Touch Inputs"/\>|10 x Capacitive Touch Inputs|
|
|
|
-|Other|Number of Features|N/A|Other Feature|\<feature type="Other" n="2" name="My other Interface"/\>|2 x My other Interface|
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_memory /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.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-</package>
|
|
|
- ...
|
|
|
- <devices>
|
|
|
- <family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
- <memory name="SRAM" access="rwx" start="0x20000000" size="0x20000" default="1"/>
|
|
|
-
|
|
|
- <subFamily DsubFamily="STM32F407">
|
|
|
- <debug __dp="0" __ap="0" svd="SVD/STM32F40x.svd"/>
|
|
|
- <memory name="SRAM1" access="rwx" start="0x20020000" size="0x20000" default="1"/>
|
|
|
- <memory name="SRAM2" access="rwx" start="0x10000000" size="0x10000" default="1"/>
|
|
|
-
|
|
|
- <device Dname="STM32F407IE">
|
|
|
- <memory name="Flash" access="rx" start="0x08000000" size="0x80000" startup="1" default="1"/>
|
|
|
- </device>
|
|
|
-
|
|
|
- </subFamily>
|
|
|
- </family>
|
|
|
- </devices>
|
|
|
- ...
|
|
|
-</package>
|
|
|
-\endcode
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: memory">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>id (deprecated in Version 1.4.0)</td>
|
|
|
- <td>(deprecated Version 1.4.0) Identifier of the memory region consisting of a type indicator and an index (for example, \token{IRAM1}).
|
|
|
- Predefind values can be selected as defined in \ref MemoryIDTypeEnum.</td>
|
|
|
- <td>MemoryIDTypeEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>name (new in Version 1.4.0)</td>
|
|
|
- <td>unique name of the memory (new in Version 1.4.0) to be used in conjunction with <em>access</em>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>access (new in Version 1.4.0)</td>
|
|
|
- <td>access permission attributes of the memory. See MemoryAccessTypeString for details (new in Version 1.4.0).
|
|
|
- <td>\ref MemoryAccessTypeString "MemoryAccessTypeString"</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>start</td>
|
|
|
- <td>Base address of the memory using a hexadecimal value.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>size</td>
|
|
|
- <td>Size of the memory in bytes using a hexadecimal value.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>default</td>
|
|
|
- <td>Indicates a general purpose memory region, that does not require any special considerations (access speed, remapping, protection, etc.).
|
|
|
- If \token{true}, then an IRAM memory region will be used by the linker for locating any data and an IROM memory region will for locating
|
|
|
- any code. Every device needs at least one default IRAM region.
|
|
|
- If an \ref element_algorithm "algorithm" element is specified (without \c RAMstart and
|
|
|
- \c RAMsize attributes), the first listed IRAM region with default="1" will also be used for executing the flash programming algorithm.</td>
|
|
|
- Default value is \token{false}.
|
|
|
- <td>xs:boolean</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>startup</td>
|
|
|
- <td>If \token{true}, the startup code of the application will be placed into this memory region. Default value is \token{false}.</td>
|
|
|
- <td>xs:boolean</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>alias(new in Version 1.4.0)</td>
|
|
|
- <td>reference to another memory description which shares the same physical memory. Some physical
|
|
|
- memory is made accessible via different addresses, e.g. chached vs. non-cached accesses. This
|
|
|
- avoids the impression that the device has twice as much memory available.
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor MemoryIDTypeEnum <b>Table: Memory ID Types</b>
|
|
|
-
|
|
|
-The table lists identifiers for memory types.
|
|
|
-<table class="cmtable" summary="Enumeration: MemoryIDTypeEnum">
|
|
|
- <tr>
|
|
|
- <th>id=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">RAM<i>x</i></td>
|
|
|
- <td>External RAM. <i>x</i> can have a value between 1..8 </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">ROM<i>x</i></td>
|
|
|
- <td>External ROM. <i>x</i> can have a value between 1..8 </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">IRAM<i>x</i></td>
|
|
|
- <td>Internal RAM. <i>x</i> can have a value between 1..8 </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">IROM<i>x</i></td>
|
|
|
- <td>Internal ROM. <i>x</i> can have a value between 1..8 </td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\anchor MemoryAccessTypeString <b>Table: Memory Access Attribute String</b>
|
|
|
-
|
|
|
-The table lists the letters and their meaning for use in the access attribute string.
|
|
|
-<table class="cmtable" summary="Memory Access Permission Attributes">
|
|
|
- <tr>
|
|
|
- <th>access=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">r</td>
|
|
|
- <td><em>R</em>eadable</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">w</td>
|
|
|
- <td><em>W</em>ritable</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">x</td>
|
|
|
- <td>e<em>X</em>ecutable</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">p</td>
|
|
|
- <td><em>P</em>eripheral area. Details described in SVD.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">s</td>
|
|
|
- <td><em>S</em>ecure attribute</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">n</td>
|
|
|
- <td><em>N</em>on-secure attribute</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">c</td>
|
|
|
- <td>non-secure <em>C</em>allable attribute</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_processor /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 \elem{Pname}. If the information is relevant to
|
|
|
-all processors, no processor must be specified in \elem{Pname}.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<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>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: processor">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>.
|
|
|
- Each processor needs a unique identifier and must be used consistently in the <b>Pname</b> attribute of the elements within the scope of the current device family section.
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
- </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dvendor</td>
|
|
|
- <td>Specfies the device vendor using a predefined string. Use predefined values as listed in the table \ref DeviceVendorEnum "Device Vendor".</td>
|
|
|
- <td>DeviceVendorEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dcore</td>
|
|
|
- <td>Specifies the processor core. Use predefined values as listed in the table \ref DcoreEnum "Device Cores".</td>
|
|
|
- <td>DcoreEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dfpu</td>
|
|
|
- <td>Specifies whether a hardware Floating Point Unit is present in the processor. Use predefined values as listed in the table \ref DfpuEnum "Device FPU".</td>
|
|
|
- <td>DfpuEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dmpu</td>
|
|
|
- <td>Specifies whether a Memory Protection Unit is present in the processor. Use predefined values as listed in the table \ref DmpuEnum "Device MPU".</td>
|
|
|
- <td>DmpuEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dendian</td>
|
|
|
- <td>Specifies the endianess of the processor. Use predefined values as listed in the table \ref DendianEnum "Endinaness".</td>
|
|
|
- <td>DendianEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dclock</td>
|
|
|
- <td>Specifies the max clock frequency of the processor subsystem</td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>DcoreVersion</td>
|
|
|
- <td>Hardware revision of the processor core</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DeviceVendorEnum <b>Table: Device Vendors</b>
|
|
|
-
|
|
|
-The table lists predefined values representing device vendors. The list is extended from time to time (on request by new vendors).
|
|
|
-Contact cmsis@arm.com to ask for an extension. These values can be used in the elements:
|
|
|
-- \ref element_board_mountedDevice
|
|
|
-- \ref element_accept
|
|
|
-- \ref element_require
|
|
|
-- \ref element_deny
|
|
|
-- \ref element_example_board
|
|
|
-- \ref element_board_compatibleDevice
|
|
|
-- \ref element_gen_select
|
|
|
-
|
|
|
-<table class="cmtable" summary="Enumeration: DeviceVendorEnum">
|
|
|
- <tr>
|
|
|
- <th>Dvendor</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Web Link</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Ambiq Micro:120</td>
|
|
|
- <td>Ambiq Micro</td>
|
|
|
- <td>http://www.ambiqmicro.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Analog Devices:1</td>
|
|
|
- <td>Analog Devices</td>
|
|
|
- <td>http://www.analog.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">ARM:82</td>
|
|
|
- <td>ARM Ltd.</td>
|
|
|
- <td>http://www.arm.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Atmel:3</td>
|
|
|
- <td>Atmel Corporation</td>
|
|
|
- <td>http://www.atmel.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">CSR:118</td>
|
|
|
- <td>CSR:</td>
|
|
|
- <td>http://www.csr.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cypress:19</td>
|
|
|
- <td>Cypress Semiconductor</td>
|
|
|
- <td>http://www.cypress.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Dialog Semiconductor:113</td>
|
|
|
- <td>Dialog Semiconductor</td>
|
|
|
- <td>http://www.dialog-semiconductor.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Freescale:78</td>
|
|
|
- <td>Freescale</td>
|
|
|
- <td>http://www.freescale.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Generic:5</td>
|
|
|
- <td>Generic: Not a vendor specific device</td>
|
|
|
- <td></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">GigaDevice:123</td>
|
|
|
- <td>GigaDevice</td>
|
|
|
- <td>http://www.gigadevice.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Holtek:106</td>
|
|
|
- <td>Holtek Microelectronics</td>
|
|
|
- <td>http://www.holtek.com.tw</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Infineon:7</td>
|
|
|
- <td>Infineon Technologies</td>
|
|
|
- <td>http://www.infineon.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Lapis Semiconductor:10</td>
|
|
|
- <td>Lapis Semiconductor</td>
|
|
|
- <td>http://www.lapis-semi.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Maxim:23</td>
|
|
|
- <td>Maxim Integrated</td>
|
|
|
- <td>http://www.maximintegrated.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">MediaTek:129</td>
|
|
|
- <td>MediaTek</td>
|
|
|
- <td>http://www.mediatek.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">MicroSemi:112</td>
|
|
|
- <td>Microsemi</td>
|
|
|
- <td>http://www.microsemi.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Milandr:99</td>
|
|
|
- <td>Milandr</td>
|
|
|
- <td>http://www.milandr.ru</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Nordic Semiconductor:54</td>
|
|
|
- <td>Nordic Semiconductor</td>
|
|
|
- <td>http://www.nordicsemi.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Nuvoton:18</td>
|
|
|
- <td>Nuvoton Technolgy Corp.</td>
|
|
|
- <td>http://www.nuvoton.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">NXP:11</td>
|
|
|
- <td>NXP</td>
|
|
|
- <td>http://www.nxp.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Realtek Semiconductor:124</td>
|
|
|
- <td>Realtek Semiconductor</td>
|
|
|
- <td>http://www.realtek.com.tw</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Redpine Signals:125</td>
|
|
|
- <td>Repine Signals</td>
|
|
|
- <td>http://www.redpinesignals.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Renesas:117</td>
|
|
|
- <td>Renesas</td>
|
|
|
- <td>http://www.renesas.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">ROHM:103</td>
|
|
|
- <td>ROHM</td>
|
|
|
- <td>http://www.rohm.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Samsung:47</td>
|
|
|
- <td>Samsung Semiconductor</td>
|
|
|
- <td>http://www.samsung.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Silicon Labs:21</td>
|
|
|
- <td>Silicon Labs</td>
|
|
|
- <td>http://www.silabs.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Spansion:100</td>
|
|
|
- <td>Spansion (previously Fujitsu)</td>
|
|
|
- <td>http://www.spansion.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">STMicroelectronics:13</td>
|
|
|
- <td>STMicroelectronics</td>
|
|
|
- <td>http://www.st.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Texas Instruments:16</td>
|
|
|
- <td>Texas Instruments</td>
|
|
|
- <td>http://www.ti.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Toshiba:92</td>
|
|
|
- <td>Toshiba Semiconductor</td>
|
|
|
- <td>http://www.toshiba-components.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Triad Semiconductor:104</td>
|
|
|
- <td>Triad Semiconductor</td>
|
|
|
- <td>http://www.triadsemi.com</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">WIZnet:122</td>
|
|
|
- <td>WIZnet</td>
|
|
|
- <td>http://www.wiznet.co.kr</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor AlgorithmStyleEnum <b>Table: Algorithm Styles</b>
|
|
|
-<table class="cmtable" summary="Enumeration: AlgorithmStyleEnum">
|
|
|
- <tr>
|
|
|
- <th>style=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Keil</td>
|
|
|
- <td><a href="http://www.keil.com/pack/doc/CMSIS/Pack/html/_flash_algorithm.html" target="_blank">Flash Programming Algorithm</a> as defined by ARM/Keil</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">IAR</td>
|
|
|
- <td>Flash Programming Algorithm as defined by IAR</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">CMSIS</td>
|
|
|
- <td>To be agreed under CMSIS</td>
|
|
|
- </tr>
|
|
|
-
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-
|
|
|
-\anchor DcoreEnum <b>Table: Device Cores</b>
|
|
|
-
|
|
|
-The table lists available device cores. The list is extended from time to time to reflect new processor cores.
|
|
|
-These values can be used in the elements:
|
|
|
-- \ref element_accept
|
|
|
-- \ref element_require
|
|
|
-- \ref element_deny
|
|
|
-- \ref element_processor
|
|
|
-
|
|
|
-<table class="cmtable" summary="Enumeration: DcoreEnum">
|
|
|
- <tr>
|
|
|
- <th>Dcore=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-M0</td>
|
|
|
- <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m0.php" target="_blank">ARM Cortex-M0</a> processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-M0+</td>
|
|
|
- <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m0plus.php" target="_blank">ARM Cortex-M0+</a> processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-M1</td>
|
|
|
- <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m1.php" target="_blank">ARM Cortex-M1</a> processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-M3</td>
|
|
|
- <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m3.php" target="_blank">ARM Cortex-M3</a> processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-M4</td>
|
|
|
- <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php" target="_blank">ARM Cortex-M4</a> processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-M7</td>
|
|
|
- <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m7-processor.php" target="_blank">ARM Cortex-M7</a> processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">SC000</td>
|
|
|
- <td>SecurCore <a href="http://www.arm.com/products/processors/securcore/sc000.php" target="_blank">SC000</a> based on technology of Cortex-M0.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">SC300</td>
|
|
|
- <td>SecurCore <a href="http://www.arm.com/products/processors/securcore/sc300.php" target="_blank">SC300</a> based on technology of Cortex-M3.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-R4</td>
|
|
|
- <td>ARM Cortex-R4 processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-R5</td>
|
|
|
- <td>ARM Cortex-R5 processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-A8</td>
|
|
|
- <td>ARM Cortex-A8 processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-A9</td>
|
|
|
- <td>ARM Cortex-A9 processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Cortex-A15</td>
|
|
|
- <td>ARM Cortex-A15 processor based device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">*</td>
|
|
|
- <td>Device based on any processor</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-
|
|
|
-\anchor DfpuEnum <b>Table: Device FPU</b>
|
|
|
-
|
|
|
-The table lists values that identicate whether a CPU has an Floating Point Unit (FPU).
|
|
|
-The tokens can be used in the elements:
|
|
|
-- \ref element_accept
|
|
|
-- \ref element_require
|
|
|
-- \ref element_deny
|
|
|
-- \ref element_processor
|
|
|
-
|
|
|
-<table class="cmtable" summary="Enumeration: DfpuEnum">
|
|
|
- <tr>
|
|
|
- <th>Dfpu=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">NO_FPU</td>
|
|
|
- <td>Hardware Floating Point Unit not present</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">FPU</td>
|
|
|
- <td>Hardware Floating Point Unit present</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">SP_FPU</td>
|
|
|
- <td>Single Precision Hardware Floating Point Unit present</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">DP_FPU</td>
|
|
|
- <td>Double Precision Hardware Floating Point Unit present</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DmpuEnum <b>Table: Device MPU</b>
|
|
|
-
|
|
|
-The table shows predefined values that identify whether a CPU has an Memory Protection Unit (MPU).
|
|
|
-The values can be used in the elements:
|
|
|
-- \ref element_accept
|
|
|
-- \ref element_require
|
|
|
-- \ref element_deny
|
|
|
-- \ref element_processor
|
|
|
-
|
|
|
-<table class="cmtable" summary="Enumeration: DmpuEnum">
|
|
|
- <tr>
|
|
|
- <th>Dmpu=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">MPU</td>
|
|
|
- <td>Memory Protection Unit is present</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">NO_MPU</td>
|
|
|
- <td>No Memory Protection Unit is present</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DendianEnum <b>Table: Endianness</b>
|
|
|
-
|
|
|
-The table lists values representing the endianness of a device.
|
|
|
-The values can be used in the elements:
|
|
|
-- \ref element_accept
|
|
|
-- \ref element_require
|
|
|
-- \ref element_deny
|
|
|
-- \ref element_processor
|
|
|
-
|
|
|
-<table class="cmtable" summary="Enumeration: DendianEnum">
|
|
|
- <tr>
|
|
|
- <th>Dendian=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Little-endian</td>
|
|
|
- <td>The least significant byte of a multi-byte access is located at the specified address.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Big-endian</td>
|
|
|
- <td>The most significant byte of a multi-byte access is located at the specified address.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Configurable</td>
|
|
|
- <td>The byte ordering of multi-byte accesses is configurable.</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_debugconfig /package/devices/family/.../debugconfig
|
|
|
-
|
|
|
-Default debugger configuration for a target connection.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <debugconfig default="jtag" clock="10000000" swj="1" sdf="Debug/SDF/lpc4300.sdf"/>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: debugconfig">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>default</td>
|
|
|
- <td>
|
|
|
- Specifies the default debug protocol to use for target connections. Predefined tokens must be used as
|
|
|
- defined in \ref DebugProtocolEnum "Table: Debug Protocol Type". Default value is \token{swd}.
|
|
|
- </td>
|
|
|
- <td>DebugProtocolEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>clock</td>
|
|
|
- <td>Specifies the default debug clock setting in Hz for a target connection. Default value is \token{10000000}.</td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>swj</td>
|
|
|
- <td>
|
|
|
- The device is accessed via a CoreSight SWJ-DP capable of switching between Serial Wire Debug (SWD) and JTAG protocols.
|
|
|
- Default value is \token{true}.
|
|
|
- </td>
|
|
|
- <td>xs:bool</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>sdf</td>
|
|
|
- <td>
|
|
|
- This attribute specifies the filename and path of the system description file (SFD).
|
|
|
- The system description file contains information about CoreSight components, there versions and how they
|
|
|
- are interconnected and hooked to debug and access ports. If not specified an autodetection needs to
|
|
|
- be initiated by the debugger at connection time.
|
|
|
- </td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DebugProtocolEnum <b>Table: Debug Protocol Type</b>
|
|
|
-
|
|
|
-The table lists the values for debug protocol types.
|
|
|
-<table class="cmtable" summary="Enumeration: DataPatchAccessTypeEnum">
|
|
|
- <tr>
|
|
|
- <th>type=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">jtag</td>
|
|
|
- <td>
|
|
|
- JTAG debug protocol.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">swd</td>
|
|
|
- <td>
|
|
|
- ARM Serial Wire Debug (SWD) protocol.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">cjtag</td>
|
|
|
- <td>
|
|
|
- CJTAG concurrent jtag debug protocol.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_debugvars /package/devices/family/.../debugvars
|
|
|
-
|
|
|
-Specify \ref DebugVars "global debug access variables". Use these in addition
|
|
|
-to the \ref PredefinedDebugVars "pre-defined variables" in order to
|
|
|
-query settings from a debug access sequences.<br>
|
|
|
-<br>
|
|
|
-Define debug access variables with statements of the following form.
|
|
|
-\code
|
|
|
-__var uservar = value; // Comment: Define "uservar" and initialize to "value"
|
|
|
-\endcode
|
|
|
-
|
|
|
-\note
|
|
|
-- Initialization values must be constant unsigned numbers. No expressions are allowed.
|
|
|
-- User-defined debug access variables are <b>read-only</b> in a debug access sequence.
|
|
|
-- Pre-defined debug access variables cannot be set in this element.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-
|
|
|
-<family Dfamily="EFM32WG Series" Dvendor="Energy Micro:97">
|
|
|
- ...
|
|
|
- <debugvars configfile="Debug/EFM32WGxxx.dbgconf" version="1.0">
|
|
|
-
|
|
|
- __var __TPIU_pinlocation = 0; // Select one of four possible TPIU pin locations
|
|
|
-
|
|
|
- __var __SWO_pinlocation = 0; // Select one of four possible SWO pin locations
|
|
|
-
|
|
|
- </debugvars>
|
|
|
- ...
|
|
|
- <sequences>
|
|
|
- <sequence name="TraceStart">
|
|
|
- ...
|
|
|
- <block if="__TPIU_pinlocation == 2">
|
|
|
- ...
|
|
|
- <!-- Configure device to use pins as defined for TPIU pin location 2 -->
|
|
|
- ...
|
|
|
- </block>
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- </sequences>
|
|
|
- ...
|
|
|
- <debug __dp="0" __ap="0"/>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: debugvars">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>configfile</td>
|
|
|
- <td>
|
|
|
- Configuration file with path relative to the package base folder (extension *.DBGCONF). This file contains
|
|
|
- assignments of a default value to global debug access variables. This file gets copied to the project folder
|
|
|
- and is editable by the end-user. This file is read by the debugger after processing the global debug access variables.
|
|
|
- By editing the values of the debug access variables, the end-user effectively controls the behavior of sequences.
|
|
|
- The file can only assign new values but must not specify any new debug access variables.
|
|
|
- \ref ConfigWizard "Configuration Wizard Annotations" shall be used within the file to provide a graphical user interface
|
|
|
- for editing configuration options.
|
|
|
- </td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref VersionType "version"</td>
|
|
|
- <td>
|
|
|
- Version refers to the file version of the configfile attribute. If a configfile is specified the version attribute becomes
|
|
|
- mandatory. The version shall be incremented if any changes have been made to the global debug access variable names or default
|
|
|
- values. Based on the version information the tool environment will load a configfile with the version required by the debug
|
|
|
- description. The end-user may be required to update the settings after updating to a new version.
|
|
|
- </td>
|
|
|
- <td>\ref VersionType</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>
|
|
|
- Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set
|
|
|
- for this <b>debugvars</b> element, the debug access variables and <b>configfile</b> of this element
|
|
|
- are only valid for a debug connection to the referenced processor. Otherwise, they are valid for all processors.
|
|
|
- <b>This attribute must be set if defining multiple \em debugvars sections for a device.</b>
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
- </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\b Example: Configuration File
|
|
|
-\code
|
|
|
-// File: EFM32WGxxx.dbgconf
|
|
|
-// Version: 1.0
|
|
|
-// <<< Use Configuration Wizard in Context Menu >>>
|
|
|
-// <h>Trace Pin Setup
|
|
|
- // <o> TPIU Pin Location
|
|
|
-// <0=> Pin Location 0
|
|
|
-// <1=> Pin Location 1
|
|
|
-// <2=> Pin Location 2
|
|
|
-// <3=> Pin Location 3
|
|
|
-// <i> Select TPIU pin location for your board configuration:
|
|
|
-// <i> - Pin Location 0 (TRACECLK: PD7, TRACEDATA0: PD6, TRACEDATA1: PD3, TRACEDATA2: PD4, TRACEDATA3: PD5)
|
|
|
-// <i> - Pin Location 1 (TRACECLK: PF8, TRACEDATA0: PF9, TRACEDATA1: PD13, TRACEDATA2: PB15, TRACEDATA3: PF3)
|
|
|
-// <i> - Pin Location 2 (TRACECLK: PC6, TRACEDATA0: PC7, TRACEDATA1: PD3, TRACEDATA2: PD4, TRACEDATA3: PD5)
|
|
|
-// <i> - Pin Location 3 (TRACECLK: PA6, TRACEDATA0: PA2, TRACEDATA1: PA3, TRACEDATA2: PA4, TRACEDATA3: PA5)
|
|
|
-// <i> Default: Pin Location 0
|
|
|
-__TPIU_pinlocation = 0;
|
|
|
-
|
|
|
-// <o> SWO Pin Location
|
|
|
-// <0=> Pin Location 0
|
|
|
-// <1=> Pin Location 1
|
|
|
-// <2=> Pin Location 2
|
|
|
-// <3=> Pin Location 3
|
|
|
-// <i> Select SWO pin location for your board configuration:
|
|
|
-// <i> - Pin Location 0 (SWO: PF2)
|
|
|
-// <i> - Pin Location 1 (SWO: PC15)
|
|
|
-// <i> - Pin Location 2 (SWO: PD1)
|
|
|
-// <i> - Pin Location 3 (SWO: PD2)
|
|
|
-// <i> Default: Pin Location 0
|
|
|
-__SWO_pinlocation = 0;
|
|
|
-
|
|
|
-// </h>
|
|
|
-// <<< end of configuration section >>>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DebugVars <b>Debug Access Variables</b>
|
|
|
-
|
|
|
-Debug access variables hold 64-bit unsigned integer values and are used in debug access
|
|
|
-sequences to query debugger settings and states. They are <b>read-only</b> within a
|
|
|
-sequence except from a limited set of the \ref PredefinedDebugVars "pre-defined debug access variables".
|
|
|
-Use the <b>debugvars</b> element to specify additional user-defined debug access variables.
|
|
|
-
|
|
|
-
|
|
|
-\anchor PredefinedDebugVars <b>Table: Pre-defined Debug Access Variables</b><br>
|
|
|
-A debugger needs to support a set of pre-defined debug access variables. These are
|
|
|
-described in the following table.
|
|
|
-
|
|
|
-<table class="cmtable" summary="ExpressionType: Pre-defined Debug Access Variables">
|
|
|
- <tr>
|
|
|
- <th>Variable</th>
|
|
|
- <th>Access</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Value=</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>__protocol</pre></td>
|
|
|
- <td>Read-Only</td>
|
|
|
- <td>
|
|
|
- Debug protocol selection and parameters for target connection.
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- The following bit map applies:<br>
|
|
|
- - Bit 0..15: Type
|
|
|
- - \token{0}: Error<br>
|
|
|
- - \token{1}: JTAG<br>
|
|
|
- - \token{2}: Serial Wire Debug (SWD)<br>
|
|
|
- - \token{3}: CJTAG<br>
|
|
|
- - Bit 16: SWJ-DP
|
|
|
- - Bit 17..63: Reserved
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>__connection</pre></td>
|
|
|
- <td>Read-Only</td>
|
|
|
- <td>
|
|
|
- Target connection configuration.
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- The following bit map applies:<br>
|
|
|
- - Bit 0..7: Connection type
|
|
|
- - \token{0}: Error or target is disconnected.
|
|
|
- - \token{1}: Connection for target debug.
|
|
|
- - \token{2}: Connection for downloading application to flash.
|
|
|
- - Bit 8..15: Reset type.
|
|
|
- - \token{0}: Error.
|
|
|
- - \token{1}: Hardware Reset (debugger reset line).
|
|
|
- - \token{2}: System Reset Request.
|
|
|
- - \token{3}: Processor Reset Request ("Vector Reset").
|
|
|
- - Bit 16..63: Reserved
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>__dp</pre></td>
|
|
|
- <td>Read/Write</td>
|
|
|
- <td>
|
|
|
- Debug Port selected for target accesses.<br>
|
|
|
- This variable is initialized when entering a pre-defined debug access
|
|
|
- sequence because of a debug event. The initialization value
|
|
|
- is the <b>__dp</b> as defined for the used <b>debug</b> element.
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- Debug port ID as specified in a <b>debugport</b> element or
|
|
|
- \token{0} if no <b>debugport</b> element exists.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>__ap</pre></td>
|
|
|
- <td>Read/Write</td>
|
|
|
- <td>
|
|
|
- Access Port selected for target accesses.<br>
|
|
|
- This variable is initialized when entering a pre-defined debug access
|
|
|
- sequence because of a debug event. The initialization value
|
|
|
- is the <b>__ap</b> as defined for the used <b>debug</b> element.
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- Access Port index.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>__traceout</pre></td>
|
|
|
- <td>Read-Only</td>
|
|
|
- <td>
|
|
|
- Activated trace outputs (sinks). Additionally holds information on the selected port width if
|
|
|
- a parallel trace port is enabled.
|
|
|
- </td>
|
|
|
- <td style="white-space: nowrap">
|
|
|
- The following bit map applies:<br>
|
|
|
- - Bit 0: Serial Wire Output (SWO) Trace enabled.
|
|
|
- - Bit 1: Parallel Trace Port enabled.
|
|
|
- - Bit 2: Trace Buffer enabled.
|
|
|
- - Bit 3..15: Reserved.
|
|
|
- - Bit 16..21: Selected Parallel Trace Port size.
|
|
|
- - Bit 22..63: Reserved.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>__errorcontrol</pre></td>
|
|
|
- <td>Read/Write</td>
|
|
|
- <td>
|
|
|
- Control variable for debug access error handling. All of its bit
|
|
|
- fields are intialized to \token{0} when entering a pre-defined
|
|
|
- debug access sequence because of a debug event.
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- The following bit map applies:<br>
|
|
|
- - Bit 0: Skip errors if set to \token{1}. A debugger must
|
|
|
- continue the sequence execution.
|
|
|
- - Bit 1..63: Reserved
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_debugport /package/devices/family/.../debugport
|
|
|
-
|
|
|
-Describes a CoreSight debug port of the device and its capabilities. The element can occur on various
|
|
|
-levels. Use unique ID values for the attribute <b>__dp</b> to distinguish multiple <b>debugport</b>
|
|
|
-elements in later references.<br><br>
|
|
|
-<b>debugport</b> elements are required for targets with multiple debug ports. For devices with a
|
|
|
-single debug port these elements can be omitted. If no <b>debugport</b> element exists the only
|
|
|
-allowed <b>__dp</b> ID in later references is \token{0}.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <debugconfig default="jtag" clock="10000000" swj="1"/>
|
|
|
-
|
|
|
- <debugport __dp="0">
|
|
|
- <jtag tapindex="0"/>
|
|
|
- <swd/>
|
|
|
- </debugport>
|
|
|
-
|
|
|
- <debugport __dp="1">
|
|
|
- <jtag tapindex="1"/>
|
|
|
- </debugport>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: debugport">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>__dp</td>
|
|
|
- <td>
|
|
|
- Unique ID of this <b>debugport</b>. It must be used consistently in references within the scope of
|
|
|
- the parent section.
|
|
|
- </td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_dp_jtag "jtag"</td>
|
|
|
- <td>Describe JTAG Test Access Port (TAP) properties of this debug port.</td>
|
|
|
- <td>JtagType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_dp_swd "swd"</td>
|
|
|
- <td>Describe CoreSight Serial Wire Debug Port (SW-DP) properties of this debug port.</td>
|
|
|
- <td>SwdType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_dp_cjtag "cjtag"</td>
|
|
|
- <td>Describe CJTAG Test Access Port (TAP) properties of this debug port.</td>
|
|
|
- <td>CjtagType</td>
|
|
|
- <td>0..1</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-
|
|
|
-\section element_dp_jtag /package/devices/family/.../debugport/jtag
|
|
|
-
|
|
|
-Indicates availability of a JTAG interface for the <b>debugport</b> parent element. Its
|
|
|
-attributes allow the manual override of a debugger's automatic JTAG Test Access Port (TAP)
|
|
|
-detection.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
- ...
|
|
|
- <debugconfig default="swd" clock="10000000" swj="1"/>
|
|
|
-
|
|
|
- <debugport __dp="0">
|
|
|
- <jtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
|
|
|
- <swd idcode="0x2BA01477"/>
|
|
|
- </debugport>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: jtag">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugport "debugport"</td>
|
|
|
- <td colspan="3">\ref element_debugport</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>tapindex</td>
|
|
|
- <td>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 \token{0}. </td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>idcode</td>
|
|
|
- <td>Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. </td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-<!--- finalize when there are multidrop devices available (or when we have DS-5 support for that)
|
|
|
- <tr>
|
|
|
- <td>targetsel</td>
|
|
|
- <td>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. <b>(Unsupported)</b></td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
--->
|
|
|
- <tr>
|
|
|
- <td>irlen</td>
|
|
|
- <td>Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. </td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_dp_swd /package/devices/family/.../debugport/swd
|
|
|
-
|
|
|
-Indicates availability of an ARM Serial Wire Debug (SWD) interface for the <b>debugport</b> parent element.
|
|
|
-Its attributes allow the manual override of SWD port characteristics as read from the target and provide
|
|
|
-information for the port selection in a system with multi-drop SWD support.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
- ...
|
|
|
- <debugconfig default="swd" clock="10000000" swj="1"/>
|
|
|
-
|
|
|
- <debugport __dp="0">
|
|
|
- <jtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
|
|
|
- <swd idcode="0x2BA01477"/>
|
|
|
- </debugport>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: swd">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugport "debugport"</td>
|
|
|
- <td colspan="3">\ref element_debugport</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>idcode</td>
|
|
|
- <td>Specifies the IDCODE of the SWD port. It overrides the value read from the port's IDCODE register. </td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-<!--- finalize when there are multidrop devices available (or when we have DS-5 support for that)
|
|
|
- <tr>
|
|
|
- <td>targetsel</td>
|
|
|
- <td>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 SWD support. It is ignored otherwise. <b>(Unsupported)</b></td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
---->
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_dp_cjtag /package/devices/family/.../debugport/cjtag
|
|
|
-
|
|
|
-Indicates availability of a CJTAG interface for the <b>debugport</b> parent element. Its
|
|
|
-attributes allow the manual override of a debugger's automatic CJTAG Test Access Port (TAP)
|
|
|
-detection.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
- ...
|
|
|
- <debugconfig default="swd" clock="10000000" swj="1"/>
|
|
|
-
|
|
|
- <debugport __dp="0">
|
|
|
- <cjtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
|
|
|
- <swd idcode="0x2BA01477"/>
|
|
|
- </debugport>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: cjtag">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debugport "debugport"</td>
|
|
|
- <td colspan="3">\ref element_debugport</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>tapindex</td>
|
|
|
- <td>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 \token{0}. </td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>idcode</td>
|
|
|
- <td>Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. </td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>irlen</td>
|
|
|
- <td>Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. </td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_sequences /package/devices/family/.../sequences
|
|
|
-
|
|
|
-Container for debug access sequences for this device.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <sequences>
|
|
|
- ...
|
|
|
- <sequence name="DebugCoreStart" Pname="Cortex-M0">
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- ...
|
|
|
- <sequence name="ResetSystem" Pname="Cortex-M4">
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- ...
|
|
|
- <sequence name="TraceStart" Pname="Cortex-M4">
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- ...
|
|
|
- </sequences>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: sequences">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequence "sequence"</td>
|
|
|
- <td>
|
|
|
- Describe a debug access sequence.
|
|
|
- </td>
|
|
|
- <td>SequenceType</td>
|
|
|
- <td>1..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_sequence /package/devices/family/.../sequences/sequence
|
|
|
-
|
|
|
-Describes a Debug Access Sequence which contains <b>control</b> and
|
|
|
-<b>block</b> elements. <b>block</b> elements contains statements
|
|
|
-including calls to \ref DebugFunctions "Debug Access Functions". A Debug
|
|
|
-Access Sequence overrides or extends the default functionality of a development tool.
|
|
|
-Refer to \ref usage_of_sequences for details.<br>
|
|
|
-
|
|
|
-\note
|
|
|
-- <b>control</b> elements can contain other <b>control</b> and <b>block</b>
|
|
|
- elements. <b>The maximum nesting of \em control elements is 10.</b>
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="Generic Family" Dvendor="Generic:5">
|
|
|
- ...
|
|
|
- <sequences>
|
|
|
- ...
|
|
|
- <sequence name="UserSequence">
|
|
|
-
|
|
|
- <block info="Define variables and do debug accesses">
|
|
|
- __var tpWidth = (__traceout & 0x003F0000) >> 16;
|
|
|
- ...
|
|
|
- </block>
|
|
|
-
|
|
|
- <control if="__traceout & 0x2" info="Parallel Trace Port enabled">
|
|
|
-
|
|
|
- <block>
|
|
|
- // Do something generic for parallel trace port trace
|
|
|
- ...
|
|
|
- </block>
|
|
|
-
|
|
|
- <control if="tpWidth == 1" info="Configure device for 1-bit TPIU trace.">
|
|
|
-
|
|
|
- <block>
|
|
|
- // Do debug accesses
|
|
|
- ...
|
|
|
- </block>
|
|
|
-
|
|
|
- </control>
|
|
|
-
|
|
|
- <control if="tpWidth == 2" info="Configure device for 2-bit TPIU trace.">
|
|
|
-
|
|
|
- <block>
|
|
|
- // Do debug accesses
|
|
|
- ...
|
|
|
- </block>
|
|
|
-
|
|
|
- </control>
|
|
|
-
|
|
|
- <control if="tpWidth == 4" info="Configure device for 4-bit TPIU trace.">
|
|
|
-
|
|
|
- <block>
|
|
|
- // Do debug accesses
|
|
|
- ...
|
|
|
- </block>
|
|
|
-
|
|
|
- </control>
|
|
|
-
|
|
|
- </control>
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- ...
|
|
|
- </sequences>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: sequence">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequences "sequences"</td>
|
|
|
- <td colspan="3">\ref element_sequences</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>name</td>
|
|
|
- <td>Name of the Debug Access Sequence:<br>
|
|
|
- - Pre-defined names are executed by the development tool described under \ref usage_of_sequences.
|
|
|
- - Any Debug Access Sequence can be executed the \ref DebugFunctions "debug access function" <b>Sequence</b>.
|
|
|
- </td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>
|
|
|
- Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set
|
|
|
- for this <b>sequence</b> element, a debugger executes the debug access sequence only for a debug connection
|
|
|
- to the referenced processor. Otherwise, it is executed for all processors.
|
|
|
- <b>This attribute must be set if defining multiple implementations of the same debug access sequence.</b>
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
- </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>disable</td>
|
|
|
- <td>Disables execution of the \ref default_sequences "Default Debug Access Sequence".</td>
|
|
|
- <td>xs:boolean</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>info</td>
|
|
|
- <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_seq_control "control"</td>
|
|
|
- <td>
|
|
|
- Describe a debug access sequence flow control element.
|
|
|
- </td>
|
|
|
- <td>SequenceControlType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_seq_block "block"</td>
|
|
|
- <td>
|
|
|
- Describe a block of debug accesses.
|
|
|
- </td>
|
|
|
- <td>SequenceBlockType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor sequences_names <b>Table: Pre-defined Debug Access Sequences</b>
|
|
|
-
|
|
|
-The following table list the Pre-defined Debug Access Sequences.
|
|
|
-For sequences that are not specified in a <b>sequence</b> element \ref default_sequences are executed.
|
|
|
-Refer to \ref usage_of_sequences Usage for more information about the execution of these sequences.
|
|
|
-
|
|
|
-<table class="cmtable" summary="Enumeration: SequenceNameEnum">
|
|
|
- <tr>
|
|
|
- <th>name=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref DebugPortSetup</td>
|
|
|
- <td>Prepare the target debug port for connection; is executed before acquiring access to the debug port.<br>
|
|
|
- May include for example an SWJ-DP switch sequence as defined in the ARM Debug Interface (ADI) Architecture Specification.<br>
|
|
|
- <b>This sequence must not contain debug port/access port register and target memory accesses other than:</b>
|
|
|
- - <b>Reading the \em DPIDR debug port register to release an SWD connection from its line reset.</b>
|
|
|
- - <b>Writing the \em TARGETSEL debug port register (SWD protocol v2).</b>
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref DebugPortStart</td>
|
|
|
- <td>Connect to the target debug port and power it up; is executed after DebugPortSetup.<br>
|
|
|
- The parent <b>debugport</b> is default debug port for this sequence.<br>
|
|
|
- <b>This sequence must not contain access port register and target memory accesses.</b></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref DebugPortStop</td>
|
|
|
- <td>Power down and disconnect from target debug port.<br>
|
|
|
- Executed as last step during target disconnect unless another debugger connection to this port is active. The parent
|
|
|
- <b>debugport</b> is default debug port for this sequence.<br>
|
|
|
- <b>This sequence must not contain access port register and target memory accesses.</b></td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">DebugDeviceUnlock</td>
|
|
|
- <td>Check if the device is in a locked state and unlock it. Use <b>query</b> command elements
|
|
|
- for user confirmation.<br>
|
|
|
- Executed after having powered up the debug port.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref DebugCoreStart</td>
|
|
|
- <td>Initialize core debug system.<br>
|
|
|
- Executed after having connected and powered up the default debug port for the connection.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref DebugCoreStop</td>
|
|
|
- <td>Uninitialize core debug system.<br>
|
|
|
- Executed as last step during disconnect before powering down any debug ports no longer required for
|
|
|
- concurrent connections.</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">DebugCodeMemRemap</td>
|
|
|
- <td>Remap memory to execution location.<br>
|
|
|
- Executed before verifying memory content after flash programming. This is required to replicate a memory remap of a device bootloader (that is not executed during debug connection).
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetSystem</td>
|
|
|
- <td>Execute a system-wide reset via software mechanisms.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetProcessor</td>
|
|
|
- <td>Execute a processor reset via software mechanisms.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetHardware</td>
|
|
|
- <td>Execute a system-wide reset via the dedicated debugger reset line, e.g. nRST.
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetHardwareAssert</td>
|
|
|
- <td>Assert a system-wide reset via the dedicated debugger reset line, e.g. nRST.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetHardwareDeassert</td>
|
|
|
- <td>Deassert a system-wide reset via the dedicated debugger reset line, e.g. nRST.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetCatchSet</td>
|
|
|
- <td>Executed before a target reset to configure the vector catch to stop code execution after the reset.<br>
|
|
|
- The implementation of <b>ResetCatchSet</b> requires an implementation of <b>ResetCatchClear</b>
|
|
|
- to free any hardware resources used for stopping the core.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">\ref ResetCatchClear</td>
|
|
|
- <td>Executed after a target reset to free hardware resources allocated by <b>ResetCatchSet</b>.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">FlashEraseDone</td>
|
|
|
- <td>
|
|
|
- Executed after erasing flash memory.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">FlashProgramDone</td>
|
|
|
- <td>
|
|
|
- Eexecuted after programming flash memory.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">TraceStart</td>
|
|
|
- <td>Enable target trace capture.<br>
|
|
|
- Executed before the debugger powers up and configures standard CoreSight trace components, e.g. after the initial target connection
|
|
|
- as well as after a system-wide reset.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">TraceStop</td>
|
|
|
- <td>Disable target trace capture.<br>
|
|
|
- Executed after the debugger disabled and powered down standard CoreSight trace components.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">RecoverySupportStart</td>
|
|
|
- <td>Executed before step or run command to support recovery from a lost target connection, e.g. after a low power mode.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">RecoverySupportStop</td>
|
|
|
- <td>Executed after step or run command in context of the <b>RecoverySupportStart</b> sequence.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">RecoveryAcknowledge</td>
|
|
|
- <td>Debugger acknowledge after recovering from a lost target connection. Can be executed independently
|
|
|
- from a <b>RecoverySupportStart</b> sequence.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_seq_control /package/devices/family/.../sequences/sequence/control
|
|
|
-
|
|
|
-Describes flow control like <b>if</b> and <b>while</b> blocks for debug access sequences.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="Generic Family" Dvendor="Generic:5">
|
|
|
- ...
|
|
|
- <sequences>
|
|
|
- ...
|
|
|
- <sequence name="UserSequence">
|
|
|
- ...
|
|
|
- <block info="Define variables and do debug accesses">
|
|
|
- __var doIfBlock = 1;
|
|
|
- __var whileCondition = 1;
|
|
|
- ...
|
|
|
- </block>
|
|
|
- ...
|
|
|
- <control if="doIfBlock">
|
|
|
-
|
|
|
- <block>
|
|
|
- // Do debug accesses
|
|
|
- ...
|
|
|
- </block>
|
|
|
-
|
|
|
- </control>
|
|
|
- ...
|
|
|
- <control while="whileCondition" timeout="5000">
|
|
|
-
|
|
|
- <block>
|
|
|
- // Execute while "whileCondition" different from '0' with a timeout of 5ms
|
|
|
- whileCondition = 0;
|
|
|
- </block>
|
|
|
-
|
|
|
- </control>
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- ...
|
|
|
- </sequences>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: control">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequence "sequence"</td>
|
|
|
- <td colspan="3">\ref element_sequence</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_seq_control "control"</td>
|
|
|
- <td colspan="3">\ref element_seq_control</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attribute</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>if</td>
|
|
|
- <td>
|
|
|
- Expression describing the condition under which to execute this sequence block.
|
|
|
- The block is skipped if the condition resolved to \token{false}. Defaults to
|
|
|
- \token{true} if not set.
|
|
|
- Refer to \ref ExpressionType "Expression Rules" for the syntax.
|
|
|
- </td>
|
|
|
- <td>ExpressionType</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>while</td>
|
|
|
- <td>
|
|
|
- Expression describing a while-condition. The execution of the block contents is
|
|
|
- repeated while the condition resolves to \token{true}, or until an optional
|
|
|
- <b>timeout</b> is reached.
|
|
|
- Refer to \ref ExpressionType "Expression Rules" for the syntax.
|
|
|
- </td>
|
|
|
- <td>ExpressionType</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>timeout</td>
|
|
|
- <td>
|
|
|
- Timeout in microseconds for a <b>block</b> with a <b>while</b> condition. A debugger must
|
|
|
- extend the timeout to the closest possible time granularity. If the timeout is reached,
|
|
|
- the current iteration including a last evaluation of the <b>while</b> condition must
|
|
|
- finish. A value of \token{0} disables the timeout.<br>
|
|
|
- This attribute defaults to \token{0}.
|
|
|
- </td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>info</td>
|
|
|
- <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_seq_control "control"</td>
|
|
|
- <td>
|
|
|
- Describe a debug access sequence flow control element.
|
|
|
- </td>
|
|
|
- <td>SequenceControlType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_seq_block "block"</td>
|
|
|
- <td>
|
|
|
- Describe a block of debug accesses.
|
|
|
- </td>
|
|
|
- <td>SequenceBlockType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_seq_block /package/devices/family/.../sequences/sequence/block
|
|
|
-
|
|
|
-Describes a block of debug accesses. See \ref DebugSyntaxRules "Debug Access Syntax Rules"
|
|
|
-for details on the allowed syntax of the block contents.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="Generic Family" Dvendor="Generic:5">
|
|
|
- ...
|
|
|
- <sequences>
|
|
|
- ...
|
|
|
- <sequence name="UserSequence">
|
|
|
- ...
|
|
|
- <block info="Define condition variales for later use in block elements.">
|
|
|
- // Variable definition by __var keyword
|
|
|
- __var doIfBlock = 1;
|
|
|
- __var whileCondition = 1;
|
|
|
- </block>
|
|
|
- ...
|
|
|
- </sequence>
|
|
|
- ...
|
|
|
- </sequences>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: block">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_sequence "sequence"</td>
|
|
|
- <td colspan="3">\ref element_sequence</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_seq_control "control"</td>
|
|
|
- <td colspan="3">\ref element_seq_control</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attribute</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>atomic</td>
|
|
|
- <td>
|
|
|
- Instruct the debugger to execute the block contents atomically; a debugger needs to
|
|
|
- download and buffer all debug accesses to the debug probe and finish the
|
|
|
- execution without further communication to the host PC. If a debugger cannot
|
|
|
- support an atomic block it must abort the execution of the debug access sequence.<br>
|
|
|
- </td>
|
|
|
- <td>xs:boolean</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>info</td>
|
|
|
- <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<b>Atomic Blocks:</b>
|
|
|
-- Do not use debug access results for subsequent accesses in the same atomic block.
|
|
|
-- Support for atomic blocks is highly debugger dependent. Keep them as short and simple as possible
|
|
|
-to address a wide range of debuggers.
|
|
|
-- <b>Query</b> and <b>Sequence</b> debug access functions must not be used in an atomic block.
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DebugSyntaxRules <b>Debug Access Syntax Rules</b>
|
|
|
-
|
|
|
-Debug accesses are described in <b>block</b> elements of a debug access sequence (<b>sequence</b> element).
|
|
|
-The following syntax is used for this purpose:
|
|
|
-- The contents of a <b>block</b> element is a series of statements.
|
|
|
-- Each statement must begin in a new line and is terminated by a \token{;} character.
|
|
|
-- A typical statement consists of variable, followed by a \token{=} character and an expression, where the
|
|
|
-\token{=} character is an assignment of the \ref ExpressionType "expression" result to the variable:
|
|
|
-\code
|
|
|
-variable = expression;
|
|
|
-\endcode
|
|
|
-- Alternatively, a statement can be a sole \ref ExpressionType "expression" without storing its result
|
|
|
-to a variable.
|
|
|
-\code
|
|
|
-expression;
|
|
|
-\endcode
|
|
|
-- Comments begin with two slashes (\token{//}) and end with a linebreak:
|
|
|
-\code
|
|
|
-// Whole line is a comment
|
|
|
-variable = expression; // Comment appended to statement
|
|
|
-\endcode
|
|
|
-- Variables must be defined using the keyword \token{__var}. The definition must include an initalization
|
|
|
- of the variable:
|
|
|
-\code
|
|
|
-__var variable = 0;
|
|
|
-\endcode
|
|
|
-- Variables can be defined only once within a scope. Scopes beging with entering a debug access
|
|
|
- sequence or a <b>control</b> element. They are extended to child <b>control</b> elements.
|
|
|
- Variables of a parent scope can be modified. Leaving a scope destroys all variables defined in it.<br>
|
|
|
- <b>\em block elements do not begin a new scope.</b>
|
|
|
-\code
|
|
|
-<sequence name="MySequence">
|
|
|
-
|
|
|
- <block info="Block 1">
|
|
|
- __var condvar = 1;
|
|
|
- __var myvar1 = 5;
|
|
|
- __var myvar2 = 0;
|
|
|
- </block>
|
|
|
-
|
|
|
- <control if="condvar">
|
|
|
- <block>
|
|
|
- // __var myvar1 = 2; // Redefinition, not allowed!
|
|
|
- __var myvar3 = 2;
|
|
|
- myvar2 = myvar1 + myvar3; // Assign value (5+2) = 7
|
|
|
- </block>
|
|
|
- </control>
|
|
|
-
|
|
|
- <block info="Block 2">
|
|
|
- myvar1 = myvar2 + 1; // Variable myvar1 holds the value '8' after this statement
|
|
|
- // myvar2 = myvar3; // myvar3 does not exist in this scope, not allowed!
|
|
|
- </block>
|
|
|
-
|
|
|
-</sequence>
|
|
|
-\endcode
|
|
|
-- The debug access variables <b>__dp</b>, <b>__ap</b>, and <b>__errorcontrol</b> can be modified
|
|
|
- within a debug access sequence. An assigned value is held until leaving the sequence. Calling
|
|
|
- another sequence by the <b>Sequence</b> debug access function will push their values on a
|
|
|
- sequence execution stack. The values are restored when returning from such a call.
|
|
|
-
|
|
|
-
|
|
|
-\anchor ExpressionType <b>Expression Rules</b>
|
|
|
-
|
|
|
-Expressions are used in various places to describe one of the following:
|
|
|
-- A value as assigned in a \ref DebugSyntaxRules "debug access statement".
|
|
|
-- A condition to use in the <b>if</b> attribute of a <b>control</b> element.
|
|
|
-- A condition to use in the <b>while</b> attribute of a <b>control</b> element.
|
|
|
-- A parameter to a debug access function as described below.
|
|
|
-
|
|
|
-An expression may consist of the following:
|
|
|
-- Constant numbers in decimal and hexadecimal representation (prefix \token{0x}).
|
|
|
-- Arithmetic operators such as \token{+}, \token{-}, \token{*}, \token{/}, and \token{%}.
|
|
|
-- Bit-arithmetic operators such as \token{&}, \token{|}, \token{~}, \token{^}, \token{>>}, and \token{<<}.
|
|
|
-- Comparison-operators such as \token{==}, \token{!=}, \token{<}, \token{>}, \token{<=}, and \token{>=}.
|
|
|
-- Logic operators such as \token{!}, \token{&&}, \token{||}, and \token{==}.
|
|
|
-- Conditional expression operations like: \code (x < y) ? a : b \endcode
|
|
|
-- Precedence of sub-expressions is indicated by brackets (\token{(}, \token{)}). C-like precedence applies
|
|
|
- if brackets are omitted.
|
|
|
-- References to \ref DebugVars "debug access variables" for evaluating debug settings.
|
|
|
-- Calls to \ref DebugFunctions "debug access functions".
|
|
|
-
|
|
|
-\note
|
|
|
-- All values used in expressions resolve to 64-bit unsigned integer values.
|
|
|
-- All logic-operations and comparisons resolve to the value \token{1} if true, to \token{0} otherwise.
|
|
|
-- XML prohibits the use of the characters \token{&}, \token{<}, and \token{>}. Use the corresponding
|
|
|
- XML entity names instead: \token{&amp;}, \token{&lt;}, and \token{&gt;}.
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DebugFunctions <b>Table: Debug Access Functions</b>
|
|
|
-
|
|
|
-Debug access functions can be called in expressions in order to interact with the target device
|
|
|
-and the user. Parameters to functions can again be expressions.<br>
|
|
|
-By default, a debugger must abort the execution of a debug access sequence if a function call fails.
|
|
|
-However, this behavior can be controlled from a sequence by the <b>__errorcontrol</b>
|
|
|
-\ref DebugVars "debug access variable".<br>
|
|
|
-<br>
|
|
|
-The following table describes the existing debug access functions, their parameters and the
|
|
|
-debug access variables which are evaluated for the function call.
|
|
|
-
|
|
|
-<table class="cmtable" summary="ExpressionType: debug access functions">
|
|
|
- <tr>
|
|
|
- <th>Function</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Sequence("name")</pre></td>
|
|
|
- <td>
|
|
|
- Execute a debug access sequence.
|
|
|
- Calling a sequence by this function causes the modifiable debug access variables <b>__dp</b>,
|
|
|
- <b>__ap</b>, and <b>__errorcontrol</b> to be pushed on a sequence execution stack. Returning
|
|
|
- from such a call will restore the state of these variables.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - name: Name of the sequence to execute. It must be enclosed by quotes.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Read8(addr)</pre></td>
|
|
|
- <td>
|
|
|
- Read an 8-bit value from target memory.
|
|
|
- <b>A device must support native 8-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to read from.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The 8-bit value as read from target memory.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Read16(addr)</pre></td>
|
|
|
- <td>
|
|
|
- Read an 16-bit value from target memory.
|
|
|
- <b>A device must support native 16-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to read from.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The 16-bit value as read from target memory.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Read32(addr)</pre></td>
|
|
|
- <td>
|
|
|
- Read an 32-bit value from target memory.
|
|
|
- <b>A device must support native 32-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to read from.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The 32-bit value as read from target memory.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Read64(addr)</pre></td>
|
|
|
- <td>
|
|
|
- Read an 64-bit value from target memory.
|
|
|
- <b>A device must support native 64-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to read from.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The 64-bit value as read from target memory.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>ReadAP(addr)</pre></td>
|
|
|
- <td>
|
|
|
- Read a 32-bit value from an access port register.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: AP register address to read from. Addresses larger than \token{0xF} automatically cause
|
|
|
- an AP register bank switch.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The 32-bit value as read from the AP register.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>ReadDP(addr)</pre></td>
|
|
|
- <td>
|
|
|
- Read a 32-bit value from a debug port register.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: DP register address to read from.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The 32-bit value as read from the DP register.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Write8(addr, val)</pre></td>
|
|
|
- <td>
|
|
|
- Write an 8-bit value to target memory.
|
|
|
- <b>A device must support native 8-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to write to.
|
|
|
- - val: Value to write.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Write16(addr, val)</pre></td>
|
|
|
- <td>
|
|
|
- Write a 16-bit value to target memory.
|
|
|
- <b>A device must support native 16-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to write to.
|
|
|
- - val: Value to write.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Write32(addr, val)</pre></td>
|
|
|
- <td>
|
|
|
- Write a 32-bit value to target memory.
|
|
|
- <b>A device must support native 32-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to write to.
|
|
|
- - val: Value to write.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Write64(addr, val)</pre></td>
|
|
|
- <td>
|
|
|
- Write a 64-bit value to target memory.
|
|
|
- <b>A device must support native 64-bit memory accesses for this function to succeed.</b><br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to write to.
|
|
|
- - val: Value to write.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>WriteAP(addr, val)</pre></td>
|
|
|
- <td>
|
|
|
- Write a 32-bit value to an access port register.
|
|
|
- Addresses larger than 0xF automatically cause an AP register bank switch.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to write to.
|
|
|
- - val: Value to write.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
- - __ap: The access port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>WriteDP(addr, val)</pre></td>
|
|
|
- <td>
|
|
|
- Write a 32-bit value to a debug port register.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - addr: Memory address to write to.
|
|
|
- - val: Value to write.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>DAP_Delay(delay)</pre></td>
|
|
|
- <td>
|
|
|
- Debug probe command to wait for a specific delay.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - delay: Wait time in microseconds.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>DAP_WriteABORT(value)</pre></td>
|
|
|
- <td>
|
|
|
- Debug probe command to write an abort request to the CoreSight
|
|
|
- ABORT register of the target debug port.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - value: 32-bit value to write into the CoreSight ABORT register.
|
|
|
-
|
|
|
- <b>Debug Access Variables:</b><br>
|
|
|
- - __dp: The debug port to use for this memory access.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>DAP_SWJ_Pins(pinout, pinselect, pinwait)</pre></td>
|
|
|
- <td>
|
|
|
- Debug proble command to monitor and control the I/O Pins including the nRESET
|
|
|
- device reset line.<br>
|
|
|
- <b>I/O Pin Mapping</b> for <b>pinout</b>, <b>pinselect</b>, and <b>pinwait</b>:
|
|
|
- - Bit 0: SWCLK/TCK
|
|
|
- - Bit 1: SWDIO/TMS
|
|
|
- - Bit 2: TDI
|
|
|
- - Bit 3: TDO
|
|
|
- - Bit 5: nTRST
|
|
|
- - Bit 7: nRESET
|
|
|
-
|
|
|
- <br>
|
|
|
- The <b>pinwait</b> time is useful in systems where the nRESET pin is implemented as open-drain
|
|
|
- output. After nRESET is de-asserted by the debugger, external circuit may still hold the
|
|
|
- target Device under reset for a time. Using the <b>pinwait</b> time, the debugger may monitor
|
|
|
- selected I/O Pins and wait until they the expected value appears or a timeout expires.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - pinout: Value for selected output pins.
|
|
|
- - pinselect: Selects which output pins will be modified.
|
|
|
- - pinwait: Wait timeout for the selected output to stabilize. A debugger must extend this timeout
|
|
|
- to the closest possible time granularity.
|
|
|
- - 0 = no wait
|
|
|
- - 1 .. 3000000 = time in microseconds (max 3s)
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The state of the I/O Pins at the end of this operation. If a debugger is not
|
|
|
- capable of monitoring the I/O Pins, it must return a value of \token{0xFFFFFFFF}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>DAP_SWJ_Clock(val)</pre></td>
|
|
|
- <td>
|
|
|
- Debug probe command to set the clock frequency for JTAG and SWD communication mode.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - val: Maximum SWD/JTAG Clock (SWCLK/TCK) value in Hz.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>DAP_SWJ_Sequence(cnt, val)</pre></td>
|
|
|
- <td>
|
|
|
- Debug probe command to generate required SWJ sequences, e.g. for SWD/JTAG Reset, SWD<->JTAG
|
|
|
- switch and Dormant operation.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - cnt: Number of bits in sequence: 1..64. Larger sequences need to be implemented by multiple
|
|
|
- subsequent <b>DAP_SWJ_Sequence</b> calls. Such a sequence of <b>DAP_SWJ_Sequence</b> commands
|
|
|
- must be encapsulated in an atomic <b>block</b> to ensure correct execution.
|
|
|
- - val: Sequence generated on SWDIO/TMS (with clock \@SWCLK/TCK), LSB transmitted first.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Always returns \token{0}.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>DAP_JTAG_Sequence(cnt, tms, tdi)</pre></td>
|
|
|
- <td>
|
|
|
- Debug probe command to generate a JTAG sequence with fixed TMS value and capture TDO.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - cnt: Length of the JTAG sequence (number of TCK cycles and TDI bits): 1..64
|
|
|
- - tms: Fixed TMS value: 0..1
|
|
|
- - tdi: Data generated on TDI with one bit per TCK cycle, LSB transmitted first.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- Data captured from TDO with one bit per TCK cycle, LSB captured first and padded with \token{0}s.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td style="white-space: nowrap"><pre>Query(type, "message", default)</pre></td>
|
|
|
- <td>
|
|
|
- Query user input. The sequence execution stalls depending on the used <b>type</b>. If the
|
|
|
- debugger runs in a batch mode, this function returns the value <b>default</b>.<br>
|
|
|
- <br>
|
|
|
- <b>Parameters:</b><br>
|
|
|
- - type: Query type. Can be one of:
|
|
|
- - \token{0} : <b>Query_Ok</b>, displays an informative message which has to be confirmed by the user. This
|
|
|
- type allows the result <b>OK</b>.
|
|
|
- - \token{1} : <b>Query_YesNo</b>, displays a query with the allowed results <b>Yes</b> and <b>No</b>.
|
|
|
- - \token{2} : <b>Query_YesNoCancel</b>, displays a query with the allowed results <b>Yes</b>, <b>No</b>,
|
|
|
- and <b>Cancel</b>.
|
|
|
- - \token{3} : <b>Query_OkCancel</b>, displays a query with the allowed results <b>OK</b> and <b>Cancel</b>.
|
|
|
- - message: A constant string with the query message to display. It must not be an expression and it must be
|
|
|
- enclosed by quotes.
|
|
|
- - default: The default value to return if the debugger runs in batch mode. See <b>Return Values</b>
|
|
|
- for a list of allowed values.
|
|
|
-
|
|
|
- <b>Return Value:</b><br>
|
|
|
- The result of the query. The user input maps to the following numbers:
|
|
|
- - Error : \token{0}
|
|
|
- - OK : \token{1}
|
|
|
- - Cancel : \token{2}
|
|
|
- - Yes : \token{3}
|
|
|
- - No : \token{4}
|
|
|
-
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-\note
|
|
|
-- Target memory access functions must perform a debug access of the size indicated by their name.
|
|
|
- The target system must support debug accesses of this size.
|
|
|
-- Results of all functions are casted to 64-bit unsigned integer values.
|
|
|
-- Some target access functions determine the used debug and access port by the current values of
|
|
|
- the <b>__dp</b> and <b>__ap</b> debug access variables. If a target access requires a different
|
|
|
- debug or access port than the default ones, it must change these values. This change is held
|
|
|
- until finishing the sequence the change has occurred in.
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-
|
|
|
-\section element_debug /package/devices/family/.../debug
|
|
|
-
|
|
|
-Describes configuration settings, default values, and patches for data accesses for a debug connection. Multiple <b>debug</b>
|
|
|
-elements can be defined which are either specific to a processor identified by attribute <b>Pname</b>, or which apply
|
|
|
-to all connections.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <debug Pname="Cortex-M4" __dp="0" __ap="0" svd="SVD/LPC43xx.svd">
|
|
|
- ...
|
|
|
- </debug>
|
|
|
- ...
|
|
|
- <debug Pname="Cortex-M0" __dp="1" __ap="0" svd="SVD/LPC43xx.svd">
|
|
|
- ...
|
|
|
- </debug>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: debug">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>
|
|
|
- Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set
|
|
|
- this <b>debug</b> element's settings and data patches only apply for target connections to the referenced
|
|
|
- processor. Otherwise, they apply for all processors.
|
|
|
- <b>This attribute must be set if defining multiple \em debug elements within the same section.</b>
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
- </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>__dp</td>
|
|
|
- <td>
|
|
|
- Default debug port ID to use for target accesses in this debug connection. The allowed values are
|
|
|
- defined in <b>debugport</b> elements for this device. If no <b>debugport</b> element exists, the only
|
|
|
- allowed value is \token{0}.<br>
|
|
|
- The debug access variable <b>__dp</b> is initialized to this value when entering a pre-defined debug access
|
|
|
- sequence because of a debug event.<br>
|
|
|
- This attribute defaults to \token{0} if not set.
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>__ap</td>
|
|
|
- <td>
|
|
|
- Default access port index to use for target accesses in this debug connection.<br>
|
|
|
- The debug access variable <b>__ap</b> is initialized to this value when entering a pre-defined debug access
|
|
|
- sequence because of a debug event.<br>
|
|
|
- This attribute defaults to \token{0} if not set.
|
|
|
- </td>
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>svd</td>
|
|
|
- <td>The system viewer description (*.SVD) file to load for this debug connection. The file path is relative
|
|
|
- to the package base folder.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_dbg_datapatch "datapatch"</td>
|
|
|
- <td>Define a patch to apply for data reads in this debug connection.
|
|
|
- </td>
|
|
|
- <td>DataPatchType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_dbg_datapatch /package/devices/family/.../debug/datapatch
|
|
|
-
|
|
|
-Describes a patch a debugger shall apply when reading data from the device.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC800 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <debug svd="SVD\LPC800.svd">
|
|
|
- ...
|
|
|
- <datapatch type="Mem" __ap="0" address="0x1400000C" value="0x10000000" mask="0xFFFFFFFF" info="Patch MTB BASE register"/>
|
|
|
- ...
|
|
|
- </debug>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: datapatch">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_debug "debug"</td>
|
|
|
- <td colspan="3">\ref element_debug</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>type</td>
|
|
|
- <td>
|
|
|
- The type of data access to patch. Predefined tokens must be used as defined in \ref DataPatchAccessTypeEnum "Table: Data Patch Access Type".
|
|
|
- This attribute defaults to \token{Mem} if not set.
|
|
|
- </td>
|
|
|
- <td>DataPatchAccessTypeEnum</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>__dp</td>
|
|
|
- <td>
|
|
|
- The debug port ID to apply the patch for. The allowed values are defined by the <b>__dp</b> attribute of <b>debugport</b>
|
|
|
- elements for this device. If no debugport element exists, the only allowed value is 0. If this attribute is not set, the debug port
|
|
|
- ID for the data patch is set to the default <b>__dp</b> of this <b>debug</b> section.
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>__ap</td>
|
|
|
- <td>
|
|
|
- The CoreSight access port index to apply the patch for. If this attribute is not set, the access port index
|
|
|
- for the data patch is set to the default <b>__ap</b> of this <b>debug</b> section.
|
|
|
- <td>xs:unsignedInt</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>address</td>
|
|
|
- <td>The address for which to apply the patch.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>value</td>
|
|
|
- <td>The value with which the debugger patches the data access. <b>value</b> is specified in little-endian format.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>mask</td>
|
|
|
- <td>The bits of the data access to patch. The mask value is specified in little-endian format.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>info</td>
|
|
|
- <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
- <td>xs:string</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-\anchor DataPatchAccessTypeEnum <b>Table: Data Patch Access Type</b>
|
|
|
-
|
|
|
-The table lists the allowed values for data patch access types.
|
|
|
-<table class="cmtable" summary="Enumeration: DataPatchAccessTypeEnum">
|
|
|
- <tr>
|
|
|
- <th>type=</th>
|
|
|
- <th>Description</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">DP</td>
|
|
|
- <td>CoreSight Debug Port register access.<br>
|
|
|
- <b>Note:</b> This type refers to accesses via the <b>DPACC</b> instruction for <b>CoreSight JTAG-DPs</b>. Please refer to the
|
|
|
- corresponding documentation for differences in the register interface between JTAG and Serial Wire debug ports.
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">AP</td>
|
|
|
- <td>CoreSight Access Port register access. </td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td class="XML-Token">Mem</td>
|
|
|
- <td>Memory access. </td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_trace /package/devices/family/.../trace
|
|
|
-
|
|
|
-Describes device capabilities and possible configuration settings for capturing trace.
|
|
|
-Multiple <b>trace</b> elements can be defined which are either specific to a processor identified by attribute
|
|
|
-<b>Pname</b>, or which apply to all connections.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <trace Pname="Cortex-M4">
|
|
|
- <serialwire/>
|
|
|
- <traceport width="0x0000000B"/> <!-- support for port widths 1, 2, and 4 -->
|
|
|
- <tracebuffer start="0x2000C000" size="0x4000"/>
|
|
|
- </trace>
|
|
|
- ...
|
|
|
- <trace Pname="Cortex-M0">
|
|
|
- <!-- Empty trace section for Cortex-M0, no trace capabilities -->
|
|
|
- </trace>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: trace">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_family "family"</td>
|
|
|
- <td colspan="3">\ref element_family</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_subFamily "subFamily"</td>
|
|
|
- <td colspan="3">\ref element_subFamily</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Pname</td>
|
|
|
- <td>
|
|
|
- Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set this
|
|
|
- <b>trace</b> section only applies for target connections to the referenced processor. Otherwise, it applies
|
|
|
- for all processors. <b>This attribute must be set if defining multiple \em trace elements within the same section.</b>
|
|
|
- Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
- </td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace_serialwire "serialwire"</td>
|
|
|
- <td>Describe the serial wire trace output capabilities of the processor.
|
|
|
- </td>
|
|
|
- <td>SerialWireType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace_traceport "traceport"</td>
|
|
|
- <td>Describe the parallel trace port output capabilities of the processor.
|
|
|
- </td>
|
|
|
- <td>TracePortType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace_tracebuffer "tracebuffer"</td>
|
|
|
- <td>Describe the on-device trace buffer capabilities of the processor.
|
|
|
- </td>
|
|
|
- <td>TraceBufferType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_trace_serialwire /package/devices/family/.../trace/serialwire
|
|
|
-
|
|
|
-Indicates serial wire trace output capabilities of the specified processor.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <trace Pname="Cortex-M4">
|
|
|
- ...
|
|
|
- <serialwire/>
|
|
|
- ...
|
|
|
- </trace>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: serialwire">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace "trace"</td>
|
|
|
- <td colspan="3">\ref element_trace</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_trace_traceport /package/devices/family/.../trace/traceport
|
|
|
-
|
|
|
-Indicates parallel trace port output capabilities of the specified processor.
|
|
|
-This element describes possible configuration settings for capturing trace.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <trace Pname="Cortex-M4">
|
|
|
- ...
|
|
|
- <traceport width="0x0000000B"/> <!-- support for port widths 1, 2, and 4 -->
|
|
|
- ...
|
|
|
- </trace>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: traceport">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace "trace"</td>
|
|
|
- <td colspan="3">\ref element_trace</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>width</td>
|
|
|
- <td>
|
|
|
- Parallel trace port widths supported for the processor connection (see table below).
|
|
|
- </td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-The attribute \b width specifies the available trace port width that is supported by the device.
|
|
|
-Each bit of this value represents an available trace port size. If bit \token{n} is set a trace port width of \token{n+1} is supported.
|
|
|
-The value <b>width=0x00008088</b> (as shown in the table) indicates that three port sizes (16-bit, 8-bit, and 4-bit) are supported by the device.
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: traceportwidth">
|
|
|
- <tr>
|
|
|
- <th>Bit</th>
|
|
|
- <th>31</th>
|
|
|
- <th>30</th>
|
|
|
- <th>29</th>
|
|
|
- <th>28</th>
|
|
|
- <th>27</th>
|
|
|
- <th>26</th>
|
|
|
- <th>25</th>
|
|
|
- <th>24</th>
|
|
|
- <th>23</th>
|
|
|
- <th>22</th>
|
|
|
- <th>21</th>
|
|
|
- <th>20</th>
|
|
|
- <th>19</th>
|
|
|
- <th>18</th>
|
|
|
- <th>17</th>
|
|
|
- <th>16</th>
|
|
|
- <th>15</th>
|
|
|
- <th>14</th>
|
|
|
- <th>13</th>
|
|
|
- <th>12</th>
|
|
|
- <th>11</th>
|
|
|
- <th>10</th>
|
|
|
- <th> 9</th>
|
|
|
- <th> 8</th>
|
|
|
- <th> 7</th>
|
|
|
- <th> 6</th>
|
|
|
- <th> 5</th>
|
|
|
- <th> 4</th>
|
|
|
- <th> 3</th>
|
|
|
- <th> 2</th>
|
|
|
- <th> 1</th>
|
|
|
- <th> 0</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>width</td>
|
|
|
- <td>32</td>
|
|
|
- <td>31</td>
|
|
|
- <td>30</td>
|
|
|
- <td>29</td>
|
|
|
- <td>28</td>
|
|
|
- <td>27</td>
|
|
|
- <td>26</td>
|
|
|
- <td>25</td>
|
|
|
- <td>24</td>
|
|
|
- <td>23</td>
|
|
|
- <td>22</td>
|
|
|
- <td>21</td>
|
|
|
- <td>20</td>
|
|
|
- <td>19</td>
|
|
|
- <td>18</td>
|
|
|
- <td>17</td>
|
|
|
- <td>16</td>
|
|
|
- <td>15</td>
|
|
|
- <td>14</td>
|
|
|
- <td>13</td>
|
|
|
- <td>12</td>
|
|
|
- <td>11</td>
|
|
|
- <td>10</td>
|
|
|
- <td> 9</td>
|
|
|
- <td> 8</td>
|
|
|
- <td> 7</td>
|
|
|
- <td> 6</td>
|
|
|
- <td> 5</td>
|
|
|
- <td> 4</td>
|
|
|
- <td> 3</td>
|
|
|
- <td> 2</td>
|
|
|
- <td> 1</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Value</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>1</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>1</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>1</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- <td>0</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-\section element_trace_tracebuffer /package/devices/family/.../trace/tracebuffer
|
|
|
-
|
|
|
-Indicates on-device trace buffer capabilities of the specified processor.
|
|
|
-This element describes possible configuration settings for capturing trace
|
|
|
-and reading it from the buffer.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
- ...
|
|
|
- <trace Pname="CoreCM4">
|
|
|
- ...
|
|
|
- <tracebuffer start="0x2000C000" size="0x4000"/>
|
|
|
- ...
|
|
|
- </trace>
|
|
|
- ...
|
|
|
-</family>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: tracebuffer">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_trace "trace"</td>
|
|
|
- <td colspan="3">\ref element_trace</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>start</td>
|
|
|
- <td>Start address of the on-chip memory used as trace buffer for a supported configuration.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>size</td>
|
|
|
- <td>Size of the on-chip memory used as trace buffer in bytes for a supported configuration.</td>
|
|
|
- <td>NonNegativeInteger</td>
|
|
|
- <td>optional</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-\section element_variant /package/devices/family/.../device/variant
|
|
|
-
|
|
|
-Defines a device variant. The element is optional. Can exist multiple times.
|
|
|
-
|
|
|
-\b Example
|
|
|
-\code
|
|
|
-<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>
|
|
|
-\endcode
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-
|
|
|
-<table class="cmtable" summary="Element: variant">
|
|
|
- <tr>
|
|
|
- <th>Parents</th>
|
|
|
- <th colspan="3">Element Chain</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_device "device"</td>
|
|
|
- <td colspan="3">\ref element_device</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Attributes</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Use</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>Dvariant</td>
|
|
|
- <td>Name of the device variant. Only alphabetical characters, decimal digits, '-' and '_' are allowed</td>
|
|
|
- <td>RestrictedString</td>
|
|
|
- <td>required</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <th>Child Elements</th>
|
|
|
- <th>Description</th>
|
|
|
- <th>Type</th>
|
|
|
- <th>Occurrence</th>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_book "book"</td>
|
|
|
- <td>List books that are specific to this variant.</td>
|
|
|
- <td>BookType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_description "description"</td>
|
|
|
- <td>Device description.</td>
|
|
|
- <td>DescriptionType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>\ref element_feature "feature"</td>
|
|
|
- <td>Define features for this device variant.</td>
|
|
|
- <td>FeatureType</td>
|
|
|
- <td>0..*</td>
|
|
|
- </tr>
|
|
|
-</table>
|
|
|
-
|
|
|
-<p> </p>
|
|
|
-<hr>
|
|
|
-*/
|
|
|
+/**
|
|
|
+\page pdsc_devices_pg /package/devices element
|
|
|
+
|
|
|
+The level \elem{devices} contains all devices for which support is provided by the \ref CP_SWComponents "Software Pack".
|
|
|
+
|
|
|
+Devices can be organized in hierarchy groups to limit redundancy. The hierarchy levels are:
|
|
|
+- \ref element_family "family": the attributes of a device family which includes also the processor.
|
|
|
+- \ref element_subFamily "subFamily": attributes of an optional sub-family; this adds or modifies features of a family.
|
|
|
+
|
|
|
+Device characteristics can be defined in:
|
|
|
+- \ref element_device "device": attributes of a specific silicon device
|
|
|
+- \ref element_variant "variant": attributes of a device variant (for example, with different package or temperature range) or an
|
|
|
+ OEM device or board that integrates the device.
|
|
|
+
|
|
|
+A device is described by the following properties:
|
|
|
+ - \ref element_description "description": textual device description
|
|
|
+ - \ref element_feature "feature": categorized list of device peripherals and features
|
|
|
+ - \ref element_book "book": documentation about the device and its processor(s)
|
|
|
+ - \ref element_processor "processor": processor and processor features embedded in the device
|
|
|
+ - \ref element_compile "compile": device specific general settings for the build tools
|
|
|
+ - \ref element_debugconfig "debugconfig": default settings for a debug connection
|
|
|
+ - \ref element_debugvars "debugvars": global debug access variables for use in sequences.
|
|
|
+ - \ref element_sequences "sequences": debug access sequences.
|
|
|
+ - \ref element_debugport "debugport": debug port description of the device for the debugger to configure a debug connection.
|
|
|
+ - \ref element_debug "debug": device specific information for the debugger to configure a debug connection including System View Description files.
|
|
|
+ - \ref element_trace "trace": device specific information for the debugger to configure trace.
|
|
|
+ - \ref element_memory "memory": memory layout of the device for internal and external RAM and ROM regions
|
|
|
+ - \ref element_algorithm "algorithm": device specific Flash programming algorithms
|
|
|
+
|
|
|
+A device will inherit the specifications from both the family and sub-family levels. Some properties are required to be unique.
|
|
|
+For example, the name of the svd file attribute of the \elem{debug} property.
|
|
|
+Therefore, the svd file specified on the family level can be redefined by the attribute on the sub-family or device level.
|
|
|
+Information like the description and feature entries are concatenated, starting with the information from the family and sub-family level
|
|
|
+and finalizing with the information on the device level.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<package>
|
|
|
+ ...
|
|
|
+ <devices>
|
|
|
+ <!-- family level -->
|
|
|
+ <family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
|
|
|
+ <processor Dcore="Cortex-M3" DcoreVersion="r2p1"
|
|
|
+ Dfpu="0" Dmpu="1" Dendian="Little-endian" Dclock="120000000"/>
|
|
|
+
|
|
|
+ <compile header="Device/Include/stm32f2xx.h" define="STM32F2XX"/>
|
|
|
+ <debug svd="SVD/STM32F20x.svd"/>
|
|
|
+ <algorithm name="Flash/STM32F2xx_OPT.flm" start="0x1FFFC000" size="0x00000010" style="Keil"/>
|
|
|
+ <book name="doc/STM32F2.PDF" title="STM32F2 Reference Manual"/>
|
|
|
+
|
|
|
+ <description>
|
|
|
+ ARM 32-bit Cortex-M3 CPU based Microcontroller
|
|
|
+ - 120 MHz maximum frequency producing 150 DMIPS/1.25 DMIPS/MHz
|
|
|
+ - Memory Protection Unit
|
|
|
+ - Flexible static memory controller (supports Compact Flash, SRAM, PSRAM, NOR, NAND memories)
|
|
|
+ - LCD parallel interface, 8080/6800 modes
|
|
|
+ - Clock, reset and supply management
|
|
|
+ </description>
|
|
|
+
|
|
|
+ <feature type="Timer" n="10" m="32" name="General Purpose Timer with 60 MHz"/>
|
|
|
+ <feature type="Timer" n="2" m="16" name="Advanced Control Timer with 120 MHz"/>
|
|
|
+ <feature type="Timer" n="2" m="16" name="Basic Timer with 60 MHz"/>
|
|
|
+ <feature type="TimerOther" n="1" name="Independent Watchdog Timer"/>
|
|
|
+ <feature type="TimerOther" n="1" name="Window Watchdog Timer"/>
|
|
|
+ <feature type="DAC" n="2" m="12"/>
|
|
|
+ <feature type="SPI" n="3" name="SPI Interface (two of them can be used as I2S)"/>
|
|
|
+ <feature type="I2C" n="3"/>
|
|
|
+ <feature type="USART" n="4" name="USART Interface up to 7.5 Mbit/s"/>
|
|
|
+ <feature type="UART" n="2" name="UART Interface up to 3.75 Mbit/s"/>
|
|
|
+ <feature type="USBOTG" n="1" name="USB OTG (Full-Speed) with PHY and ULPI"/>
|
|
|
+ <feature type="USBOTG" n="1" name="USB OTG (High-Speed) with PHY and ULPI"/>
|
|
|
+ <feature type="CAN" n="2" name="CAN Interface (2.0b Active)"/>
|
|
|
+ <feature type="SDIO" n="1" m="8" name="Supporting SD/MicroSD/MMC"/>
|
|
|
+ <feature type="VCC" n="1.8" m="3.6"/>
|
|
|
+
|
|
|
+ <!-- sub family level -->
|
|
|
+ <subFamily DsubFamily="128 Flash">
|
|
|
+ <memory name="SRAM" access="rwx" start="0x20000000" size="0x10000" default="1"/>
|
|
|
+ <memory name="Flash" access="rx" start="0x08000000" size="0x20000" startup="1" default="1"/>
|
|
|
+
|
|
|
+ <!-- device level -->
|
|
|
+ <device Dname="STM32F205RB">
|
|
|
+ <feature type="IOs" n="51" name="Input and Output Ports"/>
|
|
|
+ <variant Dvariant="STM32F205RBT6">
|
|
|
+ <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>
|
|
|
+
|
|
|
+ <device Dname="STM32F205VB">
|
|
|
+ <feature type="IOs" n="82" name="Input and Output Ports"/>
|
|
|
+ <variant Dvariant="STM32F205VBT6">
|
|
|
+ <feature type="QFP" count="100" name="LQFP 100 14x14x1.4" />
|
|
|
+ <feature type="Temp" n="-40" m="85" name="Industrial Temperature Range"/>
|
|
|
+ </variant>
|
|
|
+ </device>
|
|
|
+ </subFamily>
|
|
|
+
|
|
|
+ </family>
|
|
|
+ </devices>
|
|
|
+</package>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_devices /package/devices
|
|
|
+
|
|
|
+Group level containing device \subpage pdsc_family_pg "family" descriptions. A package can contain only one element \elem{devices}.
|
|
|
+The group is not mandatory.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<package>
|
|
|
+ ...
|
|
|
+ <devices>
|
|
|
+ ...
|
|
|
+ </devices>
|
|
|
+ ...
|
|
|
+</package>
|
|
|
+
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: devices">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_package "package"</td>
|
|
|
+ <td colspan="3">\ref element_package "/package"</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td>Device family group. Define all properties that are in common to devices of a family.</td>
|
|
|
+ <td>complexType</td>
|
|
|
+ <td>1..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+*/
|
|
|
+
|
|
|
+/**
|
|
|
+\page pdsc_family_pg /package/devices/family element
|
|
|
+
|
|
|
+\section element_family /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.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<devices>
|
|
|
+ ...
|
|
|
+ <family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
|
|
|
+ <processor .../>
|
|
|
+ <debugconfig .../>
|
|
|
+ <debugvars .../>
|
|
|
+ <sequences .../>
|
|
|
+ <compile .../>
|
|
|
+ <memory .../>
|
|
|
+ <algorithm .../>
|
|
|
+ <book .../>
|
|
|
+ <description> Write texte here </description>
|
|
|
+ <environment> ... </environment>
|
|
|
+ <feature .../>
|
|
|
+ <debugport .../>
|
|
|
+ <debug .../>
|
|
|
+ <trace .../>
|
|
|
+
|
|
|
+ <subFamily DsubFamily="...">
|
|
|
+ ...
|
|
|
+ <device Dname="...">
|
|
|
+ ...
|
|
|
+ </device>
|
|
|
+ ...
|
|
|
+ </subFamily>
|
|
|
+ ...
|
|
|
+ </family>
|
|
|
+ ...
|
|
|
+</devices>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: family">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_devices "devices"</td>
|
|
|
+ <td colspan="3">\ref element_devices</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dfamily</td>
|
|
|
+ <td>Name of the device family.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dvendor</td>
|
|
|
+ <td>Device vendor name. Use predefined values as listed in the table \ref DeviceVendorEnum "Device Vendor".</td>
|
|
|
+ <td>\ref DeviceVendorEnum "DeviceVendorEnum"</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_processor "processor"</td>
|
|
|
+ <td>List all processors that are in common to devices of the family.</td>
|
|
|
+ <td>ProcessorType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_compile "compile"</td>
|
|
|
+ <td>Specify compile or translate options that are relevant to all devices of the family.</td>
|
|
|
+ <td>CompileType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugconfig "debugconfig"</td>
|
|
|
+ <td>Specify default settings for the debug connection relevant to all devices of the family.</td>
|
|
|
+ <td>DebugConfigType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugvars "debugvars"</td>
|
|
|
+ <td>Define global debug access variables for settings relevant to all devices of the family unless replaced by debugvars on subFamily, device or variant level</td>
|
|
|
+ <td>DebugVarsType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequences "sequences"</td>
|
|
|
+ <td>Describe debug access sequences relevant to all devices of the family.</td>
|
|
|
+ <td>SequencesType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugport "debugport"</td>
|
|
|
+ <td>Describe a debug port relevant to all devices of the family.</td>
|
|
|
+ <td>DebugPortType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debug "debug"</td>
|
|
|
+ <td>Specify debug options that are relevant to all devices of the family.</td>
|
|
|
+ <td>DebugType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace "trace"</td>
|
|
|
+ <td>Specify trace options that are relevant to all devices of the family.</td>
|
|
|
+ <td>TraceType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_memory "memory"</td>
|
|
|
+ <td>Specify memory areas that are available for all devices of the family.</td>
|
|
|
+ <td>MemoryType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_algorithm "algorithm"</td>
|
|
|
+ <td>Specify Flash programming algorithms that are suitable for all devices.</td>
|
|
|
+ <td>AlgorithmType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_book "book"</td>
|
|
|
+ <td>Specify documents that are relevant for all devices of a family.</td>
|
|
|
+ <td>BookType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_description "description"</td>
|
|
|
+ <td>Describe the device family.</td>
|
|
|
+ <td>DescriptionType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_environment "environment"</td>
|
|
|
+ <td>Specify tool specific settings.</td>
|
|
|
+ <td>EnvironmentType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_feature "feature"</td>
|
|
|
+ <td>Specify features that are available in all members of the device family.</td>
|
|
|
+ <td>FeatureType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td>A optional sub-family that is used to group devices.</td>
|
|
|
+ <td>group</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td>Individual devices that belong to the device family.</td>
|
|
|
+ <td>DeviceType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_subFamily /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.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="STM32F2" Dvendor="STMicroelectronics:13">
|
|
|
+ ...
|
|
|
+ <subFamily DsubFamily="...">
|
|
|
+ <processor .../>
|
|
|
+ <debugconfig .../>
|
|
|
+ <debugvars .../>
|
|
|
+ <sequences .../>
|
|
|
+ <compile .../>
|
|
|
+ <memory .../>
|
|
|
+ <algorithm .../>
|
|
|
+ <book .../>
|
|
|
+ <description> Write texte here </description>
|
|
|
+ <feature .../>
|
|
|
+ <debugport .../>
|
|
|
+ <debug .../>
|
|
|
+ <trace .../>
|
|
|
+ <device Dname="...">
|
|
|
+ ...
|
|
|
+ </device>
|
|
|
+ </subFamily>
|
|
|
+
|
|
|
+ <subFamily DsubFamily="STM32F2xx">
|
|
|
+ ...
|
|
|
+ </subFamily>
|
|
|
+
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: subFamily">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>DsubFamily</td>
|
|
|
+ <td>Name of the device sub family.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_processor "processor"</td>
|
|
|
+ <td>Specify processors that are available in all devices of the sub-family.</td>
|
|
|
+ <td>ProcessorType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_compile "compile"</td>
|
|
|
+ <td>Specify compile or translate options that are relevant to all devices of the sub-family.</td>
|
|
|
+ <td>CompileType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugconfig "debugconfig"</td>
|
|
|
+ <td>Specify default settings for the debug connection relevant to all devices of the sub-family.</td>
|
|
|
+ <td>DebugConfigType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugvars "debugvars"</td>
|
|
|
+ <td>Define global debug access variables for user-defined settings relevant to all devices of the sub-family.</td>
|
|
|
+ <td>DebugVarsType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequences "sequences"</td>
|
|
|
+ <td>Describe debug access sequences relevant to all devices of the sub-family.</td>
|
|
|
+ <td>SequencesType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugport "debugport"</td>
|
|
|
+ <td>Describe a debug port relevant to all devices of the sub-family.</td>
|
|
|
+ <td>DebugPortType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debug "debug"</td>
|
|
|
+ <td>Specify debug options that are relevant to all devices of the sub-family.</td>
|
|
|
+ <td>DebugType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace "trace"</td>
|
|
|
+ <td>Specify trace options that are relevant to all devices of the sub-family.</td>
|
|
|
+ <td>TraceType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_memory "memory"</td>
|
|
|
+ <td>Specify memory areas that are available in all device of the sub-family.</td>
|
|
|
+ <td>MemoryType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_algorithm "algorithm"</td>
|
|
|
+ <td>Specify Flash programming algorithms that can be used by all device of the sub-family.</td>
|
|
|
+ <td>AlgorithmType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_book "book"</td>
|
|
|
+ <td>Specify documents relevant for all device of the sub-family.</td>
|
|
|
+ <td>BookType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_description "description"</td>
|
|
|
+ <td>Description of the device family.</td>
|
|
|
+ <td>DescriptionType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_feature "feature"</td>
|
|
|
+ <td>Specify features available in devices of the sub-family.</td>
|
|
|
+ <td>FeatureType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td>List individual devices that belong to the device sub-family.</td>
|
|
|
+ <td>DeviceType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_device /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.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<subFamily DsubFamily="STM32F405">
|
|
|
+ ...
|
|
|
+ <device Dname="STM32F405OE">
|
|
|
+ <memory name="Flash" access="rx" start="0x08000000" size="0x80000" startup="1" default="1"/>
|
|
|
+ <algorithm name="Flash/STM32F4xx_1024.flm" start="0x08000000" size="0x80000" default="1" style="Keil"/>
|
|
|
+ <feature type="IOs" n="72" name="Input and Output Ports"/>
|
|
|
+ </device>
|
|
|
+
|
|
|
+ <device Dname="STM32F405OG">
|
|
|
+ <memory name="Flash" access="rx" start="0x08000000" size="0x100000" startup="1" default="1"/>
|
|
|
+ <algorithm name="Flash/STM32F4xx_1024.flm" start="0x08000000" size="0x100000" default="1" style="Keil"/>
|
|
|
+ <feature type="IOs" n="72" name="Input and Output Ports"/>
|
|
|
+ </device>
|
|
|
+ ...
|
|
|
+</subFamily>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: device">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dname</td>
|
|
|
+ <td>Specifies the name of the device. Only alphabetical characters, decimal digits, '-' and '_' are allowed</td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_processor "processor"</td>
|
|
|
+ <td>Specify processors that are specific to this device.</td>
|
|
|
+ <td>ProcessorType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_compile "compile"</td>
|
|
|
+ <td>Specify compile or translate options specific to this device.</td>
|
|
|
+ <td>CompileType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugconfig "debugconfig"</td>
|
|
|
+ <td>Specify default settings for the debug connection specific to this device.</td>
|
|
|
+ <td>DebugConfigType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugvars "debugvars"</td>
|
|
|
+ <td>Define debug access variables for user-defined settings specific to this device.</td>
|
|
|
+ <td>DebugVarsType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequences "sequences"</td>
|
|
|
+ <td>Describe debug access sequences specific to this device.</td>
|
|
|
+ <td>SequencesType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugport "debugport"</td>
|
|
|
+ <td>Describe a debug port specific to this device.</td>
|
|
|
+ <td>DebugPortType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debug "debug"</td>
|
|
|
+ <td>Specify debug options specific to this device.</td>
|
|
|
+ <td>DebugType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace "trace"</td>
|
|
|
+ <td>Specify trace options specific to this device.</td>
|
|
|
+ <td>TraceType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_memory "memory"</td>
|
|
|
+ <td>Specify memory areas that specific to this device.</td>
|
|
|
+ <td>MemoryType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_algorithm "algorithm"</td>
|
|
|
+ <td>Specify Flash programming algorithms that can be used by this device.</td>
|
|
|
+ <td>AlgorithmType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_book "book"</td>
|
|
|
+ <td>Specify documents specific to this device.</td>
|
|
|
+ <td>BookType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_description "description"</td>
|
|
|
+ <td>Description specific to this device.</td>
|
|
|
+ <td>DescriptionType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_feature "feature"</td>
|
|
|
+ <td>Specify features specific to this device.</td>
|
|
|
+ <td>FeatureType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_variant "variant"</td>
|
|
|
+ <td>Complex element specifying a variant of a device.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_algorithm /package/devices/family/.../algorithm
|
|
|
+
|
|
|
+Specify Flash programming algorithms with the address range and its size. An algorithm with
|
|
|
+\<default> set to \token{true} gets configured automatically to the download options of the project.
|
|
|
+Algorithms can be defined on various levels. Multiple \<algorithm> elements are possible. If the
|
|
|
+memory range and style are identical, the one on the lower level takes precedence.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
+ ...
|
|
|
+ <!-- use for all devices of the family -->
|
|
|
+ <algorithm name="Flash\STM32F2xx_512.flm" start=0x08000000 size=0x10000 default="1" style="Keil"/>
|
|
|
+
|
|
|
+ <subFamily DsubFamily="STM32F405">
|
|
|
+ <!-- use for all devices of a subFamily -->
|
|
|
+ <algorithm name="Flash/STM32F2xx_1024.flm" start=0x08000000 size=0x20000 default="1" style="Keil"/>
|
|
|
+
|
|
|
+ <device Dname="STM32F405OE">
|
|
|
+ <!-- finally, this is the default for the device -->
|
|
|
+ <algorithm name="Flash/STM32F2xx_2048.flm" start=0x08000000 size=0x40000 default="1" style="Keil"/>
|
|
|
+ </device>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Type: AlgorithmType">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors that require different algorithms</b>.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>name</td>
|
|
|
+ <td>Flash Programming Algorithm file including the path, which is relative to the root folder of the \ref CP_SWComponents "Software Pack".</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>start</td>
|
|
|
+ <td>Base address for the Flash programming algorithm.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>size</td>
|
|
|
+ <td>Size covered by the Flash programming algorithm. End address = start + size - 1</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>RAMstart</td>
|
|
|
+ <td>Base address for the RAM where the Flash programming algorithm will be executed from. If
|
|
|
+ specified, the \ref element_memory "memory" element does not require a \c default attribute.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>RAMsize</td>
|
|
|
+ <td>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 \ref element_memory
|
|
|
+ "memory" element does not require a \c default attribute.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>default</td>
|
|
|
+ <td>If \token{true}, then this is the default Flash programming algorithm that gets configured
|
|
|
+ in a project. If not specified or set to \token{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.
|
|
|
+ </td>
|
|
|
+ <td>xs:boolean</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>style</td>
|
|
|
+ <td>[Version 1.4.0] Today different tool-chains support different styles of incompatible flash
|
|
|
+ programming algorithms. The attribute specifies the style of the specified flash programming
|
|
|
+ algorithm. For backward compatibility the default value is "Keil". The aim is to converge to
|
|
|
+ the <em>CMSIS</em> style.
|
|
|
+ </td>
|
|
|
+ <td>\ref AlgorithmStyleEnum "AlgorithmStyleEnum"</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_book /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.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<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>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Type: BookType">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors and where the book refers to a single processor only</b>.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>name</td>
|
|
|
+ <td>File name of the document including the extension. The document path is relative to the package base folder. Directory/file names are case-sensitive.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>title</td>
|
|
|
+ <td>Book title. Can be used for being displayed in various environments.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_compile /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 \b STM32F407IG will have a define \c STM32F407IG. Previous defines
|
|
|
+ are overridden.
|
|
|
+- It is good practice to add both attributes (\c header and \c define) in the attributes list of the
|
|
|
+ \c compile element together. This clarifies the relationship between header file and define.
|
|
|
+- The name of the header file should be exported by the IDE to the \ref RTE_Components_h file using the \#define CMSIS_device_header.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<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>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: compile">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors if the header and define is different for each processor</b>.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>header</td>
|
|
|
+ <td>C-header file with path relative to the installation.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>define</td>
|
|
|
+ <td>C-file name with device specific preprocessor defines. The path is relative to the installation.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_description /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 \ref element_feature instead.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<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>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: description">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor Identifier. This attribute <b>is mandatory for devices that embed multiple processors and
|
|
|
+ where the description is specific to a single processor</b>.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+
|
|
|
+\section element_environment /package/devices/family/.../environment
|
|
|
+
|
|
|
+Tool-specific elements for a device.
|
|
|
+
|
|
|
+Can occur on various levels.
|
|
|
+
|
|
|
+Contains information that is specific for a <b>development tool</b> identified by the \em name attribute.
|
|
|
+The structure of the \em element is not specified in the schema file which gives the <b>development tool</b>
|
|
|
+full control of the \em element usage.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<package>
|
|
|
+ <devices>
|
|
|
+ <family Dfamily="MySeries" Dvendor="Generic:5">
|
|
|
+ ...
|
|
|
+ <environment name="MyConfigTool">
|
|
|
+ <file>MyConfigFile.cfg</file>
|
|
|
+ <control>MyControlString</control>
|
|
|
+ ...
|
|
|
+ </environment>
|
|
|
+ ...
|
|
|
+ </family>
|
|
|
+ </devices>
|
|
|
+</package>
|
|
|
+\endcode
|
|
|
+
|
|
|
+\code
|
|
|
+<package>
|
|
|
+ <devices>
|
|
|
+ <family Dfamily="XMC1000 Series" Dvendor="Infineon:7">
|
|
|
+ ...
|
|
|
+ <environment name="uv" Pname="M0">
|
|
|
+ <CMisc>--C99</CMisc>
|
|
|
+ ...
|
|
|
+ </environment>
|
|
|
+ ...
|
|
|
+ </family>
|
|
|
+ </devices>
|
|
|
+</package>
|
|
|
+\endcode
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: description">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>name</td>
|
|
|
+ <td>Name of the development tool (e.g. "uv" for uVision)</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Identifies the processor the setting belongs to.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>any</td>
|
|
|
+ <td>Any element that is available for the specified development tool.<br>
|
|
|
+ For uVision, the following elements are available: \<CMisc>, \<AMisc\>, \<LMisc\>, \<preBuild1\>, \<preBuild2\>, \<preRun1\>, \<preRun2\>, \<postBuild1\>, \<postBuild2\>, \<postRun1\>, \<postRun\>.</td>
|
|
|
+ <td>xs:anyAttribute</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+
|
|
|
+\section element_feature /package/devices/family/.../feature
|
|
|
+
|
|
|
+This element specifies peripherals that devices can have. This can be used on \b web \b sites for the display of device
|
|
|
+features.
|
|
|
+
|
|
|
+Many device feature types are already predefined, such as timers, converters, Ethernet, USB, etc (for a complete list refer
|
|
|
+to table \ref DeviceFeatureTypeEnum "Device Feature Types"). Features can be defined on various levels. Inner elements
|
|
|
+supersede outer elements.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<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"/> <!-- Adds to 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>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: feature">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor Identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>type</td>
|
|
|
+ <td>A feature (peripheral), such as \token{CAN}, \token{DMA}, \token{I/O}, \token{LCD}, etc. Predefined values must be used
|
|
|
+ as listed in the table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
+ <td>DeviceFeatureTypeEnum</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>n</td>
|
|
|
+ <td>Depends on the element \em \b type. Check table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
+ <td>xs:decimal</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>m</td>
|
|
|
+ <td>Depends on the elemen \em \b type. Check table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
+ <td>xs:decimal</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>name</td>
|
|
|
+ <td>Descriptive name of the feature. For example, "16-bit down counting timer". If omitted, the <b>Default Name</b> is used
|
|
|
+ as described in the table \ref DeviceFeatureTypeEnum "Device Feature Types".</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DeviceFeatureTypeEnum <b>Table: Device Feature Types</b>
|
|
|
+
|
|
|
+The table lists predefined device features (peripherals).
|
|
|
+\note The attribute \a name of the element \ref element_feature is a descriptive text for a feature. If \a name is omitted, then the <b>Default Name</b> is used.
|
|
|
+
|
|
|
+|type=|n=|m=|Default Name|Example|Example shown as|
|
|
|
+|-----|--|--|------------|-------|----------------|
|
|
|
+|NVIC|Number of NVIC Interrupts|N/A|NVIC|\<feature type="NVIC" n="120" name="NVIC"/\>|NVIC with 120 interrupt sources|
|
|
|
+|DMA|Number of DMA Channels|N/A|DMA|\<feature type="DMA" n="16" name="High-Speed DMA"/\>|16-channel High-Speed DMA|
|
|
|
+|Crypto|Bitwidth, given as decimal Number (see example)|N/A|Cryptographic Engine|\<feature type="Crypto" n="128.256" name="HW accelerated AES Encryption Engine"/\>|128/256-bit HW accelerated AES Encryption Engine|
|
|
|
+|RNG|Number of RNGs|N/A|Random Number Generator|\<feature type="RNG" name="True Random Number Generator"/\>|True Random Number Generator|
|
|
|
+|CoreOther|Number of Features|N/A|Other Core Feature|\<feature type="CoreOther" n=1 name="96-bit Unique Identifier"/\>|1 x 96-bit Unique Identifier|
|
|
|
+|Memory|Number of Bytes|N/A|Memory|\<feature type="Memory" n="128" name="EEPROM"/\>|128 byte EEPROM|
|
|
|
+|MemoryOther|Number of Memories|N/A|Other Memory Type|\<feature type="MemoryOther" n="1" name="1 kB MRAM"/\>|1 x 1 kB MRAM|
|
|
|
+|ExtBus|Bitwidth of Bus Interface|N/A|External Bus Interface|\<feature type="ExtBus" n="16" name="External Bus Interface for SRAM Communication"/\>|16-bit External Bus Interface for SRAM Communication|
|
|
|
+|XTAL|Minimum Frequency in Hz|Maximum Frequency in Hz|External Crystal Oscillator|\<feature type="XTAL" n="4000000" m="25000000" name="External Crystal Oscillator"/\>|4 MHz .. 25 MHz External Crystal Oscillator|
|
|
|
+|IntRC|Minimum Frequency in Hz|Maximum Frequency in Hz|Internal RC Oscillator|\<feature type="IntRC" n="16000000" name="Internal RC Oscillator with +/- 1% accuracy"/\>|16 MHz Internal RC Oscillator with +/- 1% accuracy|
|
|
|
+|PLL|Number of PLLs|N/A|PLL|\<feature type="PLL" n="3" name="Internal PLL"/\>|3 Internal PLL|
|
|
|
+|RTC|RTC Frequency|N/A|RTC|\<feature type="RTC" n="32000" name="Internal RTC"/\>|32 kHz Internal RTC|
|
|
|
+|ClockOther|Number of Peripherals|N/A|Other Clock Peripheral|\<feature type="ClockOther" name="My special clock feature"/\>|My special clock feature|
|
|
|
+|PowerMode|Number of Power Modes|N/A|Power Modes|\<feature type="Mode" n="3" name="Run, Sleep, Deep-Sleep"/\>|3 Power Modes: Run, Sleep, Deep-Sleep|
|
|
|
+|VCC|Minimum Supply Voltage|Maximum Supply Voltage|Operating Voltage|\<feature type="VCC" n="1.8" m="3.6"/\>|1.8 V .. 3.6 V|
|
|
|
+|Consumption|Minimum Power Consumption|Typical Power Consumption|Power Consumption|\<feature type="Consumption" n="0.00004" m="0.002" name="Ultra-Low Power Consumption"/\>|40 uW/MHz .. 2 mW/MHz Ultra-Low Power Consumption|
|
|
|
+|PowerOther|Number of Features|N/A|Other Power Feature|\<feature type="PowerOther" n="1" name="POR"/\>|1 x POR|
|
|
|
+|BGA|Number of Balls|N/A|BGA|\<feature type="BGA" n="256" name="Plastic Ball Grid Array"/\>|256-ball Plastic Ball Grid Array|
|
|
|
+|CSP|Number of Leads|N/A|CSP|\<feature type="CSP" n="28" name="Wafer-Level Chip-Scale Package"/\>|28-ball Wafer-Level Chip-Scale Package|
|
|
|
+|PLCC|Number of Leads|N/A|PLCC|\<feature type="PLCC" n="20" name="PLCC Package"/\>|20-lead PLCC Package|
|
|
|
+|QFN|Number of Leads|N/A|QFN|\<feature type="QFN" n="33" name="QFN Package"/\>|33-pad QFN Package|
|
|
|
+|QFP|Number of Leads|N/A|QFP|\<feature type="QFP" n="128" name="Low-Profile QFP Package"/\>|128-lead Low-Profile QFP Package|
|
|
|
+|SOP|Number of Leads|N/A|SOP|\<feature type="SOP" n="16" name="SSOP Package"/\>|16-lead SSOP Package|
|
|
|
+|DIP|Number of Leads|N/A|SOP|\<feature type="DIP" n="16" name="Dual In-Line Package"/\>|16-lead Dual In-Line Package|
|
|
|
+|PackageOther|Number of Pins|N/A|Other Package Type|\<feature type="PackageOther" n="44" name="My other Package"/\>|44-contacts My other Package|
|
|
|
+|IOs|Number of I/Os|N/A|Inputs/Outputs|\<feature type="IOs" n="112" name="General Purpose I/Os, 5V tolerant"/\>|112 General Purpose I/Os, 5V tolerant|
|
|
|
+|ExtInt|Number of External Interrupts|N/A|External Interrupts|\<feature type="ExtInt" n="12"/\>|12 External Interrupts|
|
|
|
+|Temp|Minimum Operating Temperature|Maximum Operating Temperature|Operating Temperature Range|\<feature type="Temp" n="-40" m="105" name="Extended Operating Temperature Range"/\>|-40 °C .. +105 °C Extended Operating Temperature Range|
|
|
|
+|ADC|Number of Channels|Resolution in Bit|ADC|\<feature type="ADC" n="5" m="12" name="High-Performance ADC"/\>|5-channel x 12-bit High-Performance ADC|
|
|
|
+|DAC|Number of Channels|Resolution in Bit|DAC|\<feature type="DAC" n="2" m="10"/\>|2 x 12-bit DAC|
|
|
|
+|TempSens|Number of Sensors|N/A|Temperature Sensor|\<feature type="TempSens" n="1"/\>|1 x Temperature Sensor|
|
|
|
+|AnalogOther|Number of Features|N/A|Other Analog Peripheral|\<feature type="AnalogOther" n="1" name="My Analog"/\>|1 x My Analog|
|
|
|
+|Timer|Number of Channels|Resolution in Bit|Timer/Counter Module|\<feature type="Timer" n="2" m="32" name="Timer Module with Quadrature Encoding"/\>|2 x 32-bit Timer Module with Quadrature Encoding|
|
|
|
+|PWM|Number of Channels|Resolution in Bit|PWM|\<feature type="PWM" n="2" m="16" name="Pulse Width Modulation"/\>|2 x 16-bit Pulse Width Modulation|
|
|
|
+|WDT|Number of Watchdogs|N/A|Watchdog|\<feature type="WDT" n="1"/\>|1 x Watchdog Timer|
|
|
|
+|TimerOther|Number of Features|N/A|Other Timer Peripheral|\<feature type="TimerOther" n="1" name="Quadrature En-/Decoder"/\>|1 x Quadrature En-/Decoder|
|
|
|
+|MPSerial|Number of Serial Peripherals|N/A|Multi-Purpose Serial Peripheral|\<feature type="MPSerial" n="4" name="Multi-Purpose Serial Interface Module: I2C, I2S, SPI, UART"/\>|4 x Multi-Purpose Serial Interface Module: I2C, I2S, SPI, UART|
|
|
|
+|CAN|Number of CAN Interfaces|N/A|CAN|\<feature type="CAN" n="2" name="CAN 2.0b Controller"/\>|2 x CAN 2.0b Controller|
|
|
|
+|ETH|Number of Ethernet Interfaces|Data Rate in Bit/s|Ethernet|\<feature type="ETH" n="1" m="10000000" name="Integrated Ethernet MAC with PHY"/\>|1 x 10 Mbit/s Integrated Ethernet MAC with PHY|
|
|
|
+|I2C|Number of I2C Interfaces|N/A|I2C|\<feature type="I2C" n="2"name="Low-Power I2C"/\>|2 x Low-Power I2C|
|
|
|
+|I2S|Number of I2S Interfaces|N/A|I2S|\<feature type="I2S" n="3"/\>|3 x I2S|
|
|
|
+|LIN|Number of LIN Interfaces|N/A|LIN|\<feature type="LIN" n="4"/\>|4 x LIN|
|
|
|
+|SDIO|Number of SDIO Interfaces|Bitwidth of SDIO Interface|SDIO|\<feature type="SDIO" n="1" m="4" name="SDIO Interface"/\>|1 x 4-bit SDIO Interface|
|
|
|
+|SPI|Number of SPI Interfaces|Data Rate in Bit/s|SPI|\<feature type="SPI" n="2" m="20000000" name="SPI Interface"/\>|2 x 20 Mbit/s SPI Interface|
|
|
|
+|UART|Number of UART Interfaces|Data Rate in Bit/s|UART|\<feature type="UART" n="4" m="3000000" name="High-Speed UART Interface"/\>|4 x 3 Mbit/s High-Speed UART Interface|
|
|
|
+|USART|Number of USART Interfaces|Data Rate in Bit/s|USART|\<feature type="USART" n="2" m="1000000" name="High-Speed USART Interface"/\>|2 x 1 Mbit/s High-Speed USART Interface|
|
|
|
+|USBD|Number of USB Dvice Interfaces|N/A|USB Device|\<feature type="USBD" n="2" name="Full-Speed USB Device"/\>|2 x Full-Speed USB Device|
|
|
|
+|USBH|Number of USB Host Interfaces|N/A|USB Host|\<feature type="USBH" n="2" name="High-Speed USB Host"/\>|2 x High-Speed USB Host|
|
|
|
+|USBOTG|Number of USB OTG Interfaces|N/A|USB OTG|\<feature type="USBOTG" n="1" name="High-Speed USB OTG with PHY"/\>|1 x High-Speed USB OTG with PHY|
|
|
|
+|ComOther|Number of other Communication Peripherals|N/A|Other Communication Peripheral|\<feature type="ComOther" n="1" name="ZigBee"/\>|1 x ZigBee|
|
|
|
+|Camera|Number of Camera Interface|Resolution in Bit|Camera Interface|\<feature type="Camera" n="1" m="8" name="Digital Camera Interface"/\>|1 x 8-bit Digital Camera Interface|
|
|
|
+|GLCD|Number of Graphic LCD Controller|Maximum Resolution as a decimal number (see example)|Graphic LCD Controller|\<feature type="GLCD" n="1" m="320.240" name="TFT LCD Controller"/\>|1 x 320 x 480 pixel TFT LCD Controller|
|
|
|
+|LCD|Number of Segment LCD Controller|Com.Seg as a decimal number (see example)|Segment LCD Controller|\<feature type="LCD" n="1" m="16.40" name="Segment LCD Controller"/\>|1 x 16 x 40 Segment LCD Controller|
|
|
|
+|Touch|Number of Touch Channels|N/A|Capacitive Touch Inputs|\<feature type="Touch" n="10" name="Capacitive Touch Inputs"/\>|10 x Capacitive Touch Inputs|
|
|
|
+|Other|Number of Features|N/A|Other Feature|\<feature type="Other" n="2" name="My other Interface"/\>|2 x My other Interface|
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_memory /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.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+</package>
|
|
|
+ ...
|
|
|
+ <devices>
|
|
|
+ <family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
+ <memory name="SRAM" access="rwx" start="0x20000000" size="0x20000" default="1"/>
|
|
|
+
|
|
|
+ <subFamily DsubFamily="STM32F407">
|
|
|
+ <debug __dp="0" __ap="0" svd="SVD/STM32F40x.svd"/>
|
|
|
+ <memory name="SRAM1" access="rwx" start="0x20020000" size="0x20000" default="1"/>
|
|
|
+ <memory name="SRAM2" access="rwx" start="0x10000000" size="0x10000" default="1"/>
|
|
|
+
|
|
|
+ <device Dname="STM32F407IE">
|
|
|
+ <memory name="Flash" access="rx" start="0x08000000" size="0x80000" startup="1" default="1"/>
|
|
|
+ </device>
|
|
|
+
|
|
|
+ </subFamily>
|
|
|
+ </family>
|
|
|
+ </devices>
|
|
|
+ ...
|
|
|
+</package>
|
|
|
+\endcode
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: memory">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed. </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>id (deprecated in Version 1.4.0)</td>
|
|
|
+ <td>(deprecated Version 1.4.0) Identifier of the memory region consisting of a type indicator and an index (for example, \token{IRAM1}).
|
|
|
+ Predefind values can be selected as defined in \ref MemoryIDTypeEnum.</td>
|
|
|
+ <td>MemoryIDTypeEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>name (new in Version 1.4.0)</td>
|
|
|
+ <td>unique name of the memory (new in Version 1.4.0) to be used in conjunction with <em>access</em>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>access (new in Version 1.4.0)</td>
|
|
|
+ <td>access permission attributes of the memory. See MemoryAccessTypeString for details (new in Version 1.4.0).
|
|
|
+ <td>\ref MemoryAccessTypeString "MemoryAccessTypeString"</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>start</td>
|
|
|
+ <td>Base address of the memory using a hexadecimal value.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>size</td>
|
|
|
+ <td>Size of the memory in bytes using a hexadecimal value.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>default</td>
|
|
|
+ <td>Indicates a general purpose memory region, that does not require any special considerations (access speed, remapping, protection, etc.).
|
|
|
+ If \token{true}, then an IRAM memory region will be used by the linker for locating any data and an IROM memory region will for locating
|
|
|
+ any code. Every device needs at least one default IRAM region.
|
|
|
+ If an \ref element_algorithm "algorithm" element is specified (without \c RAMstart and
|
|
|
+ \c RAMsize attributes), the first listed IRAM region with default="1" will also be used for executing the flash programming algorithm.</td>
|
|
|
+ Default value is \token{false}.
|
|
|
+ <td>xs:boolean</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>startup</td>
|
|
|
+ <td>If \token{true}, the startup code of the application will be placed into this memory region. Default value is \token{false}.</td>
|
|
|
+ <td>xs:boolean</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>alias(new in Version 1.4.0)</td>
|
|
|
+ <td>reference to another memory description which shares the same physical memory. Some physical
|
|
|
+ memory is made accessible via different addresses, e.g. chached vs. non-cached accesses. This
|
|
|
+ avoids the impression that the device has twice as much memory available.
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor MemoryIDTypeEnum <b>Table: Memory ID Types</b>
|
|
|
+
|
|
|
+The table lists identifiers for memory types.
|
|
|
+<table class="cmtable" summary="Enumeration: MemoryIDTypeEnum">
|
|
|
+ <tr>
|
|
|
+ <th>id=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">RAM<i>x</i></td>
|
|
|
+ <td>External RAM. <i>x</i> can have a value between 1..8 </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">ROM<i>x</i></td>
|
|
|
+ <td>External ROM. <i>x</i> can have a value between 1..8 </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">IRAM<i>x</i></td>
|
|
|
+ <td>Internal RAM. <i>x</i> can have a value between 1..8 </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">IROM<i>x</i></td>
|
|
|
+ <td>Internal ROM. <i>x</i> can have a value between 1..8 </td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\anchor MemoryAccessTypeString <b>Table: Memory Access Attribute String</b>
|
|
|
+
|
|
|
+The table lists the letters and their meaning for use in the access attribute string.
|
|
|
+<table class="cmtable" summary="Memory Access Permission Attributes">
|
|
|
+ <tr>
|
|
|
+ <th>access=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">r</td>
|
|
|
+ <td><em>R</em>eadable</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">w</td>
|
|
|
+ <td><em>W</em>ritable</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">x</td>
|
|
|
+ <td>e<em>X</em>ecutable</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">p</td>
|
|
|
+ <td><em>P</em>eripheral area. Details described in SVD.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">s</td>
|
|
|
+ <td><em>S</em>ecure attribute</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">n</td>
|
|
|
+ <td><em>N</em>on-secure attribute</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">c</td>
|
|
|
+ <td>non-secure <em>C</em>allable attribute</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_processor /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 \elem{Pname}. If the information is relevant to
|
|
|
+all processors, no processor must be specified in \elem{Pname}.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<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>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: processor">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>Processor identifier. This attribute <b>is mandatory for devices that embed multiple processors</b>.
|
|
|
+ Each processor needs a unique identifier and must be used consistently in the <b>Pname</b> attribute of the elements within the scope of the current device family section.
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
+ </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dvendor</td>
|
|
|
+ <td>Specfies the device vendor using a predefined string. Use predefined values as listed in the table \ref DeviceVendorEnum "Device Vendor".</td>
|
|
|
+ <td>DeviceVendorEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dcore</td>
|
|
|
+ <td>Specifies the processor core. Use predefined values as listed in the table \ref DcoreEnum "Device Cores".</td>
|
|
|
+ <td>DcoreEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dfpu</td>
|
|
|
+ <td>Specifies whether a hardware Floating Point Unit is present in the processor. Use predefined values as listed in the table \ref DfpuEnum "Device FPU".</td>
|
|
|
+ <td>DfpuEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dmpu</td>
|
|
|
+ <td>Specifies whether a Memory Protection Unit is present in the processor. Use predefined values as listed in the table \ref DmpuEnum "Device MPU".</td>
|
|
|
+ <td>DmpuEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dendian</td>
|
|
|
+ <td>Specifies the endianess of the processor. Use predefined values as listed in the table \ref DendianEnum "Endinaness".</td>
|
|
|
+ <td>DendianEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dclock</td>
|
|
|
+ <td>Specifies the max clock frequency of the processor subsystem</td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>DcoreVersion</td>
|
|
|
+ <td>Hardware revision of the processor core</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DeviceVendorEnum <b>Table: Device Vendors</b>
|
|
|
+
|
|
|
+The table lists predefined values representing device vendors. The list is extended from time to time (on request by new vendors).
|
|
|
+Contact cmsis@arm.com to ask for an extension. These values can be used in the elements:
|
|
|
+- \ref element_board_mountedDevice
|
|
|
+- \ref element_accept
|
|
|
+- \ref element_require
|
|
|
+- \ref element_deny
|
|
|
+- \ref element_example_board
|
|
|
+- \ref element_board_compatibleDevice
|
|
|
+- \ref element_gen_select
|
|
|
+
|
|
|
+<table class="cmtable" summary="Enumeration: DeviceVendorEnum">
|
|
|
+ <tr>
|
|
|
+ <th>Dvendor</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Web Link</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">ABOV Semiconductor:126</td>
|
|
|
+ <td>ABOV Semiconductor</td>
|
|
|
+ <td>http://www.abov.co.kr/en/</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Ambiq Micro:120</td>
|
|
|
+ <td>Ambiq Micro</td>
|
|
|
+ <td>http://www.ambiqmicro.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Analog Devices:1</td>
|
|
|
+ <td>Analog Devices</td>
|
|
|
+ <td>http://www.analog.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">ARM:82</td>
|
|
|
+ <td>ARM Ltd.</td>
|
|
|
+ <td>http://www.arm.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Atmel:3</td>
|
|
|
+ <td>Atmel Corporation</td>
|
|
|
+ <td>http://www.atmel.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">CSR:118</td>
|
|
|
+ <td>CSR:</td>
|
|
|
+ <td>http://www.csr.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cypress:19</td>
|
|
|
+ <td>Cypress Semiconductor</td>
|
|
|
+ <td>http://www.cypress.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Dialog Semiconductor:113</td>
|
|
|
+ <td>Dialog Semiconductor</td>
|
|
|
+ <td>http://www.dialog-semiconductor.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Freescale:78</td>
|
|
|
+ <td>Freescale</td>
|
|
|
+ <td>http://www.freescale.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Generic:5</td>
|
|
|
+ <td>Generic: Not a vendor specific device</td>
|
|
|
+ <td></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">GigaDevice:123</td>
|
|
|
+ <td>GigaDevice</td>
|
|
|
+ <td>http://www.gigadevice.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Holtek:106</td>
|
|
|
+ <td>Holtek Microelectronics</td>
|
|
|
+ <td>http://www.holtek.com.tw</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Infineon:7</td>
|
|
|
+ <td>Infineon Technologies</td>
|
|
|
+ <td>http://www.infineon.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Lapis Semiconductor:10</td>
|
|
|
+ <td>Lapis Semiconductor</td>
|
|
|
+ <td>http://www.lapis-semi.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Maxim:23</td>
|
|
|
+ <td>Maxim Integrated</td>
|
|
|
+ <td>http://www.maximintegrated.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">MediaTek:129</td>
|
|
|
+ <td>MediaTek</td>
|
|
|
+ <td>http://www.mediatek.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">MegaChips:128</td>
|
|
|
+ <td>MegaChips</td>
|
|
|
+ <td>http://www.megachips.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">MicroSemi:112</td>
|
|
|
+ <td>Microsemi</td>
|
|
|
+ <td>http://www.microsemi.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Milandr:99</td>
|
|
|
+ <td>Milandr</td>
|
|
|
+ <td>http://www.milandr.ru</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">MindMotion:132</td>
|
|
|
+ <td>MindMotion</td>
|
|
|
+ <td>//http://www.mindmotion.com.cn</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Nordic Semiconductor:54</td>
|
|
|
+ <td>Nordic Semiconductor</td>
|
|
|
+ <td>http://www.nordicsemi.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Nuvoton:18</td>
|
|
|
+ <td>Nuvoton Technolgy Corp.</td>
|
|
|
+ <td>http://www.nuvoton.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">NXP:11</td>
|
|
|
+ <td>NXP</td>
|
|
|
+ <td>http://www.nxp.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Panasonic:131</td>
|
|
|
+ <td>Panasonic</td>
|
|
|
+ <td>http://www.panasonic.com/industrial</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Realtek Semiconductor:124</td>
|
|
|
+ <td>Realtek Semiconductor</td>
|
|
|
+ <td>http://www.realtek.com.tw</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Redpine Signals:125</td>
|
|
|
+ <td>Repine Signals</td>
|
|
|
+ <td>http://www.redpinesignals.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Renesas:117</td>
|
|
|
+ <td>Renesas</td>
|
|
|
+ <td>http://www.renesas.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">ROHM:103</td>
|
|
|
+ <td>ROHM</td>
|
|
|
+ <td>http://www.rohm.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Samsung:47</td>
|
|
|
+ <td>Samsung Semiconductor</td>
|
|
|
+ <td>http://www.samsung.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Silicon Labs:21</td>
|
|
|
+ <td>Silicon Labs</td>
|
|
|
+ <td>http://www.silabs.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Spansion:100</td>
|
|
|
+ <td>Spansion (previously Fujitsu)</td>
|
|
|
+ <td>http://www.spansion.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">STMicroelectronics:13</td>
|
|
|
+ <td>STMicroelectronics</td>
|
|
|
+ <td>http://www.st.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Texas Instruments:16</td>
|
|
|
+ <td>Texas Instruments</td>
|
|
|
+ <td>http://www.ti.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Toshiba:92</td>
|
|
|
+ <td>Toshiba Semiconductor</td>
|
|
|
+ <td>http://www.toshiba-components.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Triad Semiconductor:104</td>
|
|
|
+ <td>Triad Semiconductor</td>
|
|
|
+ <td>http://www.triadsemi.com</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">WIZnet:122</td>
|
|
|
+ <td>WIZnet</td>
|
|
|
+ <td>http://www.wiznet.co.kr</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Xinnova</td>
|
|
|
+ <td>Xinnova Technology</td>
|
|
|
+ <td>http://www.xinnovatech.com/en</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor AlgorithmStyleEnum <b>Table: Algorithm Styles</b>
|
|
|
+<table class="cmtable" summary="Enumeration: AlgorithmStyleEnum">
|
|
|
+ <tr>
|
|
|
+ <th>style=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Keil</td>
|
|
|
+ <td><a href="http://www.keil.com/pack/doc/CMSIS/Pack/html/_flash_algorithm.html" target="_blank">Flash Programming Algorithm</a> as defined by ARM/Keil</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">IAR</td>
|
|
|
+ <td>Flash Programming Algorithm as defined by IAR</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">CMSIS</td>
|
|
|
+ <td>To be agreed under CMSIS</td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+
|
|
|
+\anchor DcoreEnum <b>Table: Device Cores</b>
|
|
|
+
|
|
|
+The table lists available device cores. The list is extended from time to time to reflect new processor cores.
|
|
|
+These values can be used in the elements:
|
|
|
+- \ref element_accept
|
|
|
+- \ref element_require
|
|
|
+- \ref element_deny
|
|
|
+- \ref element_processor
|
|
|
+
|
|
|
+<table class="cmtable" summary="Enumeration: DcoreEnum">
|
|
|
+ <tr>
|
|
|
+ <th>Dcore=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-M0</td>
|
|
|
+ <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m0.php" target="_blank">ARM Cortex-M0</a> processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-M0+</td>
|
|
|
+ <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m0plus.php" target="_blank">ARM Cortex-M0+</a> processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-M1</td>
|
|
|
+ <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m1.php" target="_blank">ARM Cortex-M1</a> processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-M3</td>
|
|
|
+ <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m3.php" target="_blank">ARM Cortex-M3</a> processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-M4</td>
|
|
|
+ <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m4-processor.php" target="_blank">ARM Cortex-M4</a> processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-M7</td>
|
|
|
+ <td><a href="http://www.arm.com/products/processors/cortex-m/cortex-m7-processor.php" target="_blank">ARM Cortex-M7</a> processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">SC000</td>
|
|
|
+ <td>SecurCore <a href="http://www.arm.com/products/processors/securcore/sc000.php" target="_blank">SC000</a> based on technology of Cortex-M0.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">SC300</td>
|
|
|
+ <td>SecurCore <a href="http://www.arm.com/products/processors/securcore/sc300.php" target="_blank">SC300</a> based on technology of Cortex-M3.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-R4</td>
|
|
|
+ <td>ARM Cortex-R4 processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-R5</td>
|
|
|
+ <td>ARM Cortex-R5 processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-A8</td>
|
|
|
+ <td>ARM Cortex-A8 processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-A9</td>
|
|
|
+ <td>ARM Cortex-A9 processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Cortex-A15</td>
|
|
|
+ <td>ARM Cortex-A15 processor based device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">*</td>
|
|
|
+ <td>Device based on any processor</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+
|
|
|
+\anchor DfpuEnum <b>Table: Device FPU</b>
|
|
|
+
|
|
|
+The table lists values that identicate whether a CPU has an Floating Point Unit (FPU).
|
|
|
+The tokens can be used in the elements:
|
|
|
+- \ref element_accept
|
|
|
+- \ref element_require
|
|
|
+- \ref element_deny
|
|
|
+- \ref element_processor
|
|
|
+
|
|
|
+<table class="cmtable" summary="Enumeration: DfpuEnum">
|
|
|
+ <tr>
|
|
|
+ <th>Dfpu=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">NO_FPU</td>
|
|
|
+ <td>Hardware Floating Point Unit not present</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">FPU</td>
|
|
|
+ <td>Hardware Floating Point Unit present</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">SP_FPU</td>
|
|
|
+ <td>Single Precision Hardware Floating Point Unit present</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">DP_FPU</td>
|
|
|
+ <td>Double Precision Hardware Floating Point Unit present</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DmpuEnum <b>Table: Device MPU</b>
|
|
|
+
|
|
|
+The table shows predefined values that identify whether a CPU has an Memory Protection Unit (MPU).
|
|
|
+The values can be used in the elements:
|
|
|
+- \ref element_accept
|
|
|
+- \ref element_require
|
|
|
+- \ref element_deny
|
|
|
+- \ref element_processor
|
|
|
+
|
|
|
+<table class="cmtable" summary="Enumeration: DmpuEnum">
|
|
|
+ <tr>
|
|
|
+ <th>Dmpu=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">MPU</td>
|
|
|
+ <td>Memory Protection Unit is present</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">NO_MPU</td>
|
|
|
+ <td>No Memory Protection Unit is present</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DendianEnum <b>Table: Endianness</b>
|
|
|
+
|
|
|
+The table lists values representing the endianness of a device.
|
|
|
+The values can be used in the elements:
|
|
|
+- \ref element_accept
|
|
|
+- \ref element_require
|
|
|
+- \ref element_deny
|
|
|
+- \ref element_processor
|
|
|
+
|
|
|
+<table class="cmtable" summary="Enumeration: DendianEnum">
|
|
|
+ <tr>
|
|
|
+ <th>Dendian=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Little-endian</td>
|
|
|
+ <td>The least significant byte of a multi-byte access is located at the specified address.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Big-endian</td>
|
|
|
+ <td>The most significant byte of a multi-byte access is located at the specified address.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Configurable</td>
|
|
|
+ <td>The byte ordering of multi-byte accesses is configurable.</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_debugconfig /package/devices/family/.../debugconfig
|
|
|
+
|
|
|
+Default debugger configuration for a target connection.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <debugconfig default="jtag" clock="10000000" swj="1" sdf="Debug/SDF/lpc4300.sdf"/>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: debugconfig">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>default</td>
|
|
|
+ <td>
|
|
|
+ Specifies the default debug protocol to use for target connections. Predefined tokens must be used as
|
|
|
+ defined in \ref DebugProtocolEnum "Table: Debug Protocol Type". Default value is \token{swd}.
|
|
|
+ </td>
|
|
|
+ <td>DebugProtocolEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>clock</td>
|
|
|
+ <td>Specifies the default debug clock setting in Hz for a target connection. Default value is \token{10000000}.</td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>swj</td>
|
|
|
+ <td>
|
|
|
+ The device is accessed via a CoreSight SWJ-DP capable of switching between Serial Wire Debug (SWD) and JTAG protocols.
|
|
|
+ Default value is \token{true}.
|
|
|
+ </td>
|
|
|
+ <td>xs:bool</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>sdf</td>
|
|
|
+ <td>
|
|
|
+ This attribute specifies the filename and path of the system description file (SFD).
|
|
|
+ The system description file contains information about CoreSight components, there versions and how they
|
|
|
+ are interconnected and hooked to debug and access ports. If not specified an autodetection needs to
|
|
|
+ be initiated by the debugger at connection time.
|
|
|
+ </td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DebugProtocolEnum <b>Table: Debug Protocol Type</b>
|
|
|
+
|
|
|
+The table lists the values for debug protocol types.
|
|
|
+<table class="cmtable" summary="Enumeration: DataPatchAccessTypeEnum">
|
|
|
+ <tr>
|
|
|
+ <th>type=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">jtag</td>
|
|
|
+ <td>
|
|
|
+ JTAG debug protocol.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">swd</td>
|
|
|
+ <td>
|
|
|
+ ARM Serial Wire Debug (SWD) protocol.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">cjtag</td>
|
|
|
+ <td>
|
|
|
+ CJTAG concurrent jtag debug protocol.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_debugvars /package/devices/family/.../debugvars
|
|
|
+
|
|
|
+Specify \ref DebugVars "global debug access variables". Use these in addition
|
|
|
+to the \ref PredefinedDebugVars "pre-defined variables" in order to
|
|
|
+query settings from a debug access sequences.<br>
|
|
|
+<br>
|
|
|
+Define debug access variables with statements of the following form.
|
|
|
+\code
|
|
|
+__var uservar = value; // Comment: Define "uservar" and initialize to "value"
|
|
|
+\endcode
|
|
|
+
|
|
|
+\note
|
|
|
+- Initialization values must be constant unsigned numbers. No expressions are allowed.
|
|
|
+- User-defined debug access variables are <b>read-only</b> in a debug access sequence.
|
|
|
+- Pre-defined debug access variables cannot be set in this element.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+
|
|
|
+<family Dfamily="EFM32WG Series" Dvendor="Energy Micro:97">
|
|
|
+ ...
|
|
|
+ <debugvars configfile="Debug/EFM32WGxxx.dbgconf" version="1.0">
|
|
|
+
|
|
|
+ __var __TPIU_pinlocation = 0; // Select one of four possible TPIU pin locations
|
|
|
+
|
|
|
+ __var __SWO_pinlocation = 0; // Select one of four possible SWO pin locations
|
|
|
+
|
|
|
+ </debugvars>
|
|
|
+ ...
|
|
|
+ <sequences>
|
|
|
+ <sequence name="TraceStart">
|
|
|
+ ...
|
|
|
+ <block if="__TPIU_pinlocation == 2">
|
|
|
+ ...
|
|
|
+ <!-- Configure device to use pins as defined for TPIU pin location 2 -->
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ </sequences>
|
|
|
+ ...
|
|
|
+ <debug __dp="0" __ap="0"/>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: debugvars">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>configfile</td>
|
|
|
+ <td>
|
|
|
+ Configuration file with path relative to the package base folder (extension *.DBGCONF). This file contains
|
|
|
+ assignments of a default value to global debug access variables. This file gets copied to the project folder
|
|
|
+ and is editable by the end-user. This file is read by the debugger after processing the global debug access variables.
|
|
|
+ By editing the values of the debug access variables, the end-user effectively controls the behavior of sequences.
|
|
|
+ The file can only assign new values but must not specify any new debug access variables.
|
|
|
+ \ref ConfigWizard "Configuration Wizard Annotations" shall be used within the file to provide a graphical user interface
|
|
|
+ for editing configuration options.
|
|
|
+ </td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref VersionType "version"</td>
|
|
|
+ <td>
|
|
|
+ Version refers to the file version of the configfile attribute. If a configfile is specified the version attribute becomes
|
|
|
+ mandatory. The version shall be incremented if any changes have been made to the global debug access variable names or default
|
|
|
+ values. Based on the version information the tool environment will load a configfile with the version required by the debug
|
|
|
+ description. The end-user may be required to update the settings after updating to a new version.
|
|
|
+ </td>
|
|
|
+ <td>\ref VersionType</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>
|
|
|
+ Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set
|
|
|
+ for this <b>debugvars</b> element, the debug access variables and <b>configfile</b> of this element
|
|
|
+ are only valid for a debug connection to the referenced processor. Otherwise, they are valid for all processors.
|
|
|
+ <b>This attribute must be set if defining multiple \em debugvars sections for a device.</b>
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
+ </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\b Example: Configuration File
|
|
|
+\code
|
|
|
+// File: EFM32WGxxx.dbgconf
|
|
|
+// Version: 1.0
|
|
|
+// <<< Use Configuration Wizard in Context Menu >>>
|
|
|
+// <h>Trace Pin Setup
|
|
|
+ // <o> TPIU Pin Location
|
|
|
+// <0=> Pin Location 0
|
|
|
+// <1=> Pin Location 1
|
|
|
+// <2=> Pin Location 2
|
|
|
+// <3=> Pin Location 3
|
|
|
+// <i> Select TPIU pin location for your board configuration:
|
|
|
+// <i> - Pin Location 0 (TRACECLK: PD7, TRACEDATA0: PD6, TRACEDATA1: PD3, TRACEDATA2: PD4, TRACEDATA3: PD5)
|
|
|
+// <i> - Pin Location 1 (TRACECLK: PF8, TRACEDATA0: PF9, TRACEDATA1: PD13, TRACEDATA2: PB15, TRACEDATA3: PF3)
|
|
|
+// <i> - Pin Location 2 (TRACECLK: PC6, TRACEDATA0: PC7, TRACEDATA1: PD3, TRACEDATA2: PD4, TRACEDATA3: PD5)
|
|
|
+// <i> - Pin Location 3 (TRACECLK: PA6, TRACEDATA0: PA2, TRACEDATA1: PA3, TRACEDATA2: PA4, TRACEDATA3: PA5)
|
|
|
+// <i> Default: Pin Location 0
|
|
|
+__TPIU_pinlocation = 0;
|
|
|
+
|
|
|
+// <o> SWO Pin Location
|
|
|
+// <0=> Pin Location 0
|
|
|
+// <1=> Pin Location 1
|
|
|
+// <2=> Pin Location 2
|
|
|
+// <3=> Pin Location 3
|
|
|
+// <i> Select SWO pin location for your board configuration:
|
|
|
+// <i> - Pin Location 0 (SWO: PF2)
|
|
|
+// <i> - Pin Location 1 (SWO: PC15)
|
|
|
+// <i> - Pin Location 2 (SWO: PD1)
|
|
|
+// <i> - Pin Location 3 (SWO: PD2)
|
|
|
+// <i> Default: Pin Location 0
|
|
|
+__SWO_pinlocation = 0;
|
|
|
+
|
|
|
+// </h>
|
|
|
+// <<< end of configuration section >>>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DebugVars <b>Debug Access Variables</b>
|
|
|
+
|
|
|
+Debug access variables hold 64-bit unsigned integer values and are used in debug access
|
|
|
+sequences to query debugger settings and states. They are <b>read-only</b> within a
|
|
|
+sequence except from a limited set of the \ref PredefinedDebugVars "pre-defined debug access variables".
|
|
|
+Use the <b>debugvars</b> element to specify additional user-defined debug access variables.
|
|
|
+
|
|
|
+
|
|
|
+\anchor PredefinedDebugVars <b>Table: Pre-defined Debug Access Variables</b><br>
|
|
|
+A debugger needs to support a set of pre-defined debug access variables. These are
|
|
|
+described in the following table.
|
|
|
+
|
|
|
+<table class="cmtable" summary="ExpressionType: Pre-defined Debug Access Variables">
|
|
|
+ <tr>
|
|
|
+ <th>Variable</th>
|
|
|
+ <th>Access</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Value=</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>__protocol</pre></td>
|
|
|
+ <td>Read-Only</td>
|
|
|
+ <td>
|
|
|
+ Debug protocol selection and parameters for target connection.
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ The following bit map applies:<br>
|
|
|
+ - Bit 0..15: Type
|
|
|
+ - \token{0}: Error<br>
|
|
|
+ - \token{1}: JTAG<br>
|
|
|
+ - \token{2}: Serial Wire Debug (SWD)<br>
|
|
|
+ - \token{3}: CJTAG<br>
|
|
|
+ - Bit 16: SWJ-DP
|
|
|
+ - Bit 17..63: Reserved
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>__connection</pre></td>
|
|
|
+ <td>Read-Only</td>
|
|
|
+ <td>
|
|
|
+ Target connection configuration.
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ The following bit map applies:<br>
|
|
|
+ - Bit 0..7: Connection type
|
|
|
+ - \token{0}: Error or target is disconnected.
|
|
|
+ - \token{1}: Connection for target debug.
|
|
|
+ - \token{2}: Connection for downloading application to flash.
|
|
|
+ - Bit 8..15: Reset type.
|
|
|
+ - \token{0}: Error.
|
|
|
+ - \token{1}: Hardware Reset (debugger reset line).
|
|
|
+ - \token{2}: System Reset Request.
|
|
|
+ - \token{3}: Processor Reset Request ("Vector Reset").
|
|
|
+ - Bit 16..63: Reserved
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>__dp</pre></td>
|
|
|
+ <td>Read/Write</td>
|
|
|
+ <td>
|
|
|
+ Debug Port selected for target accesses.<br>
|
|
|
+ This variable is initialized when entering a pre-defined debug access
|
|
|
+ sequence because of a debug event. The initialization value
|
|
|
+ is the <b>__dp</b> as defined for the used <b>debug</b> element.
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ Debug port ID as specified in a <b>debugport</b> element or
|
|
|
+ \token{0} if no <b>debugport</b> element exists.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>__ap</pre></td>
|
|
|
+ <td>Read/Write</td>
|
|
|
+ <td>
|
|
|
+ Access Port selected for target accesses.<br>
|
|
|
+ This variable is initialized when entering a pre-defined debug access
|
|
|
+ sequence because of a debug event. The initialization value
|
|
|
+ is the <b>__ap</b> as defined for the used <b>debug</b> element.
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ Access Port index.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>__traceout</pre></td>
|
|
|
+ <td>Read-Only</td>
|
|
|
+ <td>
|
|
|
+ Activated trace outputs (sinks). Additionally holds information on the selected port width if
|
|
|
+ a parallel trace port is enabled.
|
|
|
+ </td>
|
|
|
+ <td style="white-space: nowrap">
|
|
|
+ The following bit map applies:<br>
|
|
|
+ - Bit 0: Serial Wire Output (SWO) Trace enabled.
|
|
|
+ - Bit 1: Parallel Trace Port enabled.
|
|
|
+ - Bit 2: Trace Buffer enabled.
|
|
|
+ - Bit 3..15: Reserved.
|
|
|
+ - Bit 16..21: Selected Parallel Trace Port size.
|
|
|
+ - Bit 22..63: Reserved.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>__errorcontrol</pre></td>
|
|
|
+ <td>Read/Write</td>
|
|
|
+ <td>
|
|
|
+ Control variable for debug access error handling. All of its bit
|
|
|
+ fields are intialized to \token{0} when entering a pre-defined
|
|
|
+ debug access sequence because of a debug event.
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ The following bit map applies:<br>
|
|
|
+ - Bit 0: Skip errors if set to \token{1}. A debugger must
|
|
|
+ continue the sequence execution.
|
|
|
+ - Bit 1..63: Reserved
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_debugport /package/devices/family/.../debugport
|
|
|
+
|
|
|
+Describes a CoreSight debug port of the device and its capabilities. The element can occur on various
|
|
|
+levels. Use unique ID values for the attribute <b>__dp</b> to distinguish multiple <b>debugport</b>
|
|
|
+elements in later references.<br><br>
|
|
|
+<b>debugport</b> elements are required for targets with multiple debug ports. For devices with a
|
|
|
+single debug port these elements can be omitted. If no <b>debugport</b> element exists the only
|
|
|
+allowed <b>__dp</b> ID in later references is \token{0}.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <debugconfig default="jtag" clock="10000000" swj="1"/>
|
|
|
+
|
|
|
+ <debugport __dp="0">
|
|
|
+ <jtag tapindex="0"/>
|
|
|
+ <swd/>
|
|
|
+ </debugport>
|
|
|
+
|
|
|
+ <debugport __dp="1">
|
|
|
+ <jtag tapindex="1"/>
|
|
|
+ </debugport>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: debugport">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>__dp</td>
|
|
|
+ <td>
|
|
|
+ Unique ID of this <b>debugport</b>. It must be used consistently in references within the scope of
|
|
|
+ the parent section.
|
|
|
+ </td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_dp_jtag "jtag"</td>
|
|
|
+ <td>Describe JTAG Test Access Port (TAP) properties of this debug port.</td>
|
|
|
+ <td>JtagType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_dp_swd "swd"</td>
|
|
|
+ <td>Describe CoreSight Serial Wire Debug Port (SW-DP) properties of this debug port.</td>
|
|
|
+ <td>SwdType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_dp_cjtag "cjtag"</td>
|
|
|
+ <td>Describe CJTAG Test Access Port (TAP) properties of this debug port.</td>
|
|
|
+ <td>CjtagType</td>
|
|
|
+ <td>0..1</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+
|
|
|
+\section element_dp_jtag /package/devices/family/.../debugport/jtag
|
|
|
+
|
|
|
+Indicates availability of a JTAG interface for the <b>debugport</b> parent element. Its
|
|
|
+attributes allow the manual override of a debugger's automatic JTAG Test Access Port (TAP)
|
|
|
+detection.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
+ ...
|
|
|
+ <debugconfig default="swd" clock="10000000" swj="1"/>
|
|
|
+
|
|
|
+ <debugport __dp="0">
|
|
|
+ <jtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
|
|
|
+ <swd idcode="0x2BA01477"/>
|
|
|
+ </debugport>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: jtag">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugport "debugport"</td>
|
|
|
+ <td colspan="3">\ref element_debugport</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>tapindex</td>
|
|
|
+ <td>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 \token{0}. </td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>idcode</td>
|
|
|
+ <td>Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. </td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+<!--- finalize when there are multidrop devices available (or when we have DS-5 support for that)
|
|
|
+ <tr>
|
|
|
+ <td>targetsel</td>
|
|
|
+ <td>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. <b>(Unsupported)</b></td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+-->
|
|
|
+ <tr>
|
|
|
+ <td>irlen</td>
|
|
|
+ <td>Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. </td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_dp_swd /package/devices/family/.../debugport/swd
|
|
|
+
|
|
|
+Indicates availability of an ARM Serial Wire Debug (SWD) interface for the <b>debugport</b> parent element.
|
|
|
+Its attributes allow the manual override of SWD port characteristics as read from the target and provide
|
|
|
+information for the port selection in a system with multi-drop SWD support.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
+ ...
|
|
|
+ <debugconfig default="swd" clock="10000000" swj="1"/>
|
|
|
+
|
|
|
+ <debugport __dp="0">
|
|
|
+ <jtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
|
|
|
+ <swd idcode="0x2BA01477"/>
|
|
|
+ </debugport>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: swd">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugport "debugport"</td>
|
|
|
+ <td colspan="3">\ref element_debugport</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>idcode</td>
|
|
|
+ <td>Specifies the IDCODE of the SWD port. It overrides the value read from the port's IDCODE register. </td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+<!--- finalize when there are multidrop devices available (or when we have DS-5 support for that)
|
|
|
+ <tr>
|
|
|
+ <td>targetsel</td>
|
|
|
+ <td>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 SWD support. It is ignored otherwise. <b>(Unsupported)</b></td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+--->
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_dp_cjtag /package/devices/family/.../debugport/cjtag
|
|
|
+
|
|
|
+Indicates availability of a CJTAG interface for the <b>debugport</b> parent element. Its
|
|
|
+attributes allow the manual override of a debugger's automatic CJTAG Test Access Port (TAP)
|
|
|
+detection.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="STM32F4" Dvendor="STMicroelectronics:13">
|
|
|
+ ...
|
|
|
+ <debugconfig default="swd" clock="10000000" swj="1"/>
|
|
|
+
|
|
|
+ <debugport __dp="0">
|
|
|
+ <cjtag tapindex="0" idcode="0x4BA00477" irlen="4"/>
|
|
|
+ <swd idcode="0x2BA01477"/>
|
|
|
+ </debugport>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: cjtag">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debugport "debugport"</td>
|
|
|
+ <td colspan="3">\ref element_debugport</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>tapindex</td>
|
|
|
+ <td>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 \token{0}. </td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>idcode</td>
|
|
|
+ <td>Specifies the IDCODE of the JTAG TAP. This value overrides the IDCODE read from the target. </td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>irlen</td>
|
|
|
+ <td>Specifies the instruction register length of the JTAG TAP. This value overrides the instruction register length detected by a debugger. </td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_sequences /package/devices/family/.../sequences
|
|
|
+
|
|
|
+Container for debug access sequences for this device.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <sequences>
|
|
|
+ ...
|
|
|
+ <sequence name="DebugCoreStart" Pname="Cortex-M0">
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ ...
|
|
|
+ <sequence name="ResetSystem" Pname="Cortex-M4">
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ ...
|
|
|
+ <sequence name="TraceStart" Pname="Cortex-M4">
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ ...
|
|
|
+ </sequences>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: sequences">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequence "sequence"</td>
|
|
|
+ <td>
|
|
|
+ Describe a debug access sequence.
|
|
|
+ </td>
|
|
|
+ <td>SequenceType</td>
|
|
|
+ <td>1..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_sequence /package/devices/family/.../sequences/sequence
|
|
|
+
|
|
|
+Describes a Debug Access Sequence which contains <b>control</b> and
|
|
|
+<b>block</b> elements. <b>block</b> elements contains statements
|
|
|
+including calls to \ref DebugFunctions "Debug Access Functions". A Debug
|
|
|
+Access Sequence overrides or extends the default functionality of a development tool.
|
|
|
+Refer to \ref usage_of_sequences for details.<br>
|
|
|
+
|
|
|
+\note
|
|
|
+- <b>control</b> elements can contain other <b>control</b> and <b>block</b>
|
|
|
+ elements. <b>The maximum nesting of \em control elements is 10.</b>
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="Generic Family" Dvendor="Generic:5">
|
|
|
+ ...
|
|
|
+ <sequences>
|
|
|
+ ...
|
|
|
+ <sequence name="UserSequence">
|
|
|
+
|
|
|
+ <block info="Define variables and do debug accesses">
|
|
|
+ __var tpWidth = (__traceout & 0x003F0000) >> 16;
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+
|
|
|
+ <control if="__traceout & 0x2" info="Parallel Trace Port enabled">
|
|
|
+
|
|
|
+ <block>
|
|
|
+ // Do something generic for parallel trace port trace
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+
|
|
|
+ <control if="tpWidth == 1" info="Configure device for 1-bit TPIU trace.">
|
|
|
+
|
|
|
+ <block>
|
|
|
+ // Do debug accesses
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+
|
|
|
+ </control>
|
|
|
+
|
|
|
+ <control if="tpWidth == 2" info="Configure device for 2-bit TPIU trace.">
|
|
|
+
|
|
|
+ <block>
|
|
|
+ // Do debug accesses
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+
|
|
|
+ </control>
|
|
|
+
|
|
|
+ <control if="tpWidth == 4" info="Configure device for 4-bit TPIU trace.">
|
|
|
+
|
|
|
+ <block>
|
|
|
+ // Do debug accesses
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+
|
|
|
+ </control>
|
|
|
+
|
|
|
+ </control>
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ ...
|
|
|
+ </sequences>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: sequence">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequences "sequences"</td>
|
|
|
+ <td colspan="3">\ref element_sequences</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>name</td>
|
|
|
+ <td>Name of the Debug Access Sequence:<br>
|
|
|
+ - Pre-defined names are executed by the development tool described under \ref usage_of_sequences.
|
|
|
+ - Any Debug Access Sequence can be executed the \ref DebugFunctions "debug access function" <b>Sequence</b>.
|
|
|
+ </td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>
|
|
|
+ Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set
|
|
|
+ for this <b>sequence</b> element, a debugger executes the debug access sequence only for a debug connection
|
|
|
+ to the referenced processor. Otherwise, it is executed for all processors.
|
|
|
+ <b>This attribute must be set if defining multiple implementations of the same debug access sequence.</b>
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
+ </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>disable</td>
|
|
|
+ <td>Disables execution of the \ref default_sequences "Default Debug Access Sequence".</td>
|
|
|
+ <td>xs:boolean</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>info</td>
|
|
|
+ <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_seq_control "control"</td>
|
|
|
+ <td>
|
|
|
+ Describe a debug access sequence flow control element.
|
|
|
+ </td>
|
|
|
+ <td>SequenceControlType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_seq_block "block"</td>
|
|
|
+ <td>
|
|
|
+ Describe a block of debug accesses.
|
|
|
+ </td>
|
|
|
+ <td>SequenceBlockType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor sequences_names <b>Table: Pre-defined Debug Access Sequences</b>
|
|
|
+
|
|
|
+The following table list the Pre-defined Debug Access Sequences.
|
|
|
+For sequences that are not specified in a <b>sequence</b> element \ref default_sequences are executed.
|
|
|
+Refer to \ref usage_of_sequences Usage for more information about the execution of these sequences.
|
|
|
+
|
|
|
+<table class="cmtable" summary="Enumeration: SequenceNameEnum">
|
|
|
+ <tr>
|
|
|
+ <th>name=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref DebugPortSetup</td>
|
|
|
+ <td>Prepare the target debug port for connection; is executed before acquiring access to the debug port.<br>
|
|
|
+ May include for example an SWJ-DP switch sequence as defined in the ARM Debug Interface (ADI) Architecture Specification.<br>
|
|
|
+ <b>This sequence must not contain debug port/access port register and target memory accesses other than:</b>
|
|
|
+ - <b>Reading the \em DPIDR debug port register to release an SWD connection from its line reset.</b>
|
|
|
+ - <b>Writing the \em TARGETSEL debug port register (SWD protocol v2).</b>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref DebugPortStart</td>
|
|
|
+ <td>Connect to the target debug port and power it up; is executed after DebugPortSetup.<br>
|
|
|
+ The parent <b>debugport</b> is default debug port for this sequence.<br>
|
|
|
+ <b>This sequence must not contain access port register and target memory accesses.</b></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref DebugPortStop</td>
|
|
|
+ <td>Power down and disconnect from target debug port.<br>
|
|
|
+ Executed as last step during target disconnect unless another debugger connection to this port is active. The parent
|
|
|
+ <b>debugport</b> is default debug port for this sequence.<br>
|
|
|
+ <b>This sequence must not contain access port register and target memory accesses.</b></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">DebugDeviceUnlock</td>
|
|
|
+ <td>Check if the device is in a locked state and unlock it. Use <b>query</b> command elements
|
|
|
+ for user confirmation.<br>
|
|
|
+ Executed after having powered up the debug port.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref DebugCoreStart</td>
|
|
|
+ <td>Initialize core debug system.<br>
|
|
|
+ Executed after having connected and powered up the default debug port for the connection.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref DebugCoreStop</td>
|
|
|
+ <td>Uninitialize core debug system.<br>
|
|
|
+ Executed as last step during disconnect before powering down any debug ports no longer required for
|
|
|
+ concurrent connections.</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">DebugCodeMemRemap</td>
|
|
|
+ <td>Remap memory to execution location.<br>
|
|
|
+ Executed before verifying memory content after flash programming. This is required to replicate a memory remap of a device bootloader (that is not executed during debug connection).
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetSystem</td>
|
|
|
+ <td>Execute a system-wide reset via software mechanisms.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetProcessor</td>
|
|
|
+ <td>Execute a processor reset via software mechanisms.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetHardware</td>
|
|
|
+ <td>Execute a system-wide reset via the dedicated debugger reset line, e.g. nRST.
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetHardwareAssert</td>
|
|
|
+ <td>Assert a system-wide reset via the dedicated debugger reset line, e.g. nRST.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetHardwareDeassert</td>
|
|
|
+ <td>Deassert a system-wide reset via the dedicated debugger reset line, e.g. nRST.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetCatchSet</td>
|
|
|
+ <td>Executed before a target reset to configure the vector catch to stop code execution after the reset.<br>
|
|
|
+ The implementation of <b>ResetCatchSet</b> requires an implementation of <b>ResetCatchClear</b>
|
|
|
+ to free any hardware resources used for stopping the core.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">\ref ResetCatchClear</td>
|
|
|
+ <td>Executed after a target reset to free hardware resources allocated by <b>ResetCatchSet</b>.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">FlashEraseDone</td>
|
|
|
+ <td>
|
|
|
+ Executed after erasing flash memory.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">FlashProgramDone</td>
|
|
|
+ <td>
|
|
|
+ Eexecuted after programming flash memory.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">TraceStart</td>
|
|
|
+ <td>Enable target trace capture.<br>
|
|
|
+ Executed before the debugger powers up and configures standard CoreSight trace components, e.g. after the initial target connection
|
|
|
+ as well as after a system-wide reset.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">TraceStop</td>
|
|
|
+ <td>Disable target trace capture.<br>
|
|
|
+ Executed after the debugger disabled and powered down standard CoreSight trace components.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">RecoverySupportStart</td>
|
|
|
+ <td>Executed before step or run command to support recovery from a lost target connection, e.g. after a low power mode.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">RecoverySupportStop</td>
|
|
|
+ <td>Executed after step or run command in context of the <b>RecoverySupportStart</b> sequence.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">RecoveryAcknowledge</td>
|
|
|
+ <td>Debugger acknowledge after recovering from a lost target connection. Can be executed independently
|
|
|
+ from a <b>RecoverySupportStart</b> sequence.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_seq_control /package/devices/family/.../sequences/sequence/control
|
|
|
+
|
|
|
+Describes flow control like <b>if</b> and <b>while</b> blocks for debug access sequences.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="Generic Family" Dvendor="Generic:5">
|
|
|
+ ...
|
|
|
+ <sequences>
|
|
|
+ ...
|
|
|
+ <sequence name="UserSequence">
|
|
|
+ ...
|
|
|
+ <block info="Define variables and do debug accesses">
|
|
|
+ __var doIfBlock = 1;
|
|
|
+ __var whileCondition = 1;
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+ ...
|
|
|
+ <control if="doIfBlock">
|
|
|
+
|
|
|
+ <block>
|
|
|
+ // Do debug accesses
|
|
|
+ ...
|
|
|
+ </block>
|
|
|
+
|
|
|
+ </control>
|
|
|
+ ...
|
|
|
+ <control while="whileCondition" timeout="5000">
|
|
|
+
|
|
|
+ <block>
|
|
|
+ // Execute while "whileCondition" different from '0' with a timeout of 5ms
|
|
|
+ whileCondition = 0;
|
|
|
+ </block>
|
|
|
+
|
|
|
+ </control>
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ ...
|
|
|
+ </sequences>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: control">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequence "sequence"</td>
|
|
|
+ <td colspan="3">\ref element_sequence</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_seq_control "control"</td>
|
|
|
+ <td colspan="3">\ref element_seq_control</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attribute</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>if</td>
|
|
|
+ <td>
|
|
|
+ Expression describing the condition under which to execute this sequence block.
|
|
|
+ The block is skipped if the condition resolved to \token{false}. Defaults to
|
|
|
+ \token{true} if not set.
|
|
|
+ Refer to \ref ExpressionType "Expression Rules" for the syntax.
|
|
|
+ </td>
|
|
|
+ <td>ExpressionType</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>while</td>
|
|
|
+ <td>
|
|
|
+ Expression describing a while-condition. The execution of the block contents is
|
|
|
+ repeated while the condition resolves to \token{true}, or until an optional
|
|
|
+ <b>timeout</b> is reached.
|
|
|
+ Refer to \ref ExpressionType "Expression Rules" for the syntax.
|
|
|
+ </td>
|
|
|
+ <td>ExpressionType</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>timeout</td>
|
|
|
+ <td>
|
|
|
+ Timeout in microseconds for a <b>block</b> with a <b>while</b> condition. A debugger must
|
|
|
+ extend the timeout to the closest possible time granularity. If the timeout is reached,
|
|
|
+ the current iteration including a last evaluation of the <b>while</b> condition must
|
|
|
+ finish. A value of \token{0} disables the timeout.<br>
|
|
|
+ This attribute defaults to \token{0}.
|
|
|
+ </td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>info</td>
|
|
|
+ <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_seq_control "control"</td>
|
|
|
+ <td>
|
|
|
+ Describe a debug access sequence flow control element.
|
|
|
+ </td>
|
|
|
+ <td>SequenceControlType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_seq_block "block"</td>
|
|
|
+ <td>
|
|
|
+ Describe a block of debug accesses.
|
|
|
+ </td>
|
|
|
+ <td>SequenceBlockType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_seq_block /package/devices/family/.../sequences/sequence/block
|
|
|
+
|
|
|
+Describes a block of debug accesses. See \ref DebugSyntaxRules "Debug Access Syntax Rules"
|
|
|
+for details on the allowed syntax of the block contents.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="Generic Family" Dvendor="Generic:5">
|
|
|
+ ...
|
|
|
+ <sequences>
|
|
|
+ ...
|
|
|
+ <sequence name="UserSequence">
|
|
|
+ ...
|
|
|
+ <block info="Define condition variales for later use in block elements.">
|
|
|
+ // Variable definition by __var keyword
|
|
|
+ __var doIfBlock = 1;
|
|
|
+ __var whileCondition = 1;
|
|
|
+ </block>
|
|
|
+ ...
|
|
|
+ </sequence>
|
|
|
+ ...
|
|
|
+ </sequences>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: block">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_sequence "sequence"</td>
|
|
|
+ <td colspan="3">\ref element_sequence</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_seq_control "control"</td>
|
|
|
+ <td colspan="3">\ref element_seq_control</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attribute</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>atomic</td>
|
|
|
+ <td>
|
|
|
+ Instruct the debugger to execute the block contents atomically; a debugger needs to
|
|
|
+ download and buffer all debug accesses to the debug probe and finish the
|
|
|
+ execution without further communication to the host PC. If a debugger cannot
|
|
|
+ support an atomic block it must abort the execution of the debug access sequence.<br>
|
|
|
+ </td>
|
|
|
+ <td>xs:boolean</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>info</td>
|
|
|
+ <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<b>Atomic Blocks:</b>
|
|
|
+- Do not use debug access results for subsequent accesses in the same atomic block.
|
|
|
+- Support for atomic blocks is highly debugger dependent. Keep them as short and simple as possible
|
|
|
+to address a wide range of debuggers.
|
|
|
+- <b>Query</b> and <b>Sequence</b> debug access functions must not be used in an atomic block.
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DebugSyntaxRules <b>Debug Access Syntax Rules</b>
|
|
|
+
|
|
|
+Debug accesses are described in <b>block</b> elements of a debug access sequence (<b>sequence</b> element).
|
|
|
+The following syntax is used for this purpose:
|
|
|
+- The contents of a <b>block</b> element is a series of statements.
|
|
|
+- Each statement must begin in a new line and is terminated by a \token{;} character.
|
|
|
+- A typical statement consists of variable, followed by a \token{=} character and an expression, where the
|
|
|
+\token{=} character is an assignment of the \ref ExpressionType "expression" result to the variable:
|
|
|
+\code
|
|
|
+variable = expression;
|
|
|
+\endcode
|
|
|
+- Alternatively, a statement can be a sole \ref ExpressionType "expression" without storing its result
|
|
|
+to a variable.
|
|
|
+\code
|
|
|
+expression;
|
|
|
+\endcode
|
|
|
+- Comments begin with two slashes (\token{//}) and end with a linebreak:
|
|
|
+\code
|
|
|
+// Whole line is a comment
|
|
|
+variable = expression; // Comment appended to statement
|
|
|
+\endcode
|
|
|
+- Variables must be defined using the keyword \token{__var}. The definition must include an initalization
|
|
|
+ of the variable:
|
|
|
+\code
|
|
|
+__var variable = 0;
|
|
|
+\endcode
|
|
|
+- Variables can be defined only once within a scope. Scopes beging with entering a debug access
|
|
|
+ sequence or a <b>control</b> element. They are extended to child <b>control</b> elements.
|
|
|
+ Variables of a parent scope can be modified. Leaving a scope destroys all variables defined in it.<br>
|
|
|
+ <b>\em block elements do not begin a new scope.</b>
|
|
|
+\code
|
|
|
+<sequence name="MySequence">
|
|
|
+
|
|
|
+ <block info="Block 1">
|
|
|
+ __var condvar = 1;
|
|
|
+ __var myvar1 = 5;
|
|
|
+ __var myvar2 = 0;
|
|
|
+ </block>
|
|
|
+
|
|
|
+ <control if="condvar">
|
|
|
+ <block>
|
|
|
+ // __var myvar1 = 2; // Redefinition, not allowed!
|
|
|
+ __var myvar3 = 2;
|
|
|
+ myvar2 = myvar1 + myvar3; // Assign value (5+2) = 7
|
|
|
+ </block>
|
|
|
+ </control>
|
|
|
+
|
|
|
+ <block info="Block 2">
|
|
|
+ myvar1 = myvar2 + 1; // Variable myvar1 holds the value '8' after this statement
|
|
|
+ // myvar2 = myvar3; // myvar3 does not exist in this scope, not allowed!
|
|
|
+ </block>
|
|
|
+
|
|
|
+</sequence>
|
|
|
+\endcode
|
|
|
+- The debug access variables <b>__dp</b>, <b>__ap</b>, and <b>__errorcontrol</b> can be modified
|
|
|
+ within a debug access sequence. An assigned value is held until leaving the sequence. Calling
|
|
|
+ another sequence by the <b>Sequence</b> debug access function will push their values on a
|
|
|
+ sequence execution stack. The values are restored when returning from such a call.
|
|
|
+
|
|
|
+
|
|
|
+\anchor ExpressionType <b>Expression Rules</b>
|
|
|
+
|
|
|
+Expressions are used in various places to describe one of the following:
|
|
|
+- A value as assigned in a \ref DebugSyntaxRules "debug access statement".
|
|
|
+- A condition to use in the <b>if</b> attribute of a <b>control</b> element.
|
|
|
+- A condition to use in the <b>while</b> attribute of a <b>control</b> element.
|
|
|
+- A parameter to a debug access function as described below.
|
|
|
+
|
|
|
+An expression may consist of the following:
|
|
|
+- Constant numbers in decimal and hexadecimal representation (prefix \token{0x}).
|
|
|
+- Arithmetic operators such as \token{+}, \token{-}, \token{*}, \token{/}, and \token{%}.
|
|
|
+- Bit-arithmetic operators such as \token{&}, \token{|}, \token{~}, \token{^}, \token{>>}, and \token{<<}.
|
|
|
+- Comparison-operators such as \token{==}, \token{!=}, \token{<}, \token{>}, \token{<=}, and \token{>=}.
|
|
|
+- Logic operators such as \token{!}, \token{&&}, \token{||}, and \token{==}.
|
|
|
+- Conditional expression operations like: \code (x < y) ? a : b \endcode
|
|
|
+- Precedence of sub-expressions is indicated by brackets (\token{(}, \token{)}). C-like precedence applies
|
|
|
+ if brackets are omitted.
|
|
|
+- References to \ref DebugVars "debug access variables" for evaluating debug settings.
|
|
|
+- Calls to \ref DebugFunctions "debug access functions".
|
|
|
+
|
|
|
+\note
|
|
|
+- All values used in expressions resolve to 64-bit unsigned integer values.
|
|
|
+- All logic-operations and comparisons resolve to the value \token{1} if true, to \token{0} otherwise.
|
|
|
+- XML prohibits the use of the characters \token{&}, \token{<}, and \token{>}. Use the corresponding
|
|
|
+ XML entity names instead: \token{&amp;}, \token{&lt;}, and \token{&gt;}.
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DebugFunctions <b>Table: Debug Access Functions</b>
|
|
|
+
|
|
|
+Debug access functions can be called in expressions in order to interact with the target device
|
|
|
+and the user. Parameters to functions can again be expressions.<br>
|
|
|
+By default, a debugger must abort the execution of a debug access sequence if a function call fails.
|
|
|
+However, this behavior can be controlled from a sequence by the <b>__errorcontrol</b>
|
|
|
+\ref DebugVars "debug access variable".<br>
|
|
|
+<br>
|
|
|
+The following table describes the existing debug access functions, their parameters and the
|
|
|
+debug access variables which are evaluated for the function call.
|
|
|
+
|
|
|
+<table class="cmtable" summary="ExpressionType: debug access functions">
|
|
|
+ <tr>
|
|
|
+ <th>Function</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Sequence("name")</pre></td>
|
|
|
+ <td>
|
|
|
+ Execute a debug access sequence.
|
|
|
+ Calling a sequence by this function causes the modifiable debug access variables <b>__dp</b>,
|
|
|
+ <b>__ap</b>, and <b>__errorcontrol</b> to be pushed on a sequence execution stack. Returning
|
|
|
+ from such a call will restore the state of these variables.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - name: Name of the sequence to execute. It must be enclosed by quotes.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Read8(addr)</pre></td>
|
|
|
+ <td>
|
|
|
+ Read an 8-bit value from target memory.
|
|
|
+ <b>A device must support native 8-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to read from.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The 8-bit value as read from target memory.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Read16(addr)</pre></td>
|
|
|
+ <td>
|
|
|
+ Read an 16-bit value from target memory.
|
|
|
+ <b>A device must support native 16-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to read from.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The 16-bit value as read from target memory.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Read32(addr)</pre></td>
|
|
|
+ <td>
|
|
|
+ Read an 32-bit value from target memory.
|
|
|
+ <b>A device must support native 32-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to read from.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The 32-bit value as read from target memory.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Read64(addr)</pre></td>
|
|
|
+ <td>
|
|
|
+ Read an 64-bit value from target memory.
|
|
|
+ <b>A device must support native 64-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to read from.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The 64-bit value as read from target memory.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>ReadAP(addr)</pre></td>
|
|
|
+ <td>
|
|
|
+ Read a 32-bit value from an access port register.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: AP register address to read from. Addresses larger than \token{0xF} automatically cause
|
|
|
+ an AP register bank switch.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The 32-bit value as read from the AP register.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>ReadDP(addr)</pre></td>
|
|
|
+ <td>
|
|
|
+ Read a 32-bit value from a debug port register.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: DP register address to read from.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The 32-bit value as read from the DP register.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Write8(addr, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Write an 8-bit value to target memory.
|
|
|
+ <b>A device must support native 8-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to write to.
|
|
|
+ - val: Value to write.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Write16(addr, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Write a 16-bit value to target memory.
|
|
|
+ <b>A device must support native 16-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to write to.
|
|
|
+ - val: Value to write.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Write32(addr, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Write a 32-bit value to target memory.
|
|
|
+ <b>A device must support native 32-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to write to.
|
|
|
+ - val: Value to write.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Write64(addr, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Write a 64-bit value to target memory.
|
|
|
+ <b>A device must support native 64-bit memory accesses for this function to succeed.</b><br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to write to.
|
|
|
+ - val: Value to write.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>WriteAP(addr, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Write a 32-bit value to an access port register.
|
|
|
+ Addresses larger than 0xF automatically cause an AP register bank switch.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to write to.
|
|
|
+ - val: Value to write.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+ - __ap: The access port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>WriteDP(addr, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Write a 32-bit value to a debug port register.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - addr: Memory address to write to.
|
|
|
+ - val: Value to write.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>DAP_Delay(delay)</pre></td>
|
|
|
+ <td>
|
|
|
+ Debug probe command to wait for a specific delay.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - delay: Wait time in microseconds.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>DAP_WriteABORT(value)</pre></td>
|
|
|
+ <td>
|
|
|
+ Debug probe command to write an abort request to the CoreSight
|
|
|
+ ABORT register of the target debug port.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - value: 32-bit value to write into the CoreSight ABORT register.
|
|
|
+
|
|
|
+ <b>Debug Access Variables:</b><br>
|
|
|
+ - __dp: The debug port to use for this memory access.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>DAP_SWJ_Pins(pinout, pinselect, pinwait)</pre></td>
|
|
|
+ <td>
|
|
|
+ Debug proble command to monitor and control the I/O Pins including the nRESET
|
|
|
+ device reset line.<br>
|
|
|
+ <b>I/O Pin Mapping</b> for <b>pinout</b>, <b>pinselect</b>, and <b>pinwait</b>:
|
|
|
+ - Bit 0: SWCLK/TCK
|
|
|
+ - Bit 1: SWDIO/TMS
|
|
|
+ - Bit 2: TDI
|
|
|
+ - Bit 3: TDO
|
|
|
+ - Bit 5: nTRST
|
|
|
+ - Bit 7: nRESET
|
|
|
+
|
|
|
+ <br>
|
|
|
+ The <b>pinwait</b> time is useful in systems where the nRESET pin is implemented as open-drain
|
|
|
+ output. After nRESET is de-asserted by the debugger, external circuit may still hold the
|
|
|
+ target Device under reset for a time. Using the <b>pinwait</b> time, the debugger may monitor
|
|
|
+ selected I/O Pins and wait until they the expected value appears or a timeout expires.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - pinout: Value for selected output pins.
|
|
|
+ - pinselect: Selects which output pins will be modified.
|
|
|
+ - pinwait: Wait timeout for the selected output to stabilize. A debugger must extend this timeout
|
|
|
+ to the closest possible time granularity.
|
|
|
+ - 0 = no wait
|
|
|
+ - 1 .. 3000000 = time in microseconds (max 3s)
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The state of the I/O Pins at the end of this operation. If a debugger is not
|
|
|
+ capable of monitoring the I/O Pins, it must return a value of \token{0xFFFFFFFF}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>DAP_SWJ_Clock(val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Debug probe command to set the clock frequency for JTAG and SWD communication mode.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - val: Maximum SWD/JTAG Clock (SWCLK/TCK) value in Hz.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>DAP_SWJ_Sequence(cnt, val)</pre></td>
|
|
|
+ <td>
|
|
|
+ Debug probe command to generate required SWJ sequences, e.g. for SWD/JTAG Reset, SWD<->JTAG
|
|
|
+ switch and Dormant operation.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - cnt: Number of bits in sequence: 1..64. Larger sequences need to be implemented by multiple
|
|
|
+ subsequent <b>DAP_SWJ_Sequence</b> calls. Such a sequence of <b>DAP_SWJ_Sequence</b> commands
|
|
|
+ must be encapsulated in an atomic <b>block</b> to ensure correct execution.
|
|
|
+ - val: Sequence generated on SWDIO/TMS (with clock \@SWCLK/TCK), LSB transmitted first.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Always returns \token{0}.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>DAP_JTAG_Sequence(cnt, tms, tdi)</pre></td>
|
|
|
+ <td>
|
|
|
+ Debug probe command to generate a JTAG sequence with fixed TMS value and capture TDO.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - cnt: Length of the JTAG sequence (number of TCK cycles and TDI bits): 1..64
|
|
|
+ - tms: Fixed TMS value: 0..1
|
|
|
+ - tdi: Data generated on TDI with one bit per TCK cycle, LSB transmitted first.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ Data captured from TDO with one bit per TCK cycle, LSB captured first and padded with \token{0}s.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="white-space: nowrap"><pre>Query(type, "message", default)</pre></td>
|
|
|
+ <td>
|
|
|
+ Query user input. The sequence execution stalls depending on the used <b>type</b>. If the
|
|
|
+ debugger runs in a batch mode, this function returns the value <b>default</b>.<br>
|
|
|
+ <br>
|
|
|
+ <b>Parameters:</b><br>
|
|
|
+ - type: Query type. Can be one of:
|
|
|
+ - \token{0} : <b>Query_Ok</b>, displays an informative message which has to be confirmed by the user. This
|
|
|
+ type allows the result <b>OK</b>.
|
|
|
+ - \token{1} : <b>Query_YesNo</b>, displays a query with the allowed results <b>Yes</b> and <b>No</b>.
|
|
|
+ - \token{2} : <b>Query_YesNoCancel</b>, displays a query with the allowed results <b>Yes</b>, <b>No</b>,
|
|
|
+ and <b>Cancel</b>.
|
|
|
+ - \token{3} : <b>Query_OkCancel</b>, displays a query with the allowed results <b>OK</b> and <b>Cancel</b>.
|
|
|
+ - message: A constant string with the query message to display. It must not be an expression and it must be
|
|
|
+ enclosed by quotes.
|
|
|
+ - default: The default value to return if the debugger runs in batch mode. See <b>Return Values</b>
|
|
|
+ for a list of allowed values.
|
|
|
+
|
|
|
+ <b>Return Value:</b><br>
|
|
|
+ The result of the query. The user input maps to the following numbers:
|
|
|
+ - Error : \token{0}
|
|
|
+ - OK : \token{1}
|
|
|
+ - Cancel : \token{2}
|
|
|
+ - Yes : \token{3}
|
|
|
+ - No : \token{4}
|
|
|
+
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+\note
|
|
|
+- Target memory access functions must perform a debug access of the size indicated by their name.
|
|
|
+ The target system must support debug accesses of this size.
|
|
|
+- Results of all functions are casted to 64-bit unsigned integer values.
|
|
|
+- Some target access functions determine the used debug and access port by the current values of
|
|
|
+ the <b>__dp</b> and <b>__ap</b> debug access variables. If a target access requires a different
|
|
|
+ debug or access port than the default ones, it must change these values. This change is held
|
|
|
+ until finishing the sequence the change has occurred in.
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+
|
|
|
+\section element_debug /package/devices/family/.../debug
|
|
|
+
|
|
|
+Describes configuration settings, default values, and patches for data accesses for a debug connection. Multiple <b>debug</b>
|
|
|
+elements can be defined which are either specific to a processor identified by attribute <b>Pname</b>, or which apply
|
|
|
+to all connections.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <debug Pname="Cortex-M4" __dp="0" __ap="0" svd="SVD/LPC43xx.svd">
|
|
|
+ ...
|
|
|
+ </debug>
|
|
|
+ ...
|
|
|
+ <debug Pname="Cortex-M0" __dp="1" __ap="0" svd="SVD/LPC43xx.svd">
|
|
|
+ ...
|
|
|
+ </debug>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: debug">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>
|
|
|
+ Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set
|
|
|
+ this <b>debug</b> element's settings and data patches only apply for target connections to the referenced
|
|
|
+ processor. Otherwise, they apply for all processors.
|
|
|
+ <b>This attribute must be set if defining multiple \em debug elements within the same section.</b>
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
+ </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>__dp</td>
|
|
|
+ <td>
|
|
|
+ Default debug port ID to use for target accesses in this debug connection. The allowed values are
|
|
|
+ defined in <b>debugport</b> elements for this device. If no <b>debugport</b> element exists, the only
|
|
|
+ allowed value is \token{0}.<br>
|
|
|
+ The debug access variable <b>__dp</b> is initialized to this value when entering a pre-defined debug access
|
|
|
+ sequence because of a debug event.<br>
|
|
|
+ This attribute defaults to \token{0} if not set.
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>__ap</td>
|
|
|
+ <td>
|
|
|
+ Default access port index to use for target accesses in this debug connection.<br>
|
|
|
+ The debug access variable <b>__ap</b> is initialized to this value when entering a pre-defined debug access
|
|
|
+ sequence because of a debug event.<br>
|
|
|
+ This attribute defaults to \token{0} if not set.
|
|
|
+ </td>
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>svd</td>
|
|
|
+ <td>The system viewer description (*.SVD) file to load for this debug connection. The file path is relative
|
|
|
+ to the package base folder.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_dbg_datapatch "datapatch"</td>
|
|
|
+ <td>Define a patch to apply for data reads in this debug connection.
|
|
|
+ </td>
|
|
|
+ <td>DataPatchType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_dbg_datapatch /package/devices/family/.../debug/datapatch
|
|
|
+
|
|
|
+Describes a patch a debugger shall apply when reading data from the device.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC800 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <debug svd="SVD\LPC800.svd">
|
|
|
+ ...
|
|
|
+ <datapatch type="Mem" __ap="0" address="0x1400000C" value="0x10000000" mask="0xFFFFFFFF" info="Patch MTB BASE register"/>
|
|
|
+ ...
|
|
|
+ </debug>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: datapatch">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_debug "debug"</td>
|
|
|
+ <td colspan="3">\ref element_debug</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>type</td>
|
|
|
+ <td>
|
|
|
+ The type of data access to patch. Predefined tokens must be used as defined in \ref DataPatchAccessTypeEnum "Table: Data Patch Access Type".
|
|
|
+ This attribute defaults to \token{Mem} if not set.
|
|
|
+ </td>
|
|
|
+ <td>DataPatchAccessTypeEnum</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>__dp</td>
|
|
|
+ <td>
|
|
|
+ The debug port ID to apply the patch for. The allowed values are defined by the <b>__dp</b> attribute of <b>debugport</b>
|
|
|
+ elements for this device. If no debugport element exists, the only allowed value is 0. If this attribute is not set, the debug port
|
|
|
+ ID for the data patch is set to the default <b>__dp</b> of this <b>debug</b> section.
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>__ap</td>
|
|
|
+ <td>
|
|
|
+ The CoreSight access port index to apply the patch for. If this attribute is not set, the access port index
|
|
|
+ for the data patch is set to the default <b>__ap</b> of this <b>debug</b> section.
|
|
|
+ <td>xs:unsignedInt</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>address</td>
|
|
|
+ <td>The address for which to apply the patch.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>value</td>
|
|
|
+ <td>The value with which the debugger patches the data access. <b>value</b> is specified in little-endian format.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>mask</td>
|
|
|
+ <td>The bits of the data access to patch. The mask value is specified in little-endian format.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>info</td>
|
|
|
+ <td>Descriptive text to display for example for error diagnostics.</td>
|
|
|
+ <td>xs:string</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+\anchor DataPatchAccessTypeEnum <b>Table: Data Patch Access Type</b>
|
|
|
+
|
|
|
+The table lists the allowed values for data patch access types.
|
|
|
+<table class="cmtable" summary="Enumeration: DataPatchAccessTypeEnum">
|
|
|
+ <tr>
|
|
|
+ <th>type=</th>
|
|
|
+ <th>Description</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">DP</td>
|
|
|
+ <td>CoreSight Debug Port register access.<br>
|
|
|
+ <b>Note:</b> This type refers to accesses via the <b>DPACC</b> instruction for <b>CoreSight JTAG-DPs</b>. Please refer to the
|
|
|
+ corresponding documentation for differences in the register interface between JTAG and Serial Wire debug ports.
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">AP</td>
|
|
|
+ <td>CoreSight Access Port register access. </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="XML-Token">Mem</td>
|
|
|
+ <td>Memory access. </td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_trace /package/devices/family/.../trace
|
|
|
+
|
|
|
+Describes device capabilities and possible configuration settings for capturing trace.
|
|
|
+Multiple <b>trace</b> elements can be defined which are either specific to a processor identified by attribute
|
|
|
+<b>Pname</b>, or which apply to all connections.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <trace Pname="Cortex-M4">
|
|
|
+ <serialwire/>
|
|
|
+ <traceport width="0x0000000B"/> <!-- support for port widths 1, 2, and 4 -->
|
|
|
+ <tracebuffer start="0x2000C000" size="0x4000"/>
|
|
|
+ </trace>
|
|
|
+ ...
|
|
|
+ <trace Pname="Cortex-M0">
|
|
|
+ <!-- Empty trace section for Cortex-M0, no trace capabilities -->
|
|
|
+ </trace>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: trace">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_family "family"</td>
|
|
|
+ <td colspan="3">\ref element_family</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_subFamily "subFamily"</td>
|
|
|
+ <td colspan="3">\ref element_subFamily</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Pname</td>
|
|
|
+ <td>
|
|
|
+ Reference to a processor identifier as specified for a <b>processor</b> element. If <b>Pname</b> is set this
|
|
|
+ <b>trace</b> section only applies for target connections to the referenced processor. Otherwise, it applies
|
|
|
+ for all processors. <b>This attribute must be set if defining multiple \em trace elements within the same section.</b>
|
|
|
+ Only alphabetical characters, decimal digits, '-' and '_' are allowed.
|
|
|
+ </td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace_serialwire "serialwire"</td>
|
|
|
+ <td>Describe the serial wire trace output capabilities of the processor.
|
|
|
+ </td>
|
|
|
+ <td>SerialWireType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace_traceport "traceport"</td>
|
|
|
+ <td>Describe the parallel trace port output capabilities of the processor.
|
|
|
+ </td>
|
|
|
+ <td>TracePortType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace_tracebuffer "tracebuffer"</td>
|
|
|
+ <td>Describe the on-device trace buffer capabilities of the processor.
|
|
|
+ </td>
|
|
|
+ <td>TraceBufferType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_trace_serialwire /package/devices/family/.../trace/serialwire
|
|
|
+
|
|
|
+Indicates serial wire trace output capabilities of the specified processor.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <trace Pname="Cortex-M4">
|
|
|
+ ...
|
|
|
+ <serialwire/>
|
|
|
+ ...
|
|
|
+ </trace>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: serialwire">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace "trace"</td>
|
|
|
+ <td colspan="3">\ref element_trace</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_trace_traceport /package/devices/family/.../trace/traceport
|
|
|
+
|
|
|
+Indicates parallel trace port output capabilities of the specified processor.
|
|
|
+This element describes possible configuration settings for capturing trace.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <trace Pname="Cortex-M4">
|
|
|
+ ...
|
|
|
+ <traceport width="0x0000000B"/> <!-- support for port widths 1, 2, and 4 -->
|
|
|
+ ...
|
|
|
+ </trace>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: traceport">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace "trace"</td>
|
|
|
+ <td colspan="3">\ref element_trace</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>width</td>
|
|
|
+ <td>
|
|
|
+ Parallel trace port widths supported for the processor connection (see table below).
|
|
|
+ </td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+The attribute \b width specifies the available trace port width that is supported by the device.
|
|
|
+Each bit of this value represents an available trace port size. If bit \token{n} is set a trace port width of \token{n+1} is supported.
|
|
|
+The value <b>width=0x00008088</b> (as shown in the table) indicates that three port sizes (16-bit, 8-bit, and 4-bit) are supported by the device.
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: traceportwidth">
|
|
|
+ <tr>
|
|
|
+ <th>Bit</th>
|
|
|
+ <th>31</th>
|
|
|
+ <th>30</th>
|
|
|
+ <th>29</th>
|
|
|
+ <th>28</th>
|
|
|
+ <th>27</th>
|
|
|
+ <th>26</th>
|
|
|
+ <th>25</th>
|
|
|
+ <th>24</th>
|
|
|
+ <th>23</th>
|
|
|
+ <th>22</th>
|
|
|
+ <th>21</th>
|
|
|
+ <th>20</th>
|
|
|
+ <th>19</th>
|
|
|
+ <th>18</th>
|
|
|
+ <th>17</th>
|
|
|
+ <th>16</th>
|
|
|
+ <th>15</th>
|
|
|
+ <th>14</th>
|
|
|
+ <th>13</th>
|
|
|
+ <th>12</th>
|
|
|
+ <th>11</th>
|
|
|
+ <th>10</th>
|
|
|
+ <th> 9</th>
|
|
|
+ <th> 8</th>
|
|
|
+ <th> 7</th>
|
|
|
+ <th> 6</th>
|
|
|
+ <th> 5</th>
|
|
|
+ <th> 4</th>
|
|
|
+ <th> 3</th>
|
|
|
+ <th> 2</th>
|
|
|
+ <th> 1</th>
|
|
|
+ <th> 0</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>width</td>
|
|
|
+ <td>32</td>
|
|
|
+ <td>31</td>
|
|
|
+ <td>30</td>
|
|
|
+ <td>29</td>
|
|
|
+ <td>28</td>
|
|
|
+ <td>27</td>
|
|
|
+ <td>26</td>
|
|
|
+ <td>25</td>
|
|
|
+ <td>24</td>
|
|
|
+ <td>23</td>
|
|
|
+ <td>22</td>
|
|
|
+ <td>21</td>
|
|
|
+ <td>20</td>
|
|
|
+ <td>19</td>
|
|
|
+ <td>18</td>
|
|
|
+ <td>17</td>
|
|
|
+ <td>16</td>
|
|
|
+ <td>15</td>
|
|
|
+ <td>14</td>
|
|
|
+ <td>13</td>
|
|
|
+ <td>12</td>
|
|
|
+ <td>11</td>
|
|
|
+ <td>10</td>
|
|
|
+ <td> 9</td>
|
|
|
+ <td> 8</td>
|
|
|
+ <td> 7</td>
|
|
|
+ <td> 6</td>
|
|
|
+ <td> 5</td>
|
|
|
+ <td> 4</td>
|
|
|
+ <td> 3</td>
|
|
|
+ <td> 2</td>
|
|
|
+ <td> 1</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Value</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>1</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>1</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>1</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ <td>0</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+\section element_trace_tracebuffer /package/devices/family/.../trace/tracebuffer
|
|
|
+
|
|
|
+Indicates on-device trace buffer capabilities of the specified processor.
|
|
|
+This element describes possible configuration settings for capturing trace
|
|
|
+and reading it from the buffer.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<family Dfamily="LPC4300 Series" Dvendor="NXP:11">
|
|
|
+ ...
|
|
|
+ <trace Pname="CoreCM4">
|
|
|
+ ...
|
|
|
+ <tracebuffer start="0x2000C000" size="0x4000"/>
|
|
|
+ ...
|
|
|
+ </trace>
|
|
|
+ ...
|
|
|
+</family>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: tracebuffer">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_trace "trace"</td>
|
|
|
+ <td colspan="3">\ref element_trace</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>start</td>
|
|
|
+ <td>Start address of the on-chip memory used as trace buffer for a supported configuration.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>size</td>
|
|
|
+ <td>Size of the on-chip memory used as trace buffer in bytes for a supported configuration.</td>
|
|
|
+ <td>NonNegativeInteger</td>
|
|
|
+ <td>optional</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+\section element_variant /package/devices/family/.../device/variant
|
|
|
+
|
|
|
+Defines a device variant. The element is optional. Can exist multiple times.
|
|
|
+
|
|
|
+\b Example
|
|
|
+\code
|
|
|
+<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>
|
|
|
+\endcode
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+
|
|
|
+<table class="cmtable" summary="Element: variant">
|
|
|
+ <tr>
|
|
|
+ <th>Parents</th>
|
|
|
+ <th colspan="3">Element Chain</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_device "device"</td>
|
|
|
+ <td colspan="3">\ref element_device</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Attributes</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Use</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>Dvariant</td>
|
|
|
+ <td>Name of the device variant. Only alphabetical characters, decimal digits, '-' and '_' are allowed</td>
|
|
|
+ <td>RestrictedString</td>
|
|
|
+ <td>required</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <th>Child Elements</th>
|
|
|
+ <th>Description</th>
|
|
|
+ <th>Type</th>
|
|
|
+ <th>Occurrence</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_book "book"</td>
|
|
|
+ <td>List books that are specific to this variant.</td>
|
|
|
+ <td>BookType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_description "description"</td>
|
|
|
+ <td>Device description.</td>
|
|
|
+ <td>DescriptionType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>\ref element_feature "feature"</td>
|
|
|
+ <td>Define features for this device variant.</td>
|
|
|
+ <td>FeatureType</td>
|
|
|
+ <td>0..*</td>
|
|
|
+ </tr>
|
|
|
+</table>
|
|
|
+
|
|
|
+<p> </p>
|
|
|
+<hr>
|
|
|
+*/
|