-
Type:
Bug
-
Resolution: resolved
-
Priority:
Major
-
Component/s: None
-
None
Here's the `pyrogue.interfaces.OsCommandMemorySlave` on the Zynq side:
class RfdcApi(pyrogue.interfaces.OsCommandMemorySlave):
def __init__(self):
super().__init__(maxSize=0x1_0000)
self.debugPrint = 0
@self.command(base=pyrogue.UInt(1), addr=0xFFFC)
def DebugPrintCmd(self, arg):
# Write operation
if arg is not None:
self.debugPrint = int(arg)&0x1
# Read operation
else:
return self.debugPrint
Here's the Remote variable on the server side:
self.add(pr.RemoteVariable(
name = 'DebugPrint',
description = 'True to enable debugging printing in the RFSoC UART serial console',
offset = 0xFFFC,
bitSize = 1,
mode = 'RW',
base = pr.Bool,
))
I get the following error message on the server side with remote variable:
GeneralError: Block::checkTransaction: General Error: Transaction error for block Root.RfdcApi.DebugPrint with address 0x0000fffc. Error Transaction read error in command at 0x00fffc: int too big to convert
If I change it to 0xFFF0 on both sides, then the issue goes away. I suspect there is a corner cased in the address size checking