Mercurial > lcfOS
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()