Added a GLITCHTIME verb (0x82) for timing the execution of a verb.
authortravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Tue, 19 Jan 2010 03:52:47 +0000 (03:52 +0000)
committertravisutk <travisutk@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Tue, 19 Jan 2010 03:52:47 +0000 (03:52 +0000)
AVR's START verb no longer returns a model number, as that took extra time.

git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@269 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

firmware/apps/avr/avr.c
firmware/apps/glitch/glitch.c
firmware/goodfet.c
firmware/include/glitch.h

index 1cb67e9..9db6ce4 100644 (file)
@@ -151,9 +151,10 @@ void avrhandle(unsigned char app,
     avrsetup();
     txdata(app,verb,0);
     break;
     avrsetup();
     txdata(app,verb,0);
     break;
-  case START://returns device code
+  case START:
     avrconnect();
     avrconnect();
-    //no break here
+    txdata(app,verb,0);
+    break;
   case AVR_PEEKSIG:
     for(i=0;i<4;i++)
       cmddata[i]=avr_sig(i);
   case AVR_PEEKSIG:
     for(i=0;i<4;i++)
       cmddata[i]=avr_sig(i);
index 59896c7..9ddcc8c 100644 (file)
@@ -125,7 +125,6 @@ void glitchrate(u16 rate){
   glitchcount=rate;
 }
 
   glitchcount=rate;
 }
 
-
 //! Handles a monitor command.
 void glitchhandle(unsigned char app,
                  unsigned char verb,
 //! Handles a monitor command.
 void glitchhandle(unsigned char app,
                  unsigned char verb,
@@ -145,6 +144,20 @@ void glitchhandle(unsigned char app,
     glitchprime();
     handle(cmddata[0],cmddata[1],0);
     break;
     glitchprime();
     handle(cmddata[0],cmddata[1],0);
     break;
+  case GLITCHTIME:
+    _DINT();//disable interrupts
+    TACTL=0; //clear dividers
+    TACTL|=TACLR; //clear config
+    TACTL|=TASSEL_SMCLK| //smclk source
+      MC_2; //continuout mode.
+    
+    //perform the function
+    silent++;//Don't want the function to return anything.
+    handle(cmddata[0],cmddata[1],0);
+    silent--;
+    cmddataword[0]=TAR; //Return counter.
+    txdata(app,verb,2);
+    break;
   case START:
   case STOP:
   case GLITCHAPP:
   case START:
   case STOP:
   case GLITCHAPP:
index 2702fdd..2fe74e1 100644 (file)
@@ -74,9 +74,9 @@ void handle(unsigned char app,
       pluginhandle(app,verb,len);\r
     }else{\r
       debugstr("Plugin missing.");\r
       pluginhandle(app,verb,len);\r
     }else{\r
       debugstr("Plugin missing.");\r
+      debughex(app);\r
       txdata(app,NOK,0);\r
     }\r
       txdata(app,NOK,0);\r
     }\r
-      \r
     break;\r
   }\r
 }\r
     break;\r
   }\r
 }\r
index 7576c7e..16ccea8 100644 (file)
 //Command codes
 #define GLITCHAPP      0x80
 #define GLITCHVERB     0x81
 //Command codes
 #define GLITCHAPP      0x80
 #define GLITCHVERB     0x81
+#define GLITCHTIME     0x82
 #define GLITCHVOLTAGES 0x90
 #define GLITCHRATE     0x91
 
 #define GLITCHVOLTAGES 0x90
 #define GLITCHRATE     0x91
 
+
 //! Setup glitching.
 void glitchsetup();
 //! Setup analog chain for glitching.
 //! Setup glitching.
 void glitchsetup();
 //! Setup analog chain for glitching.