<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Cpu>
  <name>CM4</name>
  <DisplayName>Cortex-M4 (with FPU)</DisplayName>
  <Revision>r0p0</Revision>
  <Endian>little</Endian>
  <MpuPresent>true</MpuPresent>
  <FpuPresent>true</FpuPresent>
  <NvicPrioBits>4</NvicPrioBits>
  <VendorSystickConfig>false</VendorSystickConfig>
  <Groups>
    <Group>
      <Name>Core</Name>
      <Description>All CPU Registers</Description>
      <Size>32</Size>
      <Access>RW</Access>
      <Type>unsigned int</Type>
      <Registers>
        <Register>
          <Name>R0</Name>
          <Description>General purpose register 0</Description>
          <Index>0</Index>
        </Register>
        <Register>
          <Name>R1</Name>
          <Description>General purpose register 1</Description>
          <Index>1</Index>
        </Register>
        <Register>
          <Name>R2</Name>
          <Description>General purpose register 2</Description>
          <Index>2</Index>
        </Register>
        <Register>
          <Name>R3</Name>
          <Description>General purpose register 3</Description>
          <Index>3</Index>
        </Register>
        <Register>
          <Name>R4</Name>
          <Description>General purpose register 4</Description>
          <Index>4</Index>
        </Register>
        <Register>
          <Name>R5</Name>
          <Description>General purpose register 5</Description>
          <Index>5</Index>
        </Register>
        <Register>
          <Name>R6</Name>
          <Description>General purpose register 6</Description>
          <Index>6</Index>
        </Register>
        <Register>
          <Name>R7</Name>
          <Description>General purpose register 7</Description>
          <Index>7</Index>
        </Register>
        <Register>
          <Name>R8</Name>
          <Description>General purpose register 8</Description>
          <Index>8</Index>
        </Register>
        <Register>
          <Name>R9</Name>
          <Description>General purpose register 9</Description>
          <Index>9</Index>
        </Register>
        <Register>
          <Name>R10</Name>
          <Description>General purpose register 10</Description>
          <Index>10</Index>
        </Register>
        <Register>
          <Name>R11</Name>
          <Description>General purpose register 11</Description>
          <Index>11</Index>
        </Register>
        <Register>
          <Name>R12</Name>
          <Description>General purpose register 12</Description>
          <Index>12</Index>
        </Register>
        <Register>
          <Name>R13</Name>
          <AliasName>SP</AliasName>
          <DisplayName>R13 (SP)</DisplayName>
          <Description>Stack pointer</Description>
          <Index>13</Index>
        </Register>
        <Register>
          <Name>R14</Name>
          <AliasName>LR</AliasName>
          <DisplayName>R14 (LR)</DisplayName>
          <Description>Link register</Description>
          <Index>14</Index>
        </Register>
        <Register>
          <Name>R15</Name>
          <AliasName>PC</AliasName>
          <DisplayName>R15 (PC)</DisplayName>
          <Description>Program counter</Description>
          <Index>15</Index>
        </Register>
        <Register>
          <Name>xPSR</Name>
          <Description>Program status register</Description>
          <Index>16</Index>
          <Fields>
            <Field>
              <Name>N</Name>
              <Description>Negative flag</Description>
              <BitOffset>31</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>Z</Name>
              <Description>Zero flag</Description>
              <BitOffset>30</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>C</Name>
              <Description>Carry flag</Description>
              <BitOffset>29</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>V</Name>
              <Description>Overflow flag</Description>
              <BitOffset>28</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>Q</Name>
              <Description>DSP overflow and saturation flag</Description>
              <BitOffset>27</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>T</Name>
              <Description>Thumb state bit</Description>
              <BitOffset>24</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>ICI/IT HighBits</Name>
              <Description>Interruptible-continuable instruction bits (high bits)</Description>
              <BitOffset>25</BitOffset>
              <BitWidth>2</BitWidth>
            </Field>
            <Field>
              <Name>ICI/IT LowBits</Name>
              <Description>Interruptible-continuable instruction bits (low bits)</Description>
              <BitOffset>10</BitOffset>
              <BitWidth>6</BitWidth>
            </Field>
            <Field>
              <Name>ISR Number</Name>
              <Description>Interrupt service routine number</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>9</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>MSP</Name>
          <Description>Main stack pointer</Description>
          <Index>17</Index>
        </Register>
        <Register>
          <Name>PSP</Name>
          <Description>Process stack pointer</Description>
          <Index>18</Index>
        </Register>
        <Register>
          <Name>APSR</Name>
          <Description>Application program status register</Description>
          <Index>21</Index>
          <Fields>
            <Field>
              <Name>N</Name>
              <Description>Negative flag</Description>
              <BitOffset>31</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>Z</Name>
              <Description>Zero flag</Description>
              <BitOffset>30</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>C</Name>
              <Description>Carry flag</Description>
              <BitOffset>29</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>V</Name>
              <Description>Overflow flag</Description>
              <BitOffset>28</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>Q</Name>
              <Description>DSP overflow and saturation flag</Description>
              <BitOffset>27</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>EPSR</Name>
          <Description>Exception program status register</Description>
          <Index>22</Index>
          <Fields>
            <Field>
              <Name>ICI/IT HighBits</Name>
              <Description>Interruptible-continuable instruction bits (high bits)</Description>
              <BitOffset>25</BitOffset>
              <BitWidth>2</BitWidth>
            </Field>
            <Field>
              <Name>ICI/IT LowBits</Name>
              <Description>Interruptible-continuable instruction bits (low bits)</Description>
              <BitOffset>10</BitOffset>
              <BitWidth>6</BitWidth>
            </Field>
            <Field>
              <Name>T</Name>
              <Description>Thumb state bit</Description>
              <BitOffset>24</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>IPSR</Name>
          <Description>Interrupt program status register</Description>
          <Index>23</Index>
          <Fields>
            <Field>
              <Name>ISR Number</Name>
              <Description>Interrupt service routine number</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>9</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>PriMask</Name>
          <Description>Priority mask register</Description>
          <Index>24</Index>
          <Fields>
            <Field>
              <Name>PriMask</Name>
              <Description>Prevent the activation of all exceptions with configurable priority</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>BasePri</Name>
          <Description>Base priority mask register</Description>
          <Index>88</Index>
          <Fields>
            <Field>
              <Name>BasePri</Name>
              <Description>Priority mask bits</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>8</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>FaultMask</Name>
          <Description>Fault mask register</Description>
          <Index>89</Index>
          <Fields>
            <Field>
              <Name>FaultMask</Name>
              <Description>Prevent the activation of all exceptions except for NMI</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>Control</Name>
          <Description>Control register</Description>
          <Index>90</Index>
          <Fields>
            <Field>
              <Name>FPCA</Name>
              <Description>Context floating-point active</Description>
              <BitOffset>2</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>SPSEL</Name>
              <Description>Active stack pointer</Description>
              <BitOffset>1</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>nPRIV</Name>
              <Description>Thread mode privilege level</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>CycleCount</Name>
          <Description>Cycle count</Description>
          <Index>65</Index>
        </Register>
      </Registers>
    </Group>
    <Group>
      <Name>FPU</Name>
      <Description>FPU Registers</Description>
      <Size>32</Size>
      <Access>RW</Access>
      <Type>float</Type>
      <Registers>
        <Register>
          <Name>FPSCR</Name>
          <Type>unsigned int</Type>
          <Description>Floating point status and control register</Description>
          <Index>32</Index>
          <Fields>
            <Field>
              <Name>IOC</Name>
              <Description>Invalid operation cumulative flag</Description>
              <BitOffset>0</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>DZC</Name>
              <Description>Division by zero cumulative flag</Description>
              <BitOffset>1</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>OFC</Name>
              <Description>Overflow cumulative flag</Description>
              <BitOffset>2</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>UFC</Name>
              <Description>Underflow cumulative flag</Description>
              <BitOffset>3</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>IXC</Name>
              <Description>Inexact cumulative flag</Description>
              <BitOffset>4</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>IDC</Name>
              <Description>Input subnormal cumulative flag</Description>
              <BitOffset>7</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>IOE</Name>
              <Description>Invalid operation exception enable bit</Description>
              <BitOffset>8</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>DZE</Name>
              <Description>Division by Zero exception enable bit</Description>
              <BitOffset>9</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>OFE</Name>
              <Description>Overflow exception enable bit</Description>
              <BitOffset>10</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>UFE</Name>
              <Description>Underflow exception enable bit</Description>
              <BitOffset>11</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>IXE</Name>
              <Description>Inexact exception enable bit</Description>
              <BitOffset>12</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>IDE</Name>
              <Description>Input Subnormal exception enable bit</Description>
              <BitOffset>13</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>IDE</Name>
              <Description>Input Subnormal exception enable bit</Description>
              <BitOffset>13</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>Len</Name>
              <Description>Vector length</Description>
              <BitOffset>16</BitOffset>
              <BitWidth>3</BitWidth>
            </Field>
            <Field>
              <Name>Stride</Name>
              <Description>Stride control</Description>
              <BitOffset>20</BitOffset>
              <BitWidth>2</BitWidth>
            </Field>
            <Field>
              <Name>R-Mode</Name>
              <Description>Rounding mode control</Description>
              <BitOffset>22</BitOffset>
              <BitWidth>2</BitWidth>
            </Field>
            <Field>
              <Name>FZ</Name>
              <Description>Flush-to-zero mode enable bit</Description>
              <BitOffset>24</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>DN</Name>
              <Description>Default NaN mode enable bit</Description>
              <BitOffset>25</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>QC</Name>
              <Description>Saturation cumulative flag</Description>
              <BitOffset>27</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>V</Name>
              <Description>Set if comparison produces an unordered result</Description>
              <BitOffset>28</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>C</Name>
              <Description>Set if comparison produces an equal, greater than, or unordered result</Description>
              <BitOffset>29</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
            <Field>
              <Name>Z</Name>
              <Description>Set if comparison produces an equal result</Description>
              <BitOffset>30</BitOffset>
              <BitWidth>1</BitWidth>
            </Field>
          </Fields>
        </Register>
        <Register>
          <Name>S0</Name>
          <Description>Floating point register 0</Description>
          <Index>33</Index>
        </Register>
        <Register>
          <Name>S1</Name>
          <Description>Floating point register 1</Description>
          <Index>34</Index>
        </Register>
        <Register>
          <Name>S2</Name>
          <Description>Floating point register 2</Description>
          <Index>35</Index>
        </Register>
        <Register>
          <Name>S3</Name>
          <Description>Floating point register 3</Description>
          <Index>36</Index>
        </Register>
        <Register>
          <Name>S4</Name>
          <Description>Floating point register 4</Description>
          <Index>37</Index>
        </Register>
        <Register>
          <Name>S5</Name>
          <Description>Floating point register 5</Description>
          <Index>38</Index>
        </Register>
        <Register>
          <Name>S6</Name>
          <Description>Floating point register 6</Description>
          <Index>39</Index>
        </Register>
        <Register>
          <Name>S7</Name>
          <Description>Floating point register 7</Description>
          <Index>40</Index>
        </Register>
        <Register>
          <Name>S8</Name>
          <Description>Floating point register 8</Description>
          <Index>41</Index>
        </Register>
        <Register>
          <Name>S9</Name>
          <Description>Floating point register 9</Description>
          <Index>42</Index>
        </Register>
        <Register>
          <Name>S10</Name>
          <Description>Floating point register 10</Description>
          <Index>43</Index>
        </Register>
        <Register>
          <Name>S11</Name>
          <Description>Floating point register 11</Description>
          <Index>44</Index>
        </Register>
        <Register>
          <Name>S12</Name>
          <Description>Floating point register 12</Description>
          <Index>45</Index>
        </Register>
        <Register>
          <Name>S13</Name>
          <Description>Floating point register 13</Description>
          <Index>46</Index>
        </Register>
        <Register>
          <Name>S14</Name>
          <Description>Floating point register 14</Description>
          <Index>47</Index>
        </Register>
        <Register>
          <Name>S15</Name>
          <Description>Floating point register 15</Description>
          <Index>48</Index>
        </Register>
        <Register>
          <Name>S16</Name>
          <Description>Floating point register 16</Description>
          <Index>49</Index>
        </Register>
        <Register>
          <Name>S17</Name>
          <Description>Floating point register 17</Description>
          <Index>50</Index>
        </Register>
        <Register>
          <Name>S18</Name>
          <Description>Floating point register 18</Description>
          <Index>51</Index>
        </Register>
        <Register>
          <Name>S19</Name>
          <Description>Floating point register 19</Description>
          <Index>52</Index>
        </Register>
        <Register>
          <Name>S20</Name>
          <Description>Floating point register 20</Description>
          <Index>53</Index>
        </Register>
        <Register>
          <Name>S21</Name>
          <Description>Floating point register 21</Description>
          <Index>54</Index>
        </Register>
        <Register>
          <Name>S22</Name>
          <Description>Floating point register 22</Description>
          <Index>55</Index>
        </Register>
        <Register>
          <Name>S23</Name>
          <Description>Floating point register 23</Description>
          <Index>56</Index>
        </Register>
        <Register>
          <Name>S24</Name>
          <Description>Floating point register 24</Description>
          <Index>57</Index>
        </Register>
        <Register>
          <Name>S25</Name>
          <Description>Floating point register 25</Description>
          <Index>58</Index>
        </Register>
        <Register>
          <Name>S26</Name>
          <Description>Floating point register 26</Description>
          <Index>59</Index>
        </Register>
        <Register>
          <Name>S27</Name>
          <Description>Floating point register 27</Description>
          <Index>60</Index>
        </Register>
        <Register>
          <Name>S28</Name>
          <Description>Floating point register 28</Description>
          <Index>61</Index>
        </Register>
        <Register>
          <Name>S29</Name>
          <Description>Floating point register 29</Description>
          <Index>62</Index>
        </Register>
        <Register>
          <Name>S30</Name>
          <Description>Floating point register 30</Description>
          <Index>63</Index>
        </Register>
        <Register>
          <Name>S31</Name>
          <Description>Floating point register 31</Description>
          <Index>64</Index>
        </Register>
      </Registers>
    </Group>
    <Group>
      <Name>Peripherals</Name>
      <Description>Memory-Mapped CPU Registers</Description>
      <Size>32</Size>
      <Access>RW</Access>
      <Type>unsigned int</Type>
      <peripherals>
        <peripheral>
          <name>ITM</name>
          <description>Instrumentation Macrocell</description>
          <groupName></groupName>
          <baseAddress>0xE0000000</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x1000</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Stimulus Port Register %s</name>
              <displayName>ITM_STIM_%s</displayName>
              <description>Provides the interface for generating instrumentation messages</description>
              <addressOffset>0x0</addressOffset>
              <dim>256</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>STIMULUS</name>
                  <description>Data write to the stimulus port FIFO, for forwarding as a software event packet</description>
                  <bitRange>[31:0]</bitRange>
                </field>
                <field>
                  <name>FIFOREADY</name>
                  <description>Indicates whether the stimulus port FIFO can accept data</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Stimulus port FIFO full</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Stimulus port FIFO can accept at least one word</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Trace Enable Register %s</name>
              <displayName>ITM_TER_%s</displayName>
              <description>Provide an individual enable bit for each ITM_STIM register</description>
              <addressOffset>0xE00</addressOffset>
              <dim>8</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>STIMENA</name>
                  <description>For bit STIMENA[n], in register ITM_TERx</description>
                  <bitRange>[31:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Stimulus port (32x + n) disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Stimulus port (32x + n) enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Trace Privilege Register</name>
              <displayName>ITM_TPR</displayName>
              <description>Controls which stimulus ports can be accessed by unprivileged code</description>
              <addressOffset>0xE40</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>PRIVMASK</name>
                  <description>Bit mask to enable unprivileged access to ITM stimulus ports</description>
                  <bitRange>[31:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Unprivileged access permitted</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Privileged access only</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Trace Control Register</name>
              <displayName>ITM_TCR</displayName>
              <description>Configures and controls transfers through the ITM interface</description>
              <addressOffset>0xE80</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>BUSY</name>
                  <description>Indicates whether the ITM is currently processing events</description>
                  <bitRange>[23:23]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>ITM is not processing any events</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ITM events present and being drained</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TraceBusID</name>
                  <description>Identifier for multi-source trace stream formatting</description>
                  <bitRange>[22:16]</bitRange>
                </field>
                <field>
                  <name>GTSFREQ</name>
                  <description>Global timestamp frequency</description>
                  <bitRange>[11:10]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disable generation of global timestamps</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Generate timestamp request whenever the ITM detects a change in global timestamp counter bits[47:7]</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Generate timestamp request whenever the ITM detects a change in global timestamp counter bits[47:13]</description>
                      <value>10</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Generate a timestamp after every packet, if the output FIFO is empty</description>
                      <value>11</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TSPrescale</name>
                  <description>Local timestamp prescaler, used with the trace packet reference clock</description>
                  <bitRange>[9:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No prescaling</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Divide by 4</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Divide by 16</description>
                      <value>10</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Divide by 64</description>
                      <value>11</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SWOENA</name>
                  <description>Enables asynchronous clocking of the timestamp counter</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Timestamp counter uses the processor system clock</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Timestamp counter uses asynchronous clock from the TPIU interface</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TXENA</name>
                  <description>Enables forwarding of hardware event packet from the DWT unit to the ITM for output to the TPIU</description>
                  <bitRange>[3:3]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SYNCENA</name>
                  <description>Enables Synchronization packet transmission for a synchronous TPIU</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TSENA</name>
                  <description>Enables Local timestamp generation</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ITMENA</name>
                  <description>Enables the ITM</description>
                  <bitRange>[0:0]</bitRange>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>DWT</name>
          <description>Data Watchpoint and Trace</description>
          <groupName></groupName>
          <baseAddress>0xE0001000</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x1000</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Control register</name>
              <displayName>DWT_CTRL</displayName>
              <description>Provides configuration and status information for the DWT unit, and used to control features of the unit</description>
              <addressOffset>0x0</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>NUMCOMP</name>
                  <description>Number of comparators implemented</description>
                  <bitRange>[31:28]</bitRange>
                </field>
                <field>
                  <name>NOTRCPKT</name>
                  <description>Shows whether the implementation supports trace sampling and exception tracing</description>
                  <bitRange>[27:27]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Trace sampling and exception tracing supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Trace sampling and exception tracing not supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>NOEXTTRIG</name>
                  <description>Shows whether the implementation includes external match signals, CMPMATCH[N]</description>
                  <bitRange>[26:26]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>CMPMATCH[N] supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>CMPMATCH[N] not supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>NOCYCCNT</name>
                  <description>Shows whether the implementation supports a cycle counter</description>
                  <bitRange>[25:25]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Cycle counter supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Cycle counter not supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>NOPRFCNT</name>
                  <description>Shows whether the implementation supports the profiling counters</description>
                  <bitRange>[24:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CYCEVTENA</name>
                  <description>Enables POSTCNT underflow Event counter packets generation</description>
                  <bitRange>[22:22]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No POSTCNT underflow packets generated</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>POSTCNT underflow packets generated, if PCSAMPLENA set to 0</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FOLDEVTENA</name>
                  <description>Enables generation of the Folded-instruction counter overflow event</description>
                  <bitRange>[21:21]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>LSUEVTENA</name>
                  <description>Enables generation of the LSU counter overflow event</description>
                  <bitRange>[20:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SLEEPEVTENA</name>
                  <description>Enables generation of the Sleep counter overflow event</description>
                  <bitRange>[19:19]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>EXCEVTENA</name>
                  <description>Enables generation of the Exception overhead counter overflow event</description>
                  <bitRange>[18:18]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CPIEVTENA</name>
                  <description>Enables generation of the CPI counter overflow event</description>
                  <bitRange>[17:17]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>EXCTRCENA</name>
                  <description>Enables generation of exception trace</description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PCSAMPLENA</name>
                  <description>Enables use of POSTCNT counter as a timer for Periodic PC sample packet generation</description>
                  <bitRange>[12:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No Periodic PC sample packets generated</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Periodic PC sample packets generated</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SYNCTAP</name>
                  <description>Selects the position of the synchronization packet counter tap on the CYCCNT counter</description>
                  <bitRange>[11:10]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled. No Synchronization packets</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Synchronization counter tap at CYCCNT[26]</description>
                      <value>10</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Synchronization counter tap at CYCCNT[28]</description>
                      <value>11</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CYCTAP</name>
                  <description>Selects the position of the POSTCNT tap on the CYCCNT counter</description>
                  <bitRange>[9:9]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>POSTCNT tap at CYCCNT[6]</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>POSTCNT tap at CYCCNT[10]</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>POSTINIT</name>
                  <description>Initial value for the POSTCNT counter</description>
                  <bitRange>[8:5]</bitRange>
                </field>
                <field>
                  <name>POSTPRESET</name>
                  <description>Reload value for the POSTCNT counter</description>
                  <bitRange>[4:1]</bitRange>
                </field>
                <field>
                  <name>CYCCNTENA</name>
                  <description>Enables CYCCNT</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Cycle Count register</name>
              <displayName>DWT_CYCCNT</displayName>
              <description>Shows or sets the value of the processor cycle counter, CYCCNT</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CYCCNT</name>
                  <description>Incrementing cycle counter value</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>CPI Count register</name>
              <displayName>DWT_CPICNT</displayName>
              <description>Counts additional cycles required to execute multi-cycle instructions and instruction fetch stalls</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CPICNT</name>
                  <description>Base instruction overhead counter</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Exception Overhead Count register</name>
              <displayName>DWT_EXCCNT</displayName>
              <description>Counts the total cycles spent in exception processing</description>
              <addressOffset>0xC</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>EXCCNT</name>
                  <description>The exception overhead counter</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Sleep Count register</name>
              <displayName>DWT_SLEEPCNT</displayName>
              <description>Counts the total number of cycles that the processor is sleeping</description>
              <addressOffset>0x10</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>SLEEPCNT</name>
                  <description>Sleep counter</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>LSU Count register</name>
              <displayName>DWT_LSUCNT</displayName>
              <description>Increments on the additional cycles required to execute all load or store instructions</description>
              <addressOffset>0x14</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>LSUCNT</name>
                  <description>Load-store overhead counter</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Folded-instruction Count register</name>
              <displayName>DWT_FOLDCNT</displayName>
              <description>Increments on each instruction that takes 0 cycles</description>
              <addressOffset>0x18</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>FOLDCNT</name>
                  <description>Folded instruction counter</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Program Counter Sample Register</name>
              <displayName>DWT_PCSR</displayName>
              <description>Samples the current value of the program counter</description>
              <addressOffset>0x1C</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>EIASAMPLE</name>
                  <description>Executed Instruction Address sample value</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Comparator register</name>
              <displayName>DWT_COMP_%s</displayName>
              <description>Provides a reference value for use by comparator n</description>
              <addressOffset>0x20</addressOffset>
              <access>read-write</access>
              <dim>8</dim>
              <dimIncrement>4</dimIncrement>
              <fields>
                <field>
                  <name>COMP</name>
                  <description>Reference value for comparison</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Comparator Mask Register %s</name>
              <displayName>DWT_MASK_%s</displayName>
              <description>Provides the size of the ignore mask applied to the access address for address range matching by comparator n</description>
              <addressOffset>0x24</addressOffset>
              <access>read-write</access>
              <dim>8</dim>
              <dimIncrement>4</dimIncrement>
              <fields>
                <field>
                  <name>MASK</name>
                  <description>The size of the ignore mask, 0-31 bits, applied to address range matching</description>
                  <bitRange>[4:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Comparator Function Register %s</name>
              <displayName>DWT_FUNCTION_%s</displayName>
              <description>Controls the operation of comparator n</description>
              <addressOffset>0x28</addressOffset>
              <access>read-write</access>
              <dim>8</dim>
              <dimIncrement>4</dimIncrement>
              <fields>
                <field>
                  <name>MATCHED</name>
                  <description>Comparator match</description>
                  <bitRange>[24:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No match</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Match</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DATAVADDR1</name>
                  <description>When the DATAVMATCH and LNK1ENA bits are both 1, this field can hold the comparator number of a second comparator to use for linked address comparison</description>
                  <bitRange>[19:16]</bitRange>
                </field>
                <field>
                  <name>DATAVADDR0</name>
                  <description>When the DATAVMATCH bit is set to 1 this field can hold the comparator number of a comparator to use for linked address comparison</description>
                  <bitRange>[15:12]</bitRange>
                </field>
                <field>
                  <name>DATAVSIZE</name>
                  <description>For data value matching, specifies the size of the required data comparison</description>
                  <bitRange>[11:10]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Byte</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halfword</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Word</description>
                      <value>10</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>LNK1ENA</name>
                  <description>Indicates whether the implementation supports use of a second linked comparator</description>
                  <bitRange>[9:9]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Second linked comparator not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Second linked comparator supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DATAVMATCH</name>
                  <description>Enables data value comparison, if supported</description>
                  <bitRange>[8:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Perform address comparison</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Perform data value comparison</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CYCMATCH</name>
                  <description>DWT_FUNCTION0 only</description>
                  <bitRange>[7:7]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No comparison is performed</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Compare DWT_COMP0 with the cycle counter, DWT_CYCCNT</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>EMITRANGE</name>
                  <description>If the implementation supports trace sampling, enables generation of Data trace address packets, that hold Daddr[15</description>
                  <bitRange>[5:5]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Data trace address packets disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enable Data trace address packet generation</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FUNCTION</name>
                  <description>Selects action taken on comparator match</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>= Disabled or LinkAddr(), see LinkAddr support on page C1-789</description>
                      <value>0</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>DPB</name>
          <description>Flash Patch and Breakpoint</description>
          <groupName></groupName>
          <baseAddress>0xE0002000</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x1000</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>FlashPatch Control Register</name>
              <displayName>FP_CTRL</displayName>
              <description>Provides FPB implementation information, and the global enable for the FPB unit</description>
              <addressOffset>0x0</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>REV</name>
                  <description>Flash Patch Breakpoint architecture revision</description>
                  <bitRange>[31:28]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Flash Patch Breakpoint version 1</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Flash Patch Breakpoint version 2</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>NUM_CODE[6:4]</name>
                  <description>Number of comperators 6:4</description>
                  <bitRange>[14:12]</bitRange>
                </field>
                <field>
                  <name>NUM_LIT</name>
                  <description>The number of literal address comparators supported, starting from NUM_CODE upwards</description>
                  <bitRange>[11:8]</bitRange>
                </field>
                <field>
                  <name>NUM_CODE[3:0]</name>
                  <description>Number of comperators 3:0</description>
                  <bitRange>[7:4]</bitRange>
                </field>
                <field>
                  <name>KEY</name>
                  <description>On any write to FP_CTRL, this bit must be 1</description>
                  <bitRange>[1:1]</bitRange>
                </field>
                <field>
                  <name>ENABLE</name>
                  <description>Enable bit for the FPB</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Flash Patch Breakpoint disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Flash Patch Breakpoint enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>FlashPatch Remap register</name>
              <displayName>FP_REMAP</displayName>
              <description>Indicates whether the implementation supports flash patch remap, and if it does, holds the SRAM address for remap</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>RMPSPT</name>
                  <description>Indicates whether the FPB unit supports flash patch remap</description>
                  <bitRange>[29:29]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Remapping not supported. The FPB only supports breakpoint functionality</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Hard-wired remap to SRAM region</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>REMAP</name>
                  <description>If the FPB supports flash patch remap, this field</description>
                  <bitRange>[28:5]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>FlashPatch Comparator Register %s</name>
              <displayName>FP_COMP_%s</displayName>
              <description>Holds an address for comparison with addresses in the Code memory region, see The system address map on page B3-648</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <dim>8</dim>
              <dimIncrement>4</dimIncrement>
              <fields>
                <field>
                  <name>REPLACE</name>
                  <description>For an instruction address comparator</description>
                  <bitRange>[31:30]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Remap to remap address, see FlashPatch Remap register, FP_REMAP on page C1-818</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Breakpoint on instruction at '000':COMP:'00'</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Breakpoint on instruction at '000':COMP:'10'</description>
                      <value>10</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Breakpoint on both instructions at '000':COMP:'00' and '000':COMP:'10'</description>
                      <value>11</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>COMP</name>
                  <description>Bits[28</description>
                  <bitRange>[28:2]</bitRange>
                </field>
                <field>
                  <name>For a literal address or instruction address remap</name>
                  <description>of the comparison are also zero</description>
                  <bitRange>[1:0]</bitRange>
                </field>
                <field>
                  <name>For an instruction address breakpoint</name>
                  <description>of the comparison are encoded by the REPLACE field</description>
                  <bitRange>[1:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>30 29 28 2 1 0 COMP Reserved REPLACE Reserved ENABLE C1 ARMv7-M Debug C1</description>
                      <value>31</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ENABLE</name>
                  <description>Enable bit for this comparator</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Comparator disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Comparator enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BPADDR</name>
                  <description>Breakpoint address</description>
                  <bitRange>[31:1]</bitRange>
                </field>
                <field>
                  <name>BE</name>
                  <description>Enable bit for Breakpoint</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Breakpoint disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Breakpoint enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DCBA</name>
                  <description>This field is defined depending on the value for Breakpoint Enabled</description>
                  <bitRange>[31:1]</bitRange>
                </field>
                <field>
                  <name>BPADDR</name>
                  <description>Breakpoint address</description>
                  <bitRange>[31:1]</bitRange>
                </field>
                <field>
                  <name>FE</name>
                  <description>Specifies if Flash Patch enabled</description>
                  <bitRange>[31:31]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Flash Patch disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Flash Patch enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FPADDR</name>
                  <description>Specifies bits[28</description>
                  <bitRange>[28:2]</bitRange>
                </field>
                <field>
                  <name>BE</name>
                  <description>Breakpoint Enabled bit</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Breakpoint disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Breakpoint enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>In protocol packets</name>
                  <description>of each byte, including the header byte, but not including the last byte of a 7-byte packet, is a continuation bit, C</description>
                  <bitRange>[7:7]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>This is the last byte of the packet</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>This is not the last byte of the packet</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>ICB</name>
          <description>Implementation Control Block</description>
          <groupName></groupName>
          <baseAddress>0xE000E004</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0xC</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Interrupt Controller Type Register</name>
              <displayName>ICTR</displayName>
              <description>Provides information about the interrupt controller</description>
              <addressOffset>0x0</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>INTLINESNUM_%s</name>
                  <description>The total number of interrupt lines supported by an implementation, defined in groups of 32</description>
                  <bitRange>[3:0]</bitRange>
                  <dim>2</dim>
                  <dimIncrement>16</dimIncrement>
                </field>
              </fields>
            </register>
            <register>
              <name>Auxiliary Control Register</name>
              <displayName>ACTLR</displayName>
              <description>Provides IMPLEMENTATION DEFINED configuration and control options</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>SYSTICK</name>
          <description>SysTick Timer</description>
          <groupName></groupName>
          <baseAddress>0xE000E010</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x10</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>SysTick Control and Status Register</name>
              <displayName>SYST_CSR</displayName>
              <description>Controls the system timer and provides status data</description>
              <addressOffset>0x0</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>COUNTFLAG</name>
                  <description>Indicates whether the counter has counted to 0 since the last read of this register</description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Timer has not counted to 0</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Timer has counted to 0</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CLKSOURCE</name>
                  <description>Indicates the SysTick clock source</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>SysTick uses the IMPLEMENTATION DEFINED external reference clock</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>SysTick uses the processor clock</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TICKINT</name>
                  <description>Indicates whether counting to 0 causes the status of the SysTick exception to change to pending</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Count to 0 does not affect the SysTick exception status</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Count to 0 changes the SysTick exception status to pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ENABLE</name>
                  <description>Indicates the enabled status of the SysTick counter</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Counter is disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Counter is operating</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>SysTick Reload Value Register</name>
              <displayName>SYST_RVR</displayName>
              <description>Holds the reload value of the SYST_CVR</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>RELOAD</name>
                  <description>The value to load into the SYST_CVR when the counter reaches 0</description>
                  <bitRange>[23:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>SysTick Current Value Register</name>
              <displayName>SYST_CVR</displayName>
              <description>Reads or clears the current counter value</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CURRENT</name>
                  <description>Current counter value</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>SysTick Calibration value Register</name>
              <displayName>SYST_CALIB</displayName>
              <description>Reads the calibration value and parameters for SysTick</description>
              <addressOffset>0xC</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>NOREF</name>
                  <description>Indicates whether the IMPLEMENTATION DEFINED reference clock is implemented</description>
                  <bitRange>[31:31]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>The reference clock is implemented</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>The reference clock is not implemented</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SKEW</name>
                  <description>Indicates whether the 10ms calibration value is exact</description>
                  <bitRange>[30:30]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>10ms calibration value is exact</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>10ms calibration value is inexact, because of the clock frequency</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TENMS</name>
                  <description>Optionally, holds a reload value to be used for 10ms (100Hz) timing, subject to system clock skew errors</description>
                  <bitRange>[23:0]</bitRange>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>NVIC</name>
          <description>Nested Vectored Interrupt Controller</description>
          <groupName></groupName>
          <baseAddress>0xE000E100</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x4F0</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Interrupt Set-Enable Register %s</name>
              <displayName>NVIC_ISER_%s</displayName>
              <description>Enables, or reads the enable state of a group of interrupts</description>
              <addressOffset>0x0</addressOffset>
              <dim>16</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>SETENA_%s</name>
                  <description>For register NVIC_ISERn, enables or shows the current enabled state of interrupt (m+(32*n))</description>
                  <bitRange>[0:0]</bitRange>
                  <dim>32</dim>
                  <dimIncrement>1</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On reads, interrupt disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On reads, interrupt enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Interrupt Clear-Enable Register %s</name>
              <displayName>NVIC_ICER_%s</displayName>
              <description>Disables, or reads the enable state of, a group of registers</description>
              <addressOffset>0x80</addressOffset>
              <dim>16</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CLRENA_%s</name>
                  <description>For register NVIC_ICERn, disables or shows the current enabled state of interrupt (m+(32*n))</description>
                  <bitRange>[0:0]</bitRange>
                  <dim>32</dim>
                  <dimIncrement>1</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On reads, interrupt disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On reads, interrupt enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Interrupt Set-Pending Register %s</name>
              <displayName>NVIC_ISPR_%s</displayName>
              <description>For a group of interrupts, changes interrupt status to pending, or shows the current pending status</description>
              <addressOffset>0x100</addressOffset>
              <dim>16</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>SETPEND_%s</name>
                  <description>For register NVIC_ISPRn, changes the state of interrupt (m+(32*n)) to pending, or shows whether the state of the interrupt is pending</description>
                  <bitRange>[0:0]</bitRange>
                  <dim>32</dim>
                  <dimIncrement>1</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On reads, interrupt is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On reads, interrupt is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Interrupt Clear-Pending Register %s</name>
              <displayName>NVIC_ICPR_%s</displayName>
              <description>For a group of interrupts, clears the interrupt pending status, or shows the current pending status</description>
              <addressOffset>0x180</addressOffset>
              <dim>16</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CLRPEND_%s</name>
                  <description>For register NVIC_ICPRn, clears the pending state of interrupt (m+(32*n)), or shows whether the state of the interrupt is pending</description>
                  <bitRange>[0:0]</bitRange>
                  <dim>32</dim>
                  <dimIncrement>1</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On reads, interrupt is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On reads, interrupt is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Interrupt Active Bit Register %s</name>
              <displayName>NVIC_IABR_%s</displayName>
              <description>For a group of 32 interrupts, shows whether each interrupt is active</description>
              <addressOffset>0x200</addressOffset>
              <dim>16</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-only</access>
              <fields>
                <field>
                  <name>ACTIVE_%s</name>
                  <description>For register NVIC_IABRn, shows whether interrupt (m+(32*n)) is active</description>
                  <bitRange>[0:0]</bitRange>
                  <dim>32</dim>
                  <dimIncrement>1</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Interrupt not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Interrupt active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Interrupt Priority Register %s</name>
              <displayName>NVIC_IPR_%s</displayName>
              <description>Sets or reads interrupt priorities</description>
              <addressOffset>0x300</addressOffset>
              <dim>124</dim>
              <dimIncrement>4</dimIncrement>
              <access>read-write</access>
              <fields>
                <field>
                  <name>PRI_N3</name>
                  <description>For register NVIC_IPRn, priority of interrupt number 4n+3</description>
                  <bitRange>[31:24]</bitRange>
                </field>
                <field>
                  <name>PRI_N2</name>
                  <description>For register NVIC_IPRn, priority of interrupt number 4n+2</description>
                  <bitRange>[23:16]</bitRange>
                </field>
                <field>
                  <name>PRI_N1</name>
                  <description>For register NVIC_IPRn, priority of interrupt number 4n+1</description>
                  <bitRange>[15:8]</bitRange>
                </field>
                <field>
                  <name>PRI_N0</name>
                  <description>For register NVIC_IPRn, priority of interrupt number 4n</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>SCB</name>
          <description>System Control Block</description>
          <groupName></groupName>
          <baseAddress>0xE000ED00</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x90</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>CPUID Base Register</name>
              <displayName>CPUID</displayName>
              <description>Provides identification information for the processor</description>
              <addressOffset>0x0</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>IMPLEMENTER</name>
                  <description>Implementer code assigned by ARM</description>
                  <bitRange>[31:24]</bitRange>
                </field>
                <field>
                  <name>VARIANT</name>
                  <description>IMPLEMENTATION DEFINED variant number</description>
                  <bitRange>[23:20]</bitRange>
                </field>
                <field>
                  <name>ARCHITECTURE</name>
                  <description>Reads as 0xF</description>
                  <bitRange>[19:16]</bitRange>
                </field>
                <field>
                  <name>PARTNO</name>
                  <description>IMPLEMENTATION DEFINED part number</description>
                  <bitRange>[15:4]</bitRange>
                </field>
                <field>
                  <name>REVISION</name>
                  <description>IMPLEMENTATION DEFINED revision number</description>
                  <bitRange>[3:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Interrupt Control and State Register</name>
              <displayName>ICSR</displayName>
              <description>Provides software control of the NMI, PendSV, and SysTick exceptions, and provides interrupt status information</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>NMIPENDSET</name>
                  <description>On writes, makes the NMI exception active</description>
                  <bitRange>[31:31]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On writes, has no effect. On reads, NMI is inactive</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On writes, make the NMI exception active. On reads, NMI is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PENDSVSET</name>
                  <description>On writes, sets the PendSV exception as pending</description>
                  <bitRange>[28:28]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On writes, has no effect. On reads, PendSV is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On writes, make PendSV exception pending. On reads, PendSV is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PENDSVCLR</name>
                  <description>Removes the pending status of the PendSV exception</description>
                  <bitRange>[27:27]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No effect</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Remove pending status</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PENDSTSET</name>
                  <description>On writes, sets the SysTick exception as pending</description>
                  <bitRange>[26:26]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>On writes, has no effect. On reads, SysTick is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>On writes, make SysTick exception pending. On reads, SysTick is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PENDSTCLR</name>
                  <description>Removes the pending status of the SysTick exception</description>
                  <bitRange>[25:25]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No effect</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Remove pending status</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ISRPREEMPT</name>
                  <description>Indicates whether a pending exception will be serviced on exit from debug halt state</description>
                  <bitRange>[23:23]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Will not service</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Will service a pending exception</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ISRPENDING</name>
                  <description>Indicates whether an external interrupt, generated by the NVIC, is pending</description>
                  <bitRange>[22:22]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No external interrupt pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>External interrupt pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VECTPENDING</name>
                  <description>The exception number of the highest priority pending and enabled interrupt</description>
                  <bitRange>[20:12]</bitRange>
                </field>
                <field>
                  <name>RETTOBASE</name>
                  <description>In Handler mode, indicates whether there is an active exception other than the exception indicated by the current value of the IPSR</description>
                  <bitRange>[11:11]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>There is an active exception other than the exception shown by IPSR</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>There is no active exception other than any exception shown by IPSR</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VECTACTIVE</name>
                  <description>The exception number of the current executing exception</description>
                  <bitRange>[8:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Vector Table Offset Register</name>
              <displayName>VTOR</displayName>
              <description>Holds the vector table address</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>TBLOFF</name>
                  <description>Bits[31:7] of the vector table address</description>
                  <bitRange>[31:7]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Application Interrupt and Reset Control Register</name>
              <displayName>AIRCR</displayName>
              <description>Sets or returns interrupt control data</description>
              <addressOffset>0xC</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>ENDIANNESS</name>
                  <description>Indicates the memory system endianness</description>
                  <bitRange>[15:15]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Little endian</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Big endian</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PRIGROUP</name>
                  <description>Priority grouping, indicates the binary point position</description>
                  <bitRange>[10:8]</bitRange>
                </field>
                <field>
                  <name>SYSRESETREQ</name>
                  <description>System Reset Request</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Do not request a reset</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Request reset</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VECTCLRACTIVE</name>
                  <description>Writing 1 to this bit clears all active state information for fixed and configurable exceptions</description>
                  <bitRange>[1:1]</bitRange>
                </field>
                <field>
                  <name>VECTRESET</name>
                  <description>Writing 1 to this bit causes a local system reset, see Reset management on page B1-615 for more information</description>
                  <bitRange>[0:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>System Control Register</name>
              <displayName>SCR</displayName>
              <description>Sets or returns system control data</description>
              <addressOffset>0x10</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>SEVONPEND</name>
                  <description>Determines whether an interrupt transition from inactive state to pending state is a wakeup event</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Transitions from inactive to pending are not wakeup events</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Transitions from inactive to pending are wakeup events</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SLEEPDEEP</name>
                  <description>Provides a qualifying hint indicating that waking from sleep might take longer</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Selected sleep state is not deep sleep</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Selected sleep state is deep sleep</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SLEEPONEXIT</name>
                  <description>Determines whether, on an exit from an ISR that returns to the base level of execution priority, the processor enters a sleep state</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Do not enter sleep state</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enter sleep state</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Configuration and Control Register</name>
              <displayName>CCR</displayName>
              <description>Sets or returns configuration and control data, and provides control over caching and branch prediction</description>
              <addressOffset>0x14</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>BP</name>
                  <description>Branch prediction enable bit</description>
                  <bitRange>[18:18]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Program flow prediction disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Program flow prediction enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>IC</name>
                  <description>Instruction cache enable bit</description>
                  <bitRange>[17:17]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Instruction caches disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Instruction caches enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DC</name>
                  <description>Cache enable bit</description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Data and unified caches disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Data and unified caches enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>STKALIGN</name>
                  <description>Determines whether the exception entry sequence guarantees 8-byte stack frame alignment, adjusting the SP if necessary before saving state</description>
                  <bitRange>[9:9]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Guaranteed SP alignment is 4-byte, no SP adjustment is performed</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>8-byte alignment guaranteed, SP adjusted if necessary</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BFHFNMIGN</name>
                  <description>Determines the effect of precise data access faults on handlers running at priority -1 or priority -2</description>
                  <bitRange>[8:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Precise data access fault causes a lockup, see Unrecoverable exception cases on page B1-611</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Handler ignores the fault</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DIV_0_TRP</name>
                  <description>Controls the trap on divide by 0</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Trapping disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Trapping enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>UNALIGN_TRP</name>
                  <description>Controls the trapping of unaligned word or halfword accesses</description>
                  <bitRange>[3:3]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Trapping disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Trapping enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>USERSETMPEND</name>
                  <description>Controls whether unprivileged software can access the STIR</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Unprivileged software cannot access the STIR</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Unprivileged software can access the STIR</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>NONBASETHRDENA</name>
                  <description>Controls whether the processor can enter Thread mode with exceptions active</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Any attempt to enter Thread mode with exceptions active faults</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>The processor can enter Thread mode with exceptions active because of a controlled return value</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>System Handler Priority Register 1</name>
              <displayName>SHPR1</displayName>
              <description>Sets or returns priority for system handlers 4-7</description>
              <addressOffset>0x18</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>PRI_7</name>
                  <description>Reserved for priority of system handler 7</description>
                  <bitRange>[31:24]</bitRange>
                </field>
                <field>
                  <name>PRI_6</name>
                  <description>Priority of system handler 6, UsageFault</description>
                  <bitRange>[23:16]</bitRange>
                </field>
                <field>
                  <name>PRI_5</name>
                  <description>Priority of system handler 5, BusFault</description>
                  <bitRange>[15:8]</bitRange>
                </field>
                <field>
                  <name>PRI_4</name>
                  <description>Priority of system handler 4, MemManage</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>System Handler Priority Register 2</name>
              <displayName>SHPR2</displayName>
              <description>Sets or returns priority for system handlers 8-11</description>
              <addressOffset>0x1C</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>PRI_11</name>
                  <description>Priority of system handler 11, SVCall</description>
                  <bitRange>[31:24]</bitRange>
                </field>
                <field>
                  <name>PRI_10</name>
                  <description>Reserved for priority of system handler 10</description>
                  <bitRange>[23:16]</bitRange>
                </field>
                <field>
                  <name>PRI_9</name>
                  <description>Reserved for priority of system handler 9</description>
                  <bitRange>[15:8]</bitRange>
                </field>
                <field>
                  <name>PRI_8</name>
                  <description>Reserved for priority of system handler 8</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>System Handler Priority Register 3</name>
              <displayName>SHPR3</displayName>
              <description>Sets or returns priority for system handlers 12-15</description>
              <addressOffset>0x20</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>PRI_15</name>
                  <description>Priority of system handler 15, SysTick</description>
                  <bitRange>[31:24]</bitRange>
                </field>
                <field>
                  <name>PRI_14</name>
                  <description>Priority of system handler 14, PendSV</description>
                  <bitRange>[23:16]</bitRange>
                </field>
                <field>
                  <name>PRI_13</name>
                  <description>Reserved for priority of system handler 13</description>
                  <bitRange>[15:8]</bitRange>
                </field>
                <field>
                  <name>PRI_12</name>
                  <description>Priority of system handler 12, DebugMonitor</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>System Handler Control and State Register</name>
              <displayName>SHCSR</displayName>
              <description>Controls and provides the active and pending status of system exceptions</description>
              <addressOffset>0x24</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>USGFAULTENA</name>
                  <description></description>
                  <bitRange>[18:18]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disable UsageFault</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enable UsageFault</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BUSFAULTENA</name>
                  <description></description>
                  <bitRange>[17:17]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disable BusFault</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enable BusFault</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MEMFAULTENA</name>
                  <description></description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disable MemManage fault</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enable MemManage fault</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SVCALLPENDED</name>
                  <description></description>
                  <bitRange>[15:15]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>SVCall is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>SVCall is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BUSFAULTPENDED</name>
                  <description></description>
                  <bitRange>[14:14]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>BusFault is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>BusFault is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MEMFAULTPENDED</name>
                  <description></description>
                  <bitRange>[13:13]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>MemManage is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>MemManage is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>USGFAULTPENDED</name>
                  <description></description>
                  <bitRange>[12:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>UsageFault is not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>UsageFault is pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SYSTICKACT</name>
                  <description></description>
                  <bitRange>[11:11]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>SysTick is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>SysTick is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PENDSVACT</name>
                  <description></description>
                  <bitRange>[10:10]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>PendSV is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>PendSV is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MONITORACT</name>
                  <description></description>
                  <bitRange>[8:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Monitor is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Monitor is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SVCALLACT</name>
                  <description></description>
                  <bitRange>[7:7]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>SVCall is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>SVCall is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>USGFAULTACT</name>
                  <description></description>
                  <bitRange>[3:3]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>UsageFault is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>UsageFault is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BUSFAULTACT</name>
                  <description></description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>BusFault is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>BusFault is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MEMFAULTACT</name>
                  <description></description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>MemManage is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>MemManage is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Configurable Fault Status Register</name>
              <displayName>CFSR</displayName>
              <description>Contains the three Configurable Fault Status Registers</description>
              <addressOffset>0x28</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>UsageFault</name>
                  <description>Provides information on UsageFault exceptions</description>
                  <bitRange>[31:16]</bitRange>
                </field>
                <field>
                  <name>BusFault</name>
                  <description>Provides information on BusFault exceptions</description>
                  <bitRange>[15:8]</bitRange>
                </field>
                <field>
                  <name>MemManage</name>
                  <description>Provides information on MemManage exceptions</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>HardFault Status Register</name>
              <displayName>HFSR</displayName>
              <description>Shows the cause of any HardFault</description>
              <addressOffset>0x2C</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>DEBUGEVT</name>
                  <description>Indicates when a Debug event has occurred</description>
                  <bitRange>[31:31]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No Debug event has occurred</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Debug event has occurred. The Debug Fault Status Register has been updated</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FORCED</name>
                  <description>Indicates that a fault with configurable priority has been escalated to a HardFault exception, because it could not be made active, because of priority or because it was disabled</description>
                  <bitRange>[30:30]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No priority escalation has occurred</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Processor has escalated a configurable-priority exception to HardFault</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VECTTBL</name>
                  <description>Indicates when a fault has occurred because of a vector table read error on exception processing</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No vector table read fault has occurred</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Vector table read fault has occurred</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Debug Fault Status Register</name>
              <displayName>DFSR</displayName>
              <description>Shows which debug event occurred</description>
              <addressOffset>0x30</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>EXTERNAL</name>
                  <description>Indicates a debug event generated because of the assertion of an external debug request</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No external debug request debug event</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>External debug request debug event</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VCATCH</name>
                  <description>Indicates triggering of a Vector catch</description>
                  <bitRange>[3:3]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No Vector catch triggered</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Vector catch triggered</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>DWTTRAP</name>
                  <description>Indicates a debug event generated by the DWT</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No debug events generated by the DWT</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>At least one debug event generated by the DWT</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BKPT</name>
                  <description>Indicates a debug event generated by BKPT instruction execution or a breakpoint match in FPB</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No breakpoint debug event</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>At least one breakpoint debug event</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>HALTED</name>
                  <description>Indicates a debug event generated by either</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No halt request debug event</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halt request debug event</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>MemManage Fault Address Register</name>
              <displayName>MMFAR</displayName>
              <description>Shows the address of the memory location that caused an MPU fault</description>
              <addressOffset>0x34</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Data address for an MPU fault</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>BusFault Address Register</name>
              <displayName>BFAR</displayName>
              <description>Shows the address associated with a precise data access fault</description>
              <addressOffset>0x38</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Data address for a precise bus fault</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Auxiliary Fault Status Register</name>
              <displayName>AFSR</displayName>
              <description>Provides implementation-specific fault status information and control</description>
              <addressOffset>0x3C</addressOffset>
              <access>read-write</access>
            </register>
            <register>
              <name>Coprocessor Access Control Register</name>
              <displayName>CPACR</displayName>
              <description>Specifies the access privileges for coprocessors</description>
              <addressOffset>0x88</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CP_%s</name>
                  <description>for n values 0-7, 10 and 11 Access privileges for coprocessor n, see the register diagram</description>
                  <bitRange>[1:0]</bitRange>
                  <dim>16</dim>
                  <dimIncrement>2</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Access denied. Any attempted access generates a NOCP UsageFault</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Privileged access only. An unprivileged access generates a NOCP UsageFault</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Reserved</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Full access</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Processor Feature Register 0</name>
              <displayName>ID_PFR0</displayName>
              <description>Gives top-level information about the instruction sets supported by the processor</description>
              <addressOffset>0x40</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>State3</name>
                  <description>ARMv7-M reserved</description>
                  <bitRange>[15:12]</bitRange>
                </field>
                <field>
                  <name>State2</name>
                  <description>ARMv7-M reserved</description>
                  <bitRange>[11:8]</bitRange>
                </field>
                <field>
                  <name>State1</name>
                  <description>Thumb instruction set support</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Support for Thumb encoding including Thumb-2 technology, with all basic 16-bit and 32-bit instructions</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>State0</name>
                  <description>ARM instruction set support</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>The processor does not support the ARM instruction set</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Processor Feature Register 1</name>
              <displayName>ID_PFR1</displayName>
              <description>Gives top-level information about the instruction sets supported by the processor</description>
              <addressOffset>0x44</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>M profile programmers model</name>
                  <description></description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Reserved</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Two-stack programmers model supported</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Debug Feature Register 0</name>
              <displayName>ID_DFR0</displayName>
              <description>Gives top-level information about the debug system used in the processor</description>
              <addressOffset>0x48</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Debug model, M profile</name>
                  <description>Support for memory-mapped debug model for M profile processors</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Support for M profile Debug architecture, with memory-mapped access</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Auxiliary Feature Register 0</name>
              <displayName>ID_AFR0</displayName>
              <description>Gives information about the IMPLEMENTATION DEFINED features of a processor implementation</description>
              <addressOffset>0x4C</addressOffset>
              <access>read-only</access>
            </register>
            <register>
              <name>Memory Model Feature Register 0</name>
              <displayName>ID_MMFR0</displayName>
              <description>Gives information about the implemented memory model and memory management support</description>
              <addressOffset>0x50</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Auxiliary registers</name>
                  <description>Indicates the support for Auxiliary registers</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Support for Auxiliary Control Register only</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TCM support</name>
                  <description>Indicates the support for Tightly Coupled Memory (TCM)</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No tightly coupled memories implemented</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Tightly coupled memories implemented with IMPLEMENTATION DEFINED control</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Shareability levels</name>
                  <description>Indicates the number of shareability levels implemented</description>
                  <bitRange>[15:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>One level of shareability implemented</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Outermost shareability</name>
                  <description>Indicates the outermost shareability domain implemented</description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Implemented as Non-cacheable</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Shareability ignored</description>
                      <value>15</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PMSA support</name>
                  <description>Indicates support for a PMSA</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>PMSAv7, providing support for a base region and subregions</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Memory Model Feature Register 1</name>
              <displayName>ID_MMFR1</displayName>
              <description>Gives information about the implemented memory model and memory management support</description>
              <addressOffset>0x54</addressOffset>
              <access>read-only</access>
            </register>
            <register>
              <name>Memory Model Feature Register 2</name>
              <displayName>ID_MMFR2</displayName>
              <description>Gives information about the implemented memory model and memory management support</description>
              <addressOffset>0x58</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>WFI stall</name>
                  <description>Indicates the support for Wait For Interrupt (WFI) stalling</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Support for WFI stalling</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Memory Model Feature Register 3</name>
              <displayName>ID_MMFR3</displayName>
              <description>Gives information about the implemented memory model and memory management support</description>
              <addressOffset>0x5C</addressOffset>
              <access>read-only</access>
            </register>
            <register>
              <name>Instruction Set Attribute Register 0</name>
              <displayName>ID_ISAR0</displayName>
              <description>Gives information about the instruction sets implemented by the processor</description>
              <addressOffset>0x60</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Divide_instrs</name>
                  <description>Indicates the supported Divide instructions</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the SDIV and UDIV instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Debug_instrs</name>
                  <description>Indicates the supported Debug instructions</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the BKPT instruction</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Coproc_instrs</name>
                  <description>Indicates the supported Coprocessor instructions</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, except for separately attributed architectures, for example the Floating-point extension</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for generic CDP, LDC, MCR, MRC, and STC instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for generic CDP2, LDC2, MCR2, MRC2, and STC2 instructions</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 2, and adds support for generic MCRR and MRRC instructions, 4 As for 3, and adds support for generic MCRR2 and MRRC2 inst</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CmpBranch_instrs</name>
                  <description>Indicates the supported combined Compare and Branch instructions</description>
                  <bitRange>[15:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the CBNZ and CBZ instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Bitfield_instrs</name>
                  <description>Indicates the supported BitField instructions</description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the BFC, BFI, SBFX, and UBFX instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BitCount_instrs</name>
                  <description>Indicates the supported Bit Counting instructions</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the CLZ instruction</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Instruction Set Attribute Register 1</name>
              <displayName>ID_ISAR1</displayName>
              <description>Gives information about the instruction sets implemented by the processor</description>
              <addressOffset>0x64</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Interwork_instrs</name>
                  <description>Indicates the supported Interworking instructions</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the BX instruction, and the T bit in the PSR</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the BLX instruction, and PC loads have BX-like behavior</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Immediate_instrs</name>
                  <description>Indicates the support for data-processing instructions with long immediates</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the ADDW, MOVW, MOVT, and SUBW instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>IfThen_instrs</name>
                  <description>Indicates the supported IfThen instructions</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the IT instructions, and for the IT bits in the PSRs</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Extend_instrs</name>
                  <description>Indicates the supported Extend instructions</description>
                  <bitRange>[15:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the SXTB, SXTH, UXTB, and UXTH instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the SXTAB, SXTAB16, SXTAH, SXTB16, UXTAB, UXTAB16, UXTAH, and UXTB16 instructions</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Instruction Set Attribute Register 2</name>
              <displayName>ID_ISAR2</displayName>
              <description>Gives information about the instruction sets implemented by the processor</description>
              <addressOffset>0x68</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Reversal_instrs</name>
                  <description>Indicates the supported Reversal instructions</description>
                  <bitRange>[31:28]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the REV, REV16, and REVSH instructions, ARMv7-M reserved</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the RBIT instruction</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MultU_instrs</name>
                  <description>Indicates the supported advanced unsigned Multiply instructions</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the UMULL and UMLAL instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the UMAAL instruction</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MultS_instrs</name>
                  <description>Indicates the supported advanced signed Multiply instructions</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the SMULL and SMLAL instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the SMLABB, SMLABT, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLATB, SMLATT, SMLAWB, SMLAWT, SMULBB, S</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 2, and adds support for the SMLAD, SMLADX, SMLALD, SMLALDX, SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR,</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Mult_instrs</name>
                  <description>Indicates the supported additional Multiply instructions</description>
                  <bitRange>[15:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported. This means only MUL is supported. ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the MLA instruction, ARMv7-M reserved</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the MLS instruction</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MultiAccessInt_instrs</name>
                  <description>Indicates the support for multi-access interruptible instructions</description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported. This means the LDM and STM instructions are not interruptible</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>LDM and STM instructions are restartable</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>LDM and STM instructions are continuable</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MemHint_instrs</name>
                  <description>Indicates the supported Memory Hint instructions</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the PLD instruction</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1 or 2, and adds support for the PLI instruction</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>LoadStore_instrs</name>
                  <description>Indicates the supported additional load and store instructions</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the LDRD and STRD instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Instruction Set Attribute Register 3</name>
              <displayName>ID_ISAR3</displayName>
              <description>Gives information about the instruction sets implemented by the processor</description>
              <addressOffset>0x6C</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>TrueNOP_instrs</name>
                  <description>Indicates the support for a true NOP instruction</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the true NOP instruction</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ThumbCopy_instrs</name>
                  <description>Indicates the supported non flag-setting MOV instructions</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for encoding T1 of the MOV (register) instruction copying from a low register to a low register</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>TabBranch_instrs</name>
                  <description>Indicates the supported Table Branch instructions</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the TBB and TBH instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SynchPrim_instrs</name>
                  <description>Must be interpreted with the ID_ISAR4</description>
                  <bitRange>[15:12]</bitRange>
                </field>
                <field>
                  <name>SVC_instrs</name>
                  <description>Indicates the supported SVC instructions</description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the SVC instruction</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SIMD_instrs</name>
                  <description>Indicates the supported SIMD instructions</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the SSAT and USAT instructions, and for the Q bit in the PSRs</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Reserved</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the PKHBT, PKHTB, QADD16, QADD8, QASX, QSUB16, QSUB8, QSAX, SADD16, SADD8, SASX, SEL, SHADD16, SH</description>
                      <value>3</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Saturate_instrs</name>
                  <description>Indicates the supported Saturate instructions</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the QADD, QDADD, QDSUB, and QSUB instructions, and for the Q bit in the PSRs</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Instruction Set Attribute Register 4</name>
              <displayName>ID_ISAR4</displayName>
              <description>Gives information about the instruction sets implemented by the processor</description>
              <addressOffset>0x70</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>PSR_M_instrs</name>
                  <description>Indicates the supported M profile instructions to modify the PSRs</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the M-profile forms of the CPS, MRS, and MSR instructions, to access the PSRs</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SynchPrim_instrs_frac</name>
                  <description>Must be interpreted with the ID_ISAR3</description>
                  <bitRange>[23:20]</bitRange>
                </field>
                <field>
                  <name>Barrier_instrs</name>
                  <description>Indicates the supported Barrier instructions</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the DMB, DSB, and ISB barrier instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Writeback_instrs</name>
                  <description>Indicates the support for Writeback addressing modes</description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Basic support</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for all of the writeback addressing modes defined in the ARMv7-M architecture</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>WithShifts_instrs</name>
                  <description>Indicates the support for instructions with shifts</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Nonzero shifts supported only in MOV and shift instructions</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for shifts of loads and stores over the range LSL 0-3</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Reserved</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for other constant shift options, on loads, stores, and other instructions</description>
                      <value>3</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>ARMv7-M reserved</description>
                      <value>4</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Unpriv_instrs</name>
                  <description>Indicates the supported unprivileged instructions</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>None supported, ARMv7-M reserved</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Adds support for the LDRBT, LDRT, STRBT, and STRT instructions</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 1, and adds support for the LDRHT, LDRSBT, LDRSHT, and STRHT instructions</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Cache Level ID Register</name>
              <displayName>CLIDR</displayName>
              <description>The CLIDR identifies: ? The type of cache, or caches, implemented at each level, up to a maximum of seven levels</description>
              <addressOffset>0x78</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>LoUU</name>
                  <description>Level of Unification Uniprocessor for the cache hierarchy, see Terminology for Clean, Invalidate, and Clean and Invalidate operations on page B2-631</description>
                  <bitRange>[29:27]</bitRange>
                </field>
                <field>
                  <name>LoC</name>
                  <description>Level of Coherency for the cache hierarchy</description>
                  <bitRange>[26:24]</bitRange>
                </field>
                <field>
                  <name>LoUIS</name>
                  <description>Level of Unification Inner Shareable for the cache hierarchy</description>
                  <bitRange>[23:21]</bitRange>
                </field>
                <field>
                  <name>CType_%s</name>
                  <description>Indicates the type of cache implemented at each level</description>
                  <bitRange>[1:0]</bitRange>
                  <dim>7</dim>
                  <dimIncrement>2</dimIncrement>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No cache</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Instruction cache only</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Data cache only</description>
                      <value>2</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Separate instruction and data caches</description>
                      <value>3</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Unified cache</description>
                      <value>4</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Cache Type Register</name>
              <displayName>CTR</displayName>
              <description>The CTR provides information about the architecture of the caches</description>
              <addressOffset>0x7C</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Format</name>
                  <description>Indicates the implemented CTR format</description>
                  <bitRange>[31:29]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>ARMv7 format. This is the format described in this section</description>
                      <value>4</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>CWG</name>
                  <description>Cache Write-back Granule</description>
                  <bitRange>[27:24]</bitRange>
                </field>
                <field>
                  <name>ERG</name>
                  <description>Exclusives Reservation Granule</description>
                  <bitRange>[23:20]</bitRange>
                </field>
                <field>
                  <name>DminLine</name>
                  <description>Log2 of the number of words in the smallest cache line of all the data caches and unified caches that are controlled by the processor</description>
                  <bitRange>[19:16]</bitRange>
                </field>
                <field>
                  <name>IminLine</name>
                  <description>Log2 of the number of words in the smallest cache line of all the instruction caches that are controlled by the processor</description>
                  <bitRange>[3:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Cache Size ID Registers</name>
              <displayName>CCSIDR</displayName>
              <description>The CCSIDR provides information about the architecture of the caches</description>
              <addressOffset>0x80</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>WT</name>
                  <description>Indicates whether the cache level supports write-through, see Table B4-4</description>
                  <bitRange>[31:31]</bitRange>
                </field>
                <field>
                  <name>WB</name>
                  <description>Indicates whether the cache level supports write-back, see Table B4-4</description>
                  <bitRange>[30:30]</bitRange>
                </field>
                <field>
                  <name>RA</name>
                  <description>Indicates whether the cache level supports read-allocation, see Table B4-4</description>
                  <bitRange>[29:29]</bitRange>
                </field>
                <field>
                  <name>WA</name>
                  <description>Indicates whether the cache level supports write-allocation, see Table B4-4</description>
                  <bitRange>[28:28]</bitRange>
                </field>
                <field>
                  <name>NumSets</name>
                  <description>(Number of sets in cache)-1, therefore a value of 0 indicates 1 set in the cache</description>
                  <bitRange>[27:13]</bitRange>
                </field>
                <field>
                  <name>Associativity</name>
                  <description>(Associativity of cache)-1, therefore a value of 0 indicates an associativity of 1</description>
                  <bitRange>[12:3]</bitRange>
                </field>
                <field>
                  <name>LineSize</name>
                  <description>(Log2(Number of words in cache line))-2</description>
                  <bitRange>[2:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Cache Size Selection Register</name>
              <displayName>CSSELR</displayName>
              <description>The CSSELR selects the current CCSIDR by specifying the required cache level</description>
              <addressOffset>0x84</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>Level</name>
                  <description>Cache level of required cache</description>
                  <bitRange>[3:1]</bitRange>
                </field>
                <field>
                  <name>InD</name>
                  <description>Instruction not data bit</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Data or unified cache</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Instruction cache</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>MPU</name>
          <description>Memory Protection Unit</description>
          <groupName></groupName>
          <baseAddress>0xE000ED90</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x2C</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>MPU Type Register</name>
              <displayName>MPU_TYPE</displayName>
              <description>The MPU Type Register indicates how many regions the MPU support</description>
              <addressOffset>0x0</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>IREGION</name>
                  <description>Instruction region</description>
                  <bitRange>[23:16]</bitRange>
                </field>
                <field>
                  <name>DREGION</name>
                  <description>Number of regions supported by the MPU</description>
                  <bitRange>[15:8]</bitRange>
                </field>
                <field>
                  <name>SEPARATE</name>
                  <description>Indicates support for separate instruction and data address maps. RAZ. ARMv7-M only supports a unified MPU</description>
                  <bitRange>[0:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>MPU Control Register</name>
              <displayName>MPU_CTRL</displayName>
              <description>Enables the MPU, and when the MPU is enabled, controls whether the default memory map is enabled as a background region for privileged accesses, and whether the MPU is enabled for HardFaults, NMIs</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>PRIVDEFENA</name>
                  <description>When the ENABLE bit is set to 1, the meaning of this bit is</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disables the default memory map</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enables the default memory map as a background region for privileged access</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>HFNMIENA</name>
                  <description>When the ENABLE bit is set to 1, controls whether handlers executing with priority less than 0 access memory with the MPU enabled or with the MPU disabled</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disables the MPU for these handlers</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Use the MPU for memory accesses by these handlers</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>ENABLE</name>
                  <description>Enables the MPU</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>The MPU is disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>The MPU is enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>MPU Region Number Register</name>
              <displayName>MPU_RNR</displayName>
              <description>Selects the region currently accessed by MPU_RBAR and MPU_RASR</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>REGION</name>
                  <description>Indicates the memory region accessed by MPU_RBAR and MPU_RASR</description>
                  <bitRange>[7:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>MPU Region Base Address Register</name>
              <displayName>MPU_RBAR</displayName>
              <description>Holds the base address of the region identified by MPU_RNR</description>
              <addressOffset>0xC</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>ADDR</name>
                  <description>Base address of the region</description>
                  <bitRange>[31:5]</bitRange>
                </field>
                <field>
                  <name>VALID</name>
                  <description>On writes, indicates whether the region to update is specified by MPU_RNR</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Apply the base address update to the region specified by MPU_RNR.REGION</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>
                        Update MPU_RNR.REGION to the value obtained by zero extending the
                        REGION value specified in this write
                      </description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>REGION</name>
                  <description>On writes, can specify the number of the region to update, see VALID field description</description>
                  <bitRange>[3:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>MPU Region Attribute and Size Register</name>
              <displayName>MPU_RASR</displayName>
              <description>Defines the size and access behavior of the region identified by MPU_RNR, and enables that region</description>
              <addressOffset>0x10</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>ATTRS</name>
                  <description>The MPU Region Attribute field</description>
                  <bitRange>[31:16]</bitRange>
                </field>
                <field>
                  <name>SRD</name>
                  <description>Subregion Disable</description>
                  <bitRange>[15:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Subregion enabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Subregion disabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>SIZE</name>
                  <description>Indicates the region size</description>
                  <bitRange>[5:1]</bitRange>
                </field>
                <field>
                  <name>ENABLE</name>
                  <description>Enables this region</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>When the MPU is enabled, this region is disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>When the MPU is enabled, this region is enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>DCB</name>
          <description>Debug Control Block</description>
          <groupName></groupName>
          <baseAddress>0xE000EDF0</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x10</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Debug Halting Control and Status Register</name>
              <displayName>DHCSR</displayName>
              <description>Controls halting debug</description>
              <addressOffset>0x0</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>DBGKEY</name>
                  <description>Debug key</description>
                  <bitRange>[31:16]</bitRange>
                </field>
                <field>
                  <name>S_RESET_ST</name>
                  <description>Indicates whether the processor has been reset since the last read of DHCSR</description>
                  <bitRange>[25:25]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No reset since last DHCSR read</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>At least one reset since last DHCSR read</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>S_RETIRE_ST</name>
                  <description>Set to 1 every time the processor retires one or more instructions</description>
                  <bitRange>[24:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No instruction retired since last DHCSR read</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>At least one instruction retired since last DHCSR read</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>S_LOCKUP</name>
                  <description>Indicates whether the processor is locked up because of an unrecoverable exception</description>
                  <bitRange>[19:19]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not locked up</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Locked up</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>S_SLEEP</name>
                  <description>Indicates whether the processor is sleeping</description>
                  <bitRange>[18:18]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not sleeping</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Sleeping</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>S_HALT</name>
                  <description>Indicates whether the processor is in Debug state</description>
                  <bitRange>[17:17]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>In Non-debug state</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>In Debug state</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>S_REGRDY</name>
                  <description>A handshake flag for transfers through the DCRDR</description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>There has been a write to the DCRDR, but the transfer is not complete</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>The transfer to or from the DCRDR is complete</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>C_SNAPSTALL</name>
                  <description>Allow imprecise entry to Debug state</description>
                  <bitRange>[5:5]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No action</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Allow imprecise entry to Debug state, for example by forcing any stalled load or store instruction to complete</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>C_MASKINTS</name>
                  <description>When debug is enabled, the debugger can write to this bit to mask PendSV, SysTick and external configurable interrupts</description>
                  <bitRange>[3:3]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Do not mask</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Mask PendSV, SysTick and external configurable interrupts</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>C_STEP</name>
                  <description>Processor step bit</description>
                  <bitRange>[2:2]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No effect</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Single step enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>C_HALT</name>
                  <description>Processor halt bit</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Causes the processor to leave Debug state, if in Debug state</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halt the processor</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>C_DEBUGEN</name>
                  <description>Halting debug enable bit</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Debug Core Register Selector Register</name>
              <displayName>DCRSR</displayName>
              <description>provides debug access to the ARM core registers, special-purpose registers, and Floating-point extension regi</description>
              <addressOffset>0x4</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>REGWnR</name>
                  <description>Specifies the access type for the transfer</description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Read</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Write</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>REGSEL</name>
                  <description>Specifies the ARM core register, special-purpose register, or Floating-point extension register, to transfer</description>
                  <bitRange>[6:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>The current SP</description>
                      <value>13</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>LR</description>
                      <value>14</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>DebugReturnAddress, see The DebugReturnAddress value</description>
                      <value>15</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>xPSR</description>
                      <value>16</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Main stack pointer, MSP</description>
                      <value>17</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Process stack pointer, PSP</description>
                      <value>18</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Control, Faultmask, Basepri and Primask</description>
                      <value>20</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Floating-point Status and Control Register, FPSCR</description>
                      <value>33</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Debug Core Register Data Register</name>
              <displayName>DCRDR</displayName>
              <description>provides debug access to the ARM core registers, special-purpose registers, and Floating-point extensio</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>DBGTMP</name>
                  <description>Data temporary cache, for reading and writing the ARM core registers, special-purpose registers, and Floating-point extension registers</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Debug Exception and Monitor Control Register</name>
              <displayName>DEMCR</displayName>
              <description>Manages vector catch behavior and DebugMonitor handling when debugging</description>
              <addressOffset>0xC</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>TRCENA</name>
                  <description>Global enable for all DWT and ITM features</description>
                  <bitRange>[24:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>DWT and ITM units disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>DWT and ITM units enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MON_REQ</name>
                  <description>DebugMonitor semaphore bit</description>
                  <bitRange>[19:19]</bitRange>
                </field>
                <field>
                  <name>MON_STEP</name>
                  <description>When MON_EN is set to 0, this feature is disabled and the processor ignores MON_STEP</description>
                  <bitRange>[18:18]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Do not step the processor</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Step the processor</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MON_PEND</name>
                  <description>Sets or clears the pending state of the DebugMonitor exception</description>
                  <bitRange>[17:17]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Clear the status of the DebugMonitor exception to not pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Set the status of the DebugMonitor exception to pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MON_EN</name>
                  <description>Enable the DebugMonitor exception</description>
                  <bitRange>[16:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>DebugMonitor exception disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>DebugMonitor exception enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_HARDERR</name>
                  <description>Enable halting debug trap on a HardFault exception</description>
                  <bitRange>[10:10]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_INTERR</name>
                  <description>Enable halting debug trap on a fault occurring during exception entry or exception return</description>
                  <bitRange>[9:9]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_BUSERR</name>
                  <description>Enable halting debug trap on a BusFault exception</description>
                  <bitRange>[8:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_STATERR</name>
                  <description>Enable halting debug trap on a UsageFault exception caused by a state information error, for example an Undefined Instruction exception</description>
                  <bitRange>[7:7]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_CHKERR</name>
                  <description>Enable halting debug trap on a UsageFault exception caused by a checking error, for example an alignment check error</description>
                  <bitRange>[6:6]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_NOCPERR</name>
                  <description>Enable halting debug trap on a UsageFault caused by an access to a Coprocessor</description>
                  <bitRange>[5:5]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_MMERR</name>
                  <description>Enable halting debug trap on a MemManage exception</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Halting debug trap disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Halting debug trap enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>VC_CORERESET</name>
                  <description>Enable Reset Vector Catch</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Reset Vector Catch disabled</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Reset Vector Catch enabled</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>SIG</name>
          <description>Software Interrupt Generation</description>
          <groupName></groupName>
          <baseAddress>0xE000EF00</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x4</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Software Triggered Interrupt Register</name>
              <displayName>STIR</displayName>
              <description>Provides a mechanism for software to generate an interrupt</description>
              <addressOffset>0x0</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>INTID</name>
                  <description>Indicates the interrupt to be triggered</description>
                  <bitRange>[8:0]</bitRange>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>FP</name>
          <description>Floating-Point Extension</description>
          <groupName></groupName>
          <baseAddress>0xE000EF34</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x18</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Floating Point Context Control Register</name>
              <displayName>FPCCR</displayName>
              <description>Holds control data for the Floating Point Unit</description>
              <addressOffset>0x0</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>ASPEN</name>
                  <description>When this bit is set to 1, execution of a floating-point instruction sets the CONTROL</description>
                  <bitRange>[31:31]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Executing an FP instruction has no effect on CONTROL.FPCA</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Executing an FP instruction sets CONTROL.FPCA to 1</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>LSPEN</name>
                  <description>Enables lazy context save of FP state</description>
                  <bitRange>[30:30]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Disable automatic lazy context save</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Enable automatic lazy context save</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MONRDY</name>
                  <description>Indicates whether the software executing when the processor allocated the FP stack frame was able to set the DebugMonitor exception to pending</description>
                  <bitRange>[8:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not able to set the DebugMonitor exception to pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Able to set the DebugMonitor exception to pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>BFRDY</name>
                  <description>Indicates whether the software executing when the processor allocated the FP stack frame was able to set the BusFault exception to pending</description>
                  <bitRange>[6:6]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not able to set the BusFault exception to pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Able to set the BusFault exception to pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MMRDY</name>
                  <description>Indicates whether the software executing when the processor allocated the FP stack frame was able to set the MemManage exception to pending</description>
                  <bitRange>[5:5]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not able to set the MemManage exception to pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Able to set the MemManage exception to pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>HFRDY</name>
                  <description>Indicates whether the software executing when the processor allocated the FP stack frame was able to set the HardFault exception to pending</description>
                  <bitRange>[4:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not able to set the HardFault exception to pending</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Able to set the HardFault exception to pending</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>THREAD</name>
                  <description>Indicates the processor mode when it allocated the FP stack frame</description>
                  <bitRange>[3:3]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Handler mode</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Thread mode</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>USER</name>
                  <description>Indicates the privilege level of the software executing when the processor allocated the FP stack frame</description>
                  <bitRange>[1:1]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Privileged</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Unprivileged</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>LSPACT</name>
                  <description>Indicates whether Lazy preservation of the FP state is active</description>
                  <bitRange>[0:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Lazy state preservation is not active</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Lazy state preservation is active</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Floating Point Context Address Register</name>
              <displayName>FPCAR</displayName>
              <description>Holds the location of the unpopulated floating-point register space allocated on an exception stack frame</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
            </register>
            <register>
              <name>Floating Point Default Status Control Register</name>
              <displayName>FPDSCR</displayName>
              <description>Holds the default values for the floating-point status control data that the processor assigns to the FPSCR when it creates a new floating-point context</description>
              <addressOffset>0x8</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>AHP</name>
                  <description>Default value for FPSCR.AHP</description>
                  <bitRange>[26:26]</bitRange>
                </field>
                <field>
                  <name>DN</name>
                  <description>Default value for FPSCR.DN</description>
                  <bitRange>[25:25]</bitRange>
                </field>
                <field>
                  <name>FZ</name>
                  <description>Default value for FPSCR.FZ</description>
                  <bitRange>[24:24]</bitRange>
                </field>
                <field>
                  <name>RMode</name>
                  <description>Default value for FPSCR.RMode</description>
                  <bitRange>[23:22]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Media and FP Feature Register 0</name>
              <displayName>MVFR0</displayName>
              <description>Describes the features provided by the Floating-point extension</description>
              <addressOffset>0xC</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>FP rounding modes</name>
                  <description>Indicates the rounding modes supported by the FP floating-point hardware</description>
                  <bitRange>[31:28]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>All rounding modes supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Short vectors</name>
                  <description>Indicates the hardware support for FP short vectors</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported in ARMv7-M</description>
                      <value>0</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Square root</name>
                  <description>Indicates the hardware support for FP square root operations</description>
                  <bitRange>[23:20]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Divide</name>
                  <description>Indicates the hardware support for FP divide operations</description>
                  <bitRange>[19:16]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FP exception trapping</name>
                  <description>Indicates whether the FP hardware implementation supports exception trapping</description>
                  <bitRange>[15:12]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported in ARMv7-M</description>
                      <value>0</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Double-precision</name>
                  <description>Indicates the hardware support for FP double-precision operations</description>
                  <bitRange>[11:8]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>Single-precision</name>
                  <description>Indicates the hardware support for FP single-precision operations</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>A_SIMD registers</name>
                  <description>Indicates the size of the FP register bank</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported, 16 x 64-bit registers</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Media and FP Feature Register 1</name>
              <displayName>MVFR1</displayName>
              <description>Describes the features provided by the Floating-point extension</description>
              <addressOffset>0x10</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>FP fused MAC</name>
                  <description>Indicates whether the FP supports fused multiply accumulate operations</description>
                  <bitRange>[31:28]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FP HPFP</name>
                  <description>Floating Point Half-Precision and double-precision</description>
                  <bitRange>[27:24]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supports conversion between half-precision and single precision</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>As for 0b0001, and also supports conversion between half-precision and double-precision</description>
                      <value>2</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>D_NaN mode</name>
                  <description>Indicates whether the FP hardware implementation supports only the Default NaN mode</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Hardware supports propagation of NaN values</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FtZ mode</name>
                  <description>Indicates whether the FP hardware implementation supports only the Flush-to-Zero mode of operation</description>
                  <bitRange>[3:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Hardware supports full denormalized number arithmetic</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Media and FP Feature Register 2</name>
              <displayName>MVFR2</displayName>
              <description>Describes the features provided by the floating-point extension</description>
              <addressOffset>0x14</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>VFP_Misc</name>
                  <description>Indicates the hardware support for FP miscellaneous features</description>
                  <bitRange>[7:4]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>No support for miscellaneous features</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Support for floating-point selection, floating-point conversion to integer with direct rounding modes, floating-point round to i</description>
                      <value>4</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>CMO</name>
          <description>Cache Maintenance Operations</description>
          <groupName></groupName>
          <baseAddress>0xE000EF50</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x2C</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Instruction Cache Invalidate All to PoU</name>
              <displayName>ICIALLU</displayName>
              <description>Invalidate all instruction caches to PoU</description>
              <addressOffset>0x0</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>Ignored</name>
                  <description>The value written to this field is ignored. Ignored</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Instruction Cache line Invalidate by Address to PoU</name>
              <displayName>ICIMVAU</displayName>
              <description>Invalidate instruction cache line by address to PoU</description>
              <addressOffset>0x8</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Address. Writing to this field initiates the maintenance operation for the address written</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache line Invalidate by Address to PoC</name>
              <displayName>DCIMVAC</displayName>
              <description>Invalidate data or unified cache line by address to PoC</description>
              <addressOffset>0xC</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Address. Writing to this field initiates the maintenance operation for the address written</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache line Invalidate by Set/Way</name>
              <displayName>DCISW</displayName>
              <description>Invalidate data or unified cache line by set/way</description>
              <addressOffset>0x10</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>SetWay</name>
                  <description>Cache set/way. Contains two fields: Way, bits[31:32-A], the number of the way to operate on</description>
                  <bitRange>[31:4]</bitRange>
                </field>
                <field>
                  <name>Level</name>
                  <description>Cache level. Cache level to operate on, minus 1</description>
                  <bitRange>[3:1]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache line Clean by address to PoU</name>
              <displayName>DCCMVAU</displayName>
              <description>Clean data or unified cache line by address to PoU</description>
              <addressOffset>0x14</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Address. Writing to this field initiates the maintenance operation for the address written</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache line Clean by Address to PoC</name>
              <displayName>DCCMVAC</displayName>
              <description>Clean data or unified cache line by address to PoC</description>
              <addressOffset>0x18</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Address. Writing to this field initiates the maintenance operation for the address written</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache Clean line by Set/Way</name>
              <displayName>DCCSW</displayName>
              <description>Clean data or unified cache line by set/way</description>
              <addressOffset>0x1C</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>SetWay</name>
                  <description>Cache set/way. Contains two fields: Way, bits [31:32-A], the number of the way to operate on</description>
                  <bitRange>[31:4]</bitRange>
                </field>
                <field>
                  <name>Level</name>
                  <description>Cache level. Cache level to operate on, minus 1</description>
                  <bitRange>[3:1]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache line Clean and Invalidate by Address to PoC</name>
              <displayName>DCCIMVAC</displayName>
              <description>Clean and invalidate data or unified cache line by address to PoC</description>
              <addressOffset>0x20</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>ADDRESS</name>
                  <description>Address. Writing to this field initiates the maintenance operation for the address written</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Data Cache line Clean and Invalidate by Set/Way</name>
              <displayName>DCCISW</displayName>
              <description>Clean and invalidate data or unified cache line by set/way</description>
              <addressOffset>0x24</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>SetWay</name>
                  <description>Cache set/way. Contains two fields: Way, bits[31:32-A], the number of the way to operate on</description>
                  <bitRange>[31:4]</bitRange>
                </field>
                <field>
                  <name>Level</name>
                  <description>Cache level. Cache level to operate on, minus 1</description>
                  <bitRange>[3:1]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Branch Predictor Invalidate All</name>
              <displayName>BPIALL</displayName>
              <description>Invalidate all entries from branch predictors</description>
              <addressOffset>0x28</addressOffset>
              <access>write-only</access>
              <fields>
                <field>
                  <name>Ignored</name>
                  <description>Ignored. The value written to this field is ignored</description>
                  <bitRange>[31:0]</bitRange>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
        <peripheral>
          <name>TPIU</name>
          <description>Trace Port Interface Unit</description>
          <groupName></groupName>
          <baseAddress>0xE0040000</baseAddress>
          <addressBlock>
            <offset>0x0</offset>
            <size>0x1000</size>
            <usage>registers</usage>
          </addressBlock>
          <registers>
            <register>
              <name>Supported Parallel Port Sizes Register</name>
              <displayName>TPIU_SSPSR</displayName>
              <description>Indicates the supported parallel trace port sizes</description>
              <addressOffset>0x0</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>SWIDTH[31:0]</name>
                  <description>SWIDTH[N] represents a trace port width of (N+1)</description>
                  <bitRange>[31:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Width (N+1) not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Width (N+1) supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Current Parallel Port Size Register</name>
              <displayName>TPIU_CSPSR</displayName>
              <description>Defines the width of the current parallel trace port</description>
              <addressOffset>0x4</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>CWIDTH[31:0]</name>
                  <description>CWIDTH[N] represents a trace port width of (N+1)</description>
                  <bitRange>[31:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Width (N+1) is not the current trace port width</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Width (N+1) is the current trace port width</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>Asynchronous Clock Prescaler Register</name>
              <displayName>TPIU_ACPR</displayName>
              <description>Defines a prescaler value for the baud rate of the Serial Wire Output (SWO)</description>
              <addressOffset>0x10</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>SWOSCALER</name>
                  <description>SWO baud rate prescaler value</description>
                  <bitRange>[15:0]</bitRange>
                </field>
              </fields>
            </register>
            <register>
              <name>Selected Pin Protocol Register</name>
              <displayName>TPIU_SPPR</displayName>
              <description>Selects the protocol used for trace output</description>
              <addressOffset>0xF0</addressOffset>
              <access>read-write</access>
              <fields>
                <field>
                  <name>TXMODE</name>
                  <description>Specifies the protocol for trace output from the TPIU</description>
                  <bitRange>[1:0]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Parallel trace port mode</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Asynchronous SWO, using Manchester encoding</description>
                      <value>1</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Asynchronous SWO, using NRZ encoding</description>
                      <value>10</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
              </fields>
            </register>
            <register>
              <name>TPIU Type register</name>
              <displayName>TPIU_TYPE</displayName>
              <description>Defines the SWO options supported by the TPIU</description>
              <addressOffset>0xF00</addressOffset>
              <access>read-only</access>
              <fields>
                <field>
                  <name>NRZVALID</name>
                  <description>Indicates support for SWO using UART/NRZ encoding</description>
                  <bitRange>[11:11]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>MANCVALID</name>
                  <description>Indicates support for SWO using Manchester encoding</description>
                  <bitRange>[10:10]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>PTINVALID</name>
                  <description>Indicates support for parallel trace port operation</description>
                  <bitRange>[9:9]</bitRange>
                  <enumeratedValues>
                    <enumeratedValue>
                      <description>Supported</description>
                      <value>0</value>
                    </enumeratedValue>
                    <enumeratedValue>
                      <description>Not supported</description>
                      <value>1</value>
                    </enumeratedValue>
                  </enumeratedValues>
                </field>
                <field>
                  <name>FIFOSZ</name>
                  <description>Indicates the minimum implemented size of the TPIU output FIFO for trace data</description>
                  <bitRange>[8:6]</bitRange>
                </field>
              </fields>
            </register>
          </registers>
        </peripheral>
      </peripherals>
    </Group>
  </Groups>
</Cpu>
