diff python/hexutil.py @ 246:f254b87258e6

Added hexfile to zcc
author Windel Bouwman
date Thu, 25 Jul 2013 08:11:30 +0200
parents 58155c7c4a8e
children 7b38782ed496
line wrap: on
line diff
--- a/python/hexutil.py	Wed Jul 24 22:40:29 2013 +0200
+++ b/python/hexutil.py	Thu Jul 25 08:11:30 2013 +0200
@@ -18,13 +18,15 @@
 p = subparsers.add_parser('info', help='dump info about hexfile')
 p.add_argument('hexfile', type=argparse.FileType('r'))
 
-p = subparsers.add_parser('new', help='create empty hexfile')
-p.add_argument('hexfile', type=argparse.FileType('x'))
+p = subparsers.add_parser('new', help='create a hexfile')
+p.add_argument('hexfile', type=argparse.FileType('w'))
+p.add_argument('address', type=hex2int, help="hex address of the data")
+p.add_argument('datafile', type=argparse.FileType('rb'), help='binary file to add')
 
-p = subparsers.add_parser('add', help='add binary data from file to hexfile')
-p.add_argument('hexfile', type=argparse.FileType('r+'), help="the hexfile to add the data to")
-p.add_argument('address', type=hex2int, help="hex address")
-p.add_argument('datafile', type=argparse.FileType('rb'), help='binary file to add')
+p = subparsers.add_parser('merge', help='merge two hexfiles into a third')
+p.add_argument('hexfile1', type=argparse.FileType('r'), help="hexfile 1")
+p.add_argument('hexfile2', type=argparse.FileType('r'), help="hexfile 2")
+p.add_argument('rhexfile', type=argparse.FileType('w'), help="resulting hexfile")
 
 def main(args):
     if args.command == 'info':
@@ -35,12 +37,16 @@
             print(region)
     elif args.command == 'new':
         hf = HexFile()
-        hf.save(args.hexfile)
-    elif args.command == 'add':
-        hf = HexFile()
-        hf.load(args.hexfile)
         data = args.datafile.read()
         hf.addRegion(args.address, data)
+        hf.save(args.hexfile)
+    elif args.command == 'merge':
+        hf = HexFile()
+        hf.load(args.hexfile1)
+        hf2 = HexFile()
+        hf2.load(args.hexfile2)
+        hf.merge(hf2)
+        hf.save(args.rhexfile)
     else:
         raise NotImplementedError()