mirror of https://github.com/arendst/Tasmota.git
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
# From: https://github.com/letscontrolit/ESPEasy/blob/mega/tools/pio/post_esp32.py
|
|
# Thanks TD-er :)
|
|
|
|
Import("env")
|
|
|
|
def esp32_create_factory_bin(source, target, env):
|
|
#print("Generating one file initial flash firmware for esp32 units")
|
|
offset = 0x0
|
|
new_file_name = env.subst("$BUILD_DIR/${PROGNAME}-factory.bin")
|
|
sections = env.subst(env.get('FLASH_EXTRA_IMAGES'))
|
|
new_file = open(new_file_name,"wb")
|
|
print(" {} | {}".format("Offset", "File"))
|
|
for section in sections:
|
|
sect_adr,sect_file = section.split(" ",1)
|
|
print(" - {} | {}".format(sect_adr,sect_file))
|
|
source = open(sect_file,"rb")
|
|
new_file.seek(int(sect_adr,0)-offset)
|
|
new_file.write(source.read());
|
|
source.close()
|
|
|
|
firmware_name = env.subst("$BUILD_DIR/${PROGNAME}.bin")
|
|
firmware_start = 0x10000-offset
|
|
firmware = open(firmware_name,"rb")
|
|
print(" - {} | {}".format(hex(firmware_start),firmware_name))
|
|
new_file.seek(firmware_start)
|
|
new_file.write(firmware.read())
|
|
new_file.close()
|
|
firmware.close()
|
|
|
|
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp32_create_factory_bin)
|