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:]
Example #2
0
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)))
Example #3
0
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:]
Example #4
0
# $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)))