code: def read_memory(self, addr, transfer_size=32, now=True):
          
          assert transfer_size in (8, 16, 32)
          if transfer_size == 32:
              result = conversion.byte_list_to_u32le_list(self._link.read_mem32(addr, 4, self._apsel))[0]
          elif transfer_size == 16:
              result = conversion.byte_list_to_u16le_list(self._link.read_mem16(addr, 2, self._apsel))[0]
          elif transfer_size == 8:
              result = self._link.read_mem8(addr, 1, self._apsel)[0]
          
          def read_callback():
              return result
          return result if now else read_callback
docs: ! @brief Read a memory location.
          
          By default, a word will be read.