Who is this for?

This is an introductory topic for software developers new to Trusted Firmware-M (TF-M).

What will you learn?

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

  • Build and run the reference TF-M tests and example application.

Prerequisites

Before starting, you will need the following:

  • Some familiarity with embedded C programming
  • A machine running Ubuntu Linux

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 build TF-M tests and a reference example for the Corstone-300 Fixed Virtual Platform (FVP). First, you’ll prepare an Ubuntu 22.04 LTS host and install the Corstone-300 FVP. Then, you’ll build TF-M, launch the virtual platform, and use its console output to verify the tests and reference workload run successfully.

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
?
Which FVP should I use to complete the Learning Path?
Use the Corstone-300 FVP.
Where do I download the Corstone-300 FVP?
The Corstone-300 FVP is available from the Arm Ecosystem FVP page .
Where can I find the TF-M test executables after a successful build?
Find the executables in build/tests-spe and build/tests. These include images for the MCUBoot bootloader, TF-M secure firmware, and the non-secure application, including signed secure and non-secure variants.
What should I check before building TF-M?
Ensure the system package lists are current by running sudo apt update.
What result should I expect when I run the tests and example on the FVP?
The Corstone-300 FVP should start TF-M and execute the supplied tests and the reference example. You should see console output indicating test progress and completion.
Next