comparison dbg/dbg.py @ 34:4411dee34085

cleaned out docs (don't worry they are comming back) and added all my test files
author james <jb302@eecs.qmul.ac.uk>
date Wed, 16 Apr 2014 16:51:39 +0100
parents 83e80c2c489c
children db6b8c9552bb
comparison
equal deleted inserted replaced
33:02241452f397 34:4411dee34085
3 import struct 3 import struct
4 import os, sys 4 import os, sys
5 from time import sleep 5 from time import sleep
6 6
7 # talks to the emulator 7 # talks to the emulator
8 # see dbgi() in emu/main.c for the inverse 8 # see controller() in emu/main.c for the inverse
9 class controller: 9 class controller:
10 10
11 def __init__(self): 11 def __init__(self):
12 self.Emu = None 12 self.Emu = None
13 open('out', 'w').close() 13 open('out', 'w').close()
14 14
15 # Alternetive snd and rcv functions need to be
16 # written read/write using serial buffer to make
17 # this class talk to an emulator running on
18 # an MCU
15 def snd(self, m): 19 def snd(self, m):
16 self.Emu.stdin.write(struct.pack('>B', m)) 20 self.Emu.stdin.write(struct.pack('>B', m))
17 21
18 def rcv(self, l): 22 def rcv(self, l):
19 lc = 0 23 lc = 0
20 while lc != l: 24 while lc != l:
21 lc = os.path.getsize('out') 25 lc = os.path.getsize('out')
22 sleep(0.5) 26 #sleep(0.5)
23 with open('out', 'r') as f: 27 with open('out', 'r') as f:
24 c = f.read() 28 c = f.read()
25 open('out', 'w').close() 29 open('out', 'w').close()
26 return c 30 return c
27 31
28 def step(self): 32 def step(self):
29 self.snd(0x00) 33 self.snd(0x00)
30 34
31 def run(self, lenh, lenl): 35 def run(self):
32 self.snd(0x01) 36 self.snd(0x01)
33 snd(lenh)
34 snd(lenl)
35 37
36 def set_reg(self, reg, data): 38 def set_reg(self, reg, data):
37 self.snd(0x02) 39 self.snd(0x02)
38 self.snd(reg) # reg 40 self.snd(reg) # reg
39 self.snd(data) # data 41 self.snd(data) # data
85 87
86 def get_ir(self): 88 def get_ir(self):
87 self.snd(0x0B) 89 self.snd(0x0B)
88 return self.rcv(1) 90 return self.rcv(1)
89 91
92 def run_len(self, lenh, lenl):
93 self.snd(0x0C)
94 self.snd(lenh)
95 self.snd(lenl)
90 96
97 def free_run(self):
98 self.snd(0x0D)
99
100 def set_bp(self, i, addrh, addrl):
101 self.snd(0x0E)
102 self.snd(i)
103 self.snd(addrh)
104 self.snd(addrl)
105
106
107
108
109