else: addr = int(addr) return addr * mul if __name__ == '__main__': if len(sys.argv) == 1: sys.exit('usage: {} [flash|ram read|write|erase] | [jmp <addr>]\n'. format(sys.argv[0]) + ' read: <start addr> <length> <output file>\n' + ' write: <start addr> <input file>\n' + ' erase: <start addr> <length>\n' + ' all addresses and lengths are measured in bytes') ser = serial.Serial(DEVICE, 115201, stopbits=2, parity=serial.PARITY_NONE, timeout=1) ctl = MemtransController(ser) if sys.argv[1] == 'jmp': addr = parse_addr(sys.argv[2]) ctl.jmp(addr) sys.exit() module = sys.argv[1] assert module in ('flash', 'ram'), module function = sys.argv[2] assert function in ('read', 'write', 'erase'), function if module == 'ram': assert function != 'erase' args = sys.argv[3:]
ser = serial.Serial('/dev/ttyUSB0', 115201, stopbits=2, parity=serial.PARITY_NONE, timeout=1) class SingleStepMemtransController(MemtransController): def _do_write_data(self, data): for i in data: raw_input('write {!r} {} {}'.format(i, hex(ord(i)), bin(ord(i)))) self.ser.write(i) #ctl = SingleStepMemtransController(ser) ctl = MemtransController(ser) for i in range(1, 512): print i ctl.write_flash('\x00' * 20, i * 1024 - 10) ctl.erase_flash(0) for i in range(1, 512): data = ctl.read_flash(i * 1024 - 10, 20) print i, repr(data) #ctl.erase_flash(0) #ctl.write_flash(data, 0) #print repr(ctl.read_flash(0, len(data)))
if __name__ == '__main__': if len(sys.argv) == 1: sys.exit('usage: {} [flash|ram read|write|erase] | [jmp <addr>]\n'. format(sys.argv[0]) + ' read: <start addr> <length> <output file>\n' + ' write: <start addr> <input file>\n' + ' erase: <start addr> <length>\n' + ' all addresses and lengths are measured in bytes') ser = serial.Serial(DEVICE, 115201, stopbits=2, parity=serial.PARITY_NONE, timeout=1) ctl = MemtransController(ser) if sys.argv[1] == 'jmp': addr = parse_addr(sys.argv[2]) ctl.jmp(addr) sys.exit() module = sys.argv[1] assert module in ('flash', 'ram'), module function = sys.argv[2] assert function in ('read', 'write', 'erase'), function if module == 'ram': assert function != 'erase' args = sys.argv[3:]
# $Author: jiakai <*****@*****.**> from ctllib import MemtransController import serial ser = serial.Serial('/dev/ttyUSB0', 115201, stopbits=2, parity=serial.PARITY_NONE, timeout=1) class SingleStepMemtransController(MemtransController): def _do_write_data(self, data): for i in data: raw_input('write {!r} {} {}'.format(i, hex(ord(i)), bin(ord(i)))) self.ser.write(i) #ctl = SingleStepMemtransController(ser) ctl = MemtransController(ser) for i in range(1, 512): print i ctl.write_flash('\x00' * 20, i * 1024 - 10) ctl.erase_flash(0) for i in range(1, 512): data = ctl.read_flash(i * 1024 - 10, 20) print i, repr(data) #ctl.erase_flash(0) #ctl.write_flash(data, 0) #print repr(ctl.read_flash(0, len(data)))