configWizard.html 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  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>Configuration Wizard Annotations</title>
  7. <title>CMSIS-Pack: Configuration Wizard Annotations</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-Pack
  35. &#160;<span id="projectnumber">Version 1.6.3</span>
  36. </div>
  37. <div id="projectbrief">Delivery Mechanism for Software Packs</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('configWizard.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">Configuration Wizard Annotations </div> </div>
  109. </div><!--header-->
  110. <div class="contents">
  111. <div class="textblock"><h1><a class="anchor" id="configWizard_annotations"></a>
  112. Annotation Rules</h1>
  113. <p><b>Configuration Wizard Annotations</b> consist of annotation items and annotation modifiers. They create GUI-like elements in IDEs for configuration files (see <a class="el" href="configWizard.html#configWizard_display">Tool-specific display</a>). Using a GUI-like approach makes it easier for the user to check and adapt configuration files to the application needs. The following rules apply:</p>
  114. <ul>
  115. <li>The Configuration Wizard section must begin within the first 100 lines of code and must start with the following comment line: <div class="fragment"><div class="line"><span class="comment">// &lt;&lt;&lt; Use Configuration Wizard in Context Menu &gt;&gt;&gt;</span></div>
  116. </div><!-- fragment --></li>
  117. <li>The Configuration Wizard section can end with the following optional comment: <div class="fragment"><div class="line"><span class="comment">// &lt;&lt;&lt; end of configuration section &gt;&gt;&gt;</span></div>
  118. </div><!-- fragment --></li>
  119. <li>Annotations are written as comments in the code. Each annotation line must start with a double forward slash (//).</li>
  120. <li>By default, the next code symbol that follows the annotation is modified.</li>
  121. <li>Items marked with * in the table below can be followed by a skip-value. A skip-value omits a number of code symbols (see <em>skip example</em> in table). This overwrites the previous rule.</li>
  122. <li>A descriptive text can be added to items. This text is displayed on screen (see table).</li>
  123. <li>Whitespace characters are ignored in annotation items or annotation modifiers (text excluded).</li>
  124. <li>You must not use &lt; or &gt; within configuration wizard lines other than for enclosing annotation items.</li>
  125. </ul>
  126. <p>The following table lists the Configuration Wizard Annotations:</p>
  127. <table class="cmtable" summary="Annotations Tab">
  128. <tr>
  129. <th>Item </th><th>Text </th><th>Description </th></tr>
  130. <tr>
  131. <td>&lt;h&gt; </td><td>yes </td><td>Heading. Creates a header section. All items and options enclosed by &lt;h&gt; and &lt;/h&gt; belong to one group and can be expanded. This entry makes no changes to code symbols. It is just used to group other items and modifiers. <br/>
  132. Excerpt from the <a class="el" href="configWizard.html#configWizard_codeExample">Code Example</a> <div class="fragment"><div class="line"><span class="comment">// &lt;h&gt;Thread Configuration -- header without checkbox to group other items</span></div>
  133. <div class="line"><span class="comment">// ...</span></div>
  134. <div class="line"><span class="comment">// &lt;/h&gt;</span></div>
  135. </div><!-- fragment --> Is the header entry as shown in <a class="el" href="configWizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
  136. <tr>
  137. <td>&lt;e&gt;<sup>*</sup> </td><td>yes </td><td>Heading with enable. Creates a header section with a checkbox to enabled or disabled all items and options enclosed by &lt;e&gt; and &lt;/e&gt;. Excerpt from the <a class="el" href="configWizard.html#configWizard_codeExample">Code Example</a>. <div class="fragment"><div class="line"><span class="comment">// &lt;e&gt;Round-Robin Thread switching -- header with checkbox</span></div>
  138. <div class="line"><span class="comment">// ===============================</span></div>
  139. <div class="line"><span class="comment">//</span></div>
  140. <div class="line"><span class="comment">// &lt;i&gt; Enables Round-Robin Thread switching. -- tooltip information for the header</span></div>
  141. <div class="line"><span class="preprocessor">#ifndef OS_ROBIN</span></div>
  142. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ROBIN 1 -- this value is set through the checkbox</span></div>
  143. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  144. <div class="line"><span class="preprocessor"></span><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt;</span></div>
  145. <div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch.</span></div>
  146. <div class="line"><span class="comment">// &lt;i&gt; Default: 5</span></div>
  147. <div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
  148. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ROBINTOUT 5</span></div>
  149. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  150. <div class="line"><span class="preprocessor">// &lt;/e&gt;</span></div>
  151. </div><!-- fragment --> The entry <code>&lt;e&gt;Round-Robin Thread switching ... &lt;/e&gt;</code> sets OS_ROBIN to <span class="XML-Token">1</span> (checkbox enabled) or <span class="XML-Token">0</span> (checkbox disabled) and encloses the <em>OS_ROBINTOUT</em> (Round-Robin Timeout) setting. See screen outcome in <a class="el" href="configWizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
  152. <tr>
  153. <td>&lt;e.<em>i</em>&gt;<sup>*</sup> </td><td>yes </td><td>Heading with Enable: modifies a specific bit (<em>i</em>) (example: &lt;e.4&gt; - changes bit 4 of a value). <div class="fragment"><div class="line"><span class="comment">// &lt;e.4&gt;Serial Number</span></div>
  154. <div class="line"><span class="comment">// &lt;i&gt;Enable Serial Number String.</span></div>
  155. <div class="line"><span class="comment">// &lt;i&gt;If disabled, Serial Number String will not be assigned to USB Device.</span></div>
  156. <div class="line"><span class="preprocessor">#define USBD0_STR_DESC_SER_EN 1</span></div>
  157. </div><!-- fragment --> The example creates the heading <span class="XML-Token">Serial Number</span> and a checkbox to set the value. If enabled, then bit 4 of <span class="XML-Token">USBD0_STR_DESC_SER_EN</span> is set. </td></tr>
  158. <tr>
  159. <td>&lt;/h&gt;, &lt;/e&gt;, or &lt;/c&gt; </td><td>yes </td><td>Heading, Enable, or Comment end. </td></tr>
  160. <tr>
  161. <td>&lt;n&gt; </td><td>yes </td><td>Notification text displayed <div class="fragment"><div class="line"><span class="comment">// &lt;n&gt; This is shown as plain text</span></div>
  162. </div><!-- fragment --> </td></tr>
  163. <tr>
  164. <td>&lt;i&gt; </td><td>yes </td><td>Tooltip help for previous item. <div class="fragment"><div class="line"><span class="comment">// &lt;i&gt;This is shown as a tooltip when hovering over a text.</span></div>
  165. </div><!-- fragment --> Many examples in this table have tooltip examples. </td></tr>
  166. <tr>
  167. <td>&lt;c&gt;<sup>*</sup> </td><td>yes </td><td>Code enable: creates a checkbox to uncomment or comment code. All lines, including those with white spaces, get commented with double slashes (//) at the first found character when you disable the checkbox. <div class="fragment"><div class="line"><span class="comment">// &lt;c1&gt; Comment sequence block until block end when disabled</span></div>
  168. <div class="line"><span class="comment">//&lt;i&gt; This may carry the block&#39;s description</span></div>
  169. <div class="line"></div>
  170. <div class="line">foo</div>
  171. <div class="line"></div>
  172. <div class="line">+bar</div>
  173. <div class="line"></div>
  174. <div class="line">-xFoo</div>
  175. <div class="line"><span class="comment">// &lt;/c&gt;</span></div>
  176. </div><!-- fragment --> In this example, the item is enabled, so that the sequence block is not commented. </td></tr>
  177. <tr>
  178. <td>&lt;!c&gt;<sup>*</sup> </td><td>yes </td><td>Code disable: creates a checkbox to comment or uncomment code. All lines, including those with white spaces, get commented with double slashes (//) at the first found character when you enable the checkbox. <div class="fragment"><div class="line"><span class="comment">// &lt;!c1&gt; Comment sequence block until block end when enabled</span></div>
  179. <div class="line"><span class="comment">//&lt;i&gt; This may carry the block&#39;s description</span></div>
  180. <div class="line"><span class="comment">//</span></div>
  181. <div class="line"><span class="comment">//foo</span></div>
  182. <div class="line"><span class="comment">//</span></div>
  183. <div class="line"><span class="comment">//+bar</span></div>
  184. <div class="line"><span class="comment">//</span></div>
  185. <div class="line"><span class="comment">//-xFoo</span></div>
  186. <div class="line"><span class="comment">// &lt;/c&gt;</span></div>
  187. </div><!-- fragment --> In this example, the item is enabled, so that the sequence block is commented. </td></tr>
  188. <tr>
  189. <td>&lt;q&gt;<sup>*</sup> </td><td>yes </td><td>Option for bit values which can be set via a checkbox. <div class="fragment"><div class="line"><span class="comment">// &lt;h&gt; Chip-select control</span></div>
  190. <div class="line"><span class="comment">// &lt;q&gt; ASYNCWAIT: Wait signal during asynchronous transfer</span></div>
  191. <div class="line"><span class="comment">// &lt;i&gt; Enables the FSMC to use the wait signal even during an asynchronous protocol.</span></div>
  192. <div class="line"><span class="comment">// &lt;/h&gt;</span></div>
  193. <div class="line"><span class="preprocessor">#define RTE_FSMC_BCR1_ASYNCWAIT 0 -- this is changed via a checkbox</span></div>
  194. </div><!-- fragment --> </td></tr>
  195. <tr>
  196. <td>&lt;o&gt;<sup>*</sup> </td><td>yes </td><td>Option with selection or number entry. <div class="fragment"><div class="line"><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt; -- text displayed on screen. Range of [ticks] is [1..1000] </span></div>
  197. <div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch. -- tooltip info</span></div>
  198. <div class="line"><span class="comment">// &lt;i&gt; Default: 5 -- tooltip info. Both displayed in one tooltip.</span></div>
  199. <div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
  200. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ROBINTOUT 5</span></div>
  201. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  202. <div class="line"><span class="preprocessor">// &lt;/e&gt;</span></div>
  203. </div><!-- fragment --> The example creates an option with the text <span class="XML-Token">Round-Robin Timeout [ticks]</span> and a field to enter values that can range between {1..1000]. </td></tr>
  204. <tr>
  205. <td>&lt;o <em>key-identifier</em>&gt;<sup>* (new!)</sup> </td><td>yes </td><td><p class="starttd">Option with identifier selection replacing the identifier after the specified key-identifier: </p>
  206. <div class="fragment"><div class="line"><span class="comment">// &lt;o TIMESTAMP_SRC&gt;Time Stamp Source</span></div>
  207. <div class="line"><span class="comment">// &lt;dwt=&gt; DWT Cycle Counter</span></div>
  208. <div class="line"><span class="comment">// &lt;systick=&gt; SysTick</span></div>
  209. <div class="line"><span class="comment">// &lt;user=&gt; User Timer </span></div>
  210. <div class="line"><span class="comment">// &lt;i&gt;Selects source for 32-bit time stamp</span></div>
  211. <div class="line"><span class="preprocessor">#define TIMESTAMP_SRC dwt</span></div>
  212. </div><!-- fragment --><p> The example creates an option with the text <span class="XML-Token">Time Stamp Source</span> and a drop down-list showing the text items <span class="XML-Token">DWT Cycle Counter</span>, <span class="XML-Token">SysTick</span> and <span class="XML-Token">User Timer</span>. The corresponding identifier within the tag &lt;...=&gt; will be used for replacement.</p>
  213. <p class="endtd">Use case for an assignment of an enumeration to a variable: </p>
  214. <div class="fragment"><div class="line"><span class="comment">// &lt;o redPortMode&gt; Red port mode </span></div>
  215. <div class="line"><span class="comment">// &lt;OutPushPull_GPIO=&gt; PushPull</span></div>
  216. <div class="line"><span class="comment">// &lt;OutOpenDrain_GPIO=&gt; OpenDrain</span></div>
  217. <div class="line"><span class="comment">// &lt;i&gt;Selects GPIO output</span></div>
  218. <div class="line">ledConf.redPortMode = OutOpenDrain_GPIO;</div>
  219. </div><!-- fragment --><p> The example creates an option with the text <span class="XML-Token">Red port mode</span> and a drop down-list showing the text items <span class="XML-Token">PushPull</span> and <span class="XML-Token">OpenDrain</span>. The corresponding identifier <span class="XML-Token">OutPushPull_GPIO</span> or <span class="XML-Token">OutOpenDrain_GPIO</span> will be used to replace the identifier after the key-identifier <span class="XML-Token">redPortMode</span>. </p>
  220. </td></tr>
  221. <tr>
  222. <td>&lt;o.<em>i</em>&gt;<sup>*</sup> </td><td>yes </td><td>Modify a single bit (example: &lt;e.4&gt; - modifies bit 4). <div class="fragment"><div class="line"><span class="comment">// &lt;o.4&gt; &lt;o.0&gt;High-speed</span></div>
  223. <div class="line"><span class="comment">// &lt;i&gt;Enable High-speed functionality (if device supports it).</span></div>
  224. <div class="line"><span class="preprocessor">#define USBD0_HS 0</span></div>
  225. </div><!-- fragment --> The example creates a heading with the text <span class="XML-Token">High-speed</span> and a checkbox. If enabled, then bit 4 of <span class="XML-Token">USBD0_HS</span> is set. </td></tr>
  226. <tr>
  227. <td>&lt;o.<em>x</em>..<em>y</em>&gt;<sup>*</sup> </td><td>yes </td><td>Modify a range of bits. (example: &lt;o.4..5&gt; - bit 4 to 5). <div class="fragment"><div class="line"><span class="comment">// &lt;h&gt;String Settings</span></div>
  228. <div class="line"><span class="comment">// &lt;i&gt;These settings are used to create the String Descriptor.</span></div>
  229. <div class="line"><span class="comment">// &lt;o.0..15&gt;Language ID &lt;0x0000-0xFCFF&gt;</span></div>
  230. <div class="line"><span class="comment">// &lt;i&gt;English (United States) = 0x0409.</span></div>
  231. <div class="line"><span class="comment">// &lt;/h&gt;</span></div>
  232. <div class="line"><span class="preprocessor">#define USBD0_STR_DESC_LANGID 0x0409</span></div>
  233. </div><!-- fragment --> This example creates an expandable header with the text <span class="XML-Token">String Settings</span> and an option <span class="XML-Token">Language ID</span>. The range of values is set to <span class="XML-Token">&lt;0x0000-0xFCFF&gt;</span>. Users can enter a value from within that range. The option changes the bits <span class="XML-Token">0..15</span>. </td></tr>
  234. <tr>
  235. <td>&lt;s&gt;<sup>*</sup> </td><td>yes </td><td>Option with ASCII string entry. <div class="fragment"><div class="line"><span class="comment">// &lt;s&gt;Manufacturer String</span></div>
  236. <div class="line"><span class="comment">// &lt;i&gt;String Descriptor describing Manufacturer.</span></div>
  237. <div class="line"><span class="preprocessor">#define USBD0_STR_DESC_MAN L&quot;Keil Software&quot;</span></div>
  238. </div><!-- fragment --> Displays an option with the text <span class="XML-Token">Manufacturer String</span> and creates a field in which the user can enter a text. The size of the string is not limited. </td></tr>
  239. <tr>
  240. <td>&lt;s.<em>i</em>&gt;<sup>*</sup> </td><td>yes </td><td>Option with ASCII string entry and a size limit of <em>i</em> characters. <div class="fragment"><div class="line"><span class="comment">// &lt;s.126&gt;Manufacturer String</span></div>
  241. <div class="line"><span class="comment">// &lt;i&gt;String Descriptor describing Manufacturer.</span></div>
  242. <div class="line"><span class="preprocessor">#define USBD0_STR_DESC_MAN L&quot;Keil Software&quot;</span></div>
  243. </div><!-- fragment --> The example sets a size limit of 126 character. Default string is "Keil Software". </td></tr>
  244. <tr>
  245. <td><em>skip example</em> <br/>
  246. &lt;q<em>i&gt;</em>; <br/>
  247. &lt;o<em>i&gt;</em>; &lt;o<em>i</em>.<em>x&gt;</em>; <br/>
  248. &lt;s<em>i&gt;</em>; &lt;s<em>i</em>.<em>x&gt;</em> </td><td>yes </td><td>Skip <em>i</em> items. Can be applied to all annotation items marked with a * in this table. <div class="fragment"><div class="line"><span class="comment">// &lt;o2&gt;Skip 2 and modify the third item after this entry &lt;1-9&gt;</span></div>
  249. <div class="line"><span class="preprocessor">#define VALUE1 1000</span></div>
  250. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#define VALUE2 2000</span></div>
  251. <div class="line"><span class="preprocessor">#define MODIFY_THIS 3000</span></div>
  252. </div><!-- fragment --> The example skips 2 items and modifies the third. </td></tr>
  253. <tr>
  254. <th>Modifier </th><th>&#160; </th><th>Description </th></tr>
  255. <tr>
  256. <td>&lt;0-31&gt; </td><td>no </td><td>Value range for option fields. </td></tr>
  257. <tr>
  258. <td>&lt;0-100:10&gt; </td><td>no </td><td>Value range for option fields with step 10. </td></tr>
  259. <tr>
  260. <td>&lt;0x40-0x1000:0x10&gt; </td><td>no </td><td>Value range in hex format and step 10. </td></tr>
  261. <tr>
  262. <td>&lt;<em>value</em>=&gt; </td><td>yes </td><td>Creates a drop down-list and displays the <em><b>text</b></em>. <em><b>value</b></em> is written to the next item. Excerpt from the <a class="el" href="configWizard.html#configWizard_codeExample">Code Example</a>. <div class="fragment"><div class="line"><span class="comment">// &lt;o&gt;Timer Thread Priority -- creates a drop-down with the list below.</span></div>
  263. <div class="line"><span class="comment">// &lt;1=&gt; Low</span></div>
  264. <div class="line"><span class="comment">// &lt;2=&gt; Below Normal &lt;3=&gt; Normal &lt;4=&gt; Above Normal</span></div>
  265. <div class="line"><span class="comment">// &lt;5=&gt; High</span></div>
  266. <div class="line"><span class="comment">// &lt;6=&gt; Realtime (highest)</span></div>
  267. <div class="line"><span class="comment">// &lt;i&gt; Defines priority for Timer Thread -- tooltip info</span></div>
  268. <div class="line"><span class="comment">// &lt;i&gt; Default: High -- tooltip info</span></div>
  269. <div class="line"><span class="preprocessor">#ifndef OS_TIMERPRIO</span></div>
  270. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_TIMERPRIO 5</span></div>
  271. <div class="line"><span class="preprocessor">#endif</span></div>
  272. </div><!-- fragment --> In this example, the screen would show the option <span class="XML-Token">Timer Thread Priority</span>. The field Value would display the text <span class="XML-Token">High</span>. OS_TIMERPRIO is set to <span class="XML-Token">5</span>. When clicking on the field, a drop-down would show all options. See <a class="el" href="configWizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
  273. <tr>
  274. <td>&lt;<em>identifier</em>=&gt; </td><td>yes </td><td>Creates a drop down-list and displays the <em><b>text</b></em> following the definition of the identifiers <span class="XML-Token">dwt</span>, <span class="XML-Token">systick</span> and <span class="XML-Token">user</span>. Note that this must only be used in the context of &lt;o key-identifier&gt;! The <em><b>identifier</b></em> corresponding to the selected text replaces the identifier following the key-identifier specified by the &lt;o ...&gt; tag. <div class="fragment"><div class="line"><span class="comment">// &lt;o TIMESTAMP_SRC&gt;Time Stamp Source</span></div>
  275. <div class="line"><span class="comment">// &lt;dwt=&gt; DWT Cycle Counter</span></div>
  276. <div class="line"><span class="comment">// &lt;systick=&gt; SysTick</span></div>
  277. <div class="line"><span class="comment">// &lt;user=&gt; User Timer </span></div>
  278. <div class="line"><span class="comment">// &lt;i&gt;Selects source for 32-bit time stamp</span></div>
  279. <div class="line"><span class="preprocessor">#define TIMESTAMP_SRC dwt</span></div>
  280. </div><!-- fragment --> In this example, the screen would show the option <span class="XML-Token">Time Stamp Source</span>. The field value would display the text <span class="XML-Token">DWT Cycle Counter</span>. TIMESTAMP_SRC is set to <span class="XML-Token">dwt</span>. When clicking on the field, a drop-down would show all options. See <a class="el" href="configWizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
  281. <tr>
  282. <td>&lt;#+1&gt;&#160;&#160; &lt;#-1&gt;<br/>
  283. &lt;#*8&gt;&#160;&#160; &lt;#/3&gt; </td><td>no </td><td>Modifies the entered or displayed value according to the operator (add, sub, mul, div). The changed value is set for the code symbol. <br/>
  284. Excerpt from <a class="el" href="configWizard.html#configWizard_codeExample">Code Example</a>. <div class="fragment"><div class="line"><span class="comment">// &lt;o&gt;Default Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
  285. <div class="line"><span class="comment">// &lt;i&gt; Defines default stack size for threads with osThreadDef stacksz = 0</span></div>
  286. <div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
  287. <div class="line"><span class="preprocessor">#ifndef OS_STKSIZE</span></div>
  288. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_STKSIZE 50</span></div>
  289. <div class="line"><span class="preprocessor">#endif</span></div>
  290. </div><!-- fragment --> The option <em>Default Thread stack size [bytes]</em> accepts values in the range <span class="XML-Token">[64..4096]</span>. The value (here <span class="XML-Token">200</span>) set in the field is divided by <span class="XML-Token">4</span> (&lt;#/4&gt;) . The result of the division (200/4) is put into the code symbol <em>OS_STKSIZE</em>, which was set to <span class="XML-Token">50</span>. The screen will display the number <span class="XML-Token">200</span>. See <a class="el" href="configWizard.html#configWizard_display">Tool-specific display</a>. </td></tr>
  291. </table>
  292. <h1><a class="anchor" id="configWizard_codeExample"></a>
  293. Code Example</h1>
  294. <p>You can copy the code into a C-file and check the outcome in the uVision Editor.</p>
  295. <div class="fragment"><div class="line"><span class="comment">//-------- &lt;&lt;&lt; Use Configuration Wizard in Context Menu &gt;&gt;&gt; -----------------</span></div>
  296. <div class="line"><span class="comment">//</span></div>
  297. <div class="line"><span class="comment">// &lt;h&gt;Thread Configuration</span></div>
  298. <div class="line"><span class="comment">// =======================</span></div>
  299. <div class="line"><span class="comment">//</span></div>
  300. <div class="line"><span class="comment">// &lt;o&gt;Number of concurrent running threads &lt;0-250&gt;</span></div>
  301. <div class="line"><span class="comment">// &lt;i&gt; Defines max. number of threads that will run at the same time.</span></div>
  302. <div class="line"><span class="comment">// &lt;i&gt; Default: 6</span></div>
  303. <div class="line"><span class="preprocessor">#ifndef OS_TASKCNT</span></div>
  304. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TASKCNT 6</span></div>
  305. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  306. <div class="line"><span class="preprocessor"></span></div>
  307. <div class="line"><span class="comment">// &lt;o&gt;Default Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
  308. <div class="line"><span class="comment">// &lt;i&gt; Defines default stack size for threads with osThreadDef stacksz = 0</span></div>
  309. <div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
  310. <div class="line"><span class="preprocessor">#ifndef OS_STKSIZE</span></div>
  311. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_STKSIZE 50</span></div>
  312. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  313. <div class="line"><span class="preprocessor"></span></div>
  314. <div class="line"><span class="comment">// &lt;o&gt;Main Thread stack size [bytes] &lt;64-32768:8&gt;&lt;#/4&gt;</span></div>
  315. <div class="line"><span class="comment">// &lt;i&gt; Defines stack size for main thread.</span></div>
  316. <div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
  317. <div class="line"><span class="preprocessor">#ifndef OS_MAINSTKSIZE</span></div>
  318. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_MAINSTKSIZE 50</span></div>
  319. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  320. <div class="line"><span class="preprocessor"></span></div>
  321. <div class="line"><span class="comment">// &lt;o&gt;Number of threads with user-provided stack size &lt;0-250&gt;</span></div>
  322. <div class="line"><span class="comment">// &lt;i&gt; Defines the number of threads with user-provided stack size.</span></div>
  323. <div class="line"><span class="comment">// &lt;i&gt; Default: 0</span></div>
  324. <div class="line"><span class="preprocessor">#ifndef OS_PRIVCNT</span></div>
  325. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_PRIVCNT 0</span></div>
  326. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  327. <div class="line"><span class="preprocessor"></span></div>
  328. <div class="line"><span class="comment">// &lt;o&gt;Total stack size [bytes] for threads with user-provided stack size &lt;0-1048576:8&gt;&lt;#/4&gt;</span></div>
  329. <div class="line"><span class="comment">// &lt;i&gt; Defines the combined stack size for threads with user-provided stack size.</span></div>
  330. <div class="line"><span class="comment">// &lt;i&gt; Default: 0</span></div>
  331. <div class="line"><span class="preprocessor">#ifndef OS_PRIVSTKSIZE</span></div>
  332. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_PRIVSTKSIZE 0</span></div>
  333. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  334. <div class="line"><span class="preprocessor"></span></div>
  335. <div class="line"><span class="comment">// &lt;q&gt;Check for stack overflow</span></div>
  336. <div class="line"><span class="comment">// &lt;i&gt; Includes the stack checking code for stack overflow.</span></div>
  337. <div class="line"><span class="comment">// &lt;i&gt; Note that additional code reduces the Kernel performance.</span></div>
  338. <div class="line"><span class="preprocessor">#ifndef OS_STKCHECK</span></div>
  339. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_STKCHECK 1</span></div>
  340. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  341. <div class="line"><span class="preprocessor"></span></div>
  342. <div class="line"><span class="comment">// &lt;o&gt;Processor mode for thread execution </span></div>
  343. <div class="line"><span class="comment">// &lt;0=&gt; Unprivileged mode </span></div>
  344. <div class="line"><span class="comment">// &lt;1=&gt; Privileged mode</span></div>
  345. <div class="line"><span class="comment">// &lt;i&gt; Default: Privileged mode</span></div>
  346. <div class="line"><span class="preprocessor">#ifndef OS_RUNPRIV</span></div>
  347. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_RUNPRIV 1</span></div>
  348. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  349. <div class="line"><span class="preprocessor"></span></div>
  350. <div class="line"><span class="comment">// &lt;/h&gt;</span></div>
  351. <div class="line"></div>
  352. <div class="line"><span class="comment">// &lt;h&gt;RTX Kernel Timer Tick Configuration</span></div>
  353. <div class="line"><span class="comment">// ======================================</span></div>
  354. <div class="line"><span class="comment">// &lt;q&gt; Use Cortex-M SysTick timer as RTX Kernel Timer</span></div>
  355. <div class="line"><span class="comment">// &lt;i&gt; Use the Cortex-M SysTick timer as a time-base for RTX.</span></div>
  356. <div class="line"><span class="preprocessor">#ifndef OS_SYSTICK</span></div>
  357. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_SYSTICK 1</span></div>
  358. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  359. <div class="line"><span class="preprocessor"></span><span class="comment">//</span></div>
  360. <div class="line"><span class="comment">// &lt;o&gt;Timer clock value [Hz] &lt;1-1000000000&gt;</span></div>
  361. <div class="line"><span class="comment">// &lt;i&gt; Defines the timer clock value.</span></div>
  362. <div class="line"><span class="comment">// &lt;i&gt; Default: 12000000 (12MHz)</span></div>
  363. <div class="line"><span class="preprocessor">#ifndef OS_CLOCK</span></div>
  364. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_CLOCK 12000000</span></div>
  365. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  366. <div class="line"><span class="preprocessor"></span></div>
  367. <div class="line"><span class="comment">// &lt;o&gt;Timer tick value [us] &lt;1-1000000&gt;</span></div>
  368. <div class="line"><span class="comment">// &lt;i&gt; Defines the timer tick value.</span></div>
  369. <div class="line"><span class="comment">// &lt;i&gt; Default: 1000 (1ms)</span></div>
  370. <div class="line"><span class="preprocessor">#ifndef OS_TICK</span></div>
  371. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TICK 1000</span></div>
  372. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  373. <div class="line"><span class="preprocessor"></span></div>
  374. <div class="line"><span class="comment">// &lt;/h&gt;</span></div>
  375. <div class="line"></div>
  376. <div class="line"><span class="comment">// &lt;h&gt;System Configuration</span></div>
  377. <div class="line"><span class="comment">// =======================</span></div>
  378. <div class="line"><span class="comment">//</span></div>
  379. <div class="line"><span class="comment">// &lt;e&gt;Round-Robin Thread switching</span></div>
  380. <div class="line"><span class="comment">// ===============================</span></div>
  381. <div class="line"><span class="comment">//</span></div>
  382. <div class="line"><span class="comment">// &lt;i&gt; Enables Round-Robin Thread switching.</span></div>
  383. <div class="line"><span class="preprocessor">#ifndef OS_ROBIN</span></div>
  384. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_ROBIN 1</span></div>
  385. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  386. <div class="line"><span class="preprocessor"></span></div>
  387. <div class="line"><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt;</span></div>
  388. <div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch.</span></div>
  389. <div class="line"><span class="comment">// &lt;i&gt; Default: 5</span></div>
  390. <div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
  391. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_ROBINTOUT 5</span></div>
  392. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  393. <div class="line"><span class="preprocessor"></span></div>
  394. <div class="line"><span class="comment">// &lt;/e&gt;</span></div>
  395. <div class="line"></div>
  396. <div class="line"><span class="comment">// &lt;e&gt;User Timers</span></div>
  397. <div class="line"><span class="comment">// ==============</span></div>
  398. <div class="line"><span class="comment">// &lt;i&gt; Enables user Timers</span></div>
  399. <div class="line"><span class="preprocessor">#ifndef OS_TIMERS</span></div>
  400. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERS 1</span></div>
  401. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  402. <div class="line"><span class="preprocessor"></span></div>
  403. <div class="line"><span class="comment">// &lt;o&gt;Timer Thread Priority</span></div>
  404. <div class="line"><span class="comment">// &lt;1=&gt; Low</span></div>
  405. <div class="line"><span class="comment">// &lt;2=&gt; Below Normal &lt;3=&gt; Normal &lt;4=&gt; Above Normal</span></div>
  406. <div class="line"><span class="comment">// &lt;5=&gt; High</span></div>
  407. <div class="line"><span class="comment">// &lt;6=&gt; Realtime (highest)</span></div>
  408. <div class="line"><span class="comment">// &lt;i&gt; Defines priority for Timer Thread</span></div>
  409. <div class="line"><span class="comment">// &lt;i&gt; Default: High</span></div>
  410. <div class="line"><span class="preprocessor">#ifndef OS_TIMERPRIO</span></div>
  411. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERPRIO 5</span></div>
  412. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  413. <div class="line"><span class="preprocessor"></span></div>
  414. <div class="line"><span class="comment">// &lt;o&gt;Timer Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
  415. <div class="line"><span class="comment">// &lt;i&gt; Defines stack size for Timer thread.</span></div>
  416. <div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
  417. <div class="line"><span class="preprocessor">#ifndef OS_TIMERSTKSZ</span></div>
  418. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERSTKSZ 50</span></div>
  419. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  420. <div class="line"><span class="preprocessor"></span></div>
  421. <div class="line"><span class="comment">// &lt;o&gt;Timer Callback Queue size &lt;1-32&gt;</span></div>
  422. <div class="line"><span class="comment">// &lt;i&gt; Number of concurrent active timer callback functions.</span></div>
  423. <div class="line"><span class="comment">// &lt;i&gt; Default: 4</span></div>
  424. <div class="line"><span class="preprocessor">#ifndef OS_TIMERCBQS</span></div>
  425. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERCBQS 4</span></div>
  426. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  427. <div class="line"><span class="preprocessor"></span></div>
  428. <div class="line"><span class="comment">// &lt;/e&gt;</span></div>
  429. <div class="line"></div>
  430. <div class="line"><span class="comment">// &lt;o&gt;ISR FIFO Queue size&lt;4=&gt; 4 entries &lt;8=&gt; 8 entries</span></div>
  431. <div class="line"><span class="comment">// &lt;12=&gt; 12 entries &lt;16=&gt; 16 entries</span></div>
  432. <div class="line"><span class="comment">// &lt;24=&gt; 24 entries &lt;32=&gt; 32 entries</span></div>
  433. <div class="line"><span class="comment">// &lt;48=&gt; 48 entries &lt;64=&gt; 64 entries</span></div>
  434. <div class="line"><span class="comment">// &lt;96=&gt; 96 entries</span></div>
  435. <div class="line"><span class="comment">// &lt;i&gt; ISR functions store requests to this buffer,</span></div>
  436. <div class="line"><span class="comment">// &lt;i&gt; when they are called from the interrupt handler.</span></div>
  437. <div class="line"><span class="comment">// &lt;i&gt; Default: 16 entries</span></div>
  438. <div class="line"><span class="preprocessor">#ifndef OS_FIFOSZ</span></div>
  439. <div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_FIFOSZ 16</span></div>
  440. <div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
  441. <div class="line"><span class="preprocessor"></span></div>
  442. <div class="line"><span class="comment">// &lt;/h&gt;</span></div>
  443. <div class="line"></div>
  444. <div class="line"><span class="comment">//------------- &lt;&lt;&lt; end of configuration section &gt;&gt;&gt; -----------------------</span></div>
  445. </div><!-- fragment --><h1><a class="anchor" id="configWizard_display"></a>
  446. Tool-specific display</h1>
  447. <p>It is left to the development tool to interpret and display Configuration Wizard Annotations. The uVision IDE displays the code above in the following way:</p>
  448. <div class="image">
  449. <img src="RTX_Conf_CM_Wizard_View.png" alt="RTX_Conf_CM_Wizard_View.png"/>
  450. <div class="caption">
  451. Configuration Wizard Display</div></div>
  452. <p> <b>Where</b></p>
  453. <p><em>Option</em> are device properties, which can be represented in a tree structure. Each item can have an explanatory tooltip.</p>
  454. <p><em>Value</em> sets the option value. Can contain controls to encapsulate data in predefined drop-down lists. </p>
  455. </div></div><!-- contents -->
  456. </div><!-- doc-content -->
  457. <!-- start footer part -->
  458. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  459. <ul>
  460. <li class="footer">Generated on Thu Apr 9 2020 15:49:54 for CMSIS-Pack Version 1.6.3 by Arm Ltd. All rights reserved.
  461. <!--
  462. <a href="http://www.doxygen.org/index.html">
  463. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
  464. -->
  465. </li>
  466. </ul>
  467. </div>
  468. </body>
  469. </html>