Dump to archive now a standard command.
[goodfet] / client / GoodFET.py
index d2beb5c..0f73e0f 100755 (executable)
@@ -7,6 +7,17 @@
 
 import sys, time, string, cStringIO, struct, glob, serial, os;
 
+def getClient(name="GoodFET"):
+    import GoodFET, GoodFETCC, GoodFETAVR, GoodFETSPI, GoodFETMSP430;
+    if(name=="GoodFET" or name=="monitor"): return GoodFET.GoodFET();
+    elif name=="cc" or name=="chipcon": return GoodFETCC.GoodFETCC();
+    elif name=="avr": return GoodFETAVR.GoodFETAVR();
+    elif name=="spi": return GoodFETSPI.GoodFETSPI();
+    elif name=="msp430": return GoodFETSPI.GoodFETMSP430();
+    
+    print "Unsupported target: %s" % name;
+    sys.exit(0);
+
 
 class GoodFET:
     """GoodFET Client Library"""
@@ -15,6 +26,11 @@ class GoodFET:
     
     def __init__(self, *args, **kargs):
         self.data=[0];
+    
+
+    def getConsole(self):
+        from GoodFETConsole import GoodFETConsole;
+        return GoodFETConsole(self);
     def timeout(self):
         print "timeout\n";
     def serInit(self, port=None):
@@ -254,6 +270,8 @@ class GoodFET:
         print "Self-test complete.";
     
     
+    # The following functions ought to be implemented in
+    # every client.
 
     def infostring(self):
         a=self.peekbyte(0xff0);
@@ -268,11 +286,27 @@ class GoodFET:
     def start(self):
         return;
     def test(self):
+        print "Unimplemented.";
         return;
     def status(self):
+        print "Unimplemented.";
         return;
-    
-    
+    def halt(self):
+        print "Unimplemented.";
+        return;
+    def resume(self):
+        print "Unimplemented.";
+        return;
+    def getpc(self):
+        print "Unimplemented.";
+        return 0xdead;
+    def flash(self,file):
+        """Flash an intel hex file to code memory."""
+        print "Flash not implemented.";
+    def dump(self,file,start=0,stop=0xffff):
+        """Dump an intel hex file from code memory."""
+        print "Dump not implemented.";
+
     def peek32(self,address, memory="vn"):
         return (self.peek16(address,memory)+
                 (self.peek16(address+2,memory)<<16));