3 #GoodFET SPI Flash Client
7 #Might be Winbond W25x80-specific.
13 from GoodFETEM260 import GoodFETEM260;
14 from intelhex import IntelHex;
17 print "Usage: %s verb [objects]\n" % sys.argv[0];
18 print "%s info" % sys.argv[0];
19 print "%s test" % sys.argv[0];
20 print "%s randtest" % sys.argv[0];
21 #print "%s dump $foo.rom [0x$start 0x$stop]" % sys.argv[0];
22 #print "%s erase" % sys.argv[0];
23 #print "%s flash $foo.rom [0x$start 0x$stop]" % sys.argv[0];
24 #print "%s verify $foo.rom [0x$start 0x$stop]" % sys.argv[0];
25 print "%s peek 0x$start [0x$stop]" % sys.argv[0];
26 print "%s poke 0x$adr 0x$val" % sys.argv[0];
29 #Initialize FET and set baud rate
30 client=GoodFETEM260();
37 #Might read as all ones if chip has a startup delay.
38 client.EM260spiversion();
40 if(sys.argv[1]=="info"):
42 if(sys.argv[1]=="test"):
43 print "Grabbing info three times."
48 print "Some random numbers from EZSP."
49 for foo in range(0,4):
50 print "%04x" % client.rand16();
51 if(sys.argv[1]=="randtest"):
52 print "Some random numbers from EZSP."
56 print "%08x: %04x" % (foo,client.rand16());
60 if(sys.argv[1]=="dump"):
65 start=int(sys.argv[3],16);
67 stop=int(sys.argv[4],16);
69 print "Dumping from %04x to %04x as %s." % (start,stop,f);
74 print "Dumped %04x=%02x."%(i,data);
79 if(sys.argv[1]=="peek"):
82 start=int(sys.argv[2],16);
85 stop=int(sys.argv[3],16);
86 print "Peeking from %04x to %04x." % (start,stop);
88 print "%04x: %02x" % (start,client.peek8(start));
90 if(sys.argv[1]=="poke"):
93 start=int(sys.argv[2],16);
96 val=int(sys.argv[3],16);
97 print "Poking %02x to be %02x." % (start,val);
98 client.poke8(start,val);