Joachim Krech | c477341 | 2016-02-18 09:17:07 +0100 | [diff] [blame] | 1 | <?xml version="1.0" encoding="utf-8"?>
|
| 2 |
|
| 3 | <!-- File naming: <part/series name>.svd -->
|
| 4 |
|
| 5 | <!--
|
| 6 | Copyright (C) 2012-2014 ARM Limited. All rights reserved.
|
| 7 |
|
| 8 | Purpose: System Viewer Description (SVD) Example (Schema Version 1.1)
|
| 9 | This is a description of a none-existent and incomplete device
|
| 10 | for demonstration purposes only.
|
| 11 |
|
| 12 | Redistribution and use in source and binary forms, with or without
|
| 13 | modification, are permitted provided that the following conditions are met:
|
| 14 | - Redistributions of source code must retain the above copyright
|
| 15 | notice, this list of conditions and the following disclaimer.
|
| 16 | - Redistributions in binary form must reproduce the above copyright
|
| 17 | notice, this list of conditions and the following disclaimer in the
|
| 18 | documentation and/or other materials provided with the distribution.
|
| 19 | - Neither the name of ARM nor the names of its contributors may be used
|
| 20 | to endorse or promote products derived from this software without
|
| 21 | specific prior written permission.
|
| 22 |
|
| 23 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| 24 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| 25 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| 26 | ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
|
| 27 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| 28 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| 29 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| 30 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| 31 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| 32 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| 33 | POSSIBILITY OF SUCH DAMAGE.
|
| 34 | -->
|
| 35 |
|
| 36 | <device schemaVersion="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="CMSIS-SVD.xsd" >
|
| 37 | <vendor>ARM Ltd.</vendor> <!-- device vendor name -->
|
| 38 | <vendorID>ARM</vendorID> <!-- device vendor short name -->
|
| 39 | <name>ARM_Example</name> <!-- name of part-->
|
| 40 | <series>ARMCM3</series> <!-- device series the device belongs to -->
|
| 41 | <version>1.2</version> <!-- version of this description, adding CMSIS-SVD 1.1 tags -->
|
| 42 | <description>ARM 32-bit Cortex-M3 Microcontroller based device, CPU clock up to 80MHz, etc. </description>
|
| 43 | <licenseText> <!-- this license text will appear in header file. \n force line breaks -->
|
| 44 | ARM Limited (ARM) is supplying this software for use with Cortex-M\n
|
| 45 | processor based microcontroller, but can be equally used for other\n
|
| 46 | suitable processor architectures. This file can be freely distributed.\n
|
| 47 | Modifications to this file shall be clearly marked.\n
|
| 48 | \n
|
| 49 | THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED\n
|
| 50 | OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\n
|
| 51 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\n
|
| 52 | ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\n
|
| 53 | CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
| 54 | </licenseText>
|
| 55 | <cpu> <!-- details about the cpu embedded in the device -->
|
| 56 | <name>CM3</name>
|
| 57 | <revision>r1p0</revision>
|
| 58 | <endian>little</endian>
|
| 59 | <mpuPresent>true</mpuPresent>
|
| 60 | <fpuPresent>false</fpuPresent>
|
| 61 | <nvicPrioBits>3</nvicPrioBits>
|
| 62 | <vendorSystickConfig>false</vendorSystickConfig>
|
| 63 | </cpu>
|
| 64 | <addressUnitBits>8</addressUnitBits> <!-- byte addressable memory -->
|
| 65 | <width>32</width> <!-- bus width is 32 bits -->
|
| 66 | <!-- default settings implicitly inherited by subsequent sections -->
|
| 67 | <size>32</size> <!-- this is the default size (number of bits) of all peripherals
|
| 68 | and register that do not define "size" themselves -->
|
| 69 | <access>read-write</access> <!-- default access permission for all subsequent registers -->
|
| 70 | <resetValue>0x00000000</resetValue> <!-- by default all bits of the registers are initialized to 0 on reset -->
|
| 71 | <resetMask>0xFFFFFFFF</resetMask> <!-- by default all 32Bits of the registers are used -->
|
| 72 |
|
| 73 | <peripherals>
|
| 74 | <!-- Timer 0 -->
|
| 75 | <peripheral>
|
| 76 | <name>TIMER0</name>
|
| 77 | <version>1.0</version>
|
| 78 | <description>32 Timer / Counter, counting up or down from different sources</description>
|
| 79 | <groupName>TIMER</groupName>
|
| 80 | <baseAddress>0x40010000</baseAddress>
|
| 81 | <size>32</size>
|
| 82 | <access>read-write</access>
|
| 83 |
|
| 84 | <addressBlock>
|
| 85 | <offset>0</offset>
|
| 86 | <size>0x100</size>
|
| 87 | <usage>registers</usage>
|
| 88 | </addressBlock>
|
| 89 |
|
| 90 | <interrupt>
|
| 91 | <name>TIMER0</name>
|
| 92 | <value>0</value>
|
| 93 | </interrupt>
|
| 94 |
|
| 95 | <registers>
|
| 96 | <!-- CR: Control Register -->
|
| 97 | <register>
|
| 98 | <name>CR</name>
|
| 99 | <description>Control Register</description>
|
| 100 | <addressOffset>0x00</addressOffset>
|
| 101 | <size>32</size>
|
| 102 | <access>read-write</access>
|
| 103 | <resetValue>0x00000000</resetValue>
|
| 104 | <resetMask>0x1337F7F</resetMask>
|
| 105 |
|
| 106 | <fields>
|
| 107 | <!-- EN: Enable -->
|
| 108 | <field>
|
| 109 | <name>EN</name>
|
| 110 | <description>Enable</description>
|
| 111 | <bitRange>[0:0]</bitRange>
|
| 112 | <access>read-write</access>
|
| 113 | <enumeratedValues>
|
| 114 | <enumeratedValue>
|
| 115 | <name>Disable</name>
|
| 116 | <description>Timer is disabled and does not operate</description>
|
| 117 | <value>0</value>
|
| 118 | </enumeratedValue>
|
| 119 | <enumeratedValue>
|
| 120 | <name>Enable</name>
|
| 121 | <description>Timer is enabled and can operate</description>
|
| 122 | <value>1</value>
|
| 123 | </enumeratedValue>
|
| 124 | </enumeratedValues>
|
| 125 | </field>
|
| 126 |
|
| 127 | <!-- RST: Reset -->
|
| 128 | <field>
|
| 129 | <name>RST</name>
|
| 130 | <description>Reset Timer</description>
|
| 131 | <bitRange>[1:1]</bitRange>
|
| 132 | <access>write-only</access>
|
| 133 | <enumeratedValues>
|
| 134 | <enumeratedValue>
|
| 135 | <name>No_Action</name>
|
| 136 | <description>Write as ZERO if necessary</description>
|
| 137 | <value>0</value>
|
| 138 | </enumeratedValue>
|
| 139 | <enumeratedValue>
|
| 140 | <name>Reset_Timer</name>
|
| 141 | <description>Reset the Timer</description>
|
| 142 | <value>1</value>
|
| 143 | </enumeratedValue>
|
| 144 | </enumeratedValues>
|
| 145 | </field>
|
| 146 |
|
| 147 | <!-- CNT: Counting Direction -->
|
| 148 | <field>
|
| 149 | <name>CNT</name>
|
| 150 | <description>Counting direction</description>
|
| 151 | <bitRange>[3:2]</bitRange>
|
| 152 | <access>read-write</access>
|
| 153 | <enumeratedValues>
|
| 154 | <enumeratedValue>
|
| 155 | <name>Count_UP</name>
|
| 156 | <description>Timer Counts UO and wraps, if no STOP condition is set</description>
|
| 157 | <value>0</value>
|
| 158 | </enumeratedValue>
|
| 159 | <enumeratedValue>
|
| 160 | <name>Count_DOWN</name>
|
| 161 | <description>Timer Counts DOWN and wraps, if no STOP condition is set</description>
|
| 162 | <value>1</value>
|
| 163 | </enumeratedValue>
|
| 164 | <enumeratedValue>
|
| 165 | <name>Toggle</name>
|
| 166 | <description>Timer Counts up to MAX, then DOWN to ZERO, if no STOP condition is set</description>
|
| 167 | <value>2</value>
|
| 168 | </enumeratedValue>
|
| 169 | </enumeratedValues>
|
| 170 | </field>
|
| 171 |
|
| 172 | <!-- MODE: Operation Mode -->
|
| 173 | <field>
|
| 174 | <name>MODE</name>
|
| 175 | <description>Operation Mode</description>
|
| 176 | <bitRange>[6:4]</bitRange>
|
| 177 | <access>read-write</access>
|
| 178 | <enumeratedValues>
|
| 179 | <enumeratedValue>
|
| 180 | <name>Continous</name>
|
| 181 | <description>Timer runs continously</description>
|
| 182 | <value>0</value>
|
| 183 | </enumeratedValue>
|
| 184 | <enumeratedValue>
|
| 185 | <name>Single_ZERO_MAX</name>
|
| 186 | <description>Timer counts to 0x00 or 0xFFFFFFFF (depending on CNT) and stops</description>
|
| 187 | <value>1</value>
|
| 188 | </enumeratedValue>
|
| 189 | <enumeratedValue>
|
| 190 | <name>Single_MATCH</name>
|
| 191 | <description>Timer counts to the Value of MATCH Register and stops</description>
|
| 192 | <value>2</value>
|
| 193 | </enumeratedValue>
|
| 194 | <enumeratedValue>
|
| 195 | <name>Reload_ZERO_MAX</name>
|
| 196 | <description>Timer counts to 0x00 or 0xFFFFFFFF (depending on CNT), loads the RELOAD Value and continues</description>
|
| 197 | <value>3</value>
|
| 198 | </enumeratedValue>
|
| 199 | <enumeratedValue>
|
| 200 | <name>Reload_MATCH</name>
|
| 201 | <description>Timer counts to the Value of MATCH Register, loads the RELOAD Value and continues</description>
|
| 202 | <value>4</value>
|
| 203 | </enumeratedValue>
|
| 204 | </enumeratedValues>
|
| 205 | </field>
|
| 206 |
|
| 207 | <!-- PSC: Use Prescaler -->
|
| 208 | <field>
|
| 209 | <name>PSC</name>
|
| 210 | <description>Use Prescaler</description>
|
| 211 | <bitRange>[7:7]</bitRange>
|
| 212 | <access>read-write</access>
|
| 213 | <enumeratedValues>
|
| 214 | <enumeratedValue>
|
| 215 | <name>Disabled</name>
|
| 216 | <description>Prescaler is not used</description>
|
| 217 | <value>0</value>
|
| 218 | </enumeratedValue>
|
| 219 | <enumeratedValue>
|
| 220 | <name>Enabled</name>
|
| 221 | <description>Prescaler is used as divider</description>
|
| 222 | <value>1</value>
|
| 223 | </enumeratedValue>
|
| 224 | </enumeratedValues>
|
| 225 | </field>
|
| 226 |
|
| 227 | <!-- CNTSRC: Timer / Counter Soruce Divider -->
|
| 228 | <field>
|
| 229 | <name>CNTSRC</name>
|
| 230 | <description>Timer / Counter Source Divider</description>
|
| 231 | <bitRange>[11:8]</bitRange>
|
| 232 | <access>read-write</access>
|
| 233 | <enumeratedValues>
|
| 234 | <enumeratedValue>
|
| 235 | <name>CAP_SRC</name>
|
| 236 | <description>Capture Source is used directly</description>
|
| 237 | <value>0</value>
|
| 238 | </enumeratedValue>
|
| 239 | <enumeratedValue>
|
| 240 | <name>CAP_SRC_div2</name>
|
| 241 | <description>Capture Source is divided by 2</description>
|
| 242 | <value>1</value>
|
| 243 | </enumeratedValue>
|
| 244 | <enumeratedValue>
|
| 245 | <name>CAP_SRC_div4</name>
|
| 246 | <description>Capture Source is divided by 4</description>
|
| 247 | <value>2</value>
|
| 248 | </enumeratedValue>
|
| 249 | <enumeratedValue>
|
| 250 | <name>CAP_SRC_div8</name>
|
| 251 | <description>Capture Source is divided by 8</description>
|
| 252 | <value>3</value>
|
| 253 | </enumeratedValue>
|
| 254 | <enumeratedValue>
|
| 255 | <name>CAP_SRC_div16</name>
|
| 256 | <description>Capture Source is divided by 16</description>
|
| 257 | <value>4</value>
|
| 258 | </enumeratedValue>
|
| 259 | <enumeratedValue>
|
| 260 | <name>CAP_SRC_div32</name>
|
| 261 | <description>Capture Source is divided by 32</description>
|
| 262 | <value>5</value>
|
| 263 | </enumeratedValue>
|
| 264 | <enumeratedValue>
|
| 265 | <name>CAP_SRC_div64</name>
|
| 266 | <description>Capture Source is divided by 64</description>
|
| 267 | <value>6</value>
|
| 268 | </enumeratedValue>
|
| 269 | <enumeratedValue>
|
| 270 | <name>CAP_SRC_div128</name>
|
| 271 | <description>Capture Source is divided by 128</description>
|
| 272 | <value>7</value>
|
| 273 | </enumeratedValue>
|
| 274 | <enumeratedValue>
|
| 275 | <name>CAP_SRC_div256</name>
|
| 276 | <description>Capture Source is divided by 256</description>
|
| 277 | <value>8</value>
|
| 278 | </enumeratedValue>
|
| 279 | </enumeratedValues>
|
| 280 | </field>
|
| 281 |
|
| 282 | <!-- CAPSRC: Timer / COunter Capture Source -->
|
| 283 | <field>
|
| 284 | <name>CAPSRC</name>
|
| 285 | <description>Timer / Counter Capture Source</description>
|
| 286 | <bitRange>[15:12]</bitRange>
|
| 287 | <access>read-write</access>
|
| 288 | <enumeratedValues>
|
| 289 | <enumeratedValue>
|
| 290 | <name>CClk</name>
|
| 291 | <description>Core Clock</description>
|
| 292 | <value>0</value>
|
| 293 | </enumeratedValue>
|
| 294 | <enumeratedValue>
|
| 295 | <name>GPIOA_0</name>
|
| 296 | <description>GPIO A, PIN 0</description>
|
| 297 | <value>1</value>
|
| 298 | </enumeratedValue>
|
| 299 | <enumeratedValue>
|
| 300 | <name>GPIOA_1</name>
|
| 301 | <description>GPIO A, PIN 1</description>
|
| 302 | <value>2</value>
|
| 303 | </enumeratedValue>
|
| 304 | <enumeratedValue>
|
| 305 | <name>GPIOA_2</name>
|
| 306 | <description>GPIO A, PIN 2</description>
|
| 307 | <value>3</value>
|
| 308 | </enumeratedValue>
|
| 309 | <enumeratedValue>
|
| 310 | <name>GPIOA_3</name>
|
| 311 | <description>GPIO A, PIN 3</description>
|
| 312 | <value>4</value>
|
| 313 | </enumeratedValue>
|
| 314 | <enumeratedValue>
|
| 315 | <name>GPIOA_4</name>
|
| 316 | <description>GPIO A, PIN 4</description>
|
| 317 | <value>5</value>
|
| 318 | </enumeratedValue>
|
| 319 | <enumeratedValue>
|
| 320 | <name>GPIOA_5</name>
|
| 321 | <description>GPIO A, PIN 5</description>
|
| 322 | <value>6</value>
|
| 323 | </enumeratedValue>
|
| 324 | <enumeratedValue>
|
| 325 | <name>GPIOA_6</name>
|
| 326 | <description>GPIO A, PIN 6</description>
|
| 327 | <value>7</value>
|
| 328 | </enumeratedValue>
|
| 329 | <enumeratedValue>
|
| 330 | <name>GPIOA_7</name>
|
| 331 | <description>GPIO A, PIN 7</description>
|
| 332 | <value>8</value>
|
| 333 | </enumeratedValue>
|
| 334 | <enumeratedValue>
|
| 335 | <name>GPIOB_0</name>
|
| 336 | <description>GPIO B, PIN 0</description>
|
| 337 | <value>9</value>
|
| 338 | </enumeratedValue>
|
| 339 | <enumeratedValue>
|
| 340 | <name>GPIOB_1</name>
|
| 341 | <description>GPIO B, PIN 1</description>
|
| 342 | <value>10</value>
|
| 343 | </enumeratedValue>
|
| 344 | <enumeratedValue>
|
| 345 | <name>GPIOB_2</name>
|
| 346 | <description>GPIO B, PIN 2</description>
|
| 347 | <value>11</value>
|
| 348 | </enumeratedValue>
|
| 349 | <enumeratedValue>
|
| 350 | <name>GPIOB_3</name>
|
| 351 | <description>GPIO B, PIN 3</description>
|
| 352 | <value>12</value>
|
| 353 | </enumeratedValue>
|
| 354 | <enumeratedValue>
|
| 355 | <name>GPIOC_0</name>
|
| 356 | <description>GPIO C, PIN 0</description>
|
| 357 | <value>13</value>
|
| 358 | </enumeratedValue>
|
| 359 | <enumeratedValue>
|
| 360 | <name>GPIOC_5</name>
|
| 361 | <description>GPIO C, PIN 1</description>
|
| 362 | <value>14</value>
|
| 363 | </enumeratedValue>
|
| 364 | <enumeratedValue>
|
| 365 | <name>GPIOC_6</name>
|
| 366 | <description>GPIO C, PIN 2</description>
|
| 367 | <value>15</value>
|
| 368 | </enumeratedValue>
|
| 369 | </enumeratedValues>
|
| 370 | </field>
|
| 371 |
|
| 372 | <!-- CAPEDGE: Capture Edge -->
|
| 373 | <field>
|
| 374 | <name>CAPEDGE</name>
|
| 375 | <description>Capture Edge, select which Edge should result in a counter increment or decrement</description>
|
| 376 | <bitRange>[17:16]</bitRange>
|
| 377 | <access>read-write</access>
|
| 378 | <enumeratedValues>
|
| 379 | <enumeratedValue>
|
| 380 | <name>RISING</name>
|
| 381 | <description>Only rising edges result in a counter increment or decrement</description>
|
| 382 | <value>0</value>
|
| 383 | </enumeratedValue>
|
| 384 | <enumeratedValue>
|
| 385 | <name>FALLING</name>
|
| 386 | <description>Only falling edges result in a counter increment or decrement</description>
|
| 387 | <value>1</value>
|
| 388 | </enumeratedValue>
|
| 389 | <enumeratedValue>
|
| 390 | <name>BOTH</name>
|
| 391 | <description>Rising and falling edges result in a counter increment or decrement</description>
|
| 392 | <value>2</value>
|
| 393 | </enumeratedValue>
|
| 394 | </enumeratedValues>
|
| 395 | </field>
|
| 396 |
|
| 397 | <!-- TRGEXT: Triggers an other Peripheral -->
|
| 398 | <field>
|
| 399 | <name>TRGEXT</name>
|
| 400 | <description>Triggers an other Peripheral</description>
|
| 401 | <bitRange>[21:20]</bitRange>
|
| 402 | <access>read-write</access>
|
| 403 | <enumeratedValues>
|
| 404 | <enumeratedValue>
|
| 405 | <name>NONE</name>
|
| 406 | <description>No Trigger is emitted</description>
|
| 407 | <value>0</value>
|
| 408 | </enumeratedValue>
|
| 409 | <enumeratedValue>
|
| 410 | <name>DMA1</name>
|
| 411 | <description>DMA Controller 1 is triggered, dependant on MODE</description>
|
| 412 | <value>1</value>
|
| 413 | </enumeratedValue>
|
| 414 | <enumeratedValue>
|
| 415 | <name>DMA2</name>
|
| 416 | <description>DMA Controller 2 is triggered, dependant on MODE</description>
|
| 417 | <value>2</value>
|
| 418 | </enumeratedValue>
|
| 419 | <enumeratedValue>
|
| 420 | <name>UART</name>
|
| 421 | <description>UART is triggered, dependant on MODE</description>
|
| 422 | <value>3</value>
|
| 423 | </enumeratedValue>
|
| 424 | </enumeratedValues>
|
| 425 | </field>
|
| 426 |
|
| 427 | <!-- Reload: Selects Reload Register n -->
|
| 428 | <field>
|
| 429 | <name>RELOAD</name>
|
| 430 | <description>Select RELOAD Register n to reload Timer on condition</description>
|
| 431 | <bitRange>[25:24]</bitRange>
|
| 432 | <access>read-write</access>
|
| 433 | <enumeratedValues>
|
| 434 | <enumeratedValue>
|
| 435 | <name>RELOAD0</name>
|
| 436 | <description>Selects Reload Register number 0</description>
|
| 437 | <value>0</value>
|
| 438 | </enumeratedValue>
|
| 439 | <enumeratedValue>
|
| 440 | <name>RELOAD1</name>
|
| 441 | <description>Selects Reload Register number 1</description>
|
| 442 | <value>1</value>
|
| 443 | </enumeratedValue>
|
| 444 | <enumeratedValue>
|
| 445 | <name>RELOAD2</name>
|
| 446 | <description>Selects Reload Register number 2</description>
|
| 447 | <value>2</value>
|
| 448 | </enumeratedValue>
|
| 449 | <enumeratedValue>
|
| 450 | <name>RELOAD3</name>
|
| 451 | <description>Selects Reload Register number 3</description>
|
| 452 | <value>3</value>
|
| 453 | </enumeratedValue>
|
| 454 | </enumeratedValues>
|
| 455 | </field>
|
| 456 |
|
| 457 | <!-- IDR: Inc or dec Reload Register Selection -->
|
| 458 | <field>
|
| 459 | <name>IDR</name>
|
| 460 | <description>Selects, if Reload Register number is incremented, decremented or not modified</description>
|
| 461 | <bitRange>[27:26]</bitRange>
|
| 462 | <access>read-write</access>
|
| 463 | <enumeratedValues>
|
| 464 | <enumeratedValue>
|
| 465 | <name>KEEP</name>
|
| 466 | <description>Reload Register number does not change automatically</description>
|
| 467 | <value>0</value>
|
| 468 | </enumeratedValue>
|
| 469 | <enumeratedValue>
|
| 470 | <name>INCREMENT</name>
|
| 471 | <description>Reload Register number is incremented on each match</description>
|
| 472 | <value>1</value>
|
| 473 | </enumeratedValue>
|
| 474 | <enumeratedValue>
|
| 475 | <name>DECREMENT</name>
|
| 476 | <description>Reload Register number is decremented on each match</description>
|
| 477 | <value>2</value>
|
| 478 | </enumeratedValue>
|
| 479 | </enumeratedValues>
|
| 480 | </field>
|
| 481 |
|
| 482 | <!-- START: Starts / Stops the Timer/Counter -->
|
| 483 | <field>
|
| 484 | <name>S</name>
|
| 485 | <description>Starts and Stops the Timer / Counter</description>
|
| 486 | <bitRange>[31:31]</bitRange>
|
| 487 | <access>read-write</access>
|
| 488 | <enumeratedValues>
|
| 489 | <enumeratedValue>
|
| 490 | <name>STOP</name>
|
| 491 | <description>Timer / Counter is stopped</description>
|
| 492 | <value>0</value>
|
| 493 | </enumeratedValue>
|
| 494 | <enumeratedValue>
|
| 495 | <name>START</name>
|
| 496 | <description>Timer / Counter is started</description>
|
| 497 | <value>1</value>
|
| 498 | </enumeratedValue>
|
| 499 | </enumeratedValues>
|
| 500 | </field>
|
| 501 | </fields>
|
| 502 | </register>
|
| 503 |
|
| 504 | <!-- SR: Status Register -->
|
| 505 | <register>
|
| 506 | <name>SR</name>
|
| 507 | <description>Status Register</description>
|
| 508 | <addressOffset>0x04</addressOffset>
|
| 509 | <size>16</size>
|
| 510 | <access>read-write</access>
|
| 511 | <resetValue>0x00000000</resetValue>
|
| 512 | <resetMask>0xD701</resetMask>
|
| 513 |
|
| 514 | <fields>
|
| 515 | <!-- RUN: Shows if Timer is running -->
|
| 516 | <field>
|
| 517 | <name>RUN</name>
|
| 518 | <description>Shows if Timer is running or not</description>
|
| 519 | <bitRange>[0:0]</bitRange>
|
| 520 | <access>read-only</access>
|
| 521 | <enumeratedValues>
|
| 522 | <enumeratedValue>
|
| 523 | <name>Stopped</name>
|
| 524 | <description>Timer is not running</description>
|
| 525 | <value>0</value>
|
| 526 | </enumeratedValue>
|
| 527 | <enumeratedValue>
|
| 528 | <name>Running</name>
|
| 529 | <description>Timer is running</description>
|
| 530 | <value>1</value>
|
| 531 | </enumeratedValue>
|
| 532 | </enumeratedValues>
|
| 533 | </field>
|
| 534 |
|
| 535 | <!-- MATCH: Shows if a Match was hit -->
|
| 536 | <field>
|
| 537 | <name>MATCH</name>
|
| 538 | <description>Shows if the MATCH was hit</description>
|
| 539 | <bitRange>[8:8]</bitRange>
|
| 540 | <access>read-write</access>
|
| 541 | <enumeratedValues>
|
| 542 | <enumeratedValue>
|
| 543 | <name>No_Match</name>
|
| 544 | <description>The MATCH condition was not hit</description>
|
| 545 | <value>0</value>
|
| 546 | </enumeratedValue>
|
| 547 | <enumeratedValue>
|
| 548 | <name>Match_Hit</name>
|
| 549 | <description>The MATCH condition was hit</description>
|
| 550 | <value>1</value>
|
| 551 | </enumeratedValue>
|
| 552 | </enumeratedValues>
|
| 553 | </field>
|
| 554 |
|
| 555 | <!-- UN: Shows if an underflow occured -->
|
| 556 | <field>
|
| 557 | <name>UN</name>
|
| 558 | <description>Shows if an underflow occured. This flag is sticky</description>
|
| 559 | <bitRange>[9:9]</bitRange>
|
| 560 | <access>read-write</access>
|
| 561 | <enumeratedValues>
|
| 562 | <enumeratedValue>
|
| 563 | <name>No_Underflow</name>
|
| 564 | <description>No underflow occured since last clear</description>
|
| 565 | <value>0</value>
|
| 566 | </enumeratedValue>
|
| 567 | <enumeratedValue>
|
| 568 | <name>Underflow</name>
|
| 569 | <description>A minimum of one underflow occured since last clear</description>
|
| 570 | <value>1</value>
|
| 571 | </enumeratedValue>
|
| 572 | </enumeratedValues>
|
| 573 | </field>
|
| 574 |
|
| 575 | <!-- OV: Shows if an overflow occured -->
|
| 576 | <field>
|
| 577 | <name>OV</name>
|
| 578 | <description>Shows if an overflow occured. This flag is sticky</description>
|
| 579 | <bitRange>[10:10]</bitRange>
|
| 580 | <access>read-write</access>
|
| 581 | <enumeratedValues>
|
| 582 | <enumeratedValue>
|
| 583 | <name>No_Overflow</name>
|
| 584 | <description>No overflow occured since last clear</description>
|
| 585 | <value>0</value>
|
| 586 | </enumeratedValue>
|
| 587 | <enumeratedValue>
|
| 588 | <name>Overflow_occured</name>
|
| 589 | <description>A minimum of one overflow occured since last clear</description>
|
| 590 | <value>1</value>
|
| 591 | </enumeratedValue>
|
| 592 | </enumeratedValues>
|
| 593 | </field>
|
| 594 |
|
| 595 | <!-- RST: Shows if Timer is in RESET state -->
|
| 596 | <field>
|
| 597 | <name>RST</name>
|
| 598 | <description>Shows if Timer is in RESET state</description>
|
| 599 | <bitRange>[12:12]</bitRange>
|
| 600 | <access>read-only</access>
|
| 601 | <enumeratedValues>
|
| 602 | <enumeratedValue>
|
| 603 | <name>Ready</name>
|
| 604 | <description>Timer is not in RESET state and can operate</description>
|
| 605 | <value>0</value>
|
| 606 | </enumeratedValue>
|
| 607 | <enumeratedValue>
|
| 608 | <name>In_Reset</name>
|
| 609 | <description>Timer is in RESET state and can not operate</description>
|
| 610 | <value>1</value>
|
| 611 | </enumeratedValue>
|
| 612 | </enumeratedValues>
|
| 613 | </field>
|
| 614 |
|
| 615 | <!-- RELOAD: Shows the currently active Reload Register -->
|
| 616 | <field>
|
| 617 | <name>RELOAD</name>
|
| 618 | <description>Shows the currently active RELOAD Register</description>
|
| 619 | <bitRange>[15:14]</bitRange>
|
| 620 | <access>read-only</access>
|
| 621 | <enumeratedValues>
|
| 622 | <enumeratedValue>
|
| 623 | <name>RELOAD0</name>
|
| 624 | <description>Reload Register number 0 is active</description>
|
| 625 | <value>0</value>
|
| 626 | </enumeratedValue>
|
| 627 | <enumeratedValue>
|
| 628 | <name>RELOAD1</name>
|
| 629 | <description>Reload Register number 1 is active</description>
|
| 630 | <value>1</value>
|
| 631 | </enumeratedValue>
|
| 632 | <enumeratedValue>
|
| 633 | <name>RELOAD2</name>
|
| 634 | <description>Reload Register number 2 is active</description>
|
| 635 | <value>2</value>
|
| 636 | </enumeratedValue>
|
| 637 | <enumeratedValue>
|
| 638 | <name>RELOAD3</name>
|
| 639 | <description>Reload Register number 3 is active</description>
|
| 640 | <value>3</value>
|
| 641 | </enumeratedValue>
|
| 642 | </enumeratedValues>
|
| 643 | </field>
|
| 644 | </fields>
|
| 645 | </register>
|
| 646 |
|
| 647 | <!-- INT: Interrupt Register -->
|
| 648 | <register>
|
| 649 | <name>INT</name>
|
| 650 | <description>Interrupt Register</description>
|
| 651 | <addressOffset>0x10</addressOffset>
|
| 652 | <size>16</size>
|
| 653 | <access>read-write</access>
|
| 654 | <resetValue>0x00000000</resetValue>
|
| 655 | <resetMask>0x0771</resetMask>
|
| 656 |
|
| 657 | <fields>
|
| 658 | <!-- EN: Interrupt Enable -->
|
| 659 | <field>
|
| 660 | <name>EN</name>
|
| 661 | <description>Interrupt Enable</description>
|
| 662 | <bitRange>[0:0]</bitRange>
|
| 663 | <access>read-write</access>
|
| 664 | <enumeratedValues>
|
| 665 | <enumeratedValue>
|
| 666 | <name>Disabled</name>
|
| 667 | <description>Timer does not generate Interrupts</description>
|
| 668 | <value>0</value>
|
| 669 | </enumeratedValue>
|
| 670 | <enumeratedValue>
|
| 671 | <name>Enable</name>
|
| 672 | <description>Timer triggers the TIMERn Interrupt</description>
|
| 673 | <value>1</value>
|
| 674 | </enumeratedValue>
|
| 675 | </enumeratedValues>
|
| 676 | </field>
|
| 677 |
|
| 678 | <!-- MODE: Interrupt Mode -->
|
| 679 | <field>
|
| 680 | <name>MODE</name>
|
| 681 | <description>Interrupt Mode, selects on which condition the Timer should generate an Interrupt</description>
|
| 682 | <bitRange>[6:4]</bitRange>
|
| 683 | <access>read-write</access>
|
| 684 | <enumeratedValues>
|
| 685 | <enumeratedValue>
|
| 686 | <name>Match</name>
|
| 687 | <description>Timer generates an Interrupt when the MATCH condition is hit</description>
|
| 688 | <value>0</value>
|
| 689 | </enumeratedValue>
|
| 690 | <enumeratedValue>
|
| 691 | <name>Underflow</name>
|
| 692 | <description>Timer generates an Interrupt when it underflows</description>
|
| 693 | <value>1</value>
|
| 694 | </enumeratedValue>
|
| 695 | <enumeratedValue>
|
| 696 | <name>Overflow</name>
|
| 697 | <description>Timer generates an Interrupt when it overflows</description>
|
| 698 | <value>2</value>
|
| 699 | </enumeratedValue>
|
| 700 | </enumeratedValues>
|
| 701 | </field>
|
| 702 | </fields>
|
| 703 | </register>
|
| 704 |
|
| 705 | <!-- COUNT: Counter Register -->
|
| 706 | <register>
|
| 707 | <name>COUNT</name>
|
| 708 | <description>The Counter Register reflects the actual Value of the Timer/Counter</description>
|
| 709 | <addressOffset>0x20</addressOffset>
|
| 710 | <size>32</size>
|
| 711 | <access>read-write</access>
|
| 712 | <resetValue>0x00000000</resetValue>
|
| 713 | <resetMask>0xFFFFFFFF</resetMask>
|
| 714 | </register>
|
| 715 |
|
| 716 | <!-- MATCH: Match Register -->
|
| 717 | <register>
|
| 718 | <name>MATCH</name>
|
| 719 | <description>The Match Register stores the compare Value for the MATCH condition</description>
|
| 720 | <addressOffset>0x24</addressOffset>
|
| 721 | <size>32</size>
|
| 722 | <access>read-write</access>
|
| 723 | <resetValue>0x00000000</resetValue>
|
| 724 | <resetMask>0xFFFFFFFF</resetMask>
|
| 725 | </register>
|
| 726 |
|
| 727 | <!-- PRESCALE: Prescale Read Register -->
|
| 728 | <register>
|
| 729 | <name>PRESCALE_RD</name>
|
| 730 | <description>The Prescale Register stores the Value for the prescaler. The cont event gets divided by this value</description>
|
| 731 | <addressOffset>0x28</addressOffset>
|
| 732 | <size>32</size>
|
| 733 | <access>read-only</access>
|
| 734 | <resetValue>0x00000000</resetValue>
|
| 735 | <resetMask>0xFFFFFFFF</resetMask>
|
| 736 | </register>
|
| 737 |
|
| 738 | <!-- PRESCALE: Prescale Write Register -->
|
| 739 | <register>
|
| 740 | <name>PRESCALE_WR</name>
|
| 741 | <description>The Prescale Register stores the Value for the prescaler. The cont event gets divided by this value</description>
|
| 742 | <addressOffset>0x28</addressOffset>
|
| 743 | <size>32</size>
|
| 744 | <access>write-only</access>
|
| 745 | <resetValue>0x00000000</resetValue>
|
| 746 | <resetMask>0xFFFFFFFF</resetMask>
|
| 747 | </register>
|
| 748 |
|
| 749 |
|
| 750 | <!-- RELOAD: Array of Reload Register with 4 elements-->
|
| 751 | <register>
|
| 752 | <dim>4</dim>
|
| 753 | <dimIncrement>4</dimIncrement>
|
| 754 | <dimIndex>0,1,2,3</dimIndex>
|
| 755 | <name>RELOAD[%s]</name>
|
| 756 | <description>The Reload Register stores the Value the COUNT Register gets reloaded on a when a condition was met.</description>
|
| 757 | <addressOffset>0x50</addressOffset>
|
| 758 | <size>32</size>
|
| 759 | <access>read-write</access>
|
| 760 | <resetValue>0x00000000</resetValue>
|
| 761 | <resetMask>0xFFFFFFFF</resetMask>
|
| 762 | </register>
|
| 763 | </registers>
|
| 764 | </peripheral>
|
| 765 |
|
| 766 | <!-- Timer 1 -->
|
| 767 | <peripheral derivedFrom="TIMER0">
|
| 768 | <name>TIMER1</name>
|
| 769 | <baseAddress>0x40010100</baseAddress>
|
| 770 | <interrupt>
|
| 771 | <name>TIMER1</name>
|
| 772 | <value>4</value>
|
| 773 | </interrupt>
|
| 774 | </peripheral>
|
| 775 |
|
| 776 | <!-- Timer 2 -->
|
| 777 | <peripheral derivedFrom="TIMER0">
|
| 778 | <name>TIMER2</name>
|
| 779 | <baseAddress>0x40010200</baseAddress>
|
| 780 | <interrupt>
|
| 781 | <name>TIMER2</name>
|
| 782 | <value>6</value>
|
| 783 | </interrupt>
|
| 784 | </peripheral>
|
| 785 | </peripherals>
|
| 786 | </device>
|