![]() |
ChimeraTK-DeviceAccess 03.31.00
|
During firmware development one might need to access registers without having a map file.
This is only supported by backends based on the NumericAddressedBackend: the PcieBackend, the RebotBackend and the DummyBackend. The access can be realised through specifying the register address and length in a special register name. Inside the C++ code, the NumericAddress::BAR constant can be used. This notation can be used in any context where a RegisterPath name is expected. Outside C++, e.g. when using the command line tools, a "#" character has to be used instead of the BAR constant, e.g.: #/0/32*4
The complete numeric address syntax is
BAR()/<bar>/<address>*<nBytes>u<bitWidth>p<pitchBits>
where every part after the byte address <address> is optional:
*<nBytes> the total span of the register in bytes (default: the element size). u<bitWidth> an unsigned element of width <bitWidth> (8, 16, 32 or 64); s<bitWidth> selects a signed element (default: signed 32-bit). p<pitchBits> the element pitch in bits, a multiple of 8. When present the register is strided: each element has a distance of pitchBits bits in memory, and nElements = nBytes*8/pitchBits.