-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathprogrammer.py
More file actions
45 lines (41 loc) · 1.15 KB
/
programmer.py
File metadata and controls
45 lines (41 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import os,sys,time
import serial
def loop(rom_f, ser):
chunkSize = 32
blocks = 2048/chunkSize
print("# of blocks: " + str(blocks))
blockCounter = blocks
while blockCounter > 0:
ser.write(b'W')
time.sleep(0.5)
blockCounter -= 1
dataBytes = rom_f.read(chunkSize)
line = bytearray()
line.extend(dataBytes)
ser.write(line)
time.sleep(0.5)
def main():
ser = serial.Serial(sys.argv[1], 9600)
print("Waiting for serial...")
time.sleep(5)
print("Ready to run")
if (sys.argv[2] == "p"):
romFileName = sys.argv[3]
if not(os.path.isfile(romFileName)):
print("Filename not valid/found")
exit(-1)
rom_f = open(romFileName, "rb")
loop(rom_f, ser)
elif (sys.argv[2] == "e"):
ser.write(b'E')
print("Erasing - please wait")
time.sleep(20)
print("Erased")
elif (sys.argv[2] == "r"):
print("Reading rom")
ser.write(b'R')
while True:
print(str(ser.readline()))
ser.close()
if __name__ == "__main__":
main()