index.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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>Main Page</title>
  7. <title>CMSIS-Zone: Main Page</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-Zone
  35. &#160;<span id="projectnumber">Version 1.0.0</span>
  36. </div>
  37. <div id="projectbrief">System Resource Management</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 class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
  60. <li><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('index.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>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><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">CMSIS-Zone Documentation</div> </div>
  109. </div><!--header-->
  110. <div class="contents">
  111. <div class="textblock"><h1><a class="anchor" id="Overview"></a>
  112. Overview</h1>
  113. <p>Embedded systems frequently integrate specify hardware for access protection or system isolation. For example, a Cortex-M33 processor based system may incorporate:</p>
  114. <ul>
  115. <li>SAU (Secure Attribute Unit) to create a secure execution partition with controlled access from a non-secure execution partition.</li>
  116. <li>MPC (Memory Protection Controller) to control the system-wide access permissions to memory.</li>
  117. <li>PPC (Peripheral Protection Controller) to control the system-wide access permissions to peripherals.</li>
  118. <li>MPU (Memory Protection Controller) to create execution compartments and protect other system parts from illegal access.</li>
  119. </ul>
  120. <p>Embedded systems may also integrate multiple processors that share system resources (memory and peripherals). In an AMP (Asymmetric Multiprocessor System) it is required to assign or partition the available resources to various processors that execute independent parts of the application software.</p>
  121. <p><b>CMSIS-Zone</b> helps you to manage this complexity and allows to partition an embedded system into <b>project zones</b> and/or <b>execution zones</b>.</p>
  122. <p>A <b>project zone</b> defines the memory resources and peripherals for a sub-project that execute on the system. Typical examples are boot-loader and user application, however also the secure and non-secure parts of a Cortex-M TrustZone system is defined using project zones.</p>
  123. <p>An <b>execution zone</b> is a software compartment that is protected using a MPU. It defines the access rights to memory and peripherals for a isolated part of the system. This ensures that for example a communication stack (with design flaws) cannot tamper the data or peripherals of other critical parts in a system.</p>
  124. <p><b>CMSIS-Zone</b> includes a utility that allows you to manage these zones. The input to this utility is a resource (*.rzone) file the defines the system resources including memory and peripherals.</p>
  125. <p>For these resources the user interface of the CMSIS-Zone utility allows:</p>
  126. <ul>
  127. <li>to setup of overall system-wide access permissions to memory and peripherals.</li>
  128. <li>to define project zones (optional with processor selection and/or security mode) or execution zones (optional with privilege level).</li>
  129. <li>to assign memory and peripherals to these project or execution zones.</li>
  130. </ul>
  131. <p>This system configuration is stored in an assignment (*.azone) file. With the <b>Generate</b> function of the CMSIS-Zone utility, the resource and configuration data can be used to generate:</p>
  132. <ul>
  133. <li>source code for the setup of protection hardware such as SAU, MPC, PPC, MPU.</li>
  134. <li>configuration files for software development tools (i.e. linker scatter file).</li>
  135. <li>sub-system resource (*.rzone) files that list <b>project zone</b> resources available for sub-projects.</li>
  136. </ul>
  137. <p>The following diagram shows the development work flow when using the <b>CMSIS-Zone</b> management tool.</p>
  138. <div class="image">
  139. <img src="Partitioning_Workflow.png" alt="Partitioning_Workflow.png"/>
  140. <div class="caption">
  141. CMSIS-Zone development workflow</div></div>
  142. <p>It is possible to uses these steps multiple times which allows to split a complex SoC design with multiple processors into smaller sub-systems. For example a multi-core device can be partitioned in steps:</p>
  143. <ul>
  144. <li>Step 1: split the multi-processor system into single processor sub-systems.</li>
  145. <li>Step 2: create the partitions for secure and non-secure execution.</li>
  146. <li>Step 3: configure MPU protected execution zones.</li>
  147. </ul>
  148. <p>The following SoC diagram exemplifies step 1 and step 2 of this workflow.</p>
  149. <div class="image">
  150. <img src="Partitioning_Hardware.png" alt="Partitioning_Hardware.png"/>
  151. <div class="caption">
  152. Hardware partitioning in multiple steps</div></div>
  153. <h1><a class="anchor" id="ManualSections"></a>
  154. Manual Sections</h1>
  155. <p>The following sections explain:</p>
  156. <ul>
  157. <li><a class="el" href="zoneToolUsage.html">CMSIS-Zone Utility</a> describes the tool features and explains the usage on several examples.</li>
  158. <li><a class="el" href="zoneFormat.html">Zone Description Format</a> (XML based) that stores resource (*.rzone) and assignment (*.azone) information.</li>
  159. <li><a class="el" href="GenDataModel.html">Generator Data Model</a> which is used to create tool set-up files and hardware configuration files.</li>
  160. </ul>
  161. <h1><a class="anchor" id="mainIntroVideo"></a>
  162. Introduction Video</h1>
  163. <p>This video show how to use the <a class="el" href="zoneToolUsage.html">CMSIS-Zone Utility</a> :</p>
  164. <video preload="none" controls="" poster="https://community.arm.com/cfs-file/__key/telligent-evolution-videotranscoding-securefilestorage/communityserver-blogs-components-weblogfiles-00-00-00-21-12/Nuvoton_5F00_Zone.mp4.jpg" width="880" height="495">
  165. <source type="video/mp4" src="https://community.arm.com/cfs-file/__key/telligent-evolution-videotranscoding-securefilestorage/communityserver-blogs-components-weblogfiles-00-00-00-21-12/Nuvoton_5F00_Zone.mp4.mp4">
  166. <source type="video/webm" src="https://community.arm.com/cfs-file/__key/telligent-evolution-videotranscoding-securefilestorage/communityserver-blogs-components-weblogfiles-00-00-00-21-12/Nuvoton_5F00_Zone.mp4.webm">
  167. </video>
  168. </div></div><!-- contents -->
  169. </div><!-- doc-content -->
  170. <!-- start footer part -->
  171. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  172. <ul>
  173. <li class="footer">Generated on Thu Apr 9 2020 15:50:04 for CMSIS-Zone Version 1.0.0 by Arm Ltd. All rights reserved.
  174. <!--
  175. <a href="http://www.doxygen.org/index.html">
  176. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
  177. -->
  178. </li>
  179. </ul>
  180. </div>
  181. </body>
  182. </html>