Expand description
On-board memory management for readoutboards
The DRS4 is able to map its registers and the data buffer directly into OS memory.
memory locations for the control registers /dev/uio0 - DRS4 control /dev/uio1 - buffer 1 for blobs /dev/uio2 - buffer 2 for blobs
Enums§
- ! There are 2 data buffers, commonly denoted as “A” and “B”. A -> /dev/uio1 B -> /dev/uio2
Constants§
- Data buffer related constants The data buffer is /dev/uio1 and /dev/uio2 are internally a single buffer but with 2 halves.
- The size of a 32bit unsigned int in byte (all words in registers are u32)
Functions§
- Allow READ access to the memory registers at /dev/uio**
- Allow WRITE access to the memory registers at /dev/uio0
- Read a data buffer directly into a RBEventMemory streamer, avoiding the detour over vector.extend (which performs clones), so this should actually be much more efficient.
- ! Get a single value from a 32bit (1 word) register This reads ONLY control registers (in /dev/uio0)
- Read one of the data buffers and return a bytestream from the given address with the length in events.
- Get a size which accomodates nevents