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

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

Verify Whether the MPLAB® Harmony Configurator (MHC) Plugin is Installed in MPLAB X IDE

Launch MPLAB X IDE from the Microsoft Windows® Start menu. Close any projects and files that are currently open.
Go to Tools > Embedded.

You will see MPLAB Harmony 3 Configurator in the menu.

MPLAB Harmony 3 Configurator is shown in the menu

If you don't see it in the menu, install MHC.

Back to Top


Set Up MHC Plugin Window to Open in Standalone Mode

Go to Tools > Options. You will see the Options window open.

Tools > Options menu

Options window

Go to Plugins > Window Manager and select Standalone mode. Click Apply and then click OK.

Options window Plugins tab

Tool Tip

  • When you launch MHC for the first time, it displays a prompt asking for the mode in which you would like to use MHC.
    • Standalone mode (as a separate window)
    • Native mode (as an embedded window in MPLAB X)
  • Standalone mode is the default mode.
  • MHC will launch in the operating mode selected the first time, every time you launch MHC.
  • Step 1.2 above shows a way to change the MHC operating mode.

For this lab, MHC is configured to operate in Standalone mode.

Back to Top


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

Select File > New Project from the main IDE menu.

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

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

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

New Project window Choose Project pane

If the 32-bit MPLAB Harmony 3 Project is not displayed, install MHC.

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

If you haven't done this, or want to download it to a different folder, click the Launch Content Manager button, then click Next.

For more information on the content manager, see the "Download MPLAB Harmony Framework" section of the "MPLAB Harmony Configurator Overview" page.

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: <Your_folder>\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 MHC.

New Project window Configuration Settings pane

  • By default, TrustZone Enabled is selected by MHC 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.

Click Launch to launch the MHC tool with the selected packages.

Configuration Database Setup dialog

The MHC plugin’s main window for the project will be displayed.

MHC plugin’s main window

Back to Top


Verify Device Family Pack (DFP) and Compiler Toolchain

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 and go to Properties.

menu to open the project properties

Make sure that XC32 (v2.41) is selected as the Compiler Toolchain for XC32 and select the SAML11_DFP package 4.0.115. Click on Apply and then click on OK.

Project Properties window

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 and go to Properties.

Projects tab menu to open properties

Verify that XC32 (v2.41) is selected as the Compiler Toolchain for XC32 and select the SAML11_DFP pakcage 4.0.115. Click on Apply and then click on OK.

Project Properties window

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 MHC accidently and would like to open it again, go to Tools > Embedded > MPLAB Harmony 3 Configurator in MPLAB X IDE.

Back to Top


Verify Clock Settings

Launch Clock Easy View by going to the Tools menu of the MHC window and then selecting Clock Configuration.

Tools > Clock Configuration menu

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

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

Tool Tip:

  • The Clock Easy View window can be minimized by clicking the minimize button, as shown:

Minimizing window button

  • After minimizing the Clock Easy View window, you can see a small Clock Easy View tab at the bottom-left in MHC, as shown:

clock easy view button

  • The Clock Easy View window can be maximized by clicking the maximize button or by double-clicking on the Clock Easy View window, as shown:

Maximizing window button

  • These tips apply to all other plugin managers like Pin Configuration, Direct Memory Access (DMA) Configuration, Event System Configuration, and Nested Vectored Interrupt Controller (NVIC) Configuration.

Back to Top


Configure Secure and Non-Secure Peripherals

Launch TrustZone-M Manager by going to the Tools menu of the MHC window and then selecting TrustZone-M Manager.

Tools > TrustZone-M Manager menu

A new window, TrustZone-M Manager, is opened inside MHC.

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

Tool Tip: You can configure the application-specific memory regions by moving the move button icon up and down.

Back to Top