# HG changeset patch
# User laurent
# Date 1275490418 -7200
# Node ID 1b0f72deeb99dbac2b4ab42122f42c2c3066be4c
# Parent  4d9ca788205e1d45077e0f13ca5913cd5dff5ca9# Parent  bacc1314fee699ad55d665cea82ac705481235f1
changes merged

diff -r 4d9ca788205e -r 1b0f72deeb99 targets/LPC/__init__.py
--- a/targets/LPC/__init__.py	Wed Jun 02 16:52:58 2010 +0200
+++ b/targets/LPC/__init__.py	Wed Jun 02 16:53:38 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
+