Datasheet

ARMulator Reference
4-42 Copyright © 1999-2001 ARM Limited. All rights reserved. ARM DUI0058D
ARMul_BusPeripAccessRegistration
This structure and type are declared in
armul_bus.h
, in
install_directory\ARMulate\armulif
. The declaration is as follows:
typedef struct ARMul_BusPeripAccessRegistration {
ARMul_BusPeripAccessFunc *access_func;
void *access_handle;
uint32 capabilities; /* See PeripAccessCapability_* below */
struct ARMul_Bus *bus;
/* 0=> normal peripheral, earlier in list than anything it
* overlaps with. */
unsigned priority;
/* 0..100%
* A higher number will be placed earlier in the list than
* anything that it doesn't overlap with and has a lower access_frequency.
*/
unsigned access_frequency;
unsigned addr_size; /* Number of elements in range[] */
AddressRange range[1];
} ARMul_BusPeripAccessRegistration;
where:
access_func
Pointer to the function to call for a memory access in the given
address range.
access_handle
Pointer to object data for
access_func
.
capabilities
See PeripAccessCapability on page 4-43.
bus
This is returned by
ARMulif_QueryBus
. Do not alter it.
priority
Use this field to assign a priority to peripherals. Zero is the highest
priority. If peripherals have overlapping address ranges, the
highest priority peripheral is accessed first. Lower priority
peripherals are only accessed if higher priority peripherals return
without processing the call.
access_frequency
Use this field to inform ARMulator which peripheral you expect
to be accessed more frequently. This allows ARMulator to access
peripherals more efficiently. Assign the frequency as a percentage
in the range 0% to 100%.
addr_size
This is for future expansion. 1 is for 32-bit addresses. This is the
only address size currently supported.
range
The address range occupied by this peripheral.