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

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


Verify that MHC is installed.

• 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.


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

Step 1.2: Set Up MHC Plugin Window to Open in Standalone Mode


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



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

  • 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.

Step 1.3: 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.


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.



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.

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.



Follow the steps below 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.

  • 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.


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



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 and go to 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.
  • 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.
  • Make sure 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.

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.

Step 1.4: Verify Clock Settings


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


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.


Tool Tip:

  • The Clock Easy View window can be minimized by clicking the minimize button, as shown below.
  • After minimizing the Clock Easy View window, you can see a small Clock Easy View tab at the bottom-left in MHC, as shown below.
  • 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 below.
  • 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.

Step 1.5: 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.


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.

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.


Step 1.6: Verify Secure and Non-Secure Memory Regions


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


Tool Tip:

  • You can configure the application specific memory regions by moving the arrow.png icon up and down.

Next Step >

© 2021 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.