From 99240d23ad8e006fbef01e3f4824f14c81fba768 Mon Sep 17 00:00:00 2001 From: travisutk Date: Fri, 6 Nov 2009 08:03:25 +0000 Subject: [PATCH 1/1] CC2430 flashing fixed. No longer chip erases; instead erases pages individually. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@226 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- client/goodfet.cc | 27 ++++++++++++++++++++++----- firmware/apps/chipcon/chipcon.c | 6 +++--- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/client/goodfet.cc b/client/goodfet.cc index d79d166..7654378 100755 --- a/client/goodfet.cc +++ b/client/goodfet.cc @@ -103,7 +103,24 @@ if(sys.argv[1]=="poke"): client.CCpokeirambyte(int(sys.argv[2],16), int(sys.argv[3],16)); if(sys.argv[1]=="randtest"): - print "coming soon" + #Seed RNG + client.CCpokeirambyte(0xBD,0x01); #RNDH=0x01 + client.CCpokeirambyte(0xB4,0x04); #ADCCON1=0x04 + client.CCpokeirambyte(0xBD,0x01); #RNDH=0x01 + client.CCpokeirambyte(0xB4,0x04); #ADCCON1=0x04 + + #Dump values + for foo in range(1,10): + print "%02x" % client.CCpeekirambyte(0xBD); #RNDH + client.CCpokeirambyte(0xB4,0x04); #ADCCON1=0x04 + client.CCreleasecpu(); + client.CChaltcpu(); + print "%02x" % client.CCpeekdatabyte(0xDF61); #CHIP ID +if(sys.argv[1]=="adctest"): + # ADCTest 0xDF3A 0xDF3B + print "ADC TEST %02x%02x" % ( + client.CCpeekdatabyte(0xDF3A), + client.CCpeekdatabyte(0xDF3B)); if(sys.argv[1]=="config"): print "Config is %02x" % client.CCrd_config(); @@ -123,14 +140,14 @@ if(sys.argv[1]=="flash"): print "Wiping Flash." #Wipe all of flash. - client.CCchiperase(); + #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): if bcount>0: client.CCflashpage(page); - client.CCeraseflashbuffer(); + #client.CCeraseflashbuffer(); bcount=0; print "Flashed page at %06x" % page page+=pagelen; @@ -140,7 +157,7 @@ if(sys.argv[1]=="flash"): h[i]); bcount+=1; if(i%0x100==0): - print "Buffering %04x to %06x" % (i,page); + print "Buffering %04x toward %06x" % (i,page); #last page client.CCflashpage(page); print "Flashed final page at %06x" % page; diff --git a/firmware/apps/chipcon/chipcon.c b/firmware/apps/chipcon/chipcon.c index ccacb95..8ee6e80 100644 --- a/firmware/apps/chipcon/chipcon.c +++ b/firmware/apps/chipcon/chipcon.c @@ -409,12 +409,12 @@ void cc_write_flash_page(u32 adr){ cmddata[1]=0xc7; cmddata[2]=0x51; cc_debug_instr(3); - //debugstr("Loaded bank info."); + debugstr("Loaded bank info."); cc_set_pc(0xf000+FLASHPAGE_SIZE);//execute code fragment cc_resume(); - //debugstr("Executing."); + debugstr("Executing."); while(!(cc_read_status()&CC_STATUS_CPUHALTED)){ @@ -422,7 +422,7 @@ void cc_write_flash_page(u32 adr){ } - //debugstr("Done flashing."); + debugstr("Done flashing."); P1OUT&=~1;//clear LED } -- 2.20.1