1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/usr/bin/env python3
- #
- """Fill unused areas of 32k ROM image with a recognizable pattern.
- Each 16 byte chunk is filled with:
- Address (2 bytes)
- 0x00
- 0x80
- 0x51
- 0x00
- "8051dumper"
- """
- import argparse
- import intelhex
- if __name__ == '__main__':
- parser = argparse.ArgumentParser(
- prog='fill.py',
- description=__doc__,
- formatter_class=argparse.RawDescriptionHelpFormatter)
- parser.add_argument('infile', metavar='INFILE')
- parser.add_argument('outfile', metavar='OUTFILE')
- args = parser.parse_args()
- fw_image = intelhex.IntelHex(args.infile)
- fill = list(b'\x00\x00\x00\x80\x51\x008051dumper' * int(32768/16))
- for n in range(0, len(fill), 16):
- fill[n] = n>>8
- fill[n+1] = n & 0xFF
- filled_image = intelhex.IntelHex()
- filled_image.frombytes(bytes(fill))
- filled_image.merge(fw_image, overlap='replace')
- filled_image.write_hex_file(args.outfile)
|