Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 1 | import sys |
Paul Sokolovsky | a621333 | 2016-08-04 00:19:09 +0300 | [diff] [blame^] | 2 | import struct |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 3 | |
Paul Sokolovsky | 8d2bcaf | 2016-04-03 15:40:53 +0300 | [diff] [blame] | 4 | SEGS_MAX_SIZE = 0x9000 |
| 5 | |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 6 | assert len(sys.argv) == 4 |
| 7 | |
| 8 | with open(sys.argv[3], 'wb') as fout: |
| 9 | |
| 10 | with open(sys.argv[1], 'rb') as f: |
| 11 | data_flash = f.read() |
| 12 | fout.write(data_flash) |
| 13 | print('flash ', len(data_flash)) |
| 14 | |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 15 | with open(sys.argv[2], 'rb') as f: |
| 16 | data_rom = f.read() |
Paul Sokolovsky | a621333 | 2016-08-04 00:19:09 +0300 | [diff] [blame^] | 17 | |
| 18 | pad = b'\xff' * (SEGS_MAX_SIZE - len(data_flash)) |
| 19 | assert len(pad) >= 4 |
| 20 | fout.write(pad[:-4]) |
| 21 | fout.write(struct.pack("I", SEGS_MAX_SIZE + len(data_rom))) |
| 22 | print('padding ', len(pad)) |
| 23 | |
| 24 | fout.write(data_rom) |
| 25 | print('irom0text', len(data_rom)) |
Damien George | 075d597 | 2014-11-27 20:30:33 +0000 | [diff] [blame] | 26 | |
Paul Sokolovsky | 8d2bcaf | 2016-04-03 15:40:53 +0300 | [diff] [blame] | 27 | print('total ', SEGS_MAX_SIZE + len(data_rom)) |