blob: 8ae2b3535e25f3792785f6529d2b2da81d3dd9d6 [file] [log] [blame]
<!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>Main Page</title>
<title>CMSIS-Zone (Preview): Main Page</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-Zone (Preview)
&#160;<span id="projectnumber">Version 0.9.2</span>
</div>
<div id="projectbrief">System Resource Management</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 class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><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('index.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>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><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">CMSIS-Zone (Preview) Documentation</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><b>CMSIS-Zone</b> defines methods to describe system resources and to partition these resources into multiple projects and execution areas. The system resources may include multiple processors, memory areas, peripherals and related interrupts. The system resources and partition assignments are stored in <a class="el" href="zoneFormat.html">Zone Description Format</a> (XML based).</p>
<p><b>CMSIS-Zone</b> includes a utility that manages these XML files. This utility:</p>
<ul>
<li>displays all available system resources including memory and peripherals</li>
<li>allows to partition memory and assign resources to sub-systems.</li>
<li>supports the setup of secure, non-secure, and MPU protected execution zones with assignment of memory, peripherals, and interrupts.</li>
<li>provides a data model for generation of configuration files for tool and hardware setup.</li>
</ul>
<p>The following diagram explains the development work flow when using the <b>CMSIS-Zone</b> management tool.</p>
<div class="image">
<img src="Partitioning_Workflow.png" alt="Partitioning_Workflow.png"/>
<div class="caption">
CMSIS-Zone development workflow</div></div>
<p> The CMSIS-Zone utility reads a <a class="el" href="zoneFormat.html#rzone">.rzone</a> file that defines the overall system resources of an SoC system. An interactive GUI supports the system partitioning. The assignments of the various partitions (also called zones) saved in the <a class="el" href="zoneFormat.html#azone">.azone</a> file.</p>
<p>The combined information of resources and assignments can be exported to multiple <a class="el" href="zoneFormat.html#rzone">.rzone</a> files that represent a sub-system. By using file templates the CMSIS-Zone utility can create tool or hardware configuration files.</p>
<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>
<ul>
<li>Step 1: split the multi-processor system into single processor sub-systems.</li>
<li>Step 2: create the partitions for secure and non-secure execution.</li>
<li>Step 3: configure MPU protected execution zones.</li>
</ul>
<p>The following SoC diagram exemplifies step 1 and step 2 of this workflow.</p>
<div class="image">
<img src="Partitioning_Hardware.png" alt="Partitioning_Hardware.png"/>
<div class="caption">
Hardware partitioning in multiple steps</div></div>
<p>The following sections explain:</p>
<ul>
<li><a class="el" href="zoneToolUsage.html">CMSIS-Zone Utility</a> shows hot to use the CMSIS-Zone stand-alone tool to generate the relevant project information to be used in integrated development environments (IDEs).</li>
<li><a class="el" href="zoneFormat.html">Zone Description Format</a> (XML based) that stores system resource information and the configuration of project zones and execution zones.</li>
<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>
</ul>
</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:06 for CMSIS-Zone (Preview) Version 0.9.2 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>