Sample Peripheral UART, can't compile on DK5340 with CDC configuration

Hello,

I can compile the sample Peripheral UART on the DK5340 with VSC without any problem (standard prj.conf).

I'm trying to compile with the CDC configuration (prj_cdc.conf and DTC_OVERLAY_FILE = usb.overlay) but it fails.

I have no clue what's going wrong, Can you help me ?

Stéphane

Building peripheral_uart
west build --build-dir s:\AURORA\nRF\peripheral_uart\build_cdc s:\AURORA\nRF\peripheral_uart --pristine --board nrf5340dk_nrf5340_cpuapp -- -DNCS_TOOLCHAIN_VERSION:STRING="NONE" -DCONF_FILE:STRING="s:/AURORA/nRF/peripheral_uart/prj_cdc.conf" -DBOARD_ROOT:STRING="s:/AURORA/nRF/fat_fs;s:/AURORA/nRF/fat_fs2;s:/AURORA/nRF/peripheral_uart" -DBOARD_ROOT:STRING="s:/AURORA/nRF/fat_fs;s:/AURORA/nRF/fat_fs2;s:/AURORA/nRF/peripheral_uart" -DDTC_OVERLAY_FILE:STRING="s:/AURORA/nRF/peripheral_uart/usb.overlay"

-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: S:/AURORA/nRF/peripheral_uart
-- Found Python3: C:/ncs/toolchains/v2.0.2/opt/bin/python.exe (found suitable exact version "3.8.2") found components: Interpreter
-- Cache files will be written to: C:/ncs/v2.0.2/zephyr/.cache
-- Zephyr version: 3.0.99 (C:/ncs/v2.0.2/zephyr)
-- Found west (found suitable version "0.13.1", minimum required is "0.7.1")
-- Board: nrf5340dk_nrf5340_cpuapp
-- Found host-tools: zephyr 0.14.1 (C:/ncs/toolchains/v2.0.2/opt/zephyr-sdk)
-- Found dtc: C:/ncs/toolchains/v2.0.2/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6")
-- Found toolchain: zephyr 0.14.1 (C:/ncs/toolchains/v2.0.2/opt/zephyr-sdk)
-- Found BOARD.dts: C:/ncs/v2.0.2/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuapp.dts
-- Found devicetree overlay: usb.overlay
-- Generated zephyr.dts: S:/AURORA/nRF/peripheral_uart/build_cdc/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: S:/AURORA/nRF/peripheral_uart/build_cdc/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: S:/AURORA/nRF/peripheral_uart/build_cdc/zephyr/include/generated/device_extern.h
-- Including generated dts.cmake file: S:/AURORA/nRF/peripheral_uart/build_cdc/zephyr/dts.cmake
Parsing S:/AURORA/nRF/peripheral_uart/Kconfig
Loaded configuration 'C:/ncs/v2.0.2/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuapp_defconfig'
Merged configuration 's:/AURORA/nRF/peripheral_uart/prj_cdc.conf'

warning: BT_SMP (defined at C:\ncs\v2.0.2\zephyr\subsys\bluetooth\host\Kconfig:310, s:\AURORA\nRF\peripheral_uart\build_cdc\subsys\bluetooth\host\Kconfig:310) has direct dependencies (BT_CONN && BT_HCI_HOST && BT_RPC_STACK) || (BT_CONN && BT_HCI_HOST && BT_HCI && BT) with value n, but is currently being y-selected by the following symbols:
 - BT_NUS_SECURITY_ENABLED (defined at S:\AURORA\nRF\peripheral_uart\Kconfig:23), with value y, direct dependencies y (value: y)

error: Aborting due to Kconfig warnings

CMake Error at C:\ncs\v2.0.2\zephyr\cmake\modules\kconfig.cmake:290 (message):
  command failed with return code: 1
Call Stack (most recent call first):
  C:\ncs\v2.0.2\zephyr\cmake\modules\zephyr_default.cmake:121 (include)
  C:\ncs\v2.0.2\zephyr\share\zephyr-package\cmake\ZephyrConfig.cmake:51 (include)
  C:\ncs\v2.0.2\zephyr\share\zephyr-package\cmake\ZephyrConfig.cmake:76 (include_boilerplate)
  s:\AURORA\nRF\peripheral_uart\build_cdc\CMakeLists.txt:14 (find_package)


-- Configuring incomplete, errors occurred!
FATAL ERROR: command exited with status 1: 'c:\ncs\toolchains\v2.0.2\opt\bin\cmake.EXE' '-DWEST_PYTHON=c:\ncs\toolchains\v2.0.2\opt\bin\python.exe' '-Bs:\AURORA\nRF\peripheral_uart\build_cdc' '-Ss:\AURORA\nRF\peripheral_uart' -GNinja -DBOARD=nrf5340dk_nrf5340_cpuapp -DNCS_TOOLCHAIN_VERSION:STRING=NONE -DCONF_FILE:STRING=s:/AURORA/nRF/peripheral_uart/prj_cdc.conf '-DBOARD_ROOT:STRING=s:/AURORA/nRF/fat_fs;s:/AURORA/nRF/fat_fs2;s:/AURORA/nRF/peripheral_uart' '-DBOARD_ROOT:STRING=s:/AURORA/nRF/fat_fs;s:/AURORA/nRF/fat_fs2;s:/AURORA/nRF/peripheral_uart' -DDTC_OVERLAY_FILE:STRING=s:/AURORA/nRF/peripheral_uart/usb.overlay

 *  The terminal process terminated with exit code: 1.
 *  Terminal will be reused by tasks, press any key to close it.

Parents Reply Children
  • Hello. Could the documentation be updated? I completely agree that it is unclear.

    Please add the configuration image and explanation that you showed above under the "USB CDC ACM extension" heading. The way it is currently explained is extremely unclear to follow for vscode users, and the help documents are a generic page on CMake options and another on build system variables.

    Just copy your post and insert it in please! So fast and easy.

    Thank you.

  • Hi,

    The sample documentation tries to be generic and tied to the Zephyr build system so as not to make the documentation dependent on specific platforms and versions of that platform. You can find how to do this in the VS Code extension in the extension's documentation: How to build an application from the nRF Connect SDK. This documentation is also referenced in the Providing CMake options documentation of the nRF Connect SDK.

    Best regards,
    Marte

  • Hi Marte,

    While I appreciate the need for documentation to be platform-agnostic, I am new to CMake, and neither of the documents you link show the syntax of -DMY_DEF=assignment. This is the key piece of missing information.

    Before: To activate the optional extensions supported by this sample, modify OVERLAY_CONFIG in the following manner:

    After: To activate the optional extensions supported by this sample, modify cmake option OVERLAY_CONFIG, ie. -DOVERLAY_CONFIG=newfile.conf:

  • Hi,

    There is an explanation of how to provide the CMake options in the documentation under Important Build System Variables which is also mentioned in the 'Activating sample extensions' section, but I agree that this could be clearer.

    However, this is also explained in the VS Code extension. If you hover over the question mark next to 'Extra CMake arguments' you get an explanation of the format they should be provided as:

    Best regards,
    Marte

  • Hi Marte,

    I'm not saying that the information isn't available somewhere, I just think that the documentation for an example should be more explicit.

    Every employee at nordic is familiar with cmake and the nordic way of doing things, and for these people (such as yourself) the documentation is sufficient, and perhaps even mind-numbingly clear. Personally, it took me a few hours to find this thread and figure it out, which felt like a long time for an example project.

    I don't think I have anything more to add that will change your mind. Thank you for sharing your side of things.

Related