Files
@ 4e72955028d8
Branch filter:
Location: therm/libraries/CMSIS/Documentation/SVD/html/group__svd__xml__registers__gr.html
4e72955028d8
15.1 KiB
text/html
Added LED defs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>CMSIS-SVD: Registers Level</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="stylsheetf" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 46px;">
<td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">CMSIS-SVD
 <span id="projectnumber">Version 1.10</span>
</div>
<div id="projectbrief">CMSIS System View Description</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
<ul class="tablist">
<li><a href="../../General/html/index.html"><span>CMSIS</span></a></li>
<li><a href="../../Core/html/index.html"><span>CORE</span></a></li>
<li><a href="../../DSP/html/index.html"><span>DSP</span></a></li>
<li><a href="../../RTOS/html/index.html"><span>RTOS API</span></a></li>
<li class="current"><a href="../../SVD/html/index.html"><span>SVD</span></a></li>
</ul>
</div>
<!-- Generated by Doxygen 1.8.3.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Usage and Description</span></a></li>
<li><a href="modules.html"><span>Reference</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__svd__xml__registers__gr.html','');});
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Registers Level<div class="ingroups"><a class="el" href="group__svd___format__gr.html">SVD File Schema Levels</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>All registers of a peripheral are enclosed between the <b><registers></b> opening and closing tags.</p>
<p>The description of registers is the most essential part of the SVD description. The register's name, detailed description, and the address-offset relative to the peripheral base address are the mandatory elements. If the size, access, reset value, and reset mask have not been specified on the device or peripheral level, or if the default values need to be redefined locally, these fields become mandatory.</p>
<p>A register can represent a single value or can be subdivided into individual bit-fields of specific functionality and semantics. In schema-terms the <em>fields</em> section is optional, however, from a specification perspective, fields are mandatory when they are described in the device documentation.</p>
<p>The SVD specification supports the array-of-registers concept. The single register description gets duplicated automatically into an array. The size of the array is specified by the <dim> element. The register names can be composed by the register name and an index specific substring define in <dimIndex>. The <dimIncrement> specifies the address offset between two registers.</p>
<hr/>
<pre>
<span class="mand"><b><registers></b> </span></pre><pre><span class="mand"> <b><register <span class="opt">derivedFrom=<em>identifierType</em></span>></b>
<span class="opt">
<em><!-- dimElementGroup --> </em>
<dim><em>scaledNonNegativeInteger</em></dim>
<dimIncrement><em>scaledNonNegativeInteger</em></dimIncrement>
<dimIndex><em>xs:string</em></dimIndex>
<em><!-- end of dimElementGroup --> </em>
</span>
<name><em>identifierType</em></name>
<span class="opt">
<displayName><em>xs:string</em></displayName>
</span>
<description><em>xs:string</em></description>
<span class="opt">
<alternateGroup><em>xs:Name</em></alternateGroup>
</span>
<addressOffset><em>scaledNonNegativeInteger</em></addressOffset>
<span class="opt">
<em><!-- registerPropertiesGroup --> </em>
<size><em>scaledNonNegativeInteger</em></size>
<access><em>accessType</em></access>
<resetValue><em>scaledNonNegativeInteger</em></resetValue>
<resetMask><em>scaledNonNegativeInteger</em></resetMask>
<em><!-- end of registerPropertiesGroup --> </em>
</span><span class="opt">
<modifiedWriteValues><em>writeValueType</em></modifiedWriteValues>
<writeConstraint><em>writeConstraintType</em></writeConstraint>
<readAction><em>readActionType</em></readAction></span></span></pre><pre><span class="mand"><span class="opt"> <fields>
...
</fields>
</span>
<b></register></b>
<span class="opt">...
<register>
...
</register>
</span>
<b><registers></b> </span>
</pre><table class="cmtable" summary="Register Level Schema">
<tr>
<th>Attribute Name </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
<tr>
<td>derivedFrom </td><td>Specifies the name of the register from which to inherit the data. Elements being specified underneath will override the inherited values. <br/>
<b>Remarks:</b> When deriving a register, it is mandatory to specify at least the name, the description, and the addressOffset. </td><td>xs:Name </td><td>0..1 </td></tr>
<tr>
<th>Element Name </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
<tr class="group1">
<td colspan="4">See <a class="el" href="group__dim_element_group__gr.html">dimElementGroup</a> for details. </td></tr>
<tr class="group1">
<td align="right">dimIncrement </td><td>The value defines the number of elements in an array of registers. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="group1">
<td align="right">dimIncrement </td><td>If <em>dim</em> is specified, this element becomes mandatory. The element specifies the address increment in between two neighboring registers of the register array in the address map. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="group1">
<td align="right">dimIndex </td><td>Specifies the substrings that replaces the <em>%s</em> placeholder within the register name. By default, the index is a decimal value starting with 0 for the first register. </td><td>dimIndexType </td><td>0..1 </td></tr>
<tr>
<td>name </td><td>Name string used to identify the register. Register names are required to be unique within the scope of a peripheral. </td><td>registerNameType </td><td>1..1 </td></tr>
<tr>
<td>displayName </td><td>When specified, the string is being used by a graphical frontend to visualize the register. Otherwise the name element is displayed. The <em>displayName</em> may contain special characters and white spaces. The place holder <b>s</b> can be used and is replaced by the <em>dimIndex</em> substring. </td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>description </td><td>String describing the details of the register. </td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>alternateGroup </td><td>Specifies a group name associated with all alternate register that have the same name. At the same time, it indicates that there is a register definition allocating the same absolute address in the address space. </td><td>xs:Name </td><td>0..1 </td></tr>
<tr>
<td>addressOffset </td><td>Value defining the address of the register relative to the <em>baseAddress</em> defined by the peripheral of the register. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="group1">
<td colspan="4">See <a class="el" href="group__register_properties_group__gr.html">registerPropertiesGroup</a> for details. </td></tr>
<tr class="group1">
<td align="right">size </td><td>Defines the default bit-width of any register contained in the device (implicit inheritance). </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
<tr class="group1">
<td align="right">access </td><td>Defines the default access rights for all registers. </td><td>accessType </td><td>0..1 </td></tr>
<tr class="group1">
<td align="right">resetValue </td><td>Defines the default value for all registers at RESET. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
<tr class="group1">
<td align="right">resetMask </td><td>Identifies which register bits have a defined reset value. </td><td>scaledNonNegativeInteger </td><td>0..1 </td></tr>
<tr>
<td>modifiedWriteValues </td><td>Element to describe the manipulation of data written to a register. If not specified, the value written to the field is the value stored in the field. The other options define bitwise operations: <ul>
<li><span class="XML-Token">oneToClear</span>: write data bits of one shall clear (set to zero) the corresponding bit in the register. </li>
<li><span class="XML-Token">oneToSet</span>: write data bits of one shall set (set to one) the corresponding bit in the register. </li>
<li><span class="XML-Token">oneToToggle</span>: write data bits of one shall toggle (invert) the corresponding bit in the register. </li>
<li><span class="XML-Token">zeroToClear</span>: write data bits of zero shall clear (set to zero) the corresponding bit in the register. </li>
<li><span class="XML-Token">zeroToSet</span>: write data bits of zero shall set (set to one) the corresponding bit in the register. </li>
<li><span class="XML-Token">zeroToToggle</span>: write data bits of zero shall toggle (invert) the corresponding bit in the register. </li>
<li><span class="XML-Token">clear</span>: after a write operation all bits in the field are cleared (set to zero). </li>
<li><span class="XML-Token">set</span>: after a write operation all bits in the field are set (set to one). </li>
<li><span class="XML-Token">modify</span>: after a write operation all bit in the field may be modified (default). </li>
</ul>
</td><td>modifiedWriteValuesType </td><td>0..1 </td></tr>
<tr class="choice">
<td><em>writeConstraint</em> </td><td colspan="2">Three options exist to set write-constraints: </td><td>0..1 </td></tr>
<tr class="choice">
<td><em>1. writeAsRead</em> </td><td>If TRUE, only the last read value can be written. </td><td>xs:boolean </td><td>0..1 </td></tr>
<tr class="choice">
<td nowrap="nowrap"><em>2. useEnumeratedValues</em> </td><td>If TRUE, only the values listed in the <em>enumeratedValues</em> list are considered valid write values. </td><td>xs:boolean </td><td>0..1 </td></tr>
<tr class="choice">
<td><em>3. range</em> </td><td>Consists of the following two elements: </td><td>  </td><td>0..1 </td></tr>
<tr class="choice">
<td align="right">minimum </td><td>Specifies the smallest number to be written to the field. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="choice">
<td align="right">maximum </td><td>Specifies the largest number to be written to the field. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr>
<td>readAction </td><td>If set, it specifies the side effect following a read operation. If not set, the register is not modified. The defined side effects are: <ul>
<li><span class="XML-Token">clear</span>: The register is cleared (set to zero) following a read operation. </li>
<li><span class="XML-Token">set</span>: The register is set (set to ones) following a read operation. </li>
<li><span class="XML-Token">modify</span>: The register is modified in some way after a read operation. </li>
<li><span class="XML-Token">modifyExternal</span>: One or more dependent resources other than the current register are immediately affected by a read operation (it is recommended that the register description specifies these dependencies). Debuggers are not expected to read this register location unless explicitly instructed by the user. </li>
</ul>
</td><td>readActionType </td><td><p class="starttd">0..1 </p>
<p class="endtd"></p>
</td></tr>
<tr>
<td>fields </td><td>Next lower level of description (see <a class="el" href="group__svd__xml__fields__gr.html">Fields Level</a> for details). Not all registers are further divided into fields, therefore, this level is optional. In case a register is subdivided into bit fields, it should be reflected in the description. The device header file can only contain bit access macros and bit-field structures if this information is contained in the description. </td><td>  </td><td>0..1 </td></tr>
</table>
<h1><a class="anchor" id="reg_ex"></a>
Example:</h1>
<div class="fragment"><div class="line">...</div>
<div class="line"><<span class="keyword">register</span>></div>
<div class="line"> <name>TimerCtrl0</name></div>
<div class="line"> <description>Timer Control Register</description></div>
<div class="line"> <addressOffset>0x0</addressOffset></div>
<div class="line"> <access>read-write</access></div>
<div class="line"> <resetValue>0x00008001</resetValue></div>
<div class="line"> <resetMask>0x0000ffff</resetMask></div>
<div class="line"> <size>32</size></div>
<div class="line"> <fields></div>
<div class="line"> ...</div>
<div class="line"> </fields></div>
<div class="line"></<span class="keyword">register</span>></div>
<div class="line"></div>
<div class="line"><<span class="keyword">register</span> derivedFrom=<span class="stringliteral">"TimerCtrl0"</span>></div>
<div class="line"> <name>TimerCtrl1</name></div>
<div class="line"> <description>Derived Timer</description></div>
<div class="line"> <addressOffset>0x4</addressOffset></div>
<div class="line"></<span class="keyword">register</span>></div>
<div class="line">...</div>
</div><!-- fragment --> </div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Mon Mar 18 2013 13:38:02 for CMSIS-SVD by ARM Ltd. All rights reserved.
<!--
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1
-->
</li>
</ul>
</div>
</body>
</html>
|