CMSIS-Zone  Version 1.2.0-alpha
System Resource Management
 All Files Pages
Arm Musca-A1

This example 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).
  • Memory protection controller (MPC) setup.
  • Peripheral protection controller (PPC) and related interrupt setup.
  • Secure attribution unit (SAU) setup.

Using the CMSIS-Zone project

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

The Musca-A1.azone file of that project has the following configuration settings:

  • Added the zones SecureFW and NonsecureFW
  • Created the memory regions SecureRAM, NonsecureRAM, ScureCode, Veneer, and NonsecureCode
  • Selected various memory regions and peripherals for using in the different zones.
muscaA1_zones.png

The zones use different Flash and SRAM regions for code and data. Peripherals, such as the system and IO configuration, as well as UART0 are available in the secure world only. 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
helper.ftlinc N/A Helper template file with FTL functions.
mem_layout.h.ftl mem_layout.h Header file that contains the memory region definitions, for example for the linker scatter file.
tz_sau_nvic.c.ftl tz_sau_nvic.c Configuration of the secure attribution unit (SAU) and the NVIC interrupt assignment.
tz_mpc_ppc.c.ftl tz_mpc_ppc.c Configuration of the memory (MPC) and peripheral (PPC) protection controller.

These files can be used in any IDE to create the final application.