5.5.2. Test program operation

The test program is written to be loaded at 0x0. If your ASIC design does not allow you to load the test program at address 0x0, you must modify the source code so that the code is loaded at another address and then a jump is made to the start address from the reset vector at 0x0 (or 0xFFFF0000, if in an ARM720 system with HIVECS HIGH).

When the program starts running, it initially executes an infinite loop. This can be at the ARM reset vector, or at the address that is initially jumped to by the instruction at the reset vector. The purpose of this infinite loop is to allow the BST to program the ETM registers to enable tracing to start. The BST carries out the following operations:

  1. Stops the ARM processor by setting the DBGRQ bit in the EmbeddedICE debug control register.

  2. Programs and enables the ETM.

  3. Restarts the ARM processor at the beginning of the main body of the test.

The test program then runs to completion.

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