5.8. Non-CADI sync watchpoints

This section describes syncLevel enum values, semantics and behaviors, with syncLevel values listed from fast to slow simulation, from less to more requirements:

syncLevel 0: OFF

The simulator runs as fast as possible. It does not permit inspection of the processor registers while the simulation is running, and does not stop synchronously when requested to do so.

Use case: normal fast simulation and normal CADI debugging while no CADI watchpoint is set.

syncLevel 1: SYNC_STATE

The simulation runs slightly slower than syncLevel 0. The up-to-date values of the processor registers, including PC and instruction count, can be read by SCADI. The simulation cannot be stopped synchronously.

Use case: external breakpoints that block the simulation, inspect state of processor/memory from within a peripheral or memory access.

syncLevel 2: POST_INSN_IO

As for syncLevel 1. In addition, the simulation can be stopped synchronously from within all LD/ST and similar instructions. The simulation stops immediately after the current LD/ST instruction has been completely executed (post instruction).

Main use cases: CADI watchpoints, external breakpoints, stopping from within LD/ST-related MTI callbacks.

syncLevel 3: POST_INSN_ALL

As for syncLevel 2. In addition, the simulation can be stopped synchronously from within any instruction. The simulation stops immediately after the current instruction has been completely executed (post instruction).

Main use case: a Stop from within arbitrary MTI callbacks such as the INST callback. A fallback for all use cases that do not fall into syncLevel 0-2.

Copyright © 2008-2013 ARM. All rights reserved.ARM DUI 0423O
Non-ConfidentialID060613