Devices can be organized in hierarchy groups to limit redundancy. The hierarchy levels are:
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 <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.
<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"/>
<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" count="12" name="16-Bit Timer with Input Capture, Output Compare and PWM"/>
<feature type="Timer" count="2" name="Watchdog, Real Time Counter and 24-bit down counter"/>
<feature type="A/D" count="16" name="12-bit Analog to Digital Converter"/>
<!-- sub family level -->
<subFamily DsubFamily="128 Flash">
<memory id="IRAM1" start="0x20000000" size="0x10000" init="0" default="1"/>
<memory id="IROM1" start="0x08000000" size="0x20000" startup="1" default="1"/>
<!-- device level -->
<device Dname="STM32F205RB">
<feature type="I/O" count="51" name="Input and Output Ports"/>
<variant Dvariant="STM32F205RBT6">
<feature type="Package" count="64" name="LQFP 64 10x10x1.4"/>
<feature type="Temp" name="-49 to 105"/>
</variant>
<variant Dvariant="STM32F205RBT7">
<feature type="Package" count="64" name="LQFP 64 10x10x1.4" />
<feature type="Temp" name="-49 to 105"/>
</variant>
</device>
<device Dname="STM32F205VB">
<feature type="I/O" count="82" name="Input and Output Ports"/>
<variant Dvariant="STM32F205VBT6">
<feature type="Package" count="100" name="LQFP 100 14x14x1.4" />
<feature type="Temp" name="-49 to 105"/>
</variant>
</device>
</subFamily>
</family>
</devices>
</package>