fix endianness in device descriptor
[goodfet] / client / goodfet.twe
1 #!/usr/bin/env python
2
3 # GoodFET - Atmel 2-wire EEPROM
4
5 import sys;
6 import binascii;
7 import array;
8
9 from GoodFETtwe import GoodFETtwe;
10 from intelhex import IntelHex;
11
12 if(len(sys.argv)==1):
13     print "Usage: %s verb [objects]\n" % sys.argv[0];
14     print "%s info" % sys.argv[0];
15     print "%s dump $foo.rom [0x$start 0x$stop]" % sys.argv[0];
16     sys.exit();
17
18 #Initialize FET and set baud rate
19 client=GoodFETtwe();
20 client.serInit()
21
22 client.setup();
23
24 #~ if(sys.argv[1]=="info"):
25     #~ data=client.SPIjedec();
26     #~ print "Ident as %s\nManufacturer: %02x %s\nType: %02x\nCapacity: %02x (%i bytes)" % (
27         #~ client.SPIjedecstr(),
28         #~ ord(data[1]),client.SPIjedecmanstr(),
29         #~ ord(data[2]),
30         #~ ord(data[3]),
31         #~ client.JEDECsize);
32
33 if(sys.argv[1]=="dump"):
34     f = sys.argv[2];
35     
36     start=0;
37     stop=0;
38     if(len(sys.argv)>3):
39         start=int(sys.argv[3],16);
40     if(len(sys.argv)>4):
41         stop=int(sys.argv[4],16);
42     
43     print "Dumping code from %06x to %06x as %s." % (start,stop,f);
44     file = open(f, mode='wb')
45     
46     i=start;
47     while i<=stop:
48         data=client.peekblock(i);
49         
50         print "Dumped %06x."%i;
51         for j in data:
52             if i<stop: file.write(j);
53             i+=1;
54     file.close()