Datasheet
ARMulator Basics
2-2 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI0058D
2.1 About ARMulator
ARMulator is an instruction set simulator. It simulates the instruction sets and
architecture of various ARM processors. To run software on ARMulator, you must
access it either through the ARM symbolic debugger,
armsd
, through the ARM GUI
debugger, AXD, or through a third party debugger. See AXD and armsd Debuggers
Guide for details.
ARMulator is suited to software development and benchmarking ARM-targeted
software. It models the instruction set and counts cycles (see ARMulator cycle types on
page 2-14). There are limits to the accuracy of benchmarking and cycle counting, see
Accuracy.
ARMulator provides all the facilities needed to allow complete C or C++ programs to
run on the simulated system. See also Chapter 5 Semihosting for information on the C
library semihosting SWIs supported by ARMulator.
2.1.1 Accuracy
ARMulator is not 100% cycle accurate, because it is not based on the actual processor
design. In general, models of the less complex, uncached ARM processor cores are
cycle accurate, but models of the cached variants might not correspond exactly with the
actual hardware.
ARMulator is suitable for use as a software development tool for system design, but a
hardware model must be used if 100% accuracy is required.
You can use ARMulator for benchmarking if either:
• the core you are modelling does not have a cache
• you are only interested in approximate comparisons.
ARMulator does not model Asynchronous Mode on cached cores. If you set the control
bits in CP15 to specify Asynchronous Mode, ARMulator gives a warning:
Set to Asynch mode, WARNING this is not supported
You can continue debugging, but ARMulator behaves exactly as it does in Synchronous
Mode.