# Get started with Trusted Firmware-M

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/tfm/)
- [Build and run TF-M tests and example application](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/tfm/tfm/)
- [Next Steps](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/tfm/_next-steps/)

## About this Learning Path

| Skill level:     | Introductory                       |
|------------------|-----------------------------------|
| Reading time:    | 15 min                            |
| Last updated:    | 13 Aug 2026                       |

| Author:          | Pareena Verma, Arm [GitHub](https://github.com/pareenaverma) [LinkedIn](https://linkedin.com/in/pareena-verma-7853607) |
|------------------|-----------------------------------|
| Arm IP:          | [Cortex-M](https://support.arm.com/?tab=compute-ip&Product%20Type=Microcontrollers) [Corstone](https://support.arm.com/?tab=compute-ip&Product%20Type=Subsystem%20Products) |
| Tags:            | [Security](/tag/security), [Baremetal](/tag/baremetal), [Arm Virtual Hardware](/tag/arm-virtual-hardware), [FVP](/tag/fvp), [TrustZone](/tag/trustzone), [Trusted Firmware](/tag/trusted-firmware) |

### 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
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

#### [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](https://support.arm.com/tools-and-software/fixed-virtual-platforms).

#### [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.
