Mercurial > avr_jtag
view py_avrjtag/cp_tditdo.py @ 12:68ecd42850d3
Start shifting when TAP transiting from CAP to SHIFT states.
- It assumes last bit is shifted when transiting from SHIFT states to
EXIT1.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Tue, 24 Feb 2009 18:53:16 +0800 |
parents | 6b1594fb668f |
children |
line wrap: on
line source
import cmd_proto def cp_tms(seq, nbits, data): nbits_bytes = chr(nbits & 0xff) + chr(nbits >> 8) cmd = cmd_proto.cmd(seq, cmd_proto.CPCMD_SHIFT_TDI_TDO, nbits_bytes + data) frame = cmd.to_frame() return frame def get_reply(fo): import fcntl, os import time reply = '' fcntl.fcntl(fo.fileno(), fcntl.F_SETFL, os.O_NONBLOCK) while True: try: s = os.read(fo.fileno(), 256) except OSError: time.sleep(0.13) try: s = os.read(fo.fileno(), 256) except OSError: break pass reply = reply + s pass return reply if __name__ == '__main__': import sys if len(sys.argv) != 2: print >> sys.stderr, 'Usage: prog <port device>' sys.exit(1) pass port = sys.argv[1] fo = open(port, 'r+b') cmd_str = cp_tms(12, 37, 'hello') fo.write(cmd_str) fo.flush() frame = get_reply(fo) cmd = cmd_proto.cmd() r = cmd.from_frame(frame) if r: print 'frame error %s' % (repr(frame)) else: print repr(cmd) pass pass