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 "Even Odd HEven LEven Hodd Lodd "
58 print "%8i %8i %8i %8i %8i %8i" % (
68 if(sys.argv[1]=="dump"):
73 start=int(sys.argv[3],16);
75 stop=int(sys.argv[4],16);
77 print "Dumping from %04x to %04x as %s." % (start,stop,f);
82 print "Dumped %04x=%02x."%(i,data);
87 if(sys.argv[1]=="peek"):
90 start=int(sys.argv[2],16);
93 stop=int(sys.argv[3],16);
94 print "Peeking from %04x to %04x." % (start,stop);
96 print "%04x: %02x" % (start,client.peek8(start));
98 if(sys.argv[1]=="poke"):
101 start=int(sys.argv[2],16);
104 val=int(sys.argv[3],16);
105 print "Poking %02x to be %02x." % (start,val);
106 client.poke8(start,val);