5.1. Configuring RVISS (ARMulator) for VFP in RVD

The RVISS (ARMulator) provides models of the VFP architecture that can run VFP instructions. However as these model the architecture rather than specific implementations, they cannot be used to accurately benchmark the floating-point performance that will be obtained in a real system.

In RVD an ARMulator connection can be established in two different ways, either by using the RealView connection broker (recommended) or the Remote Debug Interface (RDI). If you have a multi-core license, the connection broker allows more than one ARMulator to operate in a single instantiation of RVD (See the RVISS User Guide provided with RVDS).

Connecting to RVISS via RealView Connection Broker

To do this navigate to:

RVDS 2.1

File → Connection → Connect to target

RVDS 2.2

Target → Connect to target

This opens the Connection Control window, you must start a new ARMulator Simulator by clicking on the crosses navigate to:

+ Server + localhost.

To configure the new device right click on the new_ARM option and select "Configure Device Info". Select the required Processor and VFP type and click "OK". Then, in the Connection Control Window, place a tick by "new arm" to start the simulator.

RVDS 3.0

Target → Connect to target

Click on localhost in the Connection Control Window, then click "Open Target Access". Right click on new_arm which should now have appeared in the expanded tree and select Configure. In the Configuration Window select the required Processor and VFP type and click OK. Re open the Connection Control Window, select "new_arm" and click Connect to start the simulator.

Table 3. 

Select an appropriate Processor and FPU setting

To emulate a vfpv2 FPU on an ARM9, first select the processor needed (e.g. ARM926EJ-S) and then select VFPv2. VFPv2 (Fast-mode) is a VFP model that does not bounce to support code.

If a vfpv2 FPU is to be included for an ARM10, for example the ARM1020E, the variant including the VFP10, e.g. ARM10200E should be chosen and the "No FPU" setting should be selected.

For ARM11's, each processor has a variant including an "F" in the name symbolising that it includes an FPU. Once again when choosing one of these processors, for example ARM1136JF-S, the "No FPU" setting should be selected.

If you select a processor containing an FPU and then an FPU model is chosen explicitly, the behaviour of the ARMulator can be unpredictable.

Connecting to RVISS via Remote Debug Interface

To do this within RVD navigate to:

RVDS 2.1

File → Connection → Connect to target

RVDS 2.2

Target → Connect to target

This will open the Connection Control window. Click on the cross next to the ARM-A-RR item to expand the RDI targets tree.

If an ARMulator item does not appear, right click on the ARM-A-RR item and select "Add/Edit/Remove devices". If an ARMulator option appears in the window that opens ensure that the corresponding check box is ticked. If ARMulator does not appear click "Add DLL…" and open:

"Install_directory\RVARMulator\ARMulator\vers\build\platform\ARMulate.dll"

where Install_directory, vers, build,and platform are specific to your installation (e.g. "C:\Program Files\ARM", vers 1.41, build 253 and win_32-pentium).

To configure the ARMulator right click on the ARMulator item and select "Configure Device Info…". The configuration dialogue is the same as that used in AXD, see section 5.3 below.

RVDS 3.0 onwards:

RDI has been deprecated in RVDS 3.0, use connection broker instead.

Vector Catch

The VFP Support Code is installed on to the undefined instruction vector table entry, so unless you are using RunFast mode, it is also necessary to ensure that the debugger is not trapping undefined instructions using its "vector_catch" function.

To do this navigate to:

RVDS 2.1

Debug → Simple Breakpoints → Processor events

RVDS 2.2 and 3.0

Debug → Processor Exceptions

and clear the "Undefined" tick box.

To alter vector_catch on ARMulator connected via RDI or Multi-ICE navigate to:

RVDS 2.1

View → Pane Views → Registers

RVDS 2.2

View → Registers

RVDS 3.0 onwards

RDI has been deprecated in RVDS 3.0, use connection broker instead.

In the register pane select the debug tab. Vector_catch default value is 0x13B to disable "Undefined" set the value to 0x139 (i.e clear the 0x002 bit).

Copyright © 2005. All rights reserved.DAI0133B