Additional AxiStreamDma Features
The following features are available in the AxiStreamDma class which may be necessary for some operation modes.
All of these features are described in detail at AxiStreamDma.
Kernel Module Debug
Most of the lower level kernel modules which are used with the AxiStreamDma class have a debugging mode. This can be enabled by the user with the following calls:
In Python:
axiStream.setDriverDebug(True)
In C++:
axiStream->setDriverDebug(true);
The debug messages can then be viewed using the dmesg command in Linux:
$ dmesg
ZeroCopy Enable
By default the AxiStreamDma class interacts with the underlying driver using its zero copy buffer mode if available. The user’s implementation may choose to avoid this by asserting rogue::interface::memory::reqFrame() calls with the zeroCopyEn flag set to false.
Alternatively the zero copy mode can be disabled globally for all interactions with the AxiStreamDma class using the following call:
In Python:
axiStream.setZeroCopyEn(False)
In C++:
axiStream->setZeroCopyEn(false);
DMA Acknowledge
Some versions of the lower level driver and the underlying hardware will support a DMA Acknowledge function which pulses a logic signal in the lower level firmware. This was used in some experiments which need more complex handshakes between software and firmware. The following method can be used to trigger this acknowledge.
In Python:
axiStream.dmaAck()
In C++:
axiStream->dmaAck();
Frame Send Timeout
In some cases the lower level driver will not be ready when allocating new buffers or sending frames. After a defined timeout the AxiStreamDma class will generate a warning message but continue to wait for the driver. The following method will adjust the period between warning messages. The passed value is the timeout period in microseconds.
In Python:
axiStream.setTimeout(1500)
In C++:
axiStream->setTimeout(1500);