openmv/tools/st/cubeprog/Data_Base/STM32_Prog_DB_0x436.xml
iabdalkader f9ee15bf46 tools/st: Add cubeprog.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-02-11 17:22:20 +01:00

693 lines
24 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SCHVerif.xsd">
<Device>
<DeviceID>0x436</DeviceID>
<Vendor>STMicroelectronics</Vendor>
<Type>MCU</Type>
<CPU>Cortex-M3</CPU>
<Name>STM32L15xxD/STM32L162xD</Name>
<Series>STM32L1</Series>
<Description>ARM 32-bit Cortex-M3 based device</Description>
<Configurations>
<!-- JTAG_SWD Interface -->
<Interface name="JTAG_SWD"/>
<!-- Bootloader Interface -->
<Interface name="Bootloader"/>
</Configurations>
<!-- Peripherals -->
<Peripherals>
<!-- Embedded SRAM -->
<Peripheral>
<Name>Embedded SRAM</Name>
<Type>Storage</Type>
<Description/>
<ErasedValue>0x00</ErasedValue>
<Access>RWE</Access>
<!-- 48 KB -->
<Configuration>
<Parameters address="0x20000000" name="SRAM" size="0xC000"/>
<Description/>
<Organization>Single</Organization>
<Bank name="Bank 1">
<Field>
<Parameters address="0x20000000" name="SRAM" occurrence="0x1" size="0xC000"/>
</Field>
</Bank>
</Configuration>
</Peripheral>
<!-- Embedded Flash -->
<Peripheral>
<Name>Embedded Flash</Name>
<Type>Storage</Type>
<Description>The Flash memory interface manages CPU AHB I-Code and D-Code accesses to the Flash memory. It implements the erase and program Flash memory operations and the read and write protection mechanisms</Description>
<ErasedValue>0x00</ErasedValue>
<Access>RWE</Access>
<FlashSize address="0x1FF800CC" default="0x60000"/>
<BootloaderVersion address="0x1FF01FFE"/>
<!-- 384KB dual Bank -->
<Configuration>
<Parameters address="0x08000000" name=" 384 Kbytes Embedded Flash" size="0x60000"/>
<Description/>
<Organization>Dual</Organization>
<Alignment>0x4</Alignment>
<Bank name="Bank 1">
<Field>
<Parameters address="0x08000000" name="sector0" occurrence="0x300" size="0x100"/>
</Field>
</Bank>
<Bank name="Bank 2">
<Field>
<Parameters address="0x08030000" name="sector768" occurrence="0x300" size="0x100"/>
</Field>
</Bank>
<Bank name="EEPROM1">
<Field>
<Parameters address="0x08080000" name="sector65281" occurrence="0x1" size="0x1800"/>
</Field>
</Bank>
<Bank name="EEPROM2">
<Field>
<Parameters address="0x08081800" name="sector65282" occurrence="0x1" size="0x1800"/>
</Field>
</Bank>
</Configuration>
</Peripheral>
<!-- Data EEPROM -->
<Peripheral>
<Name>Data EEPROM</Name>
<Type>Storage</Type>
<Description>The Data EEPROM memory block. It contains user data.</Description>
<ErasedValue>0x00</ErasedValue>
<Access>RWE</Access>
<!-- 12KB dual Bank -->
<Configuration>
<Parameters address="0x08080000" name=" 12 Kbytes Data EEPROM" size="0x3000"/>
<Description/>
<Organization>Dual</Organization>
<Alignment>0x4</Alignment>
<Bank name="Bank 1">
<Field>
<Parameters address="0x08080000" name="EEPROM1" occurrence="0x1" size="0x1800"/>
</Field>
</Bank>
<Bank name="Bank 2">
<Field>
<Parameters address="0x08081800" name="EEPROM2" occurrence="0x1" size="0x1800"/>
</Field>
</Bank>
</Configuration>
</Peripheral>
<!-- Mirror Option Bytes -->
<Peripheral>
<Name>MirrorOptionBytes</Name>
<Type>Storage</Type>
<Description>Mirror Option Bytes contains the extra area.</Description>
<ErasedValue>0xFF</ErasedValue>
<Access>RW</Access>
<!-- 32 Bytes single bank -->
<Configuration>
<Parameters address="0x1FF80000" name=" 32 Bytes Data MirrorOptionBytes" size="0x20"/>
<Description/>
<Organization>Single</Organization>
<Alignment>0x4</Alignment>
<Bank name="MirrorOptionBytes">
<Field>
<Parameters address="0x1FF80000" name="MirrorOptionBytes" occurrence="0x1" size="0x20"/>
</Field>
</Bank>
</Configuration>
</Peripheral>
<!-- Option Bytes -->
<Peripheral>
<Name>Option Bytes</Name>
<Type>Configuration</Type>
<Description/>
<Access>RW</Access>
<Bank interface="JTAG_SWD">
<Parameters address="0x40023C1C" name="Bank 1" size="0x88"/>
<Category>
<Name>Read Out Protection</Name>
<Field>
<Parameters address="0x40023C1C" name="FLASH_OBR" size="0x4"/>
<AssignedBits>
<Bit>
<Name>RDP</Name>
<Description>Read protection option byte. The read protection is used to protect the software code stored in Flash memory.</Description>
<BitOffset>0x0</BitOffset>
<BitWidth>0x8</BitWidth>
<Access>R</Access>
<Values>
<Val value="0xAA">Level 0, no protection</Val>
<Val value="0xBB">or any value other than 0xAA and 0xCC: Level 1, read protection</Val>
<Val value="0xCC">Level 2, chip protection</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>BOR Level</Name>
<Field>
<Parameters address="0x40023C1C" name="FLASH_OBR" size="0x4"/>
<AssignedBits>
<Bit>
<Name>BOR_LEV</Name>
<Description>These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory</Description>
<BitOffset>0x10</BitOffset>
<BitWidth>0x4</BitWidth>
<Access>R</Access>
<Values>
<Val value="0x0">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x1">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x2">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x3">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x4">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x5">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x6">BOR Level OFF, reset level threshold for 1.45 V-1.55 V</Val>
<Val value="0x7">BOR Level OFF, reset level threshold for 1.45 V-1.55 V</Val>
<Val value="0x8">BOR Level 1, reset level threshold for 1.69 V-1.8 V</Val>
<Val value="0x9">BOR Level 2, reset level threshold for 1.94 V-2.1 V</Val>
<Val value="0xA">BOR Level 3, reset level threshold for 2.3 V-2.49 V</Val>
<Val value="0xB">BOR Level 4, reset level threshold for 2.54 V-2.74 V</Val>
<Val value="0xC">BOR Level 5, reset level threshold for 2.77 V-3.0 V</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>User Configuration</Name>
<Field>
<Parameters address="0x40023C1C" name="FLASH_OBR" size="0x4"/>
<AssignedBits>
<Bit>
<Name>IWDG_SW</Name>
<Description/>
<BitOffset>0x14</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>R</Access>
<Values>
<Val value="0x0">Hardware independent watchdog</Val>
<Val value="0x1">Software independent watchdog</Val>
</Values>
</Bit>
<Bit>
<Name>nRST_STOP</Name>
<Description/>
<BitOffset>0x15</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>R</Access>
<Values>
<Val value="0x0">Reset generated when entering Stop mode</Val>
<Val value="0x1">No reset generated</Val>
</Values>
</Bit>
<Bit>
<Name>nRST_STDBY</Name>
<Description/>
<BitOffset>0x16</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>R</Access>
<Values>
<Val value="0x0">Reset generated when entering Standby mode</Val>
<Val value="0x1">No reset generated</Val>
</Values>
</Bit>
<Bit>
<Name>nBFB2</Name>
<Description/>
<BitOffset>0x17</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>R</Access>
<Values>
<Val value="0x0">If boot from Flash then boot from bank 2</Val>
<Val value="0x1">If boot from Flash then boot from bank 1</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>Write Protection</Name>
<Field>
<Parameters address="0x40023C20" name="FLASH_WRPR1" size="0x4"/>
<AssignedBits>
<Bit>
<Name>WRP0</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x20</BitWidth>
<Access>R</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x40023C80" name="FLASH_WRPR2" size="0x4"/>
<AssignedBits>
<Bit>
<Name>WRP32</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x20</BitWidth>
<Access>R</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x40023C84" name="FLASH_WRPR3" size="0x4"/>
<AssignedBits>
<Bit>
<Name>WRP64</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x20</BitWidth>
<Access>R</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
</Bank>
<Bank interface="JTAG_SWD">
<Parameters address="0x1FF80000" name="Bank 2" size="0x20"/>
<Category>
<Name>Read Out Protection</Name>
<Field>
<Parameters address="0x1FF80000" name="RDP" size="0x4"/>
<AssignedBits>
<Bit>
<Name>RDP</Name>
<Description>Read protection option byte. The read protection is used to protect the software code stored in Flash memory.</Description>
<BitOffset>0x0</BitOffset>
<BitWidth>0x8</BitWidth>
<Access>W</Access>
<Values>
<Val value="0xAA">Level 0, no protection</Val>
<Val value="0xBB">or any value other than 0xAA and 0xCC: Level 1, read protection</Val>
<Val value="0xCC">Level 2, chip protection</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>BOR Level</Name>
<Field>
<Parameters address="0x1FF80004" name="USER" size="0x4"/>
<AssignedBits>
<Bit>
<Name>BOR_LEV</Name>
<Description>These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory</Description>
<BitOffset>0x0</BitOffset>
<BitWidth>0x4</BitWidth>
<Access>W</Access>
<Values>
<Val value="0x0">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x1">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x2">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x3">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x4">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x5">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x6">BOR Level OFF, reset level threshold for 1.45 V-1.55 V</Val>
<Val value="0x7">BOR Level OFF, reset level threshold for 1.45 V-1.55 V</Val>
<Val value="0x8">BOR Level 1, reset level threshold for 1.69 V-1.8 V</Val>
<Val value="0x9">BOR Level 2, reset level threshold for 1.94 V-2.1 V</Val>
<Val value="0xA">BOR Level 3, reset level threshold for 2.3 V-2.49 V</Val>
<Val value="0xB">BOR Level 4, reset level threshold for 2.54 V-2.74 V</Val>
<Val value="0xC">BOR Level 5, reset level threshold for 2.77 V-3.0 V</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>User Configuration</Name>
<Field>
<Parameters address="0x1FF80004" name="USER" size="0x4"/>
<AssignedBits>
<Bit>
<Name>IWDG_SW</Name>
<Description/>
<BitOffset>0x4</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>W</Access>
<Values>
<Val value="0x0">Hardware independent watchdog</Val>
<Val value="0x1">Software independent watchdog</Val>
</Values>
</Bit>
<Bit>
<Name>nRST_STOP</Name>
<Description/>
<BitOffset>0x5</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>W</Access>
<Values>
<Val value="0x0">Reset generated when entering Stop mode</Val>
<Val value="0x1">No reset generated</Val>
</Values>
</Bit>
<Bit>
<Name>nRST_STDBY</Name>
<Description/>
<BitOffset>0x6</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>W</Access>
<Values>
<Val value="0x0">Reset generated when entering Standby mode</Val>
<Val value="0x1">No reset generated</Val>
</Values>
</Bit>
<Bit>
<Name>nBFB2</Name>
<Description/>
<BitOffset>0x7</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>W</Access>
<Values>
<Val value="0x0">If boot from Flash then boot from bank 2</Val>
<Val value="0x1">If boot from Flash then boot from bank 1</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>Write Protection</Name>
<Field>
<Parameters address="0x1FF80008" name="WRP1" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP0</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>W</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF8000C" name="WRP1" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP16</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>W</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF80010" name="WRP2" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP32</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>W</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF80014" name="WRP2" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP48</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>W</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF80018" name="WRP3" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP64</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>W</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF8001C" name="WRP3" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP80</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>W</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
</Bank>
<Bank interface="Bootloader">
<Parameters address="0x1FF80000" name="Bank 1" size="0x20"/>
<Category>
<Name>Read Out Protection</Name>
<Field>
<Parameters address="0x1FF80000" name="RDP" size="0x4"/>
<AssignedBits>
<Bit>
<Name>RDP</Name>
<Description>Read protection option byte. The read protection is used to protect the software code stored in Flash memory.</Description>
<BitOffset>0x0</BitOffset>
<BitWidth>0x8</BitWidth>
<Access>RW</Access>
<Values>
<Val value="0xAA">Level 0, no protection</Val>
<Val value="0xBB">or any value other than 0xAA and 0xCC: Level 1, read protection</Val>
<Val value="0xCC">Level 2, chip protection</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>BOR Level</Name>
<Field>
<Parameters address="0x1FF80004" name="USER" size="0x4"/>
<AssignedBits>
<Bit>
<Name>BOR_LEV</Name>
<Description>These bits contain the supply level threshold that activates/releases the reset. They can be written to program a new BOR level value into Flash memory</Description>
<BitOffset>0x0</BitOffset>
<BitWidth>0x4</BitWidth>
<Access>RW</Access>
<Values>
<Val value="0x0">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x1">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x2">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x3">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x4">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x5">BOR Level OFF, reset level threshold the 1.45 V-1.55 V</Val>
<Val value="0x6">BOR Level OFF, reset level threshold for 1.45 V-1.55 V</Val>
<Val value="0x7">BOR Level OFF, reset level threshold for 1.45 V-1.55 V</Val>
<Val value="0x8">BOR Level 1, reset level threshold for 1.69 V-1.8 V</Val>
<Val value="0x9">BOR Level 2, reset level threshold for 1.94 V-2.1 V</Val>
<Val value="0xA">BOR Level 3, reset level threshold for 2.3 V-2.49 V</Val>
<Val value="0xB">BOR Level 4, reset level threshold for 2.54 V-2.74 V</Val>
<Val value="0xC">BOR Level 5, reset level threshold for 2.77 V-3.0 V</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>User Configuration</Name>
<Field>
<Parameters address="0x1FF80004" name="USER" size="0x4"/>
<AssignedBits>
<Bit>
<Name>IWDG_SW</Name>
<Description/>
<BitOffset>0x4</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>RW</Access>
<Values>
<Val value="0x0">Hardware independent watchdog</Val>
<Val value="0x1">Software independent watchdog</Val>
</Values>
</Bit>
<Bit>
<Name>nRST_STOP</Name>
<Description/>
<BitOffset>0x5</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>RW</Access>
<Values>
<Val value="0x0">Reset generated when entering Stop mode</Val>
<Val value="0x1">No reset generated</Val>
</Values>
</Bit>
<Bit>
<Name>nRST_STDBY</Name>
<Description/>
<BitOffset>0x6</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>RW</Access>
<Values>
<Val value="0x0">Reset generated when entering Standby mode</Val>
<Val value="0x1">No reset generated</Val>
</Values>
</Bit>
<Bit>
<Name>nBFB2</Name>
<Description/>
<BitOffset>0x7</BitOffset>
<BitWidth>0x1</BitWidth>
<Access>RW</Access>
<Values>
<Val value="0x0">If boot from Flash then boot from bank 2</Val>
<Val value="0x1">If boot from Flash then boot from bank 1</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
<Category>
<Name>Write Protection</Name>
<Field>
<Parameters address="0x1FF80008" name="WRP1" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP0</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>RW</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF8000C" name="WRP1" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP16</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>RW</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF80010" name="WRP2" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP32</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>RW</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF80014" name="WRP2" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP48</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>RW</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF80018" name="WRP3" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP64</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>RW</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
<Field>
<Parameters address="0x1FF8001C" name="WRP3" size="0x8"/>
<AssignedBits>
<Bit>
<Name>WRP80</Name>
<Description/>
<BitOffset>0x0</BitOffset>
<BitWidth>0x10</BitWidth>
<Access>RW</Access>
<Values ByBit="true">
<Val value="0x0">Write protection not active</Val>
<Val value="0x1">Write protection active</Val>
</Values>
</Bit>
</AssignedBits>
</Field>
</Category>
</Bank>
</Peripheral>
</Peripherals>
</Device>
</Root>