Arm have released a collection of free of charge Ecosystem Fixed Virtual Platforms (FVPs) to enable developers to get an early start at developing software on top of the Arm Corstone-300 or Corstone-700 reference systems. These systems have been designed for different classes of IoT devices, with Corstone-300 utilizing Arm Cortex-M55 processor with support for Helium, enabling best in class ML applications. Corstone-700 utilizes the Cortex-A32 processor, the lowest power solution for Linux based software.
In this blog, I will briefly illustrate how to setup Arm Development Studio to connect to the Corstone-700 FVP. For information on connecting Keil Microcontroller Development Kit to the Corstone-300 FVP, see here.
Development Studio provides support for all Arm processors, not just Cortex-M, and so this can be used with both the Corstone-700 and Corstone-300 FVPs, though I shall only discuss Corstone-700 here. Note that at time of writing (Development Studio 2020.0) Cortex-A32 is supported by Silver and higher editions. You can generate a 30-day evaluation license inside the IDE (Help > Arm License Manager > if you do not have a suitable license available.
I built the reference software stack as described here for the below, which uses a tiny Linux implementation. This includes a script (run_model.sh) to launch the FVP with the stack standalone.
You can edit the script to add -I to launch with FVP with an Iris debug interface enabled, so that the debugger can connect. Use -p to show the port number (default is 7100), else --iris-port to specify a specific port number. You can then create a debug instance to connect to an already running model (explained below).Here I shall launch the FVP system completely from within the Development Studio IDE. I have copied the built files from my Linux build machine to my Windows host.
The Ecosystem FVPs were released after Development Studio 2020.0. Though we plan to include the platform configuration for them in future releases. I attach the configurations that you can reuse:
Ecosystem_FVP_configs.zip
Extract the file to your host machine (we recommend you do this inside your Workspace folder). Open Preferences (from the Window menu), and navigate to the Configuration Database section. Use the Add button to point to the location of this new database, and then Rebuild the database. When done, you can close this view.
The Corstone-700 FVP consists of a quad-core Cortex-A32 as well as a Cortex-M0+ (the boot processor) and a Cortex-M3.The firmware for the Cortex-M0+ must run first, and so I have created three debug connections in this order (launch configurations are also attached below). The first connection will launch the FVP, with all the options to load the firmware binaries, connect, and halt, the Cortex-M0+ of the model, via Iris.
These options were extracted from the run_model.sh script, Note for portability you can use the workspace_loc notation for the path to always refer to files within this workspace folder. You do not need to specify -I (or -p), they are automatically appended. Replicated below for readability.
-C se.trustedBootROMloader.fname="${workspace_loc:/Corstone700/images/corstone700/se_romfw.bin}" -C board.flashloader0.fname="${workspace_loc:/Corstone700/images/corstone700/iota-tiny-image-corstone700.wic}" -C extsys_harness0.extsys_flashloader.fname="${workspace_loc:/Corstone700/images/corstone700/es_flashfw.bin}"
The next connection is to the Cortex-A32 cluster. Note that this is configured to connect to the already running model, you only need to know the port number (and host IP if running remotely).
Similarly, you can also connect to the Cortex-M3 of the model. Also, if you started the model externally, then you would also use this already running model connection for any of the processors within the model.
We can now control the FVP from the debugger. Click continue, and all CPUs will run in parallel, and boot into their appropriate code. We can debug all processors simultaneously.
The Internet of Things will open up countless opportunities for innovation, and Arm is at the forefront of the technology enabling this. With these Corstone FVPs, in conjunction with Keil MDK and/or Arm Development Studio, and the software stacks already available for these platforms, you can get a head start developing applications for this space. The virtual platforms are available free of charge, and fully featured Keil MDK Professional and Arm Development Studio Gold evaluation versions are also available.
Download the Ecosystem FVPs today
Update:
Arm Development Studio 2020.1 is now available, containing the debug configurations out-of-the-box. For more information:community.arm.com/.../arm-development-studio-2020-1-now-available