4.9.1 Debuggable state functions

The functions that are defined in this API allow you to bring one or more instances in a system into a debuggable state.

To achieve this, instances that have a concept of debuggable state maintain the following flags:

Debuggable-state-request flag
This is set and cleared by the client to request that this instance should go into a debuggable state. See 4.9.2 debuggableState_setRequest().
Debuggable-state-acknowledge flag
This is set and cleared by the instance to indicate to clients that this instance is in a debuggable state. See 4.9.3 debuggableState_getAcknowledge().

These flags have similar semantics to a debug request pin and a debug acknowledge pin found on some CPUs.

In addition to these two instance-specific flags, there is a global, non-instance-specific function, simulationTime_runUntilDebuggableState() which advances simulation time until all instances for which a debuggable state is currently requested, have acknowledged it.

Simulation time progresses while bringing an instance into a debuggable state, so it is intrusive. The state of an instance in the system might change as a result of bringing an instance into a debuggable state.

The debuggableState_*() functions are typically only supported by instances that can be in a non-debuggable state. This means:

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