<!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>STMicroelectronics STM32L5</title>
<title>CMSIS-Zone (Preview): STMicroelectronics STM32L5</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><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><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('zTESTM32L5.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">STMicroelectronics STM32L5 </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>This single processor demo application shows how to do the <a class="el" href="UseCases.html#UseCase_TrustZone">TrustZone Partitioning</a>. It is split into a secure and non-secure part. Using CMSIS-Zone, it generates:</p>
<ul>
<li>A header file that contains #defines to control the various linker scatter files (and might be used in other parts of the application).</li>
<li>The SystemIsolation_Config.c header file that contains memory protection controller (MPC) and peripheral protection controller (PPC) and related interrupt setup.</li>
<li>The partition_gen.h header file that contains the secure attribution unit (SAU) setup and the NVIC configuration for secure/non-secure.</li>
</ul>
<p>The application itself shows how to implement calls between the secure and the non-secure part.</p>
<h1><a class="anchor" id="zTESTM32L5_Eclipse"></a>
Using the CMSIS-Zone project</h1>
<ul>
<li><a class="el" href="zTExamples.html#zTExImport">Import</a> the project "Examples\STM32L5\Zone" into the CMSIS-Zone utility</li>
<li><a class="el" href="zTUI.html#zTProjEx">Open</a> the STM32L5.azone file</li>
<li><a class="el" href="zTUIGenerate.html">Generate</a> the related output files</li>
</ul>
<p>The STM32L5.azone file of that project has the following configuration settings:</p>
<ul>
<li><a class="el" href="zTUIZonePart.html#zTUICreate">Added the zones</a> <code>blinky_s</code> and <code>blinky_ns</code> </li>
<li><a class="el" href="zTUIMemPerRes.html#zTUIMemAdd">Created the memory regions</a> <code>CODE_NS</code>, <code>CODE_S</code>, <code>Veneer</code>, <code>DATA_NS</code>, and <code>DATA_S</code> </li>
<li>Selected various memory regions and peripherals for using in the different zones.</li>
</ul>
<div class="image">
<img src="STM32L5_zones.png" alt="STM32L5_zones.png"/>
</div>
<p>The zones use different Flash and SRAM regions for code and data, but share Flash configuration registers. Peripherals, such as the system and IO configuration, as well as an UART are available in the secure world only. To generate the output, click on the <a class="el" href="zTUIGenerate.html">Generate</a> button in the Zone Editor tool bar. This creates the following files in the <code>ftl_gen</code> directory:</p>
<table class="doxtable">
<tr>
<th align="left">Template File </th><th align="left">Generated File </th><th align="left">Description  </th></tr>
<tr>
<td align="left">dump_fzone.txt.ftl </td><td align="left">dump_fzone.txt </td><td align="left">Contains the complete model </td></tr>
<tr>
<td align="left">helper.ftlinc </td><td align="left">N/A </td><td align="left">Helper template file with FTL functions. </td></tr>
<tr>
<td align="left">mem_layout.h.ftl </td><td align="left">mem_layout.h </td><td align="left">Header file that contains the memory region definitions, for example for the linker scatter file. </td></tr>
<tr>
<td align="left">partition_gen.h.ftl </td><td align="left">partition_gen.h </td><td align="left">Configuration of the secure attribution unit (SAU) and the NVIC interrupt assignment. </td></tr>
<tr>
<td align="left">SystemIsolation_Config.c.ftl </td><td align="left">SystemIsolation_Config.c </td><td align="left">Setup of the MPC and PPC. </td></tr>
<tr>
<td align="left">blinky_ns.sct.ftl </td><td align="left">blinky_ns.sct </td><td align="left">Scatter file for non-secure zone. </td></tr>
<tr>
<td align="left">blinky_s.sct.ftl </td><td align="left">blinky_s.sct </td><td align="left">Scatter file for secure zone. </td></tr>
</table>
<p>These files can be used in any IDE to create the final application. In the following, the usage in Arm Keil MDK is described.</p>
<h1><a class="anchor" id="zTESTM32L5_MDK"></a>
Using the MDK project</h1>
<p>The example project can be loaded, built and debugged in µVision by performing the following steps:</p>
<ol type="1">
<li>Navigate to Examples/STM32L5/MDK</li>
<li>Open the multi-project workspace blinky.uvmpw</li>
<li>Optional: Update the generated files by executing the copy_gen.bat scripts in blinky_s\mdk and blinky_ns\mdk folders.</li>
<li>Run the batch build in MDK. Both projects, blinky_s and blinky_ns need to be compiled in order.</li>
</ol>
<h1><a class="anchor" id="zTESTM32L5_MDK_Setup"></a>
MDK project setup</h1>
<p>The multiproject workspace contains the secure <code>blinky_s</code> project and the non-secure <code>blinky_ns</code> project:</p>
<div class="image">
<img src="blinky_window.png" alt="blinky_window.png"/>
</div>
<p>The projects use the files generated in CMSIS-Zone as follows:</p>
<table class="doxtable">
<tr>
<th align="left">File </th><th align="left">Used in </th><th align="left">Description  </th></tr>
<tr>
<td align="left">mem_layout.h </td><td align="left">blinky_s, blinky_ns </td><td align="left">Input for the linker scatter files. </td></tr>
<tr>
<td align="left">partition_gen.h </td><td align="left">blinky_s </td><td align="left">Configuration of the secure attribution unit (SAU) and the NVIC interrupt assignment. This file is included in the partition_stm32l5xx.h header file. </td></tr>
<tr>
<td align="left">SystemIsolation_Config.c </td><td align="left">blinky_s </td><td align="left">Setup of the MPC and PPC. </td></tr>
<tr>
<td align="left">blinky_ns.sct </td><td align="left">blinky_ns </td><td align="left">Scatter file for non-secure zone (initally based on generated file). </td></tr>
<tr>
<td align="left">blinky_s.sct </td><td align="left">blinky_s </td><td align="left">Scatter file for secure zone (initally based on generated file). </td></tr>
</table>
<dl class="section note"><dt>Note</dt><dd>If you want to learn more about the general project layout for an Armv8-M project using TrustZone, refer to <a href="https://www.keil.com/appnotes/docs/apnt_291.asp" target="_blank">Application Note 291</a>.</dd></dl>
<h2><a class="anchor" id="zTESTM32L5_hwsScatter"></a>
blinky_s.sct</h2>
<p>As explained previously, the #defines in <code>mem_layout.h</code> can be used to create generic scatter files that are easy to update once changes in the CMSIS-Zone project happen. Using the <b>mem_layout.h</b> file from CMSIS-Zone, the following scatter file is used in the secure <code>blinky</code> project, which is based on the generated scatterf file (scatter_s.sct):</p>
<div class="fragment"><div class="line">; Use Arm compiler 6 to pre-process the scatter file and pull in the defines from the mem_layout.h file:</div>
<div class="line"><span class="preprocessor">#! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m33 -I../ -xc</span></div>
<div class="line"><span class="preprocessor"></span></div>
<div class="line"><span class="preprocessor">#include &quot;mem_layout.h&quot;</span></div>
<div class="line"></div>
<div class="line">; *------- &lt;&lt;&lt; Use Configuration Wizard in Context Menu &gt;&gt;&gt; ------------------</div>
<div class="line"></div>
<div class="line">;&lt;h&gt; Stack Configuration</div>
<div class="line">;  &lt;o&gt; Stack Size (in Bytes) &lt;0x0-0xFFFFFFFF:8&gt;</div>
<div class="line">;&lt;/h&gt;</div>
<div class="line"><span class="preprocessor">#define STACK_SIZE 0x400</span></div>
<div class="line"><span class="preprocessor"></span></div>
<div class="line">;&lt;h&gt; Heap Configuration</div>
<div class="line">;  &lt;o&gt; Heap Size (in Bytes) &lt;0x0-0xFFFFFFFF:8&gt;</div>
<div class="line">;&lt;/h&gt;</div>
<div class="line"><span class="preprocessor">#define HEAP_SIZE 0xC00</span></div>
<div class="line"><span class="preprocessor"></span></div>
<div class="line">; *-------------- &lt;&lt;&lt; end of configuration section &gt;&gt;&gt; -----------------------</div>
<div class="line">LR_CODE_S REGION_CODE_S_START REGION_CODE_S_SIZE {</div>
<div class="line">  ER_CODE_S REGION_CODE_S_START REGION_CODE_S_SIZE {</div>
<div class="line">          (RESET,+FIRST)</div>
<div class="line">      (InRoot$$Sections)</div>
<div class="line">    .ANY (+RO +XO)</div>
<div class="line">  }</div>
<div class="line">  RW_DATA_S REGION_DATA_S_START REGION_DATA_S_SIZE-HEAP_SIZE-STACK_SIZE {</div>
<div class="line">    .ANY (+RW +ZI)</div>
<div class="line">  }</div>
<div class="line"><span class="preprocessor">#if HEAP_SIZE&gt;0</span></div>
<div class="line"><span class="preprocessor"></span>  ARM_LIB_HEAP REGION_DATA_S_START+REGION_DATA_S_SIZE-HEAP_SIZE-STACK_SIZE EMPTY HEAP_SIZE {</div>
<div class="line">  }</div>
<div class="line"><span class="preprocessor">#endif</span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#if STACK_SIZE&gt;0</span></div>
<div class="line"><span class="preprocessor"></span>  ARM_LIB_STACK REGION_DATA_S_START+REGION_DATA_S_SIZE-STACK_SIZE EMPTY STACK_SIZE {</div>
<div class="line">  }</div>
<div class="line"><span class="preprocessor">#endif  </span></div>
<div class="line"><span class="preprocessor"></span>}</div>
<div class="line">LR_Veneer REGION_VENEER_START REGION_VENEER_SIZE {</div>
<div class="line">  ER_Veneer REGION_VENEER_START REGION_VENEER_SIZE {</div>
<div class="line">         (Veneer$$CMSE)</div>
<div class="line">  }</div>
<div class="line">}</div>
</div><!-- fragment --><p>The partition_gen.h header file contains Configuration Wizard annotation so that it can be viewed in a graphical window:</p>
<div class="image">
<img src="partition_h_l5.png" alt="partition_h_l5.png"/>
</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="navelem"><a class="el" href="zoneToolUsage.html">CMSIS-Zone Utility</a></li><li class="navelem"><a class="el" href="zTExamples.html">Examples</a></li>
    <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>
