12345678910111213141516171819202122232425262728293031323334353637383940 |
- #
- # jgaurora_a5s_a1_with_bootloader.py
- # Customizations for env:jgaurora_a5s_a1
- #
- import pioutil
- if pioutil.is_pio_build():
- import os,marlin
- # Append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin'
- def addboot(source, target, env):
- firmware = open(target[0].path, "rb")
- lengthfirmware = os.path.getsize(target[0].path)
- bootloader_bin = "buildroot/share/PlatformIO/scripts/" + "jgaurora_bootloader.bin"
- bootloader = open(bootloader_bin, "rb")
- lengthbootloader = os.path.getsize(bootloader_bin)
-
- firmware_with_boothloader_bin = target[0].dir.path + '/firmware_with_bootloader.bin'
- if os.path.exists(firmware_with_boothloader_bin):
- os.remove(firmware_with_boothloader_bin)
- firmwareimage = open(firmware_with_boothloader_bin, "wb")
- position = 0
- while position < lengthbootloader:
- byte = bootloader.read(1)
- firmwareimage.write(byte)
- position += 1
- position = 0
- while position < lengthfirmware:
- byte = firmware.read(1)
- firmwareimage.write(byte)
- position += 1
- bootloader.close()
- firmware.close()
- firmwareimage.close()
-
- firmware_without_bootloader_bin = target[0].dir.path + '/firmware_for_sd_upload.bin'
- if os.path.exists(firmware_without_bootloader_bin):
- os.remove(firmware_without_bootloader_bin)
- os.rename(target[0].path, firmware_without_bootloader_bin)
- #os.rename(target[0].dir.path+'/firmware_with_bootloader.bin', target[0].dir.path+'/firmware.bin')
-
- marlin.add_post_action(addboot);
|