blob: 1e1f3f7c9fb1115e3ee5ec8f5573703fec640765 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
<!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)
 <span id="projectnumber">Version 0.0.1</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 Page</span></a></li>
<li><a href="pages.html"><span>Usage and 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </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>This is a preview of <b>CMSIS-Zone</b> which is scheduled for release in Q1'2018. The final release of CMSIS-Zone will provide:</p>
<ul>
<li><a class="el" href="XML_Format.html">Zone Description Format</a> (XML based) which stores consistent system setup information.</li>
<li>CMSIS-Zone configuration utility for system partitioning. The <a class="el" href="GenDataModel.html">data</a> captured can be exported to various project and configuration files using file templates.</li>
</ul>
<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, and peripherals. The system resource and partitioning information is stored in <a class="el" href="XML_Format.html">Zone Description Format</a> (XML based).</p>
<p><b>CMSIS-Zone</b> includes an interactive tool that manages files in the <a class="el" href="XML_Format.html">Zone Description Format</a> which allows to:</p>
<ul>
<li>create system resource information from existing CMSIS-SVD and CMSIS-Pack descriptions.</li>
<li>partition system resources into various project zones.</li>
<li>partition a project zone into multiple execution zones.</li>
<li>generate various configuration files for tool set-up and hardware initialization.</li>
</ul>
<p>The following diagram explains the development flow when using the <b>CMSIS-Zone</b> management tool.</p>
<div class="image">
<img src="DevelopmentFlow.png" alt="DevelopmentFlow.png"/>
<div class="caption">
CMSIS-Zone Development Flow</div></div>
<p> The following sections explain:</p>
<ul>
<li><a class="el" href="XML_Format.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>
<h1><a class="anchor" id="UseCases"></a>
CMSIS-Zone Use Cases</h1>
<p><b>CMSIS-Zone</b> simplifies to manage the complexity and the configuration of modern embedded systems that frequently include multiple processors and/or memory protection hardware. It helps to split the embedded application various projects which creates the need to partition system resources. And it simplifies the consistent configuration of access rights across the system, for example when using an MPU (memory protection unit).</p>
<p>The following section describes several uses cases that benefit from <b>CMSIS-Zone</b>.</p>
<h2><a class="anchor" id="UseCase_MPU"></a>
MPU Protection</h2>
<p>Focused on a single core microcontroller one might want to utilize the memory protection unit (MPU) capabilities to segregate parts of an application. Thus the need to partition the system resources accordingly arises.</p>
<div class="image">
<img src="mpu.png" alt="mpu.png"/>
<div class="caption">
MPU Protection</div></div>
<h2><a class="anchor" id="UseCase_TrustZone"></a>
TrustZone Partitioning</h2>
<p>TrustZone extensions add another degree of segregation which must be handled consistently. In this case one has to handle MPU settings per security context and SAU configuration.</p>
<div class="image">
<img src="trustzone.png" alt="trustzone.png"/>
<div class="caption">
TrustZone Partitioning and MPU Protection</div></div>
<h2><a class="anchor" id="UseCase_MultiCore"></a>
Multi-Core Partitioning</h2>
<p>Beside traditional single cores asymetric and hybrid multi-core devices contribute to increasing development complexity for embedded systems. Having multiple cores running different parts of an application concurrently needs a well defined resource assignment to prevent undesired misbehaviour.</p>
<div class="image">
<img src="multicore.png" alt="multicore.png"/>
<div class="caption">
Multi-Core Partitioning</div></div>
</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 Aug 1 2018 17:12:47 for CMSIS-Zone (Preview) 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>
|