DFU over Bluetooth - Modify the Peripheral LBS sample error

Hi,

I have a question regarding the DFU example



Board used: nRF7002dk
Toolchain used: v2.6.1
SDK used: v2.6.99-cs2

OS used: Windows 10


I was following the process of 'DFU over Bluetooth - Modify the Peripheral LBS sample' from the link below, and encountered a build error starting from step 2a
(I think I saw a similar example in the intermediate course at the academy.)
https://devzone.nordicsemi.com/guides/nrf-connect-sdk-guides/b/software/posts/ncs-dfu#mcetoc_1h90kb1ii2

It is stated that if you use NCS version 2.5.0 or later,

CONFIG_BOOTLOADER_MCUBOOT=y

CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y

only need to add the above.

Below is the build failure log.

Please share a solution for this.
(It seems like the example adding MCUBOOT configuration is encountering the same error.)


"Failed build log"

-- Found Python3: C:/ncs/toolchains/cf2149caf2/opt/bin/python.exe (found version "3.9.13") found components: Interpreter
Changed board to secure nrf7002dk_nrf5340_cpuapp (NOT NS)

=== child image mcuboot - begin ===
loading initial cache file C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/child_image_preload.cmake
Loading Zephyr default modules (Zephyr base).
-- Application: C:/ncs/v2.6.99-cs2/bootloader/mcuboot/boot/zephyr
-- CMake version: 3.21.0
-- Found Python3: C:/ncs/toolchains/cf2149caf2/opt/bin/python.exe (found suitable version "3.9.13", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.6.99-cs2/zephyr/.cache
-- Zephyr version: 3.6.99 (C:/ncs/v2.6.99-cs2/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf7002dk_nrf5340_cpuapp
-- Found host-tools: zephyr 0.16.5 (C:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.16.5 (C:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk)
-- Found Dtc: C:/ncs/toolchains/cf2149caf2/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
-- Found BOARD.dts: C:/ncs/v2.6.99-cs2/nrf/boards/arm/nrf7002dk_nrf5340/nrf7002dk_nrf5340_cpuapp.dts
-- Found devicetree overlay: C:/ncs/v2.6.99-cs2/bootloader/mcuboot/boot/zephyr/app.overlay
-- Found devicetree overlay: C:/ncs/v2.6.99-cs2/nrf/modules/mcuboot/usb.overlay
-- Generated zephyr.dts: C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/zephyr.dts
-- Generated devicetree_generated.h: C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/dts.cmake


Parsing C:/ncs/v2.6.99-cs2/bootloader/mcuboot/boot/zephyr/Kconfig
Loaded configuration 'C:/ncs/v2.6.99-cs2/nrf/boards/arm/nrf7002dk_nrf5340/nrf7002dk_nrf5340_cpuapp_defconfig'
Merged configuration 'C:/ncs/v2.6.99-cs2/bootloader/mcuboot/boot/zephyr/prj.conf'
Merged configuration 'C:/ncs/v2.6.99-cs2/nrf/modules/mcuboot/tfm.conf'
Merged configuration 'C:/ncs/v2.6.99-cs2/nrf/modules/mcuboot/fih_low_enable.conf'
Merged configuration 'C:/ncs/v2.6.99-cs2/nrf/subsys/partition_manager/partition_manager_enabled.conf'
Merged configuration 'C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/misc/generated/extra_kconfig_options.conf'
Configuration saved to 'C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/.config'
Kconfig header saved to 'C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/include/generated/autoconf.h'
-- Found GnuLd: c:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38")
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
CMake Warning at C:/ncs/v2.6.99-cs2/zephyr/CMakeLists.txt:864 (message):
No SOURCES given to Zephyr library: drivers__spi

Excluding target from build.

MCUBoot bootloader key file: C:/ncs/v2.6.99-cs2/bootloader/mcuboot/root-rsa-2048.pem
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot
=== child image mcuboot - end ===

CMake Warning at C:/ncs/v2.6.99-cs2/nrf/modules/mcuboot/CMakeLists.txt:382 (message):

---------------------------------------------------------
--- WARNING: Using default MCUBoot key, it should not ---
--- be used for production. ---
---------------------------------------------------------

-- libmetal version: 1.5.0 (C:/Users/user/ncs_examples/peripheral_lbs)
-- Build type:
-- Host: Windows/AMD64
-- Target: Generic/arm
-- Machine: arm
-- Looking for include file stdatomic.h
-- Looking for include file stdatomic.h - found
-- open-amp version: 1.5.0 (C:/ncs/v2.6.99-cs2/modules/lib/open-amp/open-amp)
-- Host: Windows/AMD64
-- Target: Generic/arm
-- Machine: arm
-- C_FLAGS : -Wall -Wextra
-- Looking for include file fcntl.h
-- Looking for include file fcntl.h - found
CMake Warning at C:/ncs/v2.6.99-cs2/zephyr/CMakeLists.txt:1969 (message):
__ASSERT() statements are globally ENABLED

CMake Warning at C:/ncs/v2.6.99-cs2/nrf/cmake/partition_manager.cmake:83 (message):

---------------------------------------------------------------------
--- WARNING: Using a bootloader without pm_static.yml. ---
--- There are cases where a deployed product can consist of ---
--- multiple images, and only a subset of these images can be ---
--- upgraded through a firmware update mechanism. In such cases, ---
--- the upgradable images must have partitions that are static ---
--- and are matching the partition map used by the bootloader ---
--- programmed onto the device. ---
---------------------------------------------------------------------

Call Stack (most recent call first):
C:/ncs/v2.6.99-cs2/zephyr/cmake/modules/kernel.cmake:248 (include)
C:/ncs/v2.6.99-cs2/zephyr/cmake/modules/zephyr_default.cmake:138 (include)
C:/ncs/v2.6.99-cs2/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include)
C:/ncs/v2.6.99-cs2/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate)
CMakeLists.txt:8 (find_package)

-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/user/ncs_examples/peripheral_lbs/build
-- west build: building application
[11/378] Generating include/generated/version.h
-- Zephyr version: 3.6.99 (C:/ncs/v2.6.99-cs2/zephyr), build: 7a22da43c1d4
[4/204] Generating include/generated/version.h
-- Zephyr version: 3.6.99 (C:/ncs/v2.6.99-cs2/zephyr), build: 7a22da43c1d4
[201/204] Linking C executable zephyr\zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 174184 B 256 KB 66.45%
RAM: 57456 B 64 KB 87.67%
SRAM1: 0 GB 64 KB 0.00%
IDT_LIST: 0 GB 32 KB 0.00%
Generating files from C:/Users/user/ncs_examples/peripheral_lbs/build/hci_ipc/zephyr/zephyr.elf for board: nrf7002dk_nrf5340_cpunet
[18/378] Generating ../../tfm/CMakeCache.txt
CMake Warning at cmake/version.cmake:22 (message):

Actual TF-M version is not available from Git repository. Settled to

v2.0.0

Call Stack (most recent call first):

CMakeLists.txt:22 (include)

-- Found Git: C:/ncs/toolchains/cf2149caf2/mingw64/bin/git.exe (found version "2.37.3.windows.1")
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
-- Found Python3: C:/ncs/toolchains/cf2149caf2/opt/bin/python.exe (found version "3.9.13") found components: Interpreter
CMake Deprecation Warning at C:/ncs/v2.6.99-cs2/zephyr/cmake/modules/FindDeprecated.cmake:94 (message):

'PYTHON_PREFER' variable is deprecated. Please use Python3_EXECUTABLE

instead.

Call Stack (most recent call first):

C:/ncs/v2.6.99-cs2/zephyr/cmake/modules/python.cmake:16 (find_package)

C:/ncs/v2.6.99-cs2/zephyr/cmake/modules/user_cache.cmake:30 (include)

C:/ncs/v2.6.99-cs2/zephyr/cmake/modules/extensions.cmake:5 (include)

C:/ncs/v2.6.99-cs2/nrf/subsys/nrf_security/tfm/CMakeLists.txt:42 (include)


-- Found Python3: C:/ncs/toolchains/cf2149caf2/opt/bin/python.exe (found suitable version "3.9.13", minimum required is "3.8") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.6.99-cs2/zephyr/.cache
-- Configuring done
-- Generating done
CMake Warning:

Manually-specified variables were not used by the project:

CRYPTO_RNG_MODULE_ENABLED

MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE

PYTHON_PREFER


-- Build files have been written to: C:/Users/user/ncs_examples/peripheral_lbs/build/tfm
[4/271] Generating include/generated/version.h
-- Zephyr version: 3.6.99 (C:/ncs/v2.6.99-cs2/zephyr), build: 7a22da43c1d4
[265/271] Linking C executable zephyr\zephyr_pre0.elf
FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/zephyr_pre0.map
cmd.exe /C "cd . && C:\ncs\toolchains\cf2149caf2\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe -gdwarf-4 zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr\zephyr_pre0.elf zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj -fuse-ld=bfd -T zephyr/linker_zephyr_pre0.cmd -Wl,-Map=C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/zephyr_pre0.map -Wl,--whole-archive app/libapp.a zephyr/libzephyr.a zephyr/arch/common/libarch__common.a zephyr/arch/arch/arm/core/libarch__arm__core.a zephyr/arch/arch/arm/core/cortex_m/libarch__arm__core__cortex_m.a zephyr/arch/arch/arm/core/cortex_m/cmse/libarch__arm__core__cortex_m__cmse.a zephyr/lib/libc/minimal/liblib__libc__minimal.a zephyr/lib/libc/common/liblib__libc__common.a zephyr/soc/soc/arm/nordic_nrf/libsoc__arm__nordic_nrf.a zephyr/drivers/clock_control/libdrivers__clock_control.a zephyr/drivers/console/libdrivers__console.a zephyr/drivers/flash/libdrivers__flash.a zephyr/drivers/gpio/libdrivers__gpio.a zephyr/drivers/pinctrl/libdrivers__pinctrl.a zephyr/drivers/serial/libdrivers__serial.a zephyr/drivers/timer/libdrivers__timer.a modules/nrf/lib/fprotect/lib..__nrf__lib__fprotect.a modules/nrf/lib/fatal_error/lib..__nrf__lib__fatal_error.a modules/nrf/drivers/hw_cc3xx/lib..__nrf__drivers__hw_cc3xx.a modules/mcuboot/boot/bootutil/zephyr/libmcuboot_util.a modules/mbedtls/libmbedTLSBase.a modules/mbedtls/libmbedTLSCrypto.a modules/mbedtls/libmbedTLSX509.a modules/mbedtls/libmodules__mbedtls.a modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a -Wl,--no-whole-archive zephyr/kernel/libkernel.a -L"c:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/thumb/v8-m.main/nofp" -LC:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr -lgcc zephyr/arch/common/libisr_tables.a modules/mbedtls/libmbedTLSBase.a modules/mbedtls/libmbedTLSCrypto.a modules/mbedtls/libmbedTLSX509.a -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-format=ieee -Wl,--gc-sections -Wl,--build-id=none -Wl,--sort-common=descending -Wl,--sort-section=alignment -Wl,-u,_OffsetAbsSyms -Wl,-u,_ConfigAbsSyms -nostdlib -static -Wl,-X -Wl,-N -Wl,--orphan-handling=warn -Wl,-no-pie C:/ncs/v2.6.99-cs2/nrfxlib/crypto/nrf_cc312_platform/lib/cortex-m33/soft-float/no-interrupts/libnrf_cc312_platform_0.9.19.a && cmd.exe /C "cd /D C:\Users\user\ncs_examples\peripheral_lbs\build\mcuboot\zephyr && C:\ncs\toolchains\cf2149caf2\opt\bin\cmake.exe -E true""
c:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/drivers/flash/libdrivers__flash.a(spi_nor.c.obj):(.rodata.spi_nor_config_0+0x0): undefined reference to `__device_dts_ord_143'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
[26/378] Completed 'hci_ipc_subimage'
FAILED: modules/mcuboot/mcuboot_subimage-prefix/src/mcuboot_subimage-stamp/mcuboot_subimage-build mcuboot/zephyr/zephyr.hex mcuboot/zephyr/zephyr.elf C:/Users/user/ncs_examples/peripheral_lbs/build/modules/mcuboot/mcuboot_subimage-prefix/src/mcuboot_subimage-stamp/mcuboot_subimage-build C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/zephyr.hex C:/Users/user/ncs_examples/peripheral_lbs/build/mcuboot/zephyr/zephyr.elf
cmd.exe /C "cd /D C:\Users\user\ncs_examples\peripheral_lbs\build\mcuboot && C:\ncs\toolchains\cf2149caf2\opt\bin\cmake.exe --build . --"
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\cf2149caf2\opt\bin\cmake.EXE' --build 'c:\Users\user\ncs_examples\peripheral_lbs\build'


Parents Reply Children
  • Hi Abhijith,

    I have successfully built the Matter example with SDK v2.6.1, and the provided Thread files have been successfully built with SDK v2.4.0.

    I have referred to the 7002dk configuration files in the child_image and boards folders of the Matter example and moved them accordingly. but, It doesn't work as well as you think.


    build error:

    warning: FLASH_MAP (defined at subsys/storage/flash_map/Kconfig:10) has direct dependencies FLASH_HAS_DRIVER_ENABLED with value n, but is currently being y-selected by the following symbols:
    - MCUBOOT_DEVICE_SETTINGS (defined at C:/ncs/v2.6.1/bootloader/mcuboot/boot/zephyr/Kconfig:681), with value y, direct dependencies y (value: y)
    
    error: Aborting due to Kconfig warnings
    
    -- Configuring incomplete, errors occurred!
    CMake Error at C:/ncs/v2.6.1/nrf/cmake/multi_image.cmake:449 (message):
    CMake generation for mcuboot failed, aborting. Command: 1
    Call Stack (most recent call first):
    C:/ncs/v2.6.1/nrf/cmake/multi_image.cmake:178 (add_child_image_from_source)
    C:/ncs/v2.6.1/nrf/modules/mcuboot/CMakeLists.txt:328 (add_child_image)


    https://docs.nordicsemi.com/bundle/ncs-2.6.1/page/nrf/config_and_build/multi_image.html#permanent_configuration_changes_to_child_images

    I'm having difficulty integrating the bootloader configuration files for nRF7002dk into [SDK sample] ble_peripheral_lbs as described in the provided link.

    My goal is to perform BLE DFU with Wi-Fi BLE coexistence on the nRF7002dk, but, Could you please help me test DFU with the modified ble_peripheral_lbs sample?



    Thank you.

    BR
    Jeon

Related