Overloaded GetBinaryCode in LPC connector returns ready to send over serial binary
authorLolitech
Wed, 02 Jun 2010 16:40:06 +0200
changeset 540 bacc1314fee6
parent 539 6ff2c1d34640
child 542 1b0f72deeb99
Overloaded GetBinaryCode in LPC connector returns ready to send over serial binary
targets/LPC/__init__.py
--- a/targets/LPC/__init__.py	Wed Jun 02 16:35:00 2010 +0200
+++ b/targets/LPC/__init__.py	Wed Jun 02 16:40:06 2010 +0200
@@ -1,11 +1,22 @@
+import os
+from subprocess import Popen,PIPE
 from .. import toolchain_makefile
+import hashlib
 
 class LPC_target(toolchain_makefile):
     extension = ".ld"
     DebugEnabled = False
 
     def GetBinaryCode(self):
+        """Returns ready to send signed + sized intel formated hex program"""
         try:
-            return open(os.path.join(self.buildpath, "ArmPLC_rom.bin"), "rb").read()
+            size = int(Popen(
+                 ['arm-elf-size','-B',os.path.join(self.buildpath,"ArmPLC_rom.elf")],
+                 stdout=PIPE).communicate()[0].splitlines()[1].split()[0])
+            res = "&" + hashlib.md5(open(os.path.join(self.buildpath, "ArmPLC_rom.bin"), "rb").read(size)).hexdigest() + '\n' +\
+                   "$" + str(size) + '\n' +\
+                   open(os.path.join(self.buildpath, "ArmPLC_rom.hex"), "r").read()
+            return res
         except Exception, e:
             return None
+