示例#1
0
 def cmd_rd(self, ui, args, n):
     """memory read command for n bits"""
     if util.wrong_argc(ui, args, (1, )):
         return
     adr = util.sex_arg(ui, args[0], self.cpu.width)
     if adr == None:
         return
     adr = util.align(adr, n)
     ui.put('[0x%08x] = ' % adr)
     ui.put('0x%%0%dx\n' % (n / 4) % self.cpu.rd(adr, n))
示例#2
0
文件: mem.py 项目: deadsy/pycs
 def cmd_rd(self, ui, args, n):
   """memory read command for n bits"""
   if util.wrong_argc(ui, args, (1,)):
     return
   adr = util.sex_arg(ui, args[0], self.cpu.width)
   if adr == None:
     return
   adr = util.align(adr, n)
   ui.put('[0x%08x] = ' % adr)
   ui.put('0x%%0%dx\n' % (n/4) % self.cpu.rd(adr, n))
示例#3
0
文件: gpio.py 项目: deadsy/pycs
 def cmd_set(self, ui, args):
   """set gpio (1)"""
   if util.wrong_argc(ui, args, (1,)):
     return None
   x = self.driver.pin_arg(args[0])
   if x is None:
     ui.put(_invalid_gpio_name)
     return
   (port, bit) = x
   self.driver.set_bit(port, bit)
示例#4
0
 def cmd_set(self, ui, args):
     """set gpio (1)"""
     if util.wrong_argc(ui, args, (1, )):
         return None
     x = self.driver.pin_arg(args[0])
     if x is None:
         ui.put(_invalid_gpio_name)
         return
     (port, bit) = x
     self.driver.set_bit(port, bit)
示例#5
0
 def cmd_program(self, ui, args):
   """program firmware file to flash"""
   if util.wrong_argc(ui, args, (1,)):
     return None
   x = util.file_arg(ui, args[0])
   if x is None:
     return
   # erase all
   self.cmd_erase(ui, ('*',))
   # write to flash
   region_name = self.driver.firmware_region()
   self.cmd_write(ui, (args[0], region_name))
   # verify against the file
   self.mem.cmd_verify(ui, (args[0], region_name))
示例#6
0
文件: monitor.py 项目: deadsy/py_z80
 def cli_mem2display(self, app, args):
     """dump memory contents to the display"""
     if util.wrong_argc(app, args, (1, 2)):
         return
     adr = util.int_arg(app, args[0], (0, 0xffff), 16)
     if adr == None:
         return
     if len(args) == 2:
         length = util.int_arg(app, args[1], (1, 0xffff), 16)
         if length == None:
             return
     else:
         length = 0x40
     self.mem2display(app, adr, length)
示例#7
0
 def cli_mem2display(self, app, args):
     """dump memory contents to the display"""
     if util.wrong_argc(app, args, (1, 2)):
         return
     adr = util.int_arg(app, args[0], (0, 0xffff), 16)
     if adr == None:
         return
     if len(args) == 2:
         length = util.int_arg(app, args[1], (1, 0xffff), 16)
         if length == None:
             return
     else:
         length = 0x40
     self.mem2display(app, adr, length)
示例#8
0
 def cmd_wr(self, ui, args, n):
     """memory write command for n bits"""
     if util.wrong_argc(ui, args, (1, 2)):
         return
     adr = util.sex_arg(ui, args[0], self.cpu.width)
     if adr == None:
         return
     adr = util.align(adr, n)
     val = 0
     if len(args) == 2:
         val = util.int_arg(ui, args[1], util.limit_32, 16)
         if val == None:
             return
     val = util.mask_val(val, n)
     self.cpu.wr(adr, val, n)
     ui.put('[0x%08x] = ' % adr)
     ui.put('0x%%0%dx\n' % (n / 4) % val)
示例#9
0
文件: mem.py 项目: deadsy/pycs
 def cmd_wr(self, ui, args, n):
   """memory write command for n bits"""
   if util.wrong_argc(ui, args, (1,2)):
     return
   adr = util.sex_arg(ui, args[0], self.cpu.width)
   if adr == None:
     return
   adr = util.align(adr, n)
   val = 0
   if len(args) == 2:
     val = util.int_arg(ui, args[1], util.limit_32, 16)
     if val == None:
       return
   val = util.mask_val(val, n)
   self.cpu.wr(adr, val, n)
   ui.put('[0x%08x] = ' % adr)
   ui.put('0x%%0%dx\n' % (n/4) % val)
示例#10
0
文件: soc.py 项目: deadsy/pycs
 def cmd_regs(self, ui, args):
   """display peripheral registers"""
   if util.wrong_argc(ui, args, (1,2)):
     return
   if not self.peripherals.has_key(args[0]):
     ui.put("no peripheral named '%s' (run 'map' command for the names)\n" % args[0])
     return
   p = self.peripherals[args[0]]
   if len(args) == 1:
     ui.put('%s\n' % p.display(fields = False))
     return
   if args[1] == '*':
     ui.put('%s\n' % p.display(fields = True))
     return
   if not p.registers.has_key(args[1]):
     ui.put("no register named '%s' (run 'regs %s' command for the names)\n" % (args[1], args[0]))
     return
   ui.put('%s\n' % p.display(args[1], fields = True))
示例#11
0
 def cmd_regs(self, ui, args):
   """display peripheral registers"""
   if util.wrong_argc(ui, args, (1, 2)):
     return
   if not args[0] in self.peripherals:
     ui.put("no peripheral named '%s' (run 'map' command for the names)\n" % args[0])
     return
   p = self.peripherals[args[0]]
   if len(args) == 1:
     ui.put('%s\n' % p.display(fields=False))
     return
   if args[1] == '*':
     ui.put('%s\n' % p.display(fields=True))
     return
   if not args[1] in p.registers:
     ui.put("no register named '%s' (run 'regs %s' command for the names)\n" % (args[1], args[0]))
     return
   ui.put('%s\n' % p.display(args[1], fields=True))
示例#12
0
文件: i2c.py 项目: deadsy/pycs
 def cmd_rd(self, ui, args):
   """read bytes from a device"""
   if util.wrong_argc(ui, args, (1, 2)):
     return
   adr = self.adr_args(ui, args)
   if adr == None:
     return
   n = 1
   if len(args) == 2:
     n = util.int_arg(ui, args[1], (1, 256), 16)
     if n == None:
       return
   try:
     self.io.cmd_init(ui, None)
     buf = self.rd(adr, n)
     plural = ('', 's')[len(buf) > 1]
     msg = '%s (%d byte%s)' % (' '.join(['%02x' % val for val in buf]), len(buf), plural)
   except Error, e:
     msg = e
示例#13
0
 def cmd_rd(self, ui, args):
     """read bytes from a device"""
     if util.wrong_argc(ui, args, (1, 2)):
         return
     adr = self.adr_args(ui, args)
     if adr is None:
         return
     n = 1
     if len(args) == 2:
         n = util.int_arg(ui, args[1], (1, 256), 16)
         if n is None:
             return
     try:
         self.io.cmd_init(ui, None)
         buf = self.rd(adr, n)
         plural = ('', 's')[len(buf) > 1]
         msg = '%s (%d byte%s)' % (' '.join(['%02x' % val for val in buf
                                             ]), len(buf), plural)
     except Error, e:
         msg = e
示例#14
0
 def cmd_disassemble(self, ui, args):
   """disassemble memory"""
   if util.wrong_argc(ui, args, (0, 1, 2)):
     return
   n = 16
   if len(args) == 0:
     # read the pc
     self.halt()
     adr = self.dbgio.rdreg('pc')
   if len(args) >= 1:
     adr = util.sex_arg(ui, args[0], 32)
     if adr is None:
       return
   if len(args) == 2:
     n = util.int_arg(ui, args[1], (1, 2048), 16)
     if n is None:
       return
   # align the address to 32 bits
   adr = util.align(adr, 32)
   # disassemble
   md = iobuf.arm_disassemble(ui, adr)
   self.rdmem32(adr, n, md)
示例#15
0
文件: monitor.py 项目: deadsy/py_z80
 def cli_disassemble(self, app, args):
     """disassemble memory"""
     if util.wrong_argc(app, args, (0, 1, 2)):
         return
     length = 0x10
     if len(args) == 0:
         adr = self.cpu._get_pc()
     if len(args) >= 1:
         adr = util.int_arg(app, args[0], (0, 0xffff), 16)
         if adr == None:
             return
     if len(args) == 2:
         length = util.int_arg(app, args[1], (1, 0xffff), 16)
         if length == None:
             return
     app.put('\n\n')
     x = adr
     while x < adr + length:
         (operation, operands, n) = self.cpu.da(x)
         bytes = ' '.join(['%02x' % self.cpu.mem[i] for i in range(x, x + n)])
         app.put('%04x %-12s %-5s %s\n' % (x, bytes, operation, operands))
         x += n
示例#16
0
 def cli_disassemble(self, app, args):
     """disassemble memory"""
     if util.wrong_argc(app, args, (0, 1, 2)):
         return
     length = 0x10
     if len(args) == 0:
         adr = self.cpu._get_pc()
     if len(args) >= 1:
         adr = util.int_arg(app, args[0], (0, 0xffff), 16)
         if adr == None:
             return
     if len(args) == 2:
         length = util.int_arg(app, args[1], (1, 0xffff), 16)
         if length == None:
             return
     app.put('\n\n')
     x = adr
     while x < adr + length:
         (operation, operands, n) = self.cpu.da(x)
         bytes = ' '.join(
             ['%02x' % self.cpu.mem[i] for i in range(x, x + n)])
         app.put('%04x %-12s %-5s %s\n' % (x, bytes, operation, operands))
         x += n