B.3.6. CADI_EXECMODE_t enumeration

The values in CADI_EXECMODE_t enumeration are listed in Example B.30:

Example B.30. CADI_EXECMODE_t

enum CADI_EXECMODE_t {
     CADI_EXECMODE_Stop = 0,
     CADI_EXECMODE_Run = 1,
     CADI_EXECMODE_Bpt = 2,
     CADI_EXECMODE_Error = 3,
     CADI_EXECMODE_HighLevelStep = 4,      // Reserved for future use.
     CADI_EXECMODE_RunUnconditionally = 5, // Reserved for future use.
     CADI_EXECMODE_ResetDone = 5,
     CADI_EXECMODE_ENUM_MAX = 0xFFFFFFFF    };

The enumeration values are used by modeChange():

modeChange(CADI_EXECMODE_Stop)

The simulation was in state running and has now stopped. This is always the last callback in a sequence of callbacks when the simulation stopped. If the stop was because one or more breakpoints have been hit then this callback is preceded by one or more modeChange(CADI_EXECMODE_Bpt, num) callbacks where num specified the breakpoint(s) being hit. CADIExecStop() eventually results in a modeChange(CADI_EXECMODE_Stop) callback. This callback implies a refresh(REGISTERS|MEMORY) callback that indicates a debugger must assume registers and memory have changed.

modeChange(CADI_EXECMODE_Run)

The simulation was in state stopped and is now running. CADIExecContinue() and CADIExecSingleStep() eventually result in a modeChange(CADI_EXECMODE_Run) callback.

modeChange(CADI_EXECMODE_Bpt, num)

The breakpoint number num of the breakpoint being hit is passed as the second parameter in the modeChange callback. This callback can be called several times in a straight sequence if multiple breakpoints have been hit at the same time. A modeChange(CADI_EXECMODE_Stop) callback is always following and terminating this sequence, except if continueExecution was true for all breakpoints being hit.

Note

This callback does not mean that the simulation stopped. It can be followed by more modeChange(CADI_EXECMODE_Bpt, num) callbacks. The final modeChange(CADI_EXECMODE_Stop) is responsible for signaling that the simulation stopped.

modeChange(CADI_EXECMODE_Error)

This is the same as modeChange(CADI_EXECMODE_Stop), but the model is in a state stopped and error after this callback. This means that all execution control functions are disabled. CADIExecReset() must be called first to enable them again. This callback is not followed by another modeChange(CADI_EXECMODE_Stop) callback, it implies modeChange(CADI_EXECMODE_Stop). This callback implies a refresh(REGISTERS|MEMORY) callback which means that a debugger must assume registers and memory have changed.

modeChange(CADI_EXECMODE_ResetDone)

The CADIExecReset() request recently requested by a debugger is now complete. This is always the last callback in a sequence of callbacks cased by a CADIExecReset(). A modeChange(CADI_EXECMODE_Stop) might happen before this callback if the model was running when CADIExecReset() was issued.

CADIExecReset() is an asynchronous call. Each debugger connected to a target, including the caller, receives this callback after the simulation finishes the reset.

This callback implies a refresh(REGISTERS|MEMORY) callback that indicates that a debugger must assume registers and memory have changed.

Copyright © 2008-2011 ARM. All rights reserved.ARM DUI 0444H
Non-ConfidentialID010512