This is by far the easiest way to do low level debugging.
There are many TApiMacros which set up scans.
Providing debug information for a histogram:
// Load useful auxilliary functions .X Functs.cxx clearSlaveMemory(slave, 0xa00a2000, 0x10000); // Set auto-stall bit in MDSP control register tapi.setDebugOption("scan_auto_stall"); tapi.standardRegisterDump(0, 0, 0); // Assuming on the first ROD tapi.doScan(scan); tapi.standardRegisterDump(0, 0, 0); tapi.debugStepHistogram(); // Watch text buffers for relevant information tapi.debugStepHistogram(); tapi.standardRegisterDump(0, 0, 0);
The primitives sent during this run are saved in $SCT_SCRATCH_DIR/PrimLists? if debug option "save_histogram" is on (it is set in init.cxx). These can be "decoded" by running:
SctApi/tests/PrimList file/name/to/PrimList.bin
Providing data for simulation via input FIFOs:
tapi.setDebugOption("save_raw_capture"); // Set up modules for particular configuration // Possiblyt send an ECR & BCR to synchronise multiple modules tapi.probe(0, 0, 0);
The capture files will be saved to $SCT_SCRATCH_DIR/Captures. RawCaptureA? stores the low 48 channels, RawCaptureB? stores the upper 48 channels.