1.9.5 SCADI semantics

This section lists the available subset of functionality and the differences in semantics from the CADI interface.

The SCADI interface provides a subset of functionality of the CADI interface. All functions in SCADI differ from the CADI functions, that is, the caller is responsible for satisfying the constraints and requirements in terms of synchronization with the simulation.

These functions have the same semantics as in CADI:

  • CADIRegGetGroups().
  • CADIRegGetMap().
  • CADIRegGetCompount().
  • CADIMemGetSpaces().
  • CADIMemGetBlocks().
  • CADIMemGetOverlays().
  • CADIGetParameters().
  • CADIGetParameterInfo().
  • CADIXfaceGetFeatures().

The following debug read access functions have the same semantics as in CADI, but the values that these read access functions return might differ from the values returned by the corresponding CADI functions because some of the accessed resource values might change during the execution of an instruction. The values of resources that are modified by the current instruction are UNKNOWN, except the PC, which always reflects the address of the last instruction that was issued. Reading and writing registers and memory while the simulation is running is generally only useful for syncLevel >= SL_SYNC_STATE. For SL_OFF, all registers and all memory locations are always UNKNOWN while the simulation is running.

  • CADIRegRead().
  • CADIMemRead().
  • CADIGetParameterValues().
  • CADIGetInstructionCount().
  • CADIGetPC().
  • CADIGetDisassembler().

The following write access functions always provide write access to the register in the Simulation register group. They also might provide limited write access semantics to certain resources. A SCADI implementation might choose not to support any write access to core registers and memory:

  • CADIRegWrite().
  • CADIMemWrite().
  • CADISetParameters().

The breakpoint functions have nearly all the same semantics as in the CADI interface, except that changes to breakpoints only become effective at the next stop event checkpoint defined by the current syncLevel. Changes might also only become visible in CADIBptRead() and CADIBptGetList() at this next synchronization point.

  • CADIBptGetList().
  • CADIBptRead().
  • CADIBptSet().
  • CADIBptClear().
  • CADIBptConfigure().

Execution control is limited to stopping the simulation. The simulation stops at the next synchronization point as defined by the current syncLevel:

  • CADIExecStop().

All other functions are not supported, and return CADI_STATUS_CmdNotSupported.

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