Corner case bug: Error Transaction read error in command: int too big to convert

XMLWordPrintable

    • 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

              Assignee:
              Unassigned
              Reporter:
              Larry Ruckman
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: