esp8266/makeimg.py: Store firmware size as last 4 bytes of padding area.
diff --git a/esp8266/makeimg.py b/esp8266/makeimg.py
index e63f956..834f778 100644
--- a/esp8266/makeimg.py
+++ b/esp8266/makeimg.py
@@ -1,4 +1,5 @@
import sys
+import struct
SEGS_MAX_SIZE = 0x9000
@@ -11,13 +12,16 @@
fout.write(data_flash)
print('flash ', len(data_flash))
- pad = b'\xff' * (SEGS_MAX_SIZE - len(data_flash))
- fout.write(pad)
- print('padding ', len(pad))
-
with open(sys.argv[2], 'rb') as f:
data_rom = f.read()
- fout.write(data_rom)
- print('irom0text', len(data_rom))
+
+ pad = b'\xff' * (SEGS_MAX_SIZE - len(data_flash))
+ assert len(pad) >= 4
+ fout.write(pad[:-4])
+ fout.write(struct.pack("I", SEGS_MAX_SIZE + len(data_rom)))
+ print('padding ', len(pad))
+
+ fout.write(data_rom)
+ print('irom0text', len(data_rom))
print('total ', SEGS_MAX_SIZE + len(data_rom))