cprjFormat_pg.html 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>Project Description (*.cprj) Format</title>
  7. <title>CMSIS-Build: Project Description (*.cprj) Format</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <link href="cmsis.css" rel="stylesheet" type="text/css" />
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <script type="text/javascript" src="printComponentTabs.js"></script>
  13. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  14. <script type="text/javascript" src="resize.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. $(window).load(resizeHeight);
  19. </script>
  20. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  21. <script type="text/javascript" src="search/search.js"></script>
  22. <script type="text/javascript">
  23. $(document).ready(function() { searchBox.OnSelectItem(0); });
  24. </script>
  25. </head>
  26. <body>
  27. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  28. <div id="titlearea">
  29. <table cellspacing="0" cellpadding="0">
  30. <tbody>
  31. <tr style="height: 46px;">
  32. <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  33. <td style="padding-left: 0.5em;">
  34. <div id="projectname">CMSIS-Build
  35. &#160;<span id="projectnumber">Version 0.9.0 (beta)</span>
  36. </div>
  37. <div id="projectbrief">Tools, software frameworks, and work flows for productivity with CMSIS based projects</div>
  38. </td>
  39. </tr>
  40. </tbody>
  41. </table>
  42. </div>
  43. <!-- end header part -->
  44. <div id="CMSISnav" class="tabs1">
  45. <ul class="tablist">
  46. <script type="text/javascript">
  47. <!--
  48. writeComponentTabs.call(this);
  49. //-->
  50. </script>
  51. </ul>
  52. </div>
  53. <!-- Generated by Doxygen 1.8.6 -->
  54. <script type="text/javascript">
  55. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  56. </script>
  57. <div id="navrow1" class="tabs">
  58. <ul class="tablist">
  59. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  60. <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
  61. <li>
  62. <div id="MSearchBox" class="MSearchBoxInactive">
  63. <span class="left">
  64. <img id="MSearchSelect" src="search/mag_sel.png"
  65. onmouseover="return searchBox.OnSearchSelectShow()"
  66. onmouseout="return searchBox.OnSearchSelectHide()"
  67. alt=""/>
  68. <input type="text" id="MSearchField" value="Search" accesskey="S"
  69. onfocus="searchBox.OnSearchFieldFocus(true)"
  70. onblur="searchBox.OnSearchFieldFocus(false)"
  71. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  72. </span><span class="right">
  73. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  74. </span>
  75. </div>
  76. </li>
  77. </ul>
  78. </div>
  79. </div><!-- top -->
  80. <div id="side-nav" class="ui-resizable side-nav-resizable">
  81. <div id="nav-tree">
  82. <div id="nav-tree-contents">
  83. <div id="nav-sync" class="sync"></div>
  84. </div>
  85. </div>
  86. <div id="splitbar" style="-moz-user-select:none;"
  87. class="ui-resizable-handle">
  88. </div>
  89. </div>
  90. <script type="text/javascript">
  91. $(document).ready(function(){initNavTree('cprjFormat_pg.html','');});
  92. </script>
  93. <div id="doc-content">
  94. <!-- window showing the filter options -->
  95. <div id="MSearchSelectWindow"
  96. onmouseover="return searchBox.OnSearchSelectShow()"
  97. onmouseout="return searchBox.OnSearchSelectHide()"
  98. onkeydown="return searchBox.OnSearchSelectKey(event)">
  99. <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>
  100. <!-- iframe showing the search results (closed by default) -->
  101. <div id="MSearchResultsWindow">
  102. <iframe src="javascript:void(0)" frameborder="0"
  103. name="MSearchResults" id="MSearchResults">
  104. </iframe>
  105. </div>
  106. <div class="header">
  107. <div class="headertitle">
  108. <div class="title">Project Description (*.cprj) Format </div> </div>
  109. </div><!--header-->
  110. <div class="contents">
  111. <div class="textblock"><h1><a class="anchor" id="section_overview"></a>
  112. Overview</h1>
  113. <p>The CMSIS Project description format is unifying the specification for the build of a software project. It is a public format to exchange project build information between tools that support the CMSIS-Pack based Run-Time Environment. In addition the format facilitates the tool driven construction of projects from partial projects, named project 'layers'. The project description is targeted to generate a single executable or library file.</p>
  114. <p>The specification of this CMSIS Project description format (*.cprj) is replacing the previous format (*.cpdsc). The most significant differences are:</p>
  115. <ul>
  116. <li>a new format specification which is independent from the CMSIS-Pack schema.</li>
  117. <li>the scope of the description is limited to building a single application or library (no debugger setup).</li>
  118. <li>the support of toolchain specific command line options applied to the whole project, individual components, file groups or file level.</li>
  119. <li>the ability to divide projects into layers, which can be extracted from and added to projects.</li>
  120. </ul>
  121. <h1><a class="anchor" id="section_layer"></a>
  122. Introduction of Layers</h1>
  123. <p>One example is the separation of an existing project into files and components that are HW dependent (board, device, processor) and those that are application specific. The result is a HW and an application layer. Assuming that there is layers for multiple boards and applications sharing common interfaces between layers, any combination of HW laywer with an application layer can be combined to create projects and build consistent applications across a range of hardware.</p>
  124. <h1><a class="anchor" id="section_varieties"></a>
  125. Varieties of a build</h1>
  126. <p>Due to CMSIS-Pack's software lifecycle management features, projects can be build using different combinations of compatible pack and component versions. as well as different versions of a tool-chain. If the project contains descriptions for multiple different tool-chains, also different tool-chains can be used to create additional build variants.</p>
  127. <p>The build system needs the following pieces of information to successfully build a project:</p>
  128. <ul>
  129. <li>CMSIS-Packs used by project for component definitions and attributes of the targeted device.</li>
  130. <li>Tool-chain name and version.</li>
  131. <li>Target information including device vendor + name and enabled device features as well as additional command line options for the active tool-chain (C/C++ compiler, assembler, linker or librarian).</li>
  132. <li>Component selection and configuration file information.</li>
  133. <li>Files which are local to the project to be used by the build engine.</li>
  134. <li>RTE folder containing preconfigured component configuration files.</li>
  135. </ul>
  136. <p>Note: additional command line options for the tool-chains are tool-chain specific and are transparently passed onto the command line. Command line options related to the processor and it's features are automatically derived from the device information and must not be specified.</p>
  137. <p>&#160;</p>
  138. <hr/>
  139. <p>See <a class="el" href="element_cprj.html">Project Description Root</a> for details about the description format..</p>
  140. <p>See <a class="el" href="CmdLineBuild.html">CMSIS-Build</a> for further information how to build software based on the CMSIS Project description at the command line and how to create and manage projects using layers.</p>
  141. <p>See <a class="el" href="projectDescriptionSchema.html">Project Description Schema file</a> for validation of project files. </p>
  142. </div></div><!-- contents -->
  143. </div><!-- doc-content -->
  144. <!-- start footer part -->
  145. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  146. <ul>
  147. <li class="footer">Generated on Thu Apr 9 2020 15:49:55 for CMSIS-Build Version 0.9.0 (beta) by Arm Ltd. All rights reserved.
  148. <!--
  149. <a href="http://www.doxygen.org/index.html">
  150. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
  151. -->
  152. </li>
  153. </ul>
  154. </div>
  155. </body>
  156. </html>