Who is this for?

This is an introductory topic for software developers new to using TrustZone.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Install the Keil MDK Tools
  • Run a hello world TrustZone example
  • Understand switching of security states
  • Learn how secure functions are called from a non-secure state

Prerequisites

Before starting, you will need the following:

  • Familiar with C programming on microcontrollers
  • Comfortable with Windows
  • NXP LPCXpresso55S69 board

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll run and debug a TrustZone hello-world example on an NXP LPCXpresso55S69. First, you’ll install Keil MDK and Arm Compiler for Embedded, then retrieve the example through the µVision Pack Installer. Next, you’ll add the secure and non-secure projects to a workspace, build and run them, and use debugging to observe security-state transitions and secure-function calls.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
What do I need before building and running the example on hardware?
Install Keil MDK and Arm Compiler for Embedded on a Windows machine, and connect the NXP LPCXpresso55S69 board.
How do I get the TrustZone hello world example into µVision?
Use the Pack installer widget to select the LPC55S69 device and copy the hello_ns and hello_s examples into your workspace.
Which project should I open to start building and debugging?
In the IDE, choose Project -> Open Project and select the hello_world_s example. This secure project is the starting point for the build and debug flow.
Do I need both the secure and non-secure sub-projects in my workspace?
Yes. The TrustZone example consists of hello_s (secure) and hello_ns (non-secure), and both should be present in your workspace.
How do I explore security state switching and secure function calls during debug?
Start a debug session and step through execution instead of running to completion. The program counter begins at main() in hello_world_s.c, and the secure startup code has already executed at reset.
Next