projects
/
goodfet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ARMread/writeStream() functions enabled, allowing the reading/writing of byte-aligned...
[goodfet]
/
client
/
goodfet.em260
diff --git
a/client/goodfet.em260
b/client/goodfet.em260
index
2cf5527
..
ba383dc
100755
(executable)
--- a/
client/goodfet.em260
+++ b/
client/goodfet.em260
@@
-3,8
+3,17
@@
#GoodFET SPI Flash Client
#by Travis Goodspeed
#GoodFET SPI Flash Client
#by Travis Goodspeed
-#N.B.,
-#Might be Winbond W25x80-specific.
+# Pinout:
+# 1 MISO
+# 2 VCC
+# 3 MOSI
+# 4
+# 5 !SS
+# 6
+# 7 CLK
+# 8 !HOST_INT
+# 9 GND
+# 11 !WAKE
import sys;
import binascii;
import sys;
import binascii;
@@
-16,12
+25,14
@@
from intelhex import IntelHex;
if(len(sys.argv)==1):
print "Usage: %s verb [objects]\n" % sys.argv[0];
print "%s info" % sys.argv[0];
if(len(sys.argv)==1):
print "Usage: %s verb [objects]\n" % sys.argv[0];
print "%s info" % sys.argv[0];
- print "%s dump $foo.rom [0x$start 0x$stop]" % sys.argv[0];
+ print "%s test" % sys.argv[0];
+ print "%s randtest" % sys.argv[0];
+ #print "%s dump $foo.rom [0x$start 0x$stop]" % sys.argv[0];
#print "%s erase" % sys.argv[0];
#print "%s flash $foo.rom [0x$start 0x$stop]" % sys.argv[0];
#print "%s verify $foo.rom [0x$start 0x$stop]" % sys.argv[0];
print "%s peek 0x$start [0x$stop]" % sys.argv[0];
#print "%s erase" % sys.argv[0];
#print "%s flash $foo.rom [0x$start 0x$stop]" % sys.argv[0];
#print "%s verify $foo.rom [0x$start 0x$stop]" % sys.argv[0];
print "%s peek 0x$start [0x$stop]" % sys.argv[0];
-
#
print "%s poke 0x$adr 0x$val" % sys.argv[0];
+ print "%s poke 0x$adr 0x$val" % sys.argv[0];
sys.exit();
#Initialize FET and set baud rate
sys.exit();
#Initialize FET and set baud rate
@@
-33,14
+44,36
@@
client.SPIsetup();
#Dummy read.
#Might read as all ones if chip has a startup delay.
#Dummy read.
#Might read as all ones if chip has a startup delay.
+client.EM260spiversion();
if(sys.argv[1]=="info"):
if(sys.argv[1]=="info"):
- client.info();
- client.info();
- client.info();
+ client.info();
if(sys.argv[1]=="test"):
if(sys.argv[1]=="test"):
- client.info();
- client.info();
+ print "Grabbing info three times."
+ client.info();
+ client.info();
+ client.info();
+
+ print "Some random numbers from EZSP."
+ for foo in range(0,4):
+ print "%04x" % client.rand16();
+if(sys.argv[1]=="randtest"):
+ print "Even Odd HEven LEven Hodd Lodd "
+ max=2**33;
+ foo=0;
+ while foo<max:
+ even=client.rand16();
+ odd=client.rand16();
+ print "%8i %8i %8i %8i %8i %8i" % (
+ even,
+ odd,
+ even>>8,
+ even&0xFF,
+ odd>>8,
+ odd&0xFF);
+ sys.stdout.flush()
+ foo=foo+1;
+
if(sys.argv[1]=="dump"):
f = sys.argv[2];
start=0x0000;
if(sys.argv[1]=="dump"):
f = sys.argv[2];
start=0x0000;
@@
-71,3
+104,13
@@
if(sys.argv[1]=="peek"):
while start<=stop:
print "%04x: %02x" % (start,client.peek8(start));
start=start+1;
while start<=stop:
print "%04x: %02x" % (start,client.peek8(start));
start=start+1;
+if(sys.argv[1]=="poke"):
+ start=0x0000;
+ if(len(sys.argv)>2):
+ start=int(sys.argv[2],16);
+ val=0xde;
+ if(len(sys.argv)>3):
+ val=int(sys.argv[3],16);
+ print "Poking %02x to be %02x." % (start,val);
+ client.poke8(start,val);
+