Arm® TrustZone® Getting Started Application on SAM L11: Step 1

Last modified by Microchip on 2023/11/09 09:09

Create MPLAB® Harmony v3 Arm® TrustZone® Project using MPLAB X IDE

Select File > New Project from the main IDE menu.

new project

Close all existing opened projects before you start creating a new project.

In the Categories pane of the New Project dialog, select Microchip Embedded.

In the Projects pane, select 32-bit MCC Harmony Project, then click Next.

New Project window Choose Project pane

Browse to the folder you downloaded the framework to in the Framework Path edit box.

Then click Next.

  • The path to your Harmony 3 installation folder should already be populated. if not, create a folder somewhere on your computer, like C:\harmony3, and point the project to that path.
  • The Harmony 3 necessary files will be downloaded to that path later during these steps.

New Project window Manage Framework pane

In the Project Settings window, apply the following settings:

Location: Indicates the path to the root folder of the new project. All project files will be placed inside this folder. The project location can be any valid path, for example: <C:microchip\harmony\v3\training\dev\saml11_trustzone_getting_started.

  • Location: Indicates the path to the root folder of the new project. All project files will be placed inside this folder. The project location can be any valid path, for example: C:microchip\harmony\v3\training\dev\saml11_trustzone_getting_started.
  • Folder: Indicates the name of the MPLABX .X folder. Enter "sam_l11_xpro" to create sam_l11_xpro_Secure.X and sam_l11_xpro_NonSecure.X folders.
  • Name: Indicates the name of the project that will be shown in MPLAB X IDE. Enter "trustzone_sam_l11_xpro" to set the project's name.

Note: The Path box is read-only. It will update as you make changes to the entries.

Click Next to proceed to Configuration Settings.

New Project window Name and Location pane

Clicking on the Show Visual Help button will open a help window, providing a detailed description of the various fields in the Project Settings window.

MPLAB Harmony New Project Wizard Help window

Follow these steps to set the project’s Configuration Settings.

Name: Enter the configuration name as "sam_l11_xpro".

  • Target Device: Select ATSAML11E16A as the target device.

Note: You can select the Device Family or enter a partial device name to filter the list in Target Device to make it easier to locate the desired device.

After selecting the target device, click Finish to launch the MCC.

New Project window Configuration Settings pane

  • By default, TrustZone Enabled is selected by MCC whenever you choose a TrustZone device (like SAM L11) as the Target Device.
  • The New Project Wizard opens a Configuration Database Setup window to allow you to review the packages that will be used by the current project.

The MCC content manager window is displayed. In this click Select MPLAB Harmony (by default this option is selected).

Launch step

Click Finish to launch the MCC tool with the packages.

Launch finish

The MCC plugin’s main window for the project will be displayed as shown below.

Launched view

Before proceeding, set up the Device Family Pack (DFP) and Compiler toolchain for both the Secure and Non-Secure projects.

  • Click on the Projects tab on the top left pane in MPLAB X IDE. Right click on the project name trustzone_sam_l11_xpro_NonSecure.

Go to Set Configuration and Click on the Customize...

nonsecure project view

  • Make sure that XC32 (v4.30) is selected as the Compiler Toolchain for XC32 and select the SAML11_DFP package 4.5.268. Click on Apply and then click on OK.

xc32 setup

  • Click on the Projects tab on the top left pane in MPLAB X IDE. Right click on the project name trustzone_sam_l11_xpro_Secure.

Go to Set Configuration and Click on the Customize...

secure project view

  • Make sure that XC32 (v4.30) is selected as the Compiler Toolchain for XC32 and select the SAML11_DFP pakcage 4.5.268. Click on Apply and then click on OK.

secure xc32 setup

Tool Tip:

  • Make sure to select the same DFP package and XC32 compiler version for both the Secure and Non-Secure projects.
  • If you closed MCC accidently and would like to open it again, go to Tools > Embedded > MPLAB® Code Configurator v5: Open/Close in MPLAB X IDE.

Back to Top


Verify Clock Settings

Launch Clock Easy View by going to the Project Graph tab in the MPLAB X IDE and then select Plugins > Clock Configuration.

Tools > Clock Configuration menu

A new window, Clock Easy View, is opened inside MCC.

Click on the Clock Easy View tab, scroll to the right and verify that the Main Clock is set to 32 MHz.

Clock Easy View window

Back to Top


Configure Secure and Non-Secure Peripherals

Launch Arm TrustZone for Armv8-M by going to the Project Graph tab in the MPLAB X IDE and then select Plugins > Arm TrustZone for Armv8-M.

Tools > TrustZone-M Manager menu

A new window, Arm TrustZone for Armv8-M, is opened inside MCC.

Click on the Peripheral Configuration tab to configure Peripherals to run in Secure and Non-Secure mode.

TrustZone-M Manager window

Default SAM L11 Peripheral Configuration.

Tool Tip:

  • Click on peripherals to change from Secure (Green in color) to Non-Secure (Red in color) vice-versa.

As per the project design, configure DMAC and SERCOM0 as NonSecure Peripherals.

TrustZone-M Manager window

Back to Top


Verify Secure and Non-Secure Memory Regions

Click on the Memory Configuration tab to verify the default Memory Configuration.

TrustZone-M Manager window Memory Configuration tab

Back to Top