CMSIS-Zone: Arm Musca-S1

| CMSIS-Zone Version 1.0.0 System Resource Management

- Main Page
- Usage and Description

All Files Pages
Arm Musca-S1

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-AS\Zone" into the CMSIS-Zone utility
- Open the Musca-AS.azone file
- Generate the related output files

The Musca-AS.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.

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.