Add note about another tested PIC target: PIC24FJ64GA002
[goodfet] / client / GoodFETARM7.py
index 9eb7d0d..88da8ac 100644 (file)
@@ -40,7 +40,7 @@ OK    = 0x7F
 IR_SHIFT =                  0x80
 DR_SHIFT =                  0x81
 RESETTAP =                  0x82
-RESETTARGET =               0x86
+RESETTARGET =               0x83
 GET_REGISTER =              0x87
 SET_REGISTER =              0x88
 DEBUG_INSTR =               0x89
@@ -504,6 +504,7 @@ class GoodFETARM(GoodFET):
         WARNING: Addresses must be word-aligned!
         """
         regs = self.ARMget_registers()
+        self.ARMset_registers([0xdeadbeef for x in xrange(14)], 0xe)
         output = []
         count = wordcount
         while (wordcount > 0):
@@ -522,6 +523,10 @@ class GoodFETARM(GoodFET):
         # FIXME: handle the rest of the wordcount here.
         self.ARMset_registers(regs,0xe)
         return output
+    def ARMreadStream(self, adr, bytecount):
+        data = [struct.unpack("<L", x) for x in self.ARMreadChunk(adr, (bytecount-1/4)+1)]
+        return "".join(data)[:bytecount]
+        
     def ARMwriteChunk(self, adr, wordarray):         
         """ Only works in ARM mode currently
         WARNING: Addresses must be word-aligned!
@@ -575,7 +580,8 @@ class GoodFETARM(GoodFET):
                   0x02 : "force dbgrq",
                   0x01 : "force dbgack"
                   }
-                  
+    def ARMresettarget(self, delay=10):
+        return self.writecmd(0x13,RESETTARGET,2, [ delay&0xff, (delay>>8)&0xff ] )
     def ARMchain0(self, address, bits=0x819684c054, data=0):
         bulk = chop(address,4)
         bulk.extend(chop(bits,8))