3.1.2. Supplied models

ARMulator is supplied with source code for the following groups of models:

Basic models

tracer.c

The tracer module can trace instruction execution and events from within ARMulator (see Tracer). You can link your own tracing code onto the tracer module.

profiler.c

The profiler module provides the profiling function (see Profiler). This includes basic instruction sampling and more advanced use, such as profiling cache misses. It does this by providing an UnkRDIInfoHandler that handles the profiling requests from the debugger (see Unknown RDI information handler).

pagetab.c

On reset, this module sets up cache, PU or MMU and associated pagetables inside ARMulator (see Pagetable module).

stackuse.c

If enabled this model tracks the stack size. Stack usage is reported in the ARMulator memory statistics. You can set the stack upper and lower bounds in the peripherals.ami file (see Stack tracker).

nothing.c

This model does nothing. You can use this in the peripherals.ami file to disable models (see Configuring ARMulator to disable a model).

semihost.c

This model provides the semihosting SWIs described in Chapter 5 Semihosting.

dcc.c

This is a model of a Debug Communications Channel (DCC).

mapfile.c

This model allows you to specify the characteristics of a memory system. See Map files for further information.

flatmem.c

flatmem models a zero-wait state memory system. See Default memory model for further information.

Peripheral models

intc.c

See Interrupt controller. intc is a model of the interrupt controller peripheral described in the Reference Peripherals Specification (RPS).

timer.c

See Timer. timer is a model of the RPS timer peripheral. Two timers are provided. timer must be used in conjunction with an interrupt controller, but not necessarily intc.

millisec.c

A simple millisecond timer.

watchdog.c

Watchdog. See Watchdog. watchdog is a generic watchdog model. It does not model any specific watchdog hardware, but provides generic watchdog functions.

tube.c

Tube. See Tube. tube is a simple debugging aid. It allows you to check that writes are taking place to a specified location in memory.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI0058D
Non-Confidential