CMSIS-Zone  Version 1.1.0
System Resource Management
 All Files Pages
Microchip SAML11

This single processor demo application shows how to do the TrustZone Partitioning. It is split into a secure and non-secure part. Using CMSIS-Zone, it generates:

  • A header file that contains #defines to control the various linker scatter files (and might be used in other parts of the application).
  • The SystemIsolation_Config.c header file that contains memory protection controller (MPC) and peripheral protection controller (PPC) and related interrupt setup.
  • The partition_gen.h header file that contains the secure attribution unit (SAU) setup and the NVIC configuration for secure/non-secure.

The application itself shows how to implement calls between the secure and the non-secure part.

Using the CMSIS-Zone project

  • Import the project "Examples\SAML11\Zone" into the CMSIS-Zone utility
  • Open the SAML11.azone file
  • Generate the related output files

The SAML11.azone file of that project has the following configuration settings:

The zones use different Flash and SRAM regions for code and data. To generate the output, click on the Generate button in the Zone Editor tool bar. This creates the following files in the ftl_gen directory:

Template File Generated File Description
dump_fzone.txt.ftl dump_fzone.txt Contains the complete model
flash.dbgconf.ftl flash.dbgconf Flash algorithm configuration for security settings
flash.dbgconf.lst.ftlflash.dbgconf.lstFlash algorithm configuration for security settings
helper.ftlinc N/A Helper template file with FTL functions.
scatter_ns.sct.ftl scatter_ns.sct Example scatter file for non-secure zone.
scatter_s.sct.ftl scatter_s.sct Example scatter file for secure zone.

These files can be used in any IDE to create the final application. In the following, the usage in Arm Keil MDK is described.

Using the MDK project

The example project can be loaded, built and debugged in µVision by performing the following steps:

  1. Navigate to Examples/SAML11/MDK
  2. Open the multi-project workspace NoRTOS.uvmpw
  3. Run the batch build in MDK. Both projects, sApp and nsApp need to be compiled in order.