<!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>/peripherals element</title>
<title>CMSIS-Zone (Preview): /peripherals element</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>
<script type="text/javascript" src="printComponentTabs.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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</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-Zone (Preview)
   &#160;<span id="projectnumber">Version 0.0.1</span>
   </div>
   <div id="projectbrief">System Resource Management</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </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('format_peripherals.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">/peripherals element </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The <b>peripherals</b> element groups all physical peripheral definitions.</p>
<p><b>Example</b> </p>
<div class="fragment"><div class="line">&lt;resources&gt;</div>
<div class="line">  :</div>
<div class="line">  &lt;peripherals&gt;</div>
<div class="line">    &lt;peripheral name=<span class="stringliteral">&quot;ADC0&quot;</span> size=<span class="stringliteral">&quot;0x1000&quot;</span> access=<span class="stringliteral">&quot;rw&quot;</span> info=<span class="stringliteral">&quot;Analog/Digital Converter 0 (12-bit)&quot;</span>/&gt;</div>
<div class="line">    :</div>
<div class="line">    &lt;group name=<span class="stringliteral">&quot;USART&quot;</span> info=<span class="stringliteral">&quot;Universal synchronous/asynchronous receiver/transmitter&quot;</span>&gt;</div>
<div class="line">      &lt;peripheral name=<span class="stringliteral">&quot;UART0&quot;</span>  size=<span class="stringliteral">&quot;0x1000&quot;</span> access=<span class="stringliteral">&quot;rw&quot;</span> info=<span class="stringliteral">&quot;Universal asynchronous receiver/transmitter 0&quot;</span>/&gt;</div>
<div class="line">      &lt;peripheral name=<span class="stringliteral">&quot;USART1&quot;</span> size=<span class="stringliteral">&quot;0x1000&quot;</span> access=<span class="stringliteral">&quot;rw&quot;</span> info=<span class="stringliteral">&quot;Universal synchronous/asynchronous receiver/transmitter 1&quot;</span>/&gt;</div>
<div class="line">      :</div>
<div class="line">    &lt;/group&gt;</div>
<div class="line">  &lt;/peripherals&gt;</div>
<div class="line">&lt;/resources&gt;</div>
</div><!-- fragment --><p><b>Schema Description</b></p>
<table  class="cmtable" summary="Element: Peripherals">
<tr>
<th>Parent Element </th><th colspan="3">Element Chain  </th></tr>
<tr>
<td><a class="el" href="format_resources.html">resources</a> </td><td colspan="3"><a class="el" href="format_resources.html">/resources element</a>  </td></tr>
<tr>
<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td><a class="el" href="format_group.html">/group element</a> </td><td>Logical grouping of peripherals. </td><td>complexType </td><td>0..*  </td></tr>
<tr>
<td><a class="el" href="format_peripheral.html">/peripheral element</a> </td><td>Peripheral definitions. </td><td>complexType </td><td>0..*  </td></tr>
</table>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="XML_Format.html">Zone Description Format</a></li><li class="navelem"><a class="el" href="format_system.html">/system element</a></li><li class="navelem"><a class="el" href="format_device.html">/device element</a></li><li class="navelem"><a class="el" href="format_resources.html">/resources element</a></li>
    <li class="footer">Generated on Wed Aug 1 2018 17:12:47 for CMSIS-Zone (Preview) 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.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
