CC2430 flashing fixed.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Fri, 6 Nov 2009 08:03:25 +0000 (08:03 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Fri, 6 Nov 2009 08:03:25 +0000 (08:03 +0000)
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
firmware/apps/chipcon/chipcon.c

index d79d166..7654378 100755 (executable)
@@ -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"):
     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();
 
 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.
      
      print "Wiping Flash."
      #Wipe all of flash.
-     client.CCchiperase();
+     #client.CCchiperase();
      #Wipe the RAM buffer for the next flash page.
      #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);
      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;
                  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):
                                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;
      #last page
      client.CCflashpage(page);
      print "Flashed final page at %06x" % page;
index ccacb95..8ee6e80 100644 (file)
@@ -409,12 +409,12 @@ void cc_write_flash_page(u32 adr){
   cmddata[1]=0xc7;
   cmddata[2]=0x51;
   cc_debug_instr(3);
   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();
   
   
   cc_set_pc(0xf000+FLASHPAGE_SIZE);//execute code fragment
   cc_resume();
   
-  //debugstr("Executing.");
+  debugstr("Executing.");
   
   
   while(!(cc_read_status()&CC_STATUS_CPUHALTED)){
   
   
   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
 }
   
   P1OUT&=~1;//clear LED
 }