<?xml version="1.0" encoding="utf-8" standalone="no"?>
<device schemaVersion="1.3.5" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_3_5.xsd">
  <cpu>
    <name>CM7</name>
    <displayName>Cortex-M7 (with FPU)</displayName>
    <groups>
      <group>
        <name>Core</name>
        <description>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>25</Index>
            <fields>
              <field>
                <name>BasePri</name>
                <description>Priority mask bits</description>
                <bitOffset>8</bitOffset>
                <bitWidth>8</bitWidth>
              </field>
            </fields>
          </register>
          <register>
            <name>FaultMask</name>
            <description>Fault mask register</description>
            <Index>26</Index>
            <fields>
              <field>
                <name>FaultMask</name>
                <description>Prevent the activation of all exceptions except for NMI</description>
                <bitOffset>16</bitOffset>
                <bitWidth>1</bitWidth>
              </field>
            </fields>
          </register>
          <register>
            <name>Control</name>
            <description>Control register</description>
            <Index>27</Index>
            <fields>
              <field>
                <name>FPCA</name>
                <description>Context floating-point active</description>
                <bitOffset>26</bitOffset>
                <bitWidth>1</bitWidth>
              </field>
              <field>
                <name>SPSEL</name>
                <description>Active stack pointer</description>
                <bitOffset>25</bitOffset>
                <bitWidth>1</bitWidth>
              </field>
              <field>
                <name>nPRIV</name>
                <description>Thread mode privilege level</description>
                <bitOffset>24</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>FPU (Double)</name>
        <description>FPU Registers (double-precision)</description>
        <size>64</size>
        <access>RW</access>
        <type>double</type>
        <registers>
          <register>
            <name>FPSCR</name>
            <type>unsigned int</type>
            <description>Floating point status and control register</description>
            <size>32</size>
            <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>D0</name>
            <description>Floating point register 0</description>
            <Index1>33</Index1>
            <Index2>34</Index2>
          </register>
          <register>
            <name>D1</name>
            <description>Floating point register 1</description>
            <Index1>35</Index1>
            <Index2>36</Index2>
          </register>
          <register>
            <name>D2</name>
            <description>Floating point register 2</description>
            <Index1>37</Index1>
            <Index2>38</Index2>
          </register>
          <register>
            <name>D3</name>
            <description>Floating point register 3</description>
            <Index1>39</Index1>
            <Index2>40</Index2>
          </register>
          <register>
            <name>D4</name>
            <description>Floating point register 4</description>
            <Index1>41</Index1>
            <Index2>42</Index2>
          </register>
          <register>
            <name>D5</name>
            <description>Floating point register 5</description>
            <Index1>43</Index1>
            <Index2>44</Index2>
          </register>
          <register>
            <name>D6</name>
            <description>Floating point register 6</description>
            <Index1>45</Index1>
            <Index2>46</Index2>
          </register>
          <register>
            <name>D7</name>
            <description>Floating point register 7</description>
            <Index1>47</Index1>
            <Index2>48</Index2>
          </register>
          <register>
            <name>D8</name>
            <description>Floating point register 8</description>
            <Index1>49</Index1>
            <Index2>50</Index2>
          </register>
          <register>
            <name>D9</name>
            <description>Floating point register 9</description>
            <Index1>51</Index1>
            <Index2>52</Index2>
          </register>
          <register>
            <name>D10</name>
            <description>Floating point register 10</description>
            <Index1>53</Index1>
            <Index2>54</Index2>
          </register>
          <register>
            <name>D11</name>
            <description>Floating point register 11</description>
            <Index1>55</Index1>
            <Index2>56</Index2>
          </register>
          <register>
            <name>D12</name>
            <description>Floating point register 12</description>
            <Index1>57</Index1>
            <Index2>58</Index2>
          </register>
          <register>
            <name>D13</name>
            <description>Floating point register 13</description>
            <Index1>59</Index1>
            <Index2>60</Index2>
          </register>
          <register>
            <name>D14</name>
            <description>Floating point register 14</description>
            <Index1>61</Index1>
            <Index2>62</Index2>
          </register>
          <register>
            <name>D15</name>
            <description>Floating point register 15</description>
            <Index1>63</Index1>
            <Index2>64</Index2>
          </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>2</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Generate a timestamp after every packet, if the output FIFO is empty</description>
                        <value>3</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>2</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Divide by 64</description>
                        <value>3</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>2</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Synchronization counter tap at CYCCNT[28]</description>
                        <value>3</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>2</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()</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</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: Defines the behavior when the COMP address is matched</description>
                    <bitRange>[31:30]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Remap to remap address, see FlashPatch Remap register</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>2</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Breakpoint on both instructions at '000':COMP:'00' and '000':COMP:'10'</description>
                        <value>3</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>COMP</name>
                    <description>Bits[28:2] of the address to compare with addresses from the Code memory region. Bits[31:29] of the address for comparison are zero. For a literal address or instruction address remap, bits[1:0] of the comparison are also zero. For an instruction address breakpoint, bits[1:0] of the comparison are encoded by the REPLACE field.</description>
                    <bitRange>[28:2]</bitRange>
                  </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>
                </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</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</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>UsageFault exception enable</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>BusFault exception enable</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>MemManage exception enable</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>SVCall exception pended state</description>
                    <bitRange>[15:15]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>SVCall execption is not pending</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>SVCall execption is pending</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>BUSFAULTPENDED</name>
                    <description>BusFault exception pended state</description>
                    <bitRange>[14:14]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>BusFault execption is not pending</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>BusFault execption is pending</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>MEMFAULTPENDED</name>
                    <description>MemManage exception pended state</description>
                    <bitRange>[13:13]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>MemManage exception is not pending</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>MemManage exception is pending</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>USGFAULTPENDED</name>
                    <description>UsageFault exception pended state</description>
                    <bitRange>[12:12]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>UsageFault exception is not pending</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>UsageFault exception is pending</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>SYSTICKACT</name>
                    <description>SysTick exception active state</description>
                    <bitRange>[11:11]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>SysTick exception is not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>SysTick exception is active</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>PENDSVACT</name>
                    <description>PendSV exception active state</description>
                    <bitRange>[10:10]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>PendSV exception is not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>PendSV exception is active</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>MONITORACT</name>
                    <description>DebugMonitor exception active state</description>
                    <bitRange>[8:8]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>DebugMonitor exception not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>DebugMonitor exception is active</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>SVCALLACT</name>
                    <description>SVCall exception active state</description>
                    <bitRange>[7:7]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>SVCall exception is not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>SVCall exception is active</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>USGFAULTACT</name>
                    <description>UsageFault exception active state</description>
                    <bitRange>[3:3]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>UsageFault exception is not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>UsageFault exception is active</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>BUSFAULTACT</name>
                    <description>BusFault exception active state</description>
                    <bitRange>[1:1]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>BusFault exception is not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>BusFault exception is active</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>MEMFAULTACT</name>
                    <description>MemManage exception active state</description>
                    <bitRange>[0:0]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>MemManage exception is not active</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>MemManage exception 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>Usage Fault Status Register</name>
                <displayName>UFSR</displayName>
                <description>Provides information on UsageFault exceptions</description>
                <addressOffset>0x28</addressOffset>
                <access>read-write</access>
                <fields>
                  <field>
                    <name>DIVBYZERO</name>
                    <description>Divide by zero flag. Indicates whether an integer division by zero error has occurred</description>
                    <bitRange>[25:25]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Error has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>UNALIGNED</name>
                    <description>Unaligned access flag. Indicates whether an unaligned access error has occurred</description>
                    <bitRange>[24:24]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Error has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>NOCP</name>
                    <description>No coprocessor flag. Indicates whether a coprocessor disabled or not present error has occurred</description>
                    <bitRange>[19:19]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Error has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>INVPC</name>
                    <description>Invalid PC flag. Indicates whether an integrity check error has occurred</description>
                    <bitRange>[18:18]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Error has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>INVSTATE</name>
                    <description>Invalid state flag. Indicates whether an EPSR.T or EPSR.IT validity error has occurred</description>
                    <bitRange>[17:17]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Error has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>UNDEFINSTR</name>
                    <description>Undefined instruction flag. Indicates whether an undefined instruction error has occurred</description>
                    <bitRange>[16:16]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Error has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                </fields>
              </register>
              <register>
                <name>Bus Fault Status Register</name>
                <displayName>BFSR</displayName>
                <description>Provides information on BusFault exceptions</description>
                <addressOffset>0x28</addressOffset>
                <access>read-write</access>
                <fields>
                  <field>
                    <name>BFARVALID</name>
                    <description>BFAR valid. Indicates validity of the contents of the BFAR register</description>
                    <bitRange>[15:15]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>BFAR content not valid</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>BFAR content valid</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>LSPERR</name>
                    <description>Lazy state preservation error. Records whether a BusFault occurred during FP lazy state preservation</description>
                    <bitRange>[13:13]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No BusFault occurred during FP lazy state preservation</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>BusFault occurred during FP lazy state preservation</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>STKERR</name>
                    <description>Stack error. Records whether a derived BusFault occurred during exception entry stacking</description>
                    <bitRange>[12:12]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No derived BusFault occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Derived BusFault occurred during exception entry</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>UNSTKERR</name>
                    <description>Unstack error. Records whether a derived BusFault occurred during exception return unstacking</description>
                    <bitRange>[11:11]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No derived BusFault occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Derived BusFault occurred during exception return</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>IMPRECISERR</name>
                    <description>Imprecise error. Records whether an imprecise data access error has occurred</description>
                    <bitRange>[10:10]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No imprecise data access error has occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Imprecise data access error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>PRECISERR</name>
                    <description>Precise error. Records whether a precise data access error has occurred</description>
                    <bitRange>[9:9]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No precise data access error has occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Precise data access error has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>IBUSERR</name>
                    <description>Instruction bus error. Records whether a BusFault on an instruction prefetch has occurred</description>
                    <bitRange>[8:8]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No BusFault on instruction prefetch has occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>A BusFault on an instruction prefetch has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                </fields>
              </register>
              <register>
                <name>MemManage Fault Status Register</name>
                <displayName>MMFSR</displayName>
                <description>Provides information on MemManage exceptions</description>
                <addressOffset>0x28</addressOffset>
                <access>read-write</access>
                <fields>
                  <field>
                    <name>MMARVALID</name>
                    <description>MMFAR valid flag. Indicates validity of the MMFAR register</description>
                    <bitRange>[7:7]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>MMFAR content not valid</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>MMFAR content valid</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>MLSPERR</name>
                    <description>MemManage lazy state preservation error flag. Records whether a MemManage fault occurred during FP lazy state preservation</description>
                    <bitRange>[5:5]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No MemManage occurred during FP lazy state preservation</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>MemManage occurred during FP lazy state preservation</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>MSTKERR</name>
                    <description>MemManage stacking error flag. Records whether a derived MemManage fault occurred during exception entry stacking</description>
                    <bitRange>[4:4]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No derived MemManage occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Derived MemManage occurred during exception entry</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>MUNSTKERR</name>
                    <description>MemManage unstacking error flag. Records whether a derived MemManage fault occurred during exception return unstacking</description>
                    <bitRange>[3:3]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No derived MemManage fault occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Derived MemManage fault occurred during exception return</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>DACCVIOL</name>
                    <description>Data access violation flag. Records whether a data access violation has occurred</description>
                    <bitRange>[1:1]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No MemManage fault on data access has occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>MemManage fault on data access has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>IACCVIOL</name>
                    <description>Instruction access violation. Records whether an instruction related memory access violation has occurred</description>
                    <bitRange>[0:0]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>No MemManage fault on instruction access has occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>MemManage fault on instruction access has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </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 that 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>External event. Indicates whether an external debug request has occurred</description>
                    <bitRange>[4:4]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Debug event has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Debug event has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>VCATCH</name>
                    <description>Vector Catch event. Indicates whether a Vector catch debug event has occurred</description>
                    <bitRange>[3:3]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Debug event has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Debug event has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>DWTTRAP</name>
                    <description>Watchpoint event. Indicates whether a Watchpoint debug event has occurred</description>
                    <bitRange>[2:2]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Debug event has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Debug event has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>BKPT</name>
                    <description>Breakpoint event. Indicates whether a breakpoint debug event has occurred</description>
                    <bitRange>[1:1]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Debug event has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Debug event has occurred</description>
                        <value>1</value>
                      </enumeratedValue>
                    </enumeratedValues>
                  </field>
                  <field>
                    <name>HALTED</name>
                    <description>Halt or step event. Indicates that a Halt request debug event or Step debug event has occurred</description>
                    <bitRange>[0:0]</bitRange>
                    <enumeratedValues>
                      <enumeratedValue>
                        <description>Debug event has not occurred</description>
                        <value>0</value>
                      </enumeratedValue>
                      <enumeratedValue>
                        <description>Debug event has occurred</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>
              </register>
              <register>
                <name>BusFault Address Register</name>
                <displayName>BFAR</displayName>
                <description>Shows the address associated with a precise data access BusFault</description>
                <addressOffset>0x38</addressOffset>
                <access>read-write</access>
              </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>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</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</description>
                    <bitRange>[31:31]</bitRange>
                  </field>
                  <field>
                    <name>WB</name>
                    <description>Indicates whether the cache level supports write-back</description>
                    <bitRange>[30:30]</bitRange>
                  </field>
                  <field>
                    <name>RA</name>
                    <description>Indicates whether the cache level supports read-allocation</description>
                    <bitRange>[29:29]</bitRange>
                  </field>
                  <field>
                    <name>WA</name>
                    <description>Indicates whether the cache level supports write-allocation</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>
              <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</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>
            </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</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</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>2</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>
</device>
