1.8.1 syncLevel definitions

Definitions for 0 - OFF, 1 - SYNC_STATE, 2 - POST_INSN_IO, and 3 - POST_INSN_ALL.

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.

Quantum end detection guarantees that a quantum is not overshot indefinitely. Quantum end detection applies to (but is not limited to) backward branches, indirect jumps, exceptions, and atomic operation retries. In addition to temporal quantum end detection, some events may end a quantum, like executing a barrier, entering a low power state, or accessing a peripheral. Target software and simulation controllers must not rely on a specific scheduling pattern based on these quantum end check points.

Use cases: 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. SCADI can read the up-to-date values of the processor registers, including PC and instruction count. You cannot stop the simulation synchronously.

Quantum end detection is as for syncLevel 0.

Use cases: 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, except that you can stop the simulation 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).

Quantum end detection is as for syncLevel 1, plus it includes the end of LD/ST instructions.

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

syncLevel 3: POST_INSN_ALL

As for syncLevel 2, except that you can stop the simulation synchronously from within any instruction. The simulation stops immediately after the current instruction has been completely executed (post instruction).

Quantum end detection is as for syncLevel 2. This allows switching between syncLevels 2 and 3 without changing the simulation scheduling.

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

Non-ConfidentialPDF file icon PDF version100964_1142_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.