<!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>Pack Description (*.pdsc) Format</title>
<title>CMSIS-Pack: Pack Description (*.pdsc) Format</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('packFormat.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">Pack Description (*.pdsc) Format </div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#Filenames">Filename Conventions</a></li>
<li class="level1"><a href="#PackSchema">Pack Schema</a></li>
<li class="level1"><a href="#PDSC_Example">Example of a *.pdsc File</a></li>
</ul>
</div>
<div class="textblock"><p>The <b>Pack Description (*.pdsc) Format</b> uses standard XML annotations and is defined in the schema file <b>PACK.xsd</b>. Software components are distributed through <b>Software Packs</b>. A <a class="el" href="cp_SWComponents.html">Software Pack</a> is a zip file containing a single <b>Pack Description</b> file that describes dependencies to devices, processors, tool chains, or other software components.</p>
<p>A descriptive text of the <a class="el" href="cp_SWComponents.html">Software Pack</a>along the text information for devices, components, and examples is part of each a <b>Pack Description</b> (*.pdsc) file. In addition, information is provided which facilitates downloading, updating, and versioning of of a <a class="el" href="cp_SWComponents.html">Software Pack</a>. The *.pdsc file contains also the complete version history of the <a class="el" href="cp_SWComponents.html">Software Pack</a> with a brief list of the most significant changes.</p>
<h1><a class="anchor" id="Filenames"></a>
Filename Conventions</h1>
<p>A <a class="el" href="cp_SWComponents.html">Software Pack</a> must have a unique filename which uses the following format: <b>&lt;vendor&gt;.&lt;name&gt;.&lt;version&gt;.pack</b>.</p>
<p><b>Where:</b> </p>
<ul>
<li><b>&lt;vendor&gt;</b>: name of the supplier or vendor of the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><b>&lt;name&gt;</b>: name of the <a class="el" href="cp_SWComponents.html">Software Pack</a>. It is the vendor's responsibility to ensure unique package names.</li>
<li><b>&lt;release version="X.Y.Z"&gt;</b>: <a class="el" href="pdsc_package_pg.html#VersionType">version number</a> of the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><b>.pack</b>: file extension identifying a <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>&lt;vendor&gt; and &lt;name&gt; <em>must</em> <em>not</em> contain spaces.</dd></dl>
<p><br/>
The <b>Pack Description</b> (*.pdsc) file belonging to such a <a class="el" href="cp_SWComponents.html">Software Pack</a> file (&lt;vendor&gt;.&lt;name&gt;.&lt;version&gt;.pack) is version independent and has the format: <b>&lt;vendor&gt;.&lt;name&gt;.pdsc</b>.</p>
<p><b>Where:</b> </p>
<ul>
<li><b>&lt;vendor&gt;</b>: name of the supplier or vendor of the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><b>&lt;name&gt;</b>: name of the <a class="el" href="cp_SWComponents.html">Software Pack</a> that is described by this *.pdsc file.</li>
<li><b>.pack</b>: file extension identifying a <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>&lt;vendor&gt; and &lt;name&gt; <em>must</em> <em>not</em> contain spaces.</dd></dl>
<p>Example filenames for software packs:</p>
<p>Software Pack for CMSIS Version 4.0 released by Arm.</p>
<ul>
<li><b>ARM.CMSIS.4.0.0.pack</b>: filename of the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><b>ARM.CMSIS.pdsc</b>: filename of the <b>Pack Description</b> (*.pdsc) file.</li>
</ul>
<p>Device Family Pack for STM32F4 Version 1.0.0 released by ST Microelectronics.</p>
<ul>
<li><b>ST.STM32F4xx_DFP.1.0.0.pack</b>: filename of the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><b>ST.STM32F4xx.pdsc</b>: filename of the <b>Pack Description</b> (*.pdsc) file.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>All elements are case sensitive and must be consistently spelled in all places, i.e. the definition in the PDSC file must match the filenames of the *.pdsc and *.pack files. The file extensions (*.pdsc and *.pack) must be lower case.</dd></dl>
<h1><a class="anchor" id="PackSchema"></a>
Pack Schema</h1>
<p>The XML schema file <b>PACK.xsd</b> defines the sections used in a <b>*.pdsc</b> file. The current <b>PACK.xsd</b> can be found in the ARM.CMSIS pack in the directory .\CMSIS\Utilities.</p>
<p>The <a class="el" href="packFormat.html">Pack Description (*.pdsc) Format</a> is structured using grouping elements and contains the following top level elements:</p>
<ul>
<li><a class="el" href="pdsc_package_pg.html">&lt;package&gt;</a>: describes package related information like vendor, package name, description, version. Is the root element.</li>
<li><a class="el" href="element_keywords.html">&lt;keywords&gt;</a>: lists keywords to search for packages. Can be used for search engines.</li>
<li><a class="el" href="element_repository.html">&lt;repository&gt;</a>: specifies the URL and repository type of a public repository where the pack originates from.</li>
<li><a class="el" href="element_dominate.html">&lt;dominate&gt;</a>: the pack contains one or more device, API, or component that overrules other packs with identical items.</li>
<li><a class="el" href="element_releases.html">&lt;releases&gt;</a>: lists release versions with descriptions.</li>
<li><a class="el" href="element_requirements_pg.html">&lt;requirements&gt;</a>: lists required packs, compiler, programming language standards and their version or version range.</li>
<li><a class="el" href="element_taxonomy.html">&lt;taxonomy&gt;</a>: lists description elements that define component classes and component group names.</li>
<li><a class="el" href="pdsc_apis_pg.html">&lt;apis&gt;</a>: describes Application Programming Interfaces (API) Specifications contained in the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><a class="el" href="pdsc_generators_pg.html">&lt;generators&gt;</a>: specifies the tools that have been used to generate the PDSC file.</li>
<li><a class="el" href="pdsc_devices_pg.html">&lt;devices&gt;</a>: lists the devices supported by this <a class="el" href="cp_SWComponents.html">Software Pack</a>. It specifies the device attributes and files like flash programming algorithms, CMSIS device header files, CMSIS System View Descriptions, etc.</li>
<li><a class="el" href="pdsc_boards_pg.html">&lt;boards&gt;</a>: lists the development boards supported by the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><a class="el" href="pdsc_conditions_pg.html">&lt;conditions&gt;</a>: defines dependencies to devices, processors, components, and tools that are used within the <a class="el" href="cp_SWComponents.html">Software Pack</a>. It allows making components and files conditional.</li>
<li><a class="el" href="pdsc_components_pg.html">&lt;components&gt;</a>: lists the software components contained in the <a class="el" href="cp_SWComponents.html">Software Pack</a>.</li>
<li><a class="el" href="pdsc_examples_pg.html">&lt;examples&gt;</a>: specifies example projects contained in the PACK.</li>
</ul>
<h1><a class="anchor" id="PDSC_Example"></a>
Example of a *.pdsc File</h1>
<p>This example of a *.pdsc File explains the sections, particularly how dependencies are used to identify individual files of <a class="el" href="cp_SWComponents.html#cp_Components">Software Components</a>.</p>
<div class="image">
<img src="PDSC_Example_top.png" alt="PDSC_Example_top.png"/>
</div>
 <div class="image">
<img src="PDSC_Example_bottom.png" alt="PDSC_Example_bottom.png"/>
<div class="caption">
Example of a *.pdsc File</div></div>
</div></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 Wed Jul 10 2019 15:21:00 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>
