|
| 1 | +## Fast Models |
| 2 | + |
| 3 | +Arm Fast Models are accurate, flexible programmer's view software models of Arm cores, subsystems and peripherals etc. Users 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 license reason, Mbed OS do not provide any Fast Models. If you already have a valid license to use Fast Models, you can follow this documentation to start. 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 | +FVPs (Fixed Virtual Platforms) are pre-built system-level models after arm’s reference platforms by Fast Models |
| 8 | + |
| 9 | +For more details on Fast Models and FVPs, please referencing [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 | + |
| 12 | +## Mbed OS Supported Fast Model FVPs |
| 13 | +Mbed OS is enabled working with following FVPs Cortex-M family with MPS2 platforms: |
| 14 | +Fast Models Platforms | Target name in Mbed OS |
| 15 | +---|--- |
| 16 | +FVP_MPS2_Cortex-M0 | FVP_MPS2_M0 |
| 17 | +FVP_MPS2_Cortex-M0plus | FVP_MPS2_M0P |
| 18 | +FVP_MPS2_Cortex-M3 | FVP_MPS2_M3 |
| 19 | +FVP_MPS2_Cortex-M4 | FVP_MPS2_M4 |
| 20 | +FVP_MPS2_Cortex-M7 | FVP_MPS2_M7 |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | +## Mbed OS examples on Fast Models |
| 25 | +Currently Fast Models able run most of the Mbed OS examples which do not require networking or external peripherals[^1] . |
| 26 | + |
| 27 | +[`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), [`mbed-os-example-nvstore`](https://github.com/ARMmbed/mbed-os-example-nvstore) etc. can be successfully run as of today |
| 28 | + |
| 29 | +Here we take [`mbed-os-example-blinky`](https://github.com/ARMmbed/mbed-os-example-blinky) as an example |
| 30 | + |
| 31 | +#### Import example with Mbed CLI |
| 32 | +Import blinky example as normal: |
| 33 | +``` |
| 34 | + $ mbed import mbed-os-example-blinky |
| 35 | + $ cd mbed-os-example-blinky |
| 36 | +``` |
| 37 | + |
| 38 | +#### Build example with Arm Mbed CLI |
| 39 | + |
| 40 | +Fast Models targets are enabled to build with all 3 major tool-chains: ARM GCC_ARM and IAR. To build blinky example for the FVP_MPS2_Cortex-M3 target with gcc complier, just run: |
| 41 | + ``` |
| 42 | + $ mbed compile -t GCC_ARM -m FVP_MPS2_M3 |
| 43 | + ``` |
| 44 | + |
| 45 | +#### Run Mbed OS examples with Fast Model |
| 46 | + |
| 47 | +To run mbed OS example with Fast Model FVPs, you need to have Fast Models product installed and License set up. |
| 48 | + |
| 49 | +>This document dose not including the section for Fast Models product installation and configuration. Because it is another topic, and we just assume that users had that done already. For more details about configuring and running Arm Fast Models can be found in [Fast Models Documentation](https://developer.arm.com/products/system-design/fast-models/docs) |
| 50 | +
|
| 51 | +Load the compiled example image to FVP_MPS2_Cortex-M3 target, you simple just need to pass the `-a` option to the Fast Model target, e.g. : |
| 52 | + ``` |
| 53 | + $ FVP_MPS2_Cortex-M3 -a BUILD/FVP_MPS2_M3/GCC_ARM/mbed-os-example-blinky.elf |
| 54 | + ``` |
| 55 | +You should be able to see FVPs starts running, and serial output through telnet/xterm, or LEDs on the FVP is blinking, like: |
| 56 | + |
| 57 | +<span class="images"><span>a screen-shot for FVPs running</span></span> |
| 58 | + |
| 59 | +*NOTE:* |
| 60 | + |
| 61 | +> *FVP's -a option only takes elf format images, if you need to use "--data" option with binary format images, detailed options please referencing [FVP Users' Guide](http://arminfo.emea.arm.com/help/index.jsp?topic=/com.arm.doc.100966_1103_00_en/index.html)* |
| 62 | +
|
| 63 | +## Known issues |
| 64 | +1 Timing accuracy of Fast Model FVPs can't be guaranteed |
| 65 | +2 No support for external peripherals. e.g. esp8266, Expansion boards |
| 66 | +3 Ethernet support for Fast Model FVPs is in working progress. |
| 67 | + |
| 68 | +[^1]: *Because of known issue 2 and 3*, Fast Models not able to run all examples at moments |
0 commit comments