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)
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
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
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)
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)
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
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
def cmd_wr(self, ui, args): """write bytes to a device""" if len(args) < 2: ui.put(util.bad_argc) return adr = self.adr_args(ui, args) if adr == None: return buf = [] for arg in args[1:]: val = util.int_arg(ui, arg, (0, 255), 16) if val == None: return buf.append(val) try: self.io.cmd_init(ui, None) self.wr(adr, buf) 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
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)
def cmd_wr(self, ui, args): """write bytes to a device""" if len(args) < 2: ui.put(util.bad_argc) return adr = self.adr_args(ui, args) if adr is None: return buf = [] for arg in args[1:]: val = util.int_arg(ui, arg, (0, 255), 16) if val is None: return buf.append(val) try: self.io.cmd_init(ui, None) self.wr(adr, buf) 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
def display_history(self, args): """display the command history""" # get the history h = self.ln.history_list() n = len(h) if len(args) == 1: # retrieve a specific history entry idx = util.int_arg(self.ui, args[0], (0, n - 1), 10) if idx is None: return # Return the next line buffer. # Note: linenoise wants to add the line buffer as the zero-th history entry. # It can only do this if it's unique- and this isn't because it's a prior # history entry. Make it unique by adding a trailing whitespace. The other # entries have been stripped prior to being added to history. return h[n - idx - 1] + ' ' else: # display all history if n: s = ['%-3d: %s' % (n - i - 1, l) for (i, l) in enumerate(h)] self.ui.put('%s\n' % '\n'.join(s)) else: self.ui.put('no history\n') return ''
def adr_args(ui, args): """validate an i2c address argument""" adr = util.int_arg(ui, args[0], (0, 127), 16) if adr is None: return return adr
def adr_args(self, ui, args): adr = util.int_arg(ui, args[0], (0, 254), 16) if adr == None: return return adr & ~1
model.pool_type = 'average' model.unpool_type = 'nearest' elif MODEL_INDEX < 0: # No model. pass else: raise Exception('Unknown model index via --config.') return model ### (Do not modify these.) ### # # (Model index given via --config.) MODEL_INDEX = int_arg('config', default_value=-1) # # (Get the used model config.) model = get_model_config() # ### Directory configuration. # Base directory of the project: Parent of config.py. BASE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..') # Where the datasets are stored. DATASET_DIR = BASE_DIR + r'/datasets' # Directory where to store TensorBoard summaries. SUMMARY_DIR = BASE_DIR + r'/tensorflow/summaries'