X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.cc;h=3c00dc78b6d7abaa8bc1c8a455618027283ea045;hp=e937398badf45b13ed45a6b8ea3109bd741faec8;hb=d3dd9b72ba6d3335cbae4ef560a25e9f707a4435;hpb=ed0549956cb25b94cbd1951be718efc1dbfdf1c9 diff --git a/client/goodfet.cc b/client/goodfet.cc index e937398..3c00dc7 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -146,16 +146,16 @@ if(sys.argv[1]=="flash"): h = IntelHex(f); page = 0x0000; - pagelen = 2048; #2kB pages in 32-bit words + pagelen = client.CCpagesize(); #2048; #2kB pages in 32-bit words + + print "page=%04x, pagelen=%04x" % (page,pagelen); + bcount = 0; - print "Wiping Flash." - #Wipe all of flash. - #client.CCchiperase(); #Wipe the RAM buffer for the next flash page. - #client.CCeraseflashbuffer(); + client.CCeraseflashbuffer(); for i in h._buf.keys(): - while(i>page+pagelen): + while(i>=page+pagelen): if bcount>0: client.CCflashpage(page); #client.CCeraseflashbuffer(); @@ -227,7 +227,23 @@ if(sys.argv[1]=="peek"): while start<=stop: print "%04x: %02x" % (start,client.CCpeekirambyte(start)); start=start+1; - +if(sys.argv[1]=="verify"): + f=sys.argv[2]; + start=0; + stop=0xFFFF; + if(len(sys.argv)>3): + start=int(sys.argv[3],16); + if(len(sys.argv)>4): + stop=int(sys.argv[4],16); + + h = IntelHex(f); + for i in h._buf.keys(): + if(i>=start and i2):