From: travisutk Date: Thu, 16 Jul 2009 15:15:46 +0000 (+0000) Subject: Chipcon client improvements. X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=6fd9d83bf8e87be5220afc68963bdf2b000b6e3b;ds=sidebyside Chipcon client improvements. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@62 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/GoodFET.py b/client/GoodFET.py index 14728c7..cb36031 100755 --- a/client/GoodFET.py +++ b/client/GoodFET.py @@ -132,7 +132,8 @@ class GoodFET: 0x8500:"CC2430", 0x8900:"CC2431", 0x8100:"CC2510", - 0x9100:"CC2511"}; + 0x9100:"CC2511", + 0xFF00:"CCmissing"}; def CCidentstr(self): ident=self.CCident(); chip=self.CCversions[ident&0xFF00]; diff --git a/client/goodfet.cc b/client/goodfet.cc index 444a41c..445f358 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -11,18 +11,21 @@ from intelhex import IntelHex; if(len(sys.argv)==1): print "Usage: %s verb [objects]\n" % sys.argv[0]; print "%s test" % sys.argv[0]; + print "%s info" % sys.argv[0]; print "%s dumpcode $foo.hex [0x$start 0x$stop]" % sys.argv[0]; + print "%s dumpdata $foo.hex [0x$start 0x$stop]" % sys.argv[0]; print "%s erase" % sys.argv[0]; - print "%s flash $foo.hex [0x$start 0x$stop]" % sys.argv[0]; + print "%s writedata $foo.hex [0x$start 0x$stop]" % sys.argv[0]; print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0]; + print "%s peekdata 0x$start [0x$stop]" % sys.argv[0]; + print "%s pokedata 0x$adr 0x$val" % sys.argv[0]; + #print "%s peekcode 0x$start [0x$stop]" % sys.argv[0]; sys.exit(); #Initailize FET and set baud rate client=GoodFET(); client.serInit("/dev/ttyUSB0") - - #Connect to target client.CCsetup(); client.CCstart(); @@ -123,5 +126,25 @@ if(sys.argv[1]=="verifycode"): print "ERROR at %04x, found %04x not %04x"%(i,peek,h[i>>1]); if(i%0x100==0): print "%04x" % i; +if(sys.argv[1]=="peekdata"): + start=0x0000; + if(len(sys.argv)>2): + start=int(sys.argv[2],16); + stop=start; + if(len(sys.argv)>3): + stop=int(sys.argv[3],16); + print "Peeking from %04x to %04x." % (start,stop); + while start<=stop: + print "%04x: %02x" % (start,client.CCpeekdatabyte(start)); + start=start+1; +if(sys.argv[1]=="pokedata"): + start=0x0000; + val=0x00; + if(len(sys.argv)>2): + start=int(sys.argv[2],16); + if(len(sys.argv)>3): + val=int(sys.argv[3],16); + print "Poking %04x to become %02x." % (start,val); + client.CCpokedatabyte(start,val); client.CCstop(); diff --git a/firmware/apps/chipcon/chipcon.c b/firmware/apps/chipcon/chipcon.c index d4e8177..3aebe1e 100644 --- a/firmware/apps/chipcon/chipcon.c +++ b/firmware/apps/chipcon/chipcon.c @@ -1,7 +1,7 @@ //GoodFET ChipCon Debugging Application -//Handles basic I/O for the Chipcon 8051 debugging protocol. +//by Travis Goodspeed +// -//Higher level left to client application. //This is like SPI, except that you read or write, not both. @@ -10,8 +10,6 @@ only writes. */ -//This is REALLY untested. - #include "platform.h" #include "command.h" #include "chipcon.h" diff --git a/firmware/lib/msp430f1612.c b/firmware/lib/msp430f1612.c index c29a485..58797ed 100644 --- a/firmware/lib/msp430f1612.c +++ b/firmware/lib/msp430f1612.c @@ -98,9 +98,11 @@ void msp430_init_dco() { DCOCTL=0xF0; //a4 //1100 - BCSCTL1 = 0xa8; /* ACLK is devided by 4. RSEL=6 no division for MCLK - and SSMCLK. XT2 is off. */ + /* ACLK is devided by 4. RSEL=6 no division for MCLK + and SSMCLK. XT2 is off. */ + //BCSCTL1 = 0xa8; + BCSCTL2 = 0x00; /* Init FLL to desired frequency using the 32762Hz crystal DCO frquenzy = 2,4576 MHz */