<!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>/package/examples element</title>
<title>CMSIS-Pack: /package/examples 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-Pack
   &#160;<span id="projectnumber">Version 1.6.0</span>
   </div>
   <div id="projectbrief">Delivery Mechanism for Software Packs</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('pdsc_examples_pg.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>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">/package/examples element </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The element <a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> describes fully defined examples contained in the Pack. An example lists the files that belong to an example. The example itself and each individual file may refer to a <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> that must resolve to true; if it is false the example or file will be ignored. The board element is used to reference to one or more board descriptions using the board vendor and name an example is targeted for. Each example can specify attributes listing related components using Class (Cclass=), Group (Cgroup=), Subgroup (Csub) and a Version (Cversion=)</p>
<p><b>Example</b> </p>
<div class="fragment"><div class="line">&lt;examples&gt;</div>
<div class="line">  &lt;example name=<span class="stringliteral">&quot;Blinky&quot;</span> folder=<span class="stringliteral">&quot;Boards/MCBSTM32F200/Blinky&quot;</span> doc=<span class="stringliteral">&quot;Abstract.txt&quot;</span> version=<span class="stringliteral">&quot;1.0&quot;</span>&gt;</div>
<div class="line">    &lt;description&gt;This is a basic example demonstrating the development flow and letting the LED on the board blink&lt;/description&gt;</div>
<div class="line">    &lt;board vendor=<span class="stringliteral">&quot;STMicroelectronics&quot;</span> name=<span class="stringliteral">&quot;32F429IDISCOVERY&quot;</span>/&gt;</div>
<div class="line">    &lt;project&gt;</div>
<div class="line">      &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span>  load=<span class="stringliteral">&quot;ARM/Blinky.uvproj&quot;</span>/&gt;</div>
<div class="line">      &lt;environment name=<span class="stringliteral">&quot;iar&quot;</span> load=<span class="stringliteral">&quot;IAR/Blinky.ewarm&quot;</span> /&gt;</div>
<div class="line">    &lt;/project&gt;</div>
<div class="line">    &lt;attributes&gt;</div>
<div class="line">      &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;Core&quot;</span>/&gt;</div>
<div class="line">      &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
<div class="line">      &lt;keyword&gt;Blinky&lt;/keyword&gt;</div>
<div class="line">      &lt;keyword&gt;Getting Started&lt;/keyword&gt;</div>
<div class="line">    &lt;/attributes&gt;</div>
<div class="line">  &lt;/example&gt;</div>
<div class="line">&lt;/examples&gt;  </div>
</div><!-- fragment --><p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_examples"></a>
/package/examples</h1>
<p>Grouping element for examples. No more than one such group can exist in a Pack.</p>
<table  class="cmtable" summary="Element: Example">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a>  </td></tr>
<tr>
<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td>Description of fully specified project </td><td>ExampleType </td><td>1..*   </td></tr>
</table>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_example"></a>
/package/examples/example</h1>
<p>An example section is used to provide the required information for accessing an example project contained in a Pack. All examples contained in the installed packs can be listed including a brief description. A selected example will get copied into a user selected destination folder. Based on the user selected environment the respective project file will be loaded. The ID of an example is the combination of the Pack vendor, the board information and the example name and version. Examples with the same ID are treated as a single example.</p>
<table  class="cmtable" summary="Element: Example">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_examples">examples</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_examples">/package/examples</a>  </td></tr>
<tr>
<th>Attributes </th><th>Description </th><th>Type </th><th>Use  </th></tr>
<tr>
<td>name </td><td>Name of the example </td><td>xs:string </td><td>required  </td></tr>
<tr>
<td>folder </td><td>Relative path to the example base folder within the package. If selected, then the directory including all sub-folders and files will be copied, unless the archive attribute gets set. </td><td>xs:string </td><td>required  </td></tr>
<tr>
<td>archive </td><td>Filename and extension of the archive file containing all files and sub-folders of the example. The archive is located in the path specified by the attribute <b><em>folder</em></b>. If selected, then the whole archive will be extracted. </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>doc </td><td>Document that describes the example. </td><td>xs:string </td><td>required  </td></tr>
<tr>
<td>version </td><td>Example version number. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>.  </td><td>VersionType </td><td>optional  </td></tr>
<tr>
<td>public </td><td>Set publishing permissions for the documentation. If <em>&lt;public&gt;</em> is <span class="XML-Token">true</span>, then the vendor gives permission to extract the documentation from the pack and publish it on a web-page. Links to web pages are assumed to be public. The default value is <span class="XML-Token">false</span>. </td><td>xs:boolean </td><td>optional  </td></tr>
<tr>
<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td>description </td><td>Briefly documents the purpose and scope of the example. The test can be displayed in an example selector. </td><td>xs:string </td><td>1  </td></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_board">board</a> </td><td>Complex type providing a reference to a board description using board name and vendor.. </td><td>BoardReferenceType </td><td>1  </td></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_project">project</a> </td><td>Complex type describing the project files for different environments </td><td>ExampleProjectType </td><td>1..*   </td></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_attributes">attributes</a> </td><td>Group element for project attributes, which list required components, define example categories, and set keywords to filter and search for examples. </td><td>ExampleAttributesType </td><td>1  </td></tr>
</table>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_example_board"></a>
/package/examples/example/board</h1>
<p>This element specifies the board that can be used with the example project.</p>
<p><b>Example:</b> </p>
<div class="fragment"><div class="line">&lt;board name=<span class="stringliteral">&quot;MV1000A&quot;</span> vendor=<span class="stringliteral">&quot;MyVendor&quot;</span>/&gt;</div>
</div><!-- fragment --><p>&#160;</p>
<table  class="cmtable" summary="Element: Example Board">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a>  </td></tr>
<tr>
<th>Attributes </th><th>Description </th><th>Type </th><th>Use  </th></tr>
<tr>
<td>vendor </td><td>Vendor name of the board. </td><td>xs:string </td><td>required  </td></tr>
<tr>
<td>name </td><td>Commercial name of the board. </td><td>xs:string </td><td>required  </td></tr>
<tr>
<td>Dvendor </td><td>Vendor name of the device used on the board. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>.  </td><td>DeviceVendorEnum </td><td>optional  </td></tr>
<tr>
<td>Dfamily </td><td>Name of the target device family used on the board. This attribute is optional if either DsubFamily or Dname is already specified. <br/>
 <b><span class="XML-Token">Deprecated since version 1.1</span></b> </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>DsubFamily </td><td>Name of the target device sub-family used on the board. This attribute is optional if either Dfamily or Dname is already specified. <br/>
 <b><span class="XML-Token">Deprecated since version 1.1</span></b> </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Dname </td><td>Name of the target device used on the board. This attribute is optional if either Dfamily or DsubFamily is already specified. <br/>
 <b><span class="XML-Token">Deprecated since version 1.1</span></b>. </td><td>xs:string </td><td>optional  </td></tr>
</table>
<dl class="section note"><dt>Note</dt><dd>Values for <b><span class="XML-Token">deprecated attributes</span></b> are read from the board description element <a class="el" href="pdsc_boards_pg.html#element_board_mountedDevice">/package/boards/board/mountedDevice</a>.</dd></dl>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_example_project"></a>
/package/examples/project</h1>
<p>A project element is a sequence of <em>environment</em> elements that describe the name of the environment and the project file to be loaded.</p>
<p><b>Example:</b> </p>
<div class="fragment"><div class="line">&lt;project&gt;</div>
<div class="line">  &lt;environment ... /&gt;</div>
<div class="line">  &lt;environment ... /&gt;</div>
<div class="line">&lt;/project&gt;</div>
</div><!-- fragment --><p>&#160;</p>
<table  class="cmtable" summary="Element: Example Project">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a>  </td></tr>
<tr>
<th>Element </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_project_env">environment</a> </td><td>Specifies the environment and project file with extension. </td><td>xs:complexType </td><td>1..*  </td></tr>
</table>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_example_project_env"></a>
/package/examples/project/environment</h1>
<p>The environment element describes the name of the environment and the project file to be loaded.</p>
<p><b>Example:</b> </p>
<div class="fragment"><div class="line">&lt;project&gt;</div>
<div class="line">  &lt;environment name=<span class="stringliteral">&quot;uv&quot;</span> load=<span class="stringliteral">&quot;ARM/Blinky.uvproj&quot;</span>/&gt;</div>
<div class="line">  &lt;environment name=<span class="stringliteral">&quot;iar&quot;</span> load=<span class="stringliteral">&quot;IAR/Blinky.ewarm&quot;</span> /&gt;</div>
<div class="line">&lt;/project&gt;</div>
</div><!-- fragment --><p>&#160;</p>
<table  class="cmtable" summary="Element: Example Project">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_project">project</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example_project">/package/examples/project</a>  </td></tr>
<tr>
<th>Attributes </th><th>Description </th><th>Type </th><th>Use  </th></tr>
<tr>
<td>name </td><td>Name of the required tool-chain (for example: <span class="XML-Token">uv</span>, <span class="XML-Token">iar</span>, etc.) </td><td>xs:string </td><td>required  </td></tr>
<tr>
<td>load </td><td>Specifies the project file with extension. A path relative to <em>folder</em> attribute of the element <a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a> can be appended. </td><td>xs:string </td><td>required  </td></tr>
</table>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_example_attributes"></a>
/package/examples/example/attributes</h1>
<p><b>Example:</b> </p>
<div class="fragment"><div class="line">&lt;example&gt;</div>
<div class="line">  &lt;attributes&gt;</div>
<div class="line">    &lt;category&gt;Example Project&lt;/category&gt;</div>
<div class="line">    &lt;category&gt;For a specific board&lt;/category&gt;</div>
<div class="line">        ...</div>
<div class="line">    &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;Core&quot;</span>/&gt;</div>
<div class="line">    &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
<div class="line">        ...</div>
<div class="line">        &lt;keyword&gt;Blinky&lt;/keyword&gt;</div>
<div class="line">        &lt;keyword&gt;Getting Started&lt;/keyword&gt;</div>
<div class="line">  &lt;/attributes&gt;</div>
<div class="line">&lt;/example&gt;</div>
</div><!-- fragment --><p>&#160;</p>
<table  class="cmtable" summary="Element: Example Attributes">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example">example</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example">/package/examples/example</a>  </td></tr>
<tr>
<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td>category </td><td>Free form string defining an example category. A category can be used to filter examples in an example browser. </td><td>xs:string </td><td>0..*  </td></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_attribute_component">component</a> </td><td>Group for defining the components used in the example. </td><td>ComponentCategoryType </td><td>0..*  </td></tr>
<tr>
<td>keyword </td><td>Free form string defining a keyword that relates to the example. A keyword can be used to search for examples. </td><td>xs:string </td><td>0..*  </td></tr>
</table>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_example_attribute_component"></a>
/package/examples/example/attributes/component</h1>
<p>The component element specifies the Cclass to which the example belongs. This can be used to list all related components within an example.</p>
<p><b>Example:</b> </p>
<div class="fragment"><div class="line">&lt;attributes&gt;</div>
<div class="line">  ...</div>
<div class="line">  &lt;component Cclass=<span class="stringliteral">&quot;CMSIS&quot;</span> Cgroup=<span class="stringliteral">&quot;Core&quot;</span>/&gt;</div>
<div class="line">  &lt;component Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;</div>
<div class="line">  ...</div>
<div class="line">&lt;/attributes&gt;</div>
</div><!-- fragment --><p>&#160;</p>
<table  class="cmtable" summary="Element: Attribute Component">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_examples_pg.html#element_example_attributes">attribute</a> </td><td colspan="3"><a class="el" href="pdsc_examples_pg.html#element_example_attributes">/package/examples/example/attributes</a>  </td></tr>
<tr>
<th>Attribute </th><th>Description </th><th>Type </th><th>Use  </th></tr>
<tr>
<td>Cclass </td><td>Free form string defining an example class. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>CclassType </td><td>required  </td></tr>
<tr>
<td>Cgroup </td><td>Free form string defining an example group. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>optional  </td></tr>
<tr>
<td>Csub </td><td>Free form string defining an example subgroup. The type is described in <a class="el" href="pdsc_components_pg.html#CsubType">Component Subgroups</a>. </td><td>CsubType </td><td>optional  </td></tr>
<tr>
<td>Cversion </td><td>Free form string defining an example version. The version format is described in <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </td><td>VersionType </td><td>optional  </td></tr>
<tr>
<td>Cvendor </td><td>Free form string defining the vendor of the example. </td><td>xs:string </td><td>optional  </td></tr>
</table>
<p>&#160;</p>
</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="packFormat.html">Pack Description (*.pdsc) Format</a></li>
    <li class="footer">Generated on Wed Jul 10 2019 15:21:01 for CMSIS-Pack Version 1.6.0 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>
