Files
PX4-Autopilot/CMSIS/Documentation/SVD/html/group__svd__xml__peripherals__gr.html
T
2013-01-06 13:57:31 -05:00

224 lines
12 KiB
HTML

<!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"/>
<title>Peripherals Level</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 46px;">
<td id="proglogo"><img alt="CMSIS Logo" src="CMSIS_Logo_Final.png"></td>
<td style="padding-left: 0.5em;">
<div id="projectname">CMSIS-SVD
&#160;<span id="projectnumber">Version 1.10</span>
</div>
<div id="projectbrief">CMSIS System View Description</div>
</td>
</tr>
</tbody>
</table>
</div>
<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.7.5.1 -->
<script type="text/javascript" src="dynsections.js"></script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
<li><a href="modules.html"><span>Reference</span></a></li>
</ul>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
initNavTree('group__svd__xml__peripherals__gr.html','');
</script>
<div id="doc-content">
<div class="header">
<div class="headertitle">
<div class="title">Peripherals Level</div> </div>
<div class="ingroups"><a class="el" href="group__svd___format__gr.html">SVD File Schema Levels</a></div></div>
<div class="contents">
<p>All peripherals of a device are enclosed within the tag <b>&lt;peripherals&gt;</b>. At least one peripheral has to be defined. Each peripheral is enclosed in the tag <b>&lt;peripheral&gt;</b>.</p>
<ul>
<li>Each peripheral describes all registers belonging to that peripheral.</li>
<li>The address range allocated by a peripheral is defined through one or more address blocks.</li>
<li>An address block and register addresses are specified relative to the base address of a peripheral. The address block information can be used for constructing a memory map for the device peripherals.</li>
</ul>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>The memory map does not contain any information about RAM, ROM, or FLASH memory.</dd></dl>
<hr/>
<pre>
<span class="mand"> <b>&lt;peripherals&gt;</b> </span></pre><pre><span class="mand"> <b>&lt;peripheral</b> <span class="opt">derivedFrom</span>="&lt;em&gt;identifierType&lt;/em&gt;"&gt;</span></pre><pre><span class="mand"> &lt;name&gt;<em>identifierType</em>&lt;/name&gt;
&lt;version&gt;<em>xs:string</em>&lt;/version&gt;
&lt;description&gt;<em>xs:string</em>&lt;/description&gt;
<span class="opt">
&lt;groupName&gt;<em>identifierType</em>&lt;/groupName&gt;
&lt;prependToName&gt;<em>identifierType</em>&lt;/prependToName&gt;
&lt;appendToName&gt;<em>identifierType</em>&lt;/appendToName&gt;
&lt;disableCondition&gt;<em>xs:string</em>&lt;/disableCondition&gt;
</span>
&lt;baseAddress&gt;<em>scaledNonNegativeInteger</em>&lt;/baseAddress&gt;
<span class="opt">
<em> &lt;!-- registerPropertiesGroup --&gt;</em>
&lt;size&gt;<em>scaledNonNegativeInteger</em>&lt;/size&gt;
&lt;access&gt;<em>accessType</em>&lt;/access&gt;
&lt;resetValue&gt;<em>scaledNonNegativeInteger</em>&lt;/resetValue&gt;
&lt;resetMask&gt;<em>scaledNonNegativeInteger</em>&lt;/resetMask&gt;
<em> &lt;!-- end of registerPropertiesGroup --&gt;</em>
</span>
&lt;addressBlock&gt;
&lt;offset&gt;<em>scaledNonNegativeInteger</em>&lt;/offset&gt;
&lt;size&gt;<em>scaledNonNegativeInteger</em>&lt;/size&gt;
&lt;usage&gt;<em>usageType</em>&lt;/usage&gt;
&lt;/addressBlock&gt;<span class="opt">
...
&lt;addressBlock&gt;<span class="mand">
&lt;offset&gt;<em>scaledNonNegativeInteger</em>&lt;/offset&gt;
&lt;size&gt;<em>scaledNonNegativeInteger</em>&lt;/size&gt;
&lt;usage&gt;<em>usageType</em>&lt;/usage&gt;</span><span class="opt">
&lt;/addressBlock&gt;</span>
<span class="opt">
&lt;interrupt&gt;</span><span class="mand">
&lt;name&gt;<em>identifierType</em>&lt;/name&gt;
&lt;value&gt;<em>scaledNonNegativeInteger</em>&lt;/value&gt;</span>
&lt;/interrupt&gt;</span></span></pre><pre><span class="mand"><span class="opt"> &lt;registers&gt;
...
&lt;/registers&gt;</span></span></pre><pre><span class="mand"> <b>&lt;/peripheral&gt;</b>
<span class="opt">...
&lt;peripheral&gt;
...
&lt;/peripheral&gt;
</span>
<b>&lt;/peripherals&gt;</b>
</span>
</pre><table class="cmtable" summary="Peripheral Level Schema">
<tr>
<th nowrap="nowrap">Attribute Name </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
<tr>
<td>derivedFrom </td><td>Specifies the name of a peripheral from which this peripheral will be derived. Values are inherit. Elements specified underneath will override inherited values. </td><td>xs:Name </td><td>0..1 </td></tr>
<tr>
<th nowrap="nowrap">Element Name </th><th>Description </th><th>Type </th><th>Occurrence </th></tr>
<tr>
<td>name </td><td>The name string is used to identify the peripheral. Peripheral names are required to be unique for a device. The name needs to be an ANSI C identifier to allow header file generation. </td><td>xs:Name </td><td>1..1 </td></tr>
<tr>
<td>version </td><td>The string specifies the version of this peripheral description. </td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>description </td><td>The string provides an overview of the purpose and functionality of the peripheral. </td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>groupName </td><td></td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>prependToName </td><td>All register names of this peripheral have their names prefixed with this string. </td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>appendToName </td><td>All register names of this peripheral have their names suffixed with this string. </td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>disableCondition </td><td>Is a C-language compliant logical expression returning a TRUE or FALSE result. If TRUE, refreshing the display for this peripheral is disabled and related accesses by the debugger are suppressed. <br/>
<br/>
Only constants and references to other registers contained in the description are allowed: <em>&lt;peripheral&gt;-&gt;&lt;register&gt;-&gt;&lt;field&gt;</em>, for example, (System-&gt;ClockControl-&gt;apbEnable == 0). The following operators are allowed in the expression [&amp;&amp;,||, ==, !=, &gt;&gt;, &lt;&lt;, &amp;, |]. <dl class="attention"><dt><b>Attention:</b></dt><dd>Use this feature only in cases where accesses from the debugger to registers of un-clocked peripherals result in severe debugging failures. SVD is intended to provide static information and does not include any run-time computation or functions. Such capabilities can be added by the tools, and is beyond the scope of this description language. </dd></dl>
</td><td>xs:string </td><td>0..1 </td></tr>
<tr>
<td>baseAddress </td><td>Lowest address reserved or used by the peripheral. </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 class="group2">
<td>addressBlock </td><td>Specifies an address range uniquely mapped to this peripheral. A peripheral must have at least one address block, but may allocate multiple distinct address ranges. If a peripheral is derived form another peripheral, the addressBlock is not mandatory. </td><td>addressBlockType </td><td>1..* </td></tr>
<tr class="group2">
<td align="right">offset </td><td>Specifies the start address of an address block relative to the peripheral <em>baseAddress</em>. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="group2">
<td align="right">size </td><td>Specifies the number of addressUnitBits being covered by this address block. The end address of an address block results from the sum of baseAddress, offset, and (size - 1). </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="group2">
<td align="right">usage </td><td>The following predefined values can be used: <span class="XML-Token">registers<em>, </em> buffer<em>, or</em> reserved</span>. </td><td>scaledNonNegativeInteger </td><td>1..1 </td></tr>
<tr class="group1">
<td>interrupt </td><td>A peripheral can have multiple associated interrupts. This entry allows the debugger to show interrupt names instead of interrupt numbers. </td><td>interruptType </td><td>0..* </td></tr>
<tr class="group1">
<td align="right">name </td><td>The string represents the interrupt name. </td><td>XS:string </td><td>1..1 </td></tr>
<tr class="group1">
<td align="right">value </td><td>Is the enumeration index value associated to the interrupt. </td><td>xs:integer </td><td>1..1 </td></tr>
<tr>
<td>registers </td><td>See <a class="el" href="group__svd__xml__registers__gr.html">Registers Level</a> for details. </td><td>&#160; </td><td>0..1 </td></tr>
</table>
<h2><a class="anchor" id="periph_ex"></a>
Example:</h2>
<div class="fragment"><pre class="fragment">...
&lt;peripheral&gt;
&lt;name&gt;Timer0&lt;/name&gt;
&lt;version&gt;1.0.32&lt;/version&gt;
&lt;description&gt;Timer 0 is a simple 16 bit timer counting down ... &lt;/description&gt;
&lt;baseAddress&gt;0x40000000&lt;/baseAddress&gt;
&lt;addressBlock&gt;
&lt;offset&gt;0x0&lt;/offset&gt;
&lt;size&gt;0x400&lt;/size&gt;
&lt;usage&gt;registers&lt;/usage&gt;
&lt;/addressBlock&gt;
&lt;interrupt&gt;&lt;name&gt;TIM0_INT&lt;/name&gt;&lt;value&gt;34&lt;/value&gt;&lt;/interrupt&gt;
&lt;registers&gt;
...
&lt;/registers&gt;
&lt;/peripheral&gt;
&lt;peripheral derivedFrom=<span class="stringliteral">&quot;Timer0&quot;</span>&gt;
&lt;name&gt;Timer1&lt;/name&gt;
&lt;baseAddress&gt;0x40000400&lt;/baseAddress&gt;
&lt;/peripheral&gt;
...
</pre></div> </div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="footer">Generated on Wed Mar 28 2012 15:38:11 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.7.5.1 </li>
-->
</li>
</ul>
</div>
</body>
</html>