Mistake on this page?
Report an issue in GitHub or email us

Fast Models

Arm Fast Models are software models of Arm cores, subsystems, peripherals and so on. You can run Mbed OS on the software model instead of the hardware.

This document explains how to build, run and debug Arm Mbed OS applications with Arm Fast Models. Due to licensing, Mbed OS does not provide any Fast Models. If you do not have a Fast Models license yet, you can visit Arm Fast Models to obtain an evaluation license.

Fixed Virtual Platforms (FVPs) are prebuilt system-level models after Arm’s reference platforms by Fast Models.

For more details on Fast Models and FVPs, please reference further documentation about Arm Fast Models or FVPs.

Supported Fast Models FVPs

Mbed OS has enabled working with following FVPs Cortex-M family with the MPS2 platforms:

Fast Models platforms Target name in Mbed OS
FVP_MPS2_Cortex-M0 FVP_MPS2_M0
FVP_MPS2_Cortex-M0plus FVP_MPS2_M0P
FVP_MPS2_Cortex-M3 FVP_MPS2_M3
FVP_MPS2_Cortex-M4 FVP_MPS2_M4
FVP_MPS2_Cortex-M7 FVP_MPS2_M7

Mbed OS examples on Fast Models

Fast Models can run most of the Mbed OS examples.

Examples you can successfully run include:

The following examples use mbed-os-example-blinky.

To run Mbed OS examples with Fast Models, you need to install the Fast Models product and set up the license. The Arm DS-5 Development Studio also provides Fast Models targets. To load a compiled Mbed OS image onto a Fast Models platform, such as the FVP_MPS2_Cortex-M0, you need to add your installation's bin folder to your system PATH. For example: C:\Program Files\DS-5 v5.29.1\bin.

Import the example with Arm Mbed CLI

Import the blinky example:

$ mbed import mbed-os-example-blinky
$ cd mbed-os-example-blinky

Build the example with Mbed CLI

Fast Models targets are enabled to be built with all three major toolchains: ARM, GCC_ARM and IAR. To build the blinky example for the FVP_MPS2_Cortex-M3 target with the GCC complier, run:

$ mbed compile -t GCC_ARM -m FVP_MPS2_M3

Run Mbed OS examples with Fast Models

Load the compiled example image to the FVP_MPS2_Cortex-M3 target. To do so, pass the -a option to the Fast Models target. For example:

$ FVP_MPS2_Cortex-M3 -a BUILD/FVP_MPS2_M3/GCC_ARM/mbed-os-example-blinky.elf

The FVPs start running, and the LEDs on the FVP blink, like:

A screen shot of FVPs running

Note: FVP's -a option only takes .elf format images. To use the --data option with binary format images, please reference the FVP reference guide.

Run Mbed OS sockets examples with Fast Models ethernet

Fast Models ethernet is a special component not enabled by default.

Note: The current version of Fast Model ethernet implementations requires Fast Models 11.3 or later or DS-5 5.29.0 or later. Also, the simulated IP routing only works on TCP and IP protocols, but neither the ICMP nor the IGMP protocol. This means ping does not work. For more details about how the Fast Models ethernet MAC works, please reference the Fast Models reference manual.

Here, the mbed-os-example-sockets example demonstrates ethernet function. You can build the example as usual:

$ mbed import mbed-os-example-sockets
$ cd mbed-os-example-sockets
$ mbed compile -t GCC_ARM -m FVP_MPS2_M3

While launching the Mbed OS socket example with the Fast Models Ethernet function, you need to pass the arguments -C fvp_mps2.smsc_91c111.enabled=1 and -C fvp_mps2.hostbridge.userNetworking=1 in the command-line:

$ FVP_MPS2_Cortex-M3 -C fvp_mps2.smsc_91c111.enabled=1 -C fvp_mps2.hostbridge.userNetworking=1 -a BUILD/FVP_MPS2_M3/GCC_ARM/mbed-os-example-sockets.elf

The FVPs start running, and the console output looks like:

Mbed OS Socket example
Mbed OS version: 99.99.99

IP address:
sent 58 [GET / HTTP/1.1]
recv 181 [HTTP/1.1 200 OK]
External IP address:


  1. Timing accuracy of Fast Models can't be guaranteed.
  2. There is no support for external peripherals, such as ESP8266 expansion boards.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.