diff --git a/CMakeLists.txt b/CMakeLists.txt index 58b30ba7a9a..65cf26ff75e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1647,10 +1647,9 @@ list(APPEND ) list(APPEND post_build_byproducts ${KERNEL_MAP_NAME}) -if(NOT CONFIG_BUILD_NO_GAP_FILL) - # Use ';' as separator to get proper space in resulting command. - set(GAP_FILL "$0xff") -endif() +# Use ';' as separator to get proper space in resulting command. +set(gap_fill_prop "$") +set(gap_fill "$<$:${gap_fill_prop}${CONFIG_BUILD_GAP_FILL_PATTERN}>") if(CONFIG_OUTPUT_PRINT_MEMORY_USAGE) target_link_libraries(${logical_target_for_zephyr_elf} $) @@ -1711,7 +1710,7 @@ if(CONFIG_BUILD_OUTPUT_HEX OR BOARD_FLASH_RUNNER STREQUAL openocd) post_build_commands COMMAND $ $ - ${GAP_FILL} + $<$:${gap_fill}> $ihex ${remove_sections_argument_list} $${KERNEL_ELF_NAME} @@ -1733,7 +1732,7 @@ if(CONFIG_BUILD_OUTPUT_BIN) post_build_commands COMMAND $ $ - ${GAP_FILL} + ${gap_fill} $binary ${remove_sections_argument_list} $${KERNEL_ELF_NAME} @@ -1820,7 +1819,7 @@ if(CONFIG_BUILD_OUTPUT_S19) post_build_commands COMMAND $ $ - ${GAP_FILL} + $<$:${gap_fill}> $srec $1 $${KERNEL_ELF_NAME} diff --git a/Kconfig.zephyr b/Kconfig.zephyr index 5ae12736fdf..bf202081e70 100644 --- a/Kconfig.zephyr +++ b/Kconfig.zephyr @@ -709,8 +709,21 @@ config CLEANUP_INTERMEDIATE_FILES from the build process. Note this breaks incremental builds, west spdx (Software Bill of Material generation), and maybe others. +config BUILD_GAP_FILL_PATTERN + hex "Gap fill pattern" + default 0xFF + help + Pattern used for gap filling of output files. + This value should be set to the value of a clean flash as this can + significantly reduce flash write times. + This setting only defines the gap fill pattern and doesn't enable gap + filling. + Note: binary files are always gap filled as they contain no address + information. + config BUILD_NO_GAP_FILL - bool "Don't fill gaps in generated hex/bin/s19 files." + bool "Don't fill gaps in generated hex/s19 files [DEPRECATED]." + select DEPRECATED config BUILD_OUTPUT_HEX bool "Build a binary in HEX format" @@ -718,6 +731,12 @@ config BUILD_OUTPUT_HEX Build an Intel HEX binary zephyr/zephyr.hex in the build directory. The name of this file can be customized with CONFIG_KERNEL_BIN_NAME. +config BUILD_OUTPUT_HEX_GAP_FILL + bool "Fill gaps in hex files" + depends on !BUILD_NO_GAP_FILL + help + Fill gaps in hex based files. + config BUILD_OUTPUT_BIN bool "Build a binary in BIN format" default y @@ -752,6 +771,12 @@ config BUILD_OUTPUT_S19 Build an S19 binary zephyr/zephyr.s19 in the build directory. The name of this file can be customized with CONFIG_KERNEL_BIN_NAME. +config BUILD_OUTPUT_S19_GAP_FILL + bool "Fill gaps in s19 files" + depends on !BUILD_NO_GAP_FILL + help + Fill gaps in s19 based files. + config BUILD_OUTPUT_UF2 bool "Build a binary in UF2 format" depends on BUILD_OUTPUT_BIN