5.7.5. Aborts

The abort signal(s) might also need specific additions, depending on whether there are memory regions that can abort. Even if aborts are not expected, it is strongly recommended that one example of an Instruction Abort and one example of a Data Abort are tested.

Note

The memory model in the example test bench generates a warning when an uninitialized address is accessed. The warning occurs during the abort test, for example:

# Read from uninitialised memory location at 0x01000008. (2)

Data Aborts

You must place the following instruction at the Data Abort vector:

; Return to the instruction AFTER the one
; that caused the abort. 
SUBS PC,r14,#4

You must also add loads and stores, that access the aborting memory regions, to the test. When the Data Abort occurs, the instruction at the vector automatically returns to the instruction following the one that caused the exception.

The sample test includes the above code, and accesses to a data aborting address in the test bench.

Instruction (Prefetch) Aborts

You must place the following instruction at the Prefetch Abort vector:

	; Return to the instruction at the address in R0.
	MOVS PC,R0

You must also add jumps, to and from the aborting memory regions, to the test body. You can do this as follows:

	LDR R1,=AbortingAddress
	ADRL R0,ReturnAddress
	MOV PC,R1
ReturnAddress

The sample test includes the above code, and has a branch to an aborting memory region in the test bench.

Copyright © 2000, 2001 ARM Limited. All rights reserved.ARM DDI 0158D
Non-Confidential