summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2025-02-23 17:45:06 +0100
committerxengineering <me@xengineering.eu>2025-02-23 20:15:41 +0100
commitd24bdfcca2eb9d3ef9c5a77d5e96dc80c73cf13e (patch)
tree57f44f1848d6d1a5a6588b6d774387c188dc32a9
parent2fa7bd797bff2b232d7c2ef28b295437987ced58 (diff)
downloadiot-contact-d24bdfcca2eb9d3ef9c5a77d5e96dc80c73cf13e.tar
iot-contact-d24bdfcca2eb9d3ef9c5a77d5e96dc80c73cf13e.tar.zst
iot-contact-d24bdfcca2eb9d3ef9c5a77d5e96dc80c73cf13e.zip
fw: btl: Integrate bootloader build
This allows to build the MCUboot bootloader as part of the existing CMake build system. The bootloader is embedded as external project since multiple Zephyr applications in one build are not easily feasible.
-rw-r--r--fw/CMakeLists.txt17
1 files changed, 17 insertions, 0 deletions
diff --git a/fw/CMakeLists.txt b/fw/CMakeLists.txt
index 000039e..8c229e0 100644
--- a/fw/CMakeLists.txt
+++ b/fw/CMakeLists.txt
@@ -8,7 +8,24 @@ set(BOARD "nucleo_f767zi")
set(ZEPHYR_MODULES
"${CMAKE_CURRENT_SOURCE_DIR}/zephyrproject/modules/hal/cmsis"
"${CMAKE_CURRENT_SOURCE_DIR}/zephyrproject/modules/hal/stm32"
+ "${CMAKE_CURRENT_SOURCE_DIR}/zephyrproject/modules/crypto/mbedtls"
+ "${CMAKE_CURRENT_SOURCE_DIR}/zephyrproject/bootloader/mcuboot"
)
+
+string(REPLACE ";" "," ZEPHYR_MODULES_COMMA "${ZEPHYR_MODULES}")
+include(ExternalProject)
+ExternalProject_Add(
+ bootloader
+ PREFIX bootloader
+ SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/zephyrproject/bootloader/mcuboot/boot/zephyr"
+ BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/bootloader"
+ INSTALL_COMMAND ""
+ LIST_SEPARATOR ","
+ CMAKE_ARGS
+ "-DBOARD=${BOARD}"
+ "-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}"
+)
+
find_package(Zephyr
REQUIRED
HINTS