Arm Virtual Hardware  Version 2.2.0
Arm FVP Simulation Models
 
Loading...
Searching...
No Matches
Using Arm FVPs

This section gives an overview on how to use the Arm FVPs command line interface.

Infrastructure chapter provides details on how to obtain Arm FVPs and use them in various cloud-native workflows or desktop setups, such as GitHub and Keil MDK.

Running User Applications in CLI

The FVP models can be executed from command prompt by using the model name followed by the model options. Development tools may abstract the execution with GUI, but the underlying approach stays the same.

Below is an example of the command for running a program on the FVP model for Corstone-300 with Ethos-U55 in a Linux environment:

FVP_Corstone_SSE-300_Ethos-U55 -a project.axf -C mps3_board.v_path=./vsi_py/ -f fvp_config.txt --simlimit 24 --stat

Where:

  • FVP_Corstone_SSE-300_Ethos-U55 is the simulation model name. Note that on Windows the executable files shall be used, for example FVP_Corestone_SSE-300_Ethos-U55.exe.
  • -a (or --application) option specifies the application binary file to run on the model (project.axf in this example).
  • -f (or --config-file) specifies the configuration file for the simulation model (fvp_config.txt in this case). See Model Configuration.
  • -C mp3_board.v_path specifies model configuration parameter for VSI python scripts for Virtual Interfaces Overview ("./vsi_py/" here). Use mp2_board.v_path, mps3_board.v_path or mps4_board.v_path, depending on the underlying board.
  • --stat instructs to print run statistics on simulation exit.
  • --simlimit specifies the maximum number of seconds to simulate.

The available command options can be listed using the --help option. Refer to FVP command line options.

Model Configuration

The operation of the FVP models can be configured at start-time by providing following command-line options:

  • using -C (or --parameter) option to configure individual parameters.
  • using option -f (or --config-file) followed by path to the text file with configuration parameters.

The configuration parameters are model-specific and follow syntax instance.parameter= <value>, where instance specifies a simulated instance, such as CPU, interface, bus, memory, peripheral, etc. and can be also hierarchical.

All parameters available for a target model including default setting and brief description can be obtained with the command option -l (or --list-params). Because of the large number of parameters, it is convenient to print them into a text file. For example:

FVP_Corstone_SSE-300_Ethos-U55 --list-params > config.txt

In a simple case, the configuration file for a Corstone-300 target could look like this:

# Parameters:
# instance.parameter=value #(type, mode) default = 'def value' : description : [min..max]
#------------------------------------------------------------------------------
core_clk.mul=100000000 # (int , init-time) default = '0x17d7840' : Clock Rate Multiplier. This parameter is not exposed via CADI and can only be set in LISA
mps3_board.telnetterminal0.start_telnet=0 # (bool , init-time) default = '1' : Start telnet if nothing connected
mps3_board.uart0.out_file=- # (string, init-time) default = '' : Output file to hold data written by the UART (use '-' to send all output to stdout)
mps3_board.visualisation.disable-visualisation=1 # (bool , init-time) default = '0' : Enable/disable visualisation
cpu0.semihosting-enable=1 # (bool , init-time) default = '0' : Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false.
#------------------------------------------------------------------------------

Where:

  • core_clk.mul=100000000 specifies the virtual time, in this case 100 MHz CPU clock.
  • mps3_board.telnetterminal0.start_telnet=0 disables the Telnet connectivity.
  • mps3_board.uart0.out_file=- UART output is send to stdout.
  • mps3_board.visualisation.disable-visualisation=1 disables the graphical user interface of the FVP.
  • cpu0.semihosting-enable=1 enables semihosting in the FVP.

Note that instances implemented in the model can be obtained with the command option --list-instances that returns instance names and corresponding model component type, version and brief description. Section Fast Models components explains all the components available with Fast Model technology and can be used for finding more information about a specific instance in the FVP.

For additional details, see chapter Configuring the model in the Getting Started with Fixed Virtual Platforms Guide.