mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-08 01:40:35 +08:00
224 lines
12 KiB
HTML
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
|
|
 <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 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>
|
|
<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><peripherals></b>. At least one peripheral has to be defined. Each peripheral is enclosed in the tag <b><peripheral></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><peripherals></b> </span></pre><pre><span class="mand"> <b><peripheral</b> <span class="opt">derivedFrom</span>="<em>identifierType</em>"></span></pre><pre><span class="mand"> <name><em>identifierType</em></name>
|
|
<version><em>xs:string</em></version>
|
|
<description><em>xs:string</em></description>
|
|
<span class="opt">
|
|
<groupName><em>identifierType</em></groupName>
|
|
<prependToName><em>identifierType</em></prependToName>
|
|
<appendToName><em>identifierType</em></appendToName>
|
|
<disableCondition><em>xs:string</em></disableCondition>
|
|
</span>
|
|
<baseAddress><em>scaledNonNegativeInteger</em></baseAddress>
|
|
<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>
|
|
<addressBlock>
|
|
<offset><em>scaledNonNegativeInteger</em></offset>
|
|
<size><em>scaledNonNegativeInteger</em></size>
|
|
<usage><em>usageType</em></usage>
|
|
</addressBlock><span class="opt">
|
|
...
|
|
<addressBlock><span class="mand">
|
|
<offset><em>scaledNonNegativeInteger</em></offset>
|
|
<size><em>scaledNonNegativeInteger</em></size>
|
|
<usage><em>usageType</em></usage></span><span class="opt">
|
|
</addressBlock></span>
|
|
<span class="opt">
|
|
<interrupt></span><span class="mand">
|
|
<name><em>identifierType</em></name>
|
|
<value><em>scaledNonNegativeInteger</em></value></span>
|
|
</interrupt></span></span></pre><pre><span class="mand"><span class="opt"> <registers>
|
|
...
|
|
</registers></span></span></pre><pre><span class="mand"> <b></peripheral></b>
|
|
<span class="opt">...
|
|
<peripheral>
|
|
...
|
|
</peripheral>
|
|
</span>
|
|
<b></peripherals></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><peripheral>-><register>-><field></em>, for example, (System->ClockControl->apbEnable == 0). The following operators are allowed in the expression [&&,||, ==, !=, >>, <<, &, |]. <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>  </td><td>0..1 </td></tr>
|
|
</table>
|
|
<h2><a class="anchor" id="periph_ex"></a>
|
|
Example:</h2>
|
|
<div class="fragment"><pre class="fragment">...
|
|
<peripheral>
|
|
<name>Timer0</name>
|
|
<version>1.0.32</version>
|
|
<description>Timer 0 is a simple 16 bit timer counting down ... </description>
|
|
<baseAddress>0x40000000</baseAddress>
|
|
<addressBlock>
|
|
<offset>0x0</offset>
|
|
<size>0x400</size>
|
|
<usage>registers</usage>
|
|
</addressBlock>
|
|
<interrupt><name>TIM0_INT</name><value>34</value></interrupt>
|
|
<registers>
|
|
...
|
|
</registers>
|
|
</peripheral>
|
|
|
|
<peripheral derivedFrom=<span class="stringliteral">"Timer0"</span>>
|
|
<name>Timer1</name>
|
|
<baseAddress>0x40000400</baseAddress>
|
|
</peripheral>
|
|
...
|
|
</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>
|