]> begriffs open source - cmsis/blob - dev/v6.0.0-dev84/Toolbox/index.html
Update documentation for release dev/v6.0.0-dev84
[cmsis] / dev / v6.0.0-dev84 / Toolbox / index.html
1 <!-- HTML header for doxygen 1.9.6-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
4 <head>
5 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6 <meta http-equiv="X-UA-Compatible" content="IE=11"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>CMSIS-Toolbox: CMSIS-Toolbox</title>
9 <link href="doxygen.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="tabs.js"></script>
13 <script type="text/javascript" src="footer.js"></script>
14 <script type="text/javascript" src="navtree.js"></script>
15 <link href="navtree.css" rel="stylesheet" type="text/css"/>
16 <script type="text/javascript" src="resize.js"></script>
17 <script type="text/javascript" src="navtreedata.js"></script>
18 <script type="text/javascript" src="navtree.js"></script>
19 <link href="search/search.css" rel="stylesheet" type="text/css"/>
20 <script type="text/javascript" src="search/searchdata.js"></script>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
24   $(document).ready(function() { init_search(); });
25 /* @license-end */
26 </script>
27 <script type="text/javascript" src="darkmode_toggle.js"></script>
28 <link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
29 <link href="extra_navtree.css" rel="stylesheet" type="text/css"/>
30 <link href="extra_search.css" rel="stylesheet" type="text/css"/>
31 <link href="extra_tabs.css" rel="stylesheet" type="text/css"/>
32 <link href="version.css" rel="stylesheet" type="text/css"/>
33 <script type="text/javascript" src="../../version.js"></script>
34 </head>
35 <body>
36 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
37 <div id="titlearea">
38 <table cellspacing="0" cellpadding="0">
39  <tbody>
40  <tr style="height: 55px;">
41   <td id="projectlogo" style="padding: 1.5em;"><img alt="Logo" src="cmsis_logo_white_small.png"/></td>
42   <td style="padding-left: 1em; padding-bottom: 1em;padding-top: 1em;">
43    <div id="projectname">CMSIS-Toolbox
44    </div>
45    <div id="projectbrief">Command line tools for project build with packs</div>
46   </td>
47    <td>        <div id="MSearchBox" class="MSearchBoxInactive">
48         <span class="left">
49           <span id="MSearchSelect"                onmouseover="return searchBox.OnSearchSelectShow()"                onmouseout="return searchBox.OnSearchSelectHide()">&#160;</span>
50           <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
51                onfocus="searchBox.OnSearchFieldFocus(true)" 
52                onblur="searchBox.OnSearchFieldFocus(false)" 
53                onkeyup="searchBox.OnSearchFieldChange(event)"/>
54           </span><span class="right">
55             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
56           </span>
57         </div>
58 </td>
59   <!--END !PROJECT_NAME-->
60  </tr>
61  </tbody>
62 </table>
63 </div>
64 <!-- end header part -->
65 <div id="CMSISnav" class="tabs1">
66   <ul class="tablist">
67     <script type="text/javascript">
68       writeComponentTabs.call(this);
69     </script>
70   </ul>
71 </div>
72 <script type="text/javascript">
73   writeSubComponentTabs.call(this);
74 </script>
75 <!-- Generated by Doxygen 1.9.6 -->
76 <script type="text/javascript">
77 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
78 var searchBox = new SearchBox("searchBox", "search/",'.html');
79 /* @license-end */
80 </script>
81 </div><!-- top -->
82 <div id="side-nav" class="ui-resizable side-nav-resizable">
83   <div id="nav-tree">
84     <div id="nav-tree-contents">
85       <div id="nav-sync" class="sync"></div>
86     </div>
87   </div>
88   <div id="splitbar" style="-moz-user-select:none;" 
89        class="ui-resizable-handle">
90   </div>
91 </div>
92 <script type="text/javascript">
93 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
94 $(document).ready(function(){initNavTree('index.html',''); initResizable(); });
95 /* @license-end */
96 </script>
97 <div id="doc-content">
98 <!-- window showing the filter options -->
99 <div id="MSearchSelectWindow"
100      onmouseover="return searchBox.OnSearchSelectShow()"
101      onmouseout="return searchBox.OnSearchSelectHide()"
102      onkeydown="return searchBox.OnSearchSelectKey(event)">
103 </div>
104
105 <!-- iframe showing the search results (closed by default) -->
106 <div id="MSearchResultsWindow">
107 <div id="MSearchResults">
108 <div class="SRPage">
109 <div id="SRIndex">
110 <div id="SRResults"></div>
111 <div class="SRStatus" id="Loading">Loading...</div>
112 <div class="SRStatus" id="Searching">Searching...</div>
113 <div class="SRStatus" id="NoMatches">No Matches</div>
114 </div>
115 </div>
116 </div>
117 </div>
118
119 <div><div class="header">
120   <div class="headertitle"><div class="title">CMSIS-Toolbox </div></div>
121 </div><!--header-->
122 <div class="contents">
123 <div class="textblock"><p><a class="anchor" id="mainpage"></a> The <b>CMSIS-Toolbox</b> is developed as part of the <a href="https://www.open-cmsis-pack.org/">Open-CMSIS-Pack</a> project in collaboration with Arm, NXP, and STMicroelectronics. It is an integral part of next generation software tools and unifies development flows with popular embedded toolchains (Arm, GCC, IAR, and LLVM compiler).</p>
124 <p>The CMSIS-Toolbox provides command-line tools for:</p>
125 <ul>
126 <li>Project creation and build of embedded applications utilizing <a href="https://www.keil.arm.com/packs/">Software Packs</a> with support for multiple compilation tools.</li>
127 <li>Software Pack creation, maintenance, and distribution utilizing the <a href="https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/index.html">CMSIS-Pack format</a>.</li>
128 </ul>
129 <h1><a class="anchor" id="autotoc_md0"></a>
130 Access to CMSIS-Toolbox</h1>
131 <p>CMSIS-Toolbox is actively maintained in a dedicated GitHub repository and released as a set of binary utilities.</p>
132 <ul>
133 <li><a href="https://github.com/Open-CMSIS-Pack/cmsis-toolbox"><b>CMSIS-Toolbox GitHub Repo</b></a> - contains the source code and releases.</li>
134 <li><a href="https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/README.md"><b>CMSIS-Toolbox User Guide</b></a> - provides user documentation for the CMSIS-Toolbox.</li>
135 </ul>
136 <h1><a class="anchor" id="autotoc_md1"></a>
137 Benefits</h1>
138 <ul>
139 <li>Flexible CLI tools that can be used stand-alone or integrated into <a href="https://marketplace.visualstudio.com/items?itemName=Arm.keil-studio-pack">VS Code</a> or DevOps systems for Continuous Integration (CI).</li>
140 <li>Stand-alone tools that are available for all host platforms (Windows, Mac, Linux) and flexible deployable.</li>
141 <li><a href="https://www.keil.arm.com/packs/">Software Packs</a> simplify tool setup with <code>device:</code> or <code>board:</code> selection and project creation with access to reusable software components.</li>
142 <li>Organize solutions with projects that are independently managed simplifies a wide range of use cases including multi-processor applications or unit testing.</li>
143 <li>Provisions for product lifecycle management (PLM) with versioned software packs that are easy to update and management for configuration files.</li>
144 <li>Software layers enable code reuse across similar applications with a pre-configured set of source files and software components.</li>
145 <li>Multiple hardware targets allow application deployment to different hardware (test board, production hardware, virtual hardware, etc.).</li>
146 <li>Multiple build types support software testing and verification (debug build, test build, release build, ect.).</li>
147 </ul>
148 <h1><a class="anchor" id="autotoc_md2"></a>
149 Project Creation</h1>
150 <p>The following tools support the creation of build information for embedded applications:</p>
151 <table class="markdownTable">
152 <tr class="markdownTableHead">
153 <th class="markdownTableHeadLeft">Tool   </th><th class="markdownTableHeadLeft">Description    </th></tr>
154 <tr class="markdownTableRowOdd">
155 <td class="markdownTableBodyLeft"><b>cpackget</b>   </td><td class="markdownTableBodyLeft"><b>Pack Manager:</b> install and manage software packs in the development environment.    </td></tr>
156 <tr class="markdownTableRowEven">
157 <td class="markdownTableBodyLeft"><b>csolution</b>   </td><td class="markdownTableBodyLeft"><b>Project Manager:</b> create build information for embedded applications that consist of one or more related projects.    </td></tr>
158 <tr class="markdownTableRowOdd">
159 <td class="markdownTableBodyLeft"><b>cbuild</b>   </td><td class="markdownTableBodyLeft"><b>Build Invocation:</b> orchestrate the build steps utilizing CMSIS tools and a CMake compilation process.   </td></tr>
160 </table>
161 <p>The build information is defined with <b>User Input Files</b> in YAML format. It starts with a <code>*.csolution.yml</code> file that refers related, but independent projects defined with <code>*.cproject.yml</code> files. A <code>*.cproject.yml</code> may refer one or more <code>*.clayer.yml</code> files that define re-usable project parts that may be shared across projects.</p>
162 <p>The build information can refer to <b>Software Packs</b> that define Device and Board information and provide access to re-usable software components such as drivers and middleware. A <code>cdefault.yml</code> file provides a common setup for various compilers and generic translation controls enable compiler agonistic projects; compiler toolchain specific controls may be used when required.</p>
163 <p>The <b>Output Files</b> contain detailed build information and manage the configuration files for software components.</p>
164 <p>The diagram below provides an overview of the <b>build information</b> used by the CMSIS-Toolbox.</p>
165 <div class="image">
166 <img src="csolution-overview.png" alt=""/>
167 <div class="caption">
168 Overview of Project Definition</div></div>
169     <h1><a class="anchor" id="autotoc_md3"></a>
170 Software Pack Creation</h1>
171 <p>The following tools support the creation of Software Packs in <a href="https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/index.html"><b>CMSIS-Pack format</b></a>:</p>
172 <table class="markdownTable">
173 <tr class="markdownTableHead">
174 <th class="markdownTableHeadLeft">Tool   </th><th class="markdownTableHeadLeft">Description    </th></tr>
175 <tr class="markdownTableRowOdd">
176 <td class="markdownTableBodyLeft"><b>packchk</b>   </td><td class="markdownTableBodyLeft"><b>Pack Validation:</b> installs and manages software packs in the local development environment.    </td></tr>
177 <tr class="markdownTableRowEven">
178 <td class="markdownTableBodyLeft"><b>svdconv</b>   </td><td class="markdownTableBodyLeft"><b>SVD Check / Convert:</b> validate and/or convert System View Description (SVD) files.   </td></tr>
179 </table>
180 <p>In addition several scripts are provided that simplify pack creation with desktop or cloud workflows. This is described in several hands-on tutorials:</p>
181 <table class="markdownTable">
182 <tr class="markdownTableHead">
183 <th class="markdownTableHeadLeft">Hands-on Tutorial   </th><th class="markdownTableHeadLeft">Description    </th></tr>
184 <tr class="markdownTableRowOdd">
185 <td class="markdownTableBodyLeft"><a href="https://github.com/Open-CMSIS-Pack/SW-Pack-HandsOn"><b>SW-Pack-HandsOn</b></a>   </td><td class="markdownTableBodyLeft">Explains the steps to create a simple software pack using the Open-CMSIS-Pack technology.    </td></tr>
186 <tr class="markdownTableRowEven">
187 <td class="markdownTableBodyLeft"><a href="https://github.com/Open-CMSIS-Pack/DFP-Pack-HandsOn"><b>DFP-Pack-HandsOn</b></a>   </td><td class="markdownTableBodyLeft">Explains the structure and creation of a Device Family Pack (DFP).    </td></tr>
188 <tr class="markdownTableRowOdd">
189 <td class="markdownTableBodyLeft"><a href="https://github.com/Open-CMSIS-Pack/DFP-Pack-HandsOn"><b>BSP-Pack-HandsOn</b></a>   </td><td class="markdownTableBodyLeft">Explains the structure and creation of a Board Support Pack (BSP).   </td></tr>
190 </table>
191 </div></div><!-- PageDoc -->
192 </div><!-- contents -->
193 </div><!-- doc-content -->
194 <!-- start footer part -->
195 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
196   <ul>
197     <li class="footer">
198       <script type="text/javascript">
199         <!--
200         writeFooter.call(this);
201         //-->
202       </script> 
203     </li>
204   </ul>
205 </div>
206 </body>
207 </html>