mirror of https://github.com/meshcore-dev/MeshCore
2 changed files with 49 additions and 0 deletions
@ -0,0 +1,48 @@ |
|||
#!/usr/bin/python3 |
|||
|
|||
# Adds PlatformIO post-processing to merge all the ESP flash images into a single image. |
|||
|
|||
import os |
|||
|
|||
Import("env", "projenv") |
|||
|
|||
board_config = env.BoardConfig() |
|||
firmware_bin = "${BUILD_DIR}/${PROGNAME}.bin" |
|||
merged_bin = os.environ.get("MERGED_BIN_PATH", "${BUILD_DIR}/${PROGNAME}-merged.bin") |
|||
|
|||
|
|||
def merge_bin_action(source, target, env): |
|||
flash_images = [ |
|||
*env.Flatten(env.get("FLASH_EXTRA_IMAGES", [])), |
|||
"$ESP32_APP_OFFSET", |
|||
source[0].get_abspath(), |
|||
] |
|||
merge_cmd = " ".join( |
|||
[ |
|||
'"$PYTHONEXE"', |
|||
'"$OBJCOPY"', |
|||
"--chip", |
|||
board_config.get("build.mcu", "esp32"), |
|||
"merge_bin", |
|||
"-o", |
|||
merged_bin, |
|||
"--flash_mode", |
|||
board_config.get("build.flash_mode", "dio"), |
|||
"--flash_freq", |
|||
"${__get_board_f_flash(__env__)}", |
|||
"--flash_size", |
|||
board_config.get("upload.flash_size", "4MB"), |
|||
*flash_images, |
|||
] |
|||
) |
|||
env.Execute(merge_cmd) |
|||
|
|||
|
|||
env.AddCustomTarget( |
|||
name="mergebin", |
|||
dependencies=firmware_bin, |
|||
actions=merge_bin_action, |
|||
title="Merge binary", |
|||
description="Build combined image", |
|||
always_build=True, |
|||
) |
|||
Loading…
Reference in new issue