diff options
-rw-r--r-- | fw/CMakeLists.txt | 41 | ||||
-rw-r--r-- | fw/app/CMakeLists.txt | 2 | ||||
-rwxr-xr-x | fw/nucleo.sh | 17 | ||||
l--------- | imgtool.py | 2 |
4 files changed, 35 insertions, 27 deletions
diff --git a/fw/CMakeLists.txt b/fw/CMakeLists.txt index 5b1e42b..aa5af1c 100644 --- a/fw/CMakeLists.txt +++ b/fw/CMakeLists.txt @@ -4,28 +4,45 @@ cmake_minimum_required(VERSION 3.20.0) +include(ExternalProject) + set(KEY_DEFAULT "$ENV{HOME}/mcuboot/key.pem") set(KEY ${KEY_DEFAULT} CACHE STRING "Firmware signing key path") message(STATUS "Firmware signing key path: ${KEY}") -set(BOARD "native_sim/native/64") -add_subdirectory(rtos) +set(BOARD_DEFAULT "native_sim/native/64") +set(BOARD ${BOARD_DEFAULT} CACHE STRING "Zephyr board identifier") +message(STATUS "Selected board: ${BOARD}") +add_subdirectory(rtos) string(REPLACE ";" "," ZEPHYR_MODULES_COMMA "${ZEPHYR_MODULES}") -include(ExternalProject) + +if(BOARD STREQUAL "nucleo_f767zi") + ExternalProject_Add( + btl + PREFIX btl + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rtos/modules/mcuboot/boot/zephyr" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/btl" + INSTALL_COMMAND "" + LIST_SEPARATOR "," + CMAKE_ARGS + "-DBOARD=${BOARD}" + "-DZEPHYR_BASE=${ZEPHYR_BASE}" + "-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}" + "-DEXTRA_CONF_FILE=${CMAKE_CURRENT_SOURCE_DIR}/btl/bootloader.conf" + -DCONFIG_BOOT_SIGNATURE_KEY_FILE="${KEY}" + ) +endif() + ExternalProject_Add( - btl - PREFIX btl - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rtos/modules/mcuboot/boot/zephyr" - BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/btl" + app + PREFIX app + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/app" INSTALL_COMMAND "" LIST_SEPARATOR "," CMAKE_ARGS - "-DBOARD=nucleo_f767zi" + "-DBOARD=${BOARD}" "-DZEPHYR_BASE=${ZEPHYR_BASE}" "-DZEPHYR_MODULES=${ZEPHYR_MODULES_COMMA}" - "-DEXTRA_CONF_FILE=${CMAKE_CURRENT_SOURCE_DIR}/btl/bootloader.conf" - -DCONFIG_BOOT_SIGNATURE_KEY_FILE="${KEY}" ) - -add_subdirectory(app) diff --git a/fw/app/CMakeLists.txt b/fw/app/CMakeLists.txt index ce10104..47f75f6 100644 --- a/fw/app/CMakeLists.txt +++ b/fw/app/CMakeLists.txt @@ -10,7 +10,7 @@ find_package(Zephyr "${ZEPHYR_BASE}" ) -project(iot-contact-fw) +project(iot-contact-app) target_sources(app PRIVATE diff --git a/fw/nucleo.sh b/fw/nucleo.sh index b48b759..e89ff07 100755 --- a/fw/nucleo.sh +++ b/fw/nucleo.sh @@ -24,30 +24,21 @@ FW="$(dirname "$SCRIPT")" ROOT="$(dirname "$FW")" BUILD="${ROOT}/nucleo" BOOTLOADER_FIRMWARE="${BUILD}/fw/btl/zephyr/zephyr.bin" -APPLICATION_FIRMWARE="${BUILD}/fw/zephyr/zephyr.bin" -APPLICATION_FIRMWARE_SIGNED="${BUILD}/fw/zephyr/zephyr.signed.bin" +APPLICATION_FIRMWARE="${BUILD}/fw/app/zephyr/zephyr.bin" +APPLICATION_FIRMWARE_SIGNED="${BUILD}/fw/app/zephyr/zephyr.signed.bin" BOOTLOADER_FLASH_ADDRESS='0x8000000' APPLICATION_FLASH_ADDRESS='0x8040000' -MCUBOOT="${ROOT}/fw/btl/mcuboot" -IMGTOOL="${MCUBOOT}/scripts/imgtool.py" +IMGTOOL="${ROOT}/imgtool.py" KEY="${HOME}/mcuboot/key.pem" BOARD='nucleo_f767zi' -EXTRA_CONFIGS='' BAUDRATE='115200' SERIAL_PORT='/dev/ttyACM0' -CONFIG_OVERLAY="${FW}/my.conf" -if test -f "$CONFIG_OVERLAY" -then - EXTRA_CONFIGS="${EXTRA_CONFIGS} ${CONFIG_OVERLAY}" -fi - set -x rm -rf "$BUILD" -cmake "-B${BUILD}" -GNinja -DBOARD="$BOARD" \ - -DEXTRA_CONF_FILE="${EXTRA_CONFIGS}" -DKEY="$KEY" +cmake "-B${BUILD}" -GNinja -DBOARD="$BOARD" ninja -C "$BUILD" python "$IMGTOOL" sign \ --version 0.0.0 \ @@ -1 +1 @@ -fw/zephyrproject/bootloader/mcuboot/scripts/imgtool.py
\ No newline at end of file +fw/rtos/modules/mcuboot/scripts/imgtool.py
\ No newline at end of file |