|
| 1 | +## Fast Models |
| 2 | + |
| 3 | +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. |
| 4 | + |
| 5 | +This document explains how to build, run and debug Arm Mbed OS applications with Arm Fast Models. Due to licensing, Mbed OS do not provide any Fast Models. If you do not have a Fast Models license yet, you can visit [Arm Fast Models](https://developer.arm.com/products/system-design/fast-models) to obtain an evaluation license. |
| 6 | + |
| 7 | +Fixed Virtual Platforms (FVPs) are prebuilt system-level models after Arm’s reference platforms by Fast Models. |
| 8 | + |
| 9 | +For more details on Fast Models and FVPs, please reference further documentation about [Arm Fast Models](https://developer.arm.com/products/system-design/fast-models) or [FVPs](https://developer.arm.com/products/system-design/fixed-virtual-platforms). |
| 10 | + |
| 11 | +### Supported Fast Models FVPs |
| 12 | + |
| 13 | +Mbed OS has enabled working with following FVPs Cortex-M family with the MPS2 platforms: |
| 14 | + |
| 15 | +Fast Models platforms | Target name in Mbed OS |
| 16 | +---|--- |
| 17 | +FVP_MPS2_Cortex-M0 | FVP_MPS2_M0 |
| 18 | +FVP_MPS2_Cortex-M0plus | FVP_MPS2_M0P |
| 19 | +FVP_MPS2_Cortex-M3 | FVP_MPS2_M3 |
| 20 | +FVP_MPS2_Cortex-M4 | FVP_MPS2_M4 |
| 21 | +FVP_MPS2_Cortex-M7 | FVP_MPS2_M7 |
| 22 | + |
| 23 | +### Mbed OS examples on Fast Models |
| 24 | + |
| 25 | +Fast Models can run most of the Mbed OS examples. (Please see [known issues 2 and 3](#known-issues)] for more information.) |
| 26 | + |
| 27 | +Examples you can successfully run include [`mbed-os-example-thread-statistics`](https://github.com/ARMmbed/mbed-os-example-thread-statistics), [`mbed-os-example-tls`](https://github.com/ARMmbed/mbed-os-example-tls), [`mbed-os-example-devicekey`](https://github.com/ARMmbed/mbed-os-example-devicekey) and [`mbed-os-example-nvstore`](https://github.com/ARMmbed/mbed-os-example-nvstore). |
| 28 | + |
| 29 | +The following examples use [`mbed-os-example-blinky`](https://github.com/ARMmbed/mbed-os-example-blinky). |
| 30 | + |
| 31 | +To run Mbed OS examples with Fast Models, you need to install the Fast Models product and set up the license. |
| 32 | + |
| 33 | +#### Import the example with Arm Mbed CLI |
| 34 | + |
| 35 | +Import the blinky example: |
| 36 | + |
| 37 | +``` |
| 38 | +$ mbed import mbed-os-example-blinky |
| 39 | +$ cd mbed-os-example-blinky |
| 40 | +``` |
| 41 | + |
| 42 | +#### Build the example with Mbed CLI |
| 43 | + |
| 44 | +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: |
| 45 | + |
| 46 | +``` |
| 47 | +$ mbed compile -t GCC_ARM -m FVP_MPS2_M3 |
| 48 | +``` |
| 49 | + |
| 50 | +#### Run Mbed OS examples with Fast Models |
| 51 | + |
| 52 | +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: |
| 53 | + |
| 54 | +``` |
| 55 | +$ FVP_MPS2_Cortex-M3 -a BUILD/FVP_MPS2_M3/GCC_ARM/mbed-os-example-blinky.elf |
| 56 | +``` |
| 57 | + |
| 58 | +The FVPs start running, andthe LEDs on the FVP blink, like: |
| 59 | + |
| 60 | +<span class="images"><span>a screen-shot for FVPs running</span></span> |
| 61 | + |
| 62 | +<span class="notes">**Note:** FVP's `-a` option only takes .elf format images. To use the `--data` option with binary format images, please reference the [FVP Users' Guide](http://arminfo.emea.arm.com/help/index.jsp?topic=/com.arm.doc.100966_1103_00_en/index.html).</span> |
| 63 | + |
| 64 | +### Notes |
| 65 | + |
| 66 | +1. Timing accuracy of Fast Models can't be guaranteed. |
| 67 | +1. There is no support for external peripherals, such as ESP8266 expansion boards. |
| 68 | +1. Ethernet support for Fast Models is in progress. |
0 commit comments