5.10.4 Example command lines

The following command lines show how to load the PipelineModel plug-in with a variety of platforms. Any parameters that are not relevant to the examples have been omitted.

Default usage, with no options

The following command line attaches the plug-in to any instance and sends output to stdout:

./EVS_Base_Cortex-A53x1.x
…
--plugin CortexA53PipelineModel.so

Single cluster, single processor platform

The following command line attaches the plug-in to cluster0.cpu0, which is a Cortex®‑A53 processor. It outputs the file stat.txt:

./EVS_Base_Cortex-A53x1.x
…
--plugin CortexA53PipelineModel.so
-C PipelineModel.CortexA53PipelineModel.core-type=ARM_Cortex-A53
-C PipelineModel.CortexA53PipelineModel.instance-name=Base.cluster0.cpu0
-C PipelineModel.CortexA53PipelineModel.output=stat.txt

Single cluster, multiprocessor platform, default usage

The following command line attaches the plug-in to all Cortex‑A53 processors:

./EVS_Base_Cortex-A53x2.x
…
--plugin CortexA53PipelineModel.so

Single cluster, multiprocessor platform

The following command line loads two plug-in instances in a dual-processor platform. The first plug-in instance is named CortexA53_0 and is attached to cluster0.cpu0. The second plug-in instance is named CortexA53_1 and is attached to cluster0.cpu1:

./EVS_Base_Cortex-A53x2.x
…
--plugin CortexA53_0=CortexA53PipelineModel.so
--plugin CortexA53_1=CortexA53PipelineModel.so
-C PipelineModel.CortexA53_0.core-type=ARM_Cortex-A53
-C PipelineModel.CortexA53_0.instance-name=Base.cluster0.cpu0
-C PipelineModel.CortexA53_1.core-type=ARM_Cortex-A53
-C PipelineModel.CortexA53_1.instance-name=Base.cluster0.cpu1	

Multicluster, single processor platform

The following command line names the plug-in instance Core1 and attaches it to cluster1.cpu0:

./EVS_Base_Cortex-A73x1-A53x1.x 
… 
--plugin Core1=CortexA53PipelineModel.so
-C PipelineModel.Core1.core-type=ARM_Cortex-A53 
-C PipelineModel.Core1.instance-name=Base.cluster1.cpu0

Plug-in core-type mismatch

The following command line specifies a Cortex‑A55 processor. This mismatches the platform, which is Cortex‑A53. The plug-in will fail to load:

./EVS_Base_Cortex-A53x1.x
…
--plugin CortexA53PipelineModel.so 
-C PipelineModel.CortexA53PipelineModel.core-type=ARM_Cortex-A55

Plug-in instance-name mismatch

The following command line specifies an instance-name that does not exist. The plug-in will fail to load:

./EVS_Base_Cortex-A53x1.x 
… 
--plugin CortexA53PipelineModel.so 
-C PipelineModel.CortexA53PipelineModel.instance-name=Base.cluster0.cpu2

Range processing

The following command line specifies an address range. The PipelineModel only processes instructions within this range:

-C PipelineModel.CortexA53PipelineModel.start-pc=0x80000001
-C PipelineModel.CortexA53PipelineModel.end-pc=8000FFFF

If the start and end of the range are identical, the PipelineModel processes all instructions. This is the same as not specifying a range at all:

-C PipelineModel.CortexA53PipelineModel.start-pc=0x80000001
-C PipelineModel.CortexA53PipelineModel.end-pc=0x80000001

Cycle limit

It might be useful to run the PipelineModel with a cycle limit. You can do this using the model option --cyclelimit. When the cycle limit is reached, the simulation terminates and the output file is generated.

The following command line causes the PipelineModel to process all instructions until the specified cycle limit is reached:

./EVS_Base_Cortex-A53x1.x 
… 
--cyclelimit=30000000
--plugin CortexA53PipelineModel.so

Note:

The --cyclelimit option starts counting from the instruction at the beginning of the simulation, not from the instruction at start-pc. If the cycle limit has been reached and the start-pc has not yet been hit, the PipelineModel will not process any instructions.
Non-ConfidentialPDF file icon PDF version100964_1161_00_en
Copyright © 2014–2019 Arm Limited or its affiliates. All rights reserved.