Mercurial > hg > ede
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 |