3.7.2. ARMulator configuration

Use the Armulator Configuration dialog to change configuration settings for the ARMulator.

Follow these steps to change configuration settings for the ARMulator:

  1. Select Configure Debugger from the Options menu.

  2. Click on the Target tab.

  3. Select ARMulate in the Target Environment field.

  4. Click on the Configure button. The ARMulator Configuration dialog is displayed (Figure 3.18).

    Figure 3.18. Configuration of ARMulator

    Configuration of ARMulator
  5. Change the following configuration settings, as required:

    Variant

    Processor type required for emulation.

    Clock

    Clock speed to be used for emulation.

    If the Emulated radio button is selected then the clock speed used is the value that you enter into the Speed field.

    Values stored in debugger internal variable $clock depend on this setting, and are unavailable if you select Real-time (see Debugger Internals window).

    If the Real-time radio button is selected then the real-time clock of the host computer is used and the Speed field is unavailable.

    The ARM Debugger clock speed defaults to 0.00 for compatibility with the defaults of armsd. Selecting Real-time in the ARM Debugger is equivalent to omitting the -clock armsd option on the command-line. In other words, the clock frequency is unspecified.

    For the ARMulator, an unspecified clock frequency is of no consequence because ARMulator does not need a clock frequency to be able to ‘execute’ instructions and count cycles (for $statistics). However, your application program may sometimes need to access a clock, for example, if it contains calls to the standard C function clock() or the Angel SYS_CLOCK SWI, so ARMulator must always be able to give clock information. It does so in the following way:

    • if a clock speed has been specified to the ARM Debugger or armsd, then ARMulator uses that frequency value for its timing

    • if Real-time is selected (for the ARM Debugger) or unspecified (for armsd), the real-time clock of the host computer is used by ARMulator instead of an emulated clock.

    In either case, the clock information is used by ARMulator to calculate the elapsed time since execution of the application program began. This elapsed time can be read by the application program using the C function clock() or the Angel SWI_clock, and is also visible to the user from the debugger as $clock. It is also used internally by the ARM Debugger and armsd in the calculation of $memstats. The clock speed (whether specified or unspecified) has no effect on actual (real-time) speed of execution under ARMulator. It affects the simulated elapsed time only.

    $memstats is handled slightly differently because it does need a defined clock frequency, so that ARMulator can calculate how many wait states are needed for the memory speed defined in an armsd.map file. If a clock speed is specified and an armsd.map file is present, then $memstats can give useful information about memory accesses and times. Otherwise, for the purposes of calculating the wait states, an arbitrary default of 1MHz is used to calculate a core:memory clock ratio, so that $memstats can still give useful memory timings.

    Floating-point emulation

    Toggles floating-point emulation on and off.

    If you are using the software floating-point C libraries, ensure that this option is off (blank). The option should be on (checked) only if you are using the floating-point emulator (FPE).

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D
Non-Confidential