Issue for nRF54L15 PDM sample

Dear Support Team

I want to test the PDM on nRF54L15 and I found the DMIC sample in the below directory, but I built it failed. The attachment is the log for built. Is there any other better PDM sample for test? Many thanks.

Executing task: nRF Connect: Generate config nrf54l15pdk_nrf54l15_cpuapp for c:\ncs\VSC2.6.0\dmic 

Building dmic
west build --build-dir c:/ncs/VSC2.6.0/dmic/build c:/ncs/VSC2.6.0/dmic --pristine --board nrf54l15pdk_nrf54l15_cpuapp --no-sysbuild -- -DNCS_TOOLCHAIN_VERSION=NONE -DCONF_FILE=c:/ncs/VSC2.6.0/dmic/prj.conf -DBOARD_ROOT=c:/ncs/vsc2.6.0/dmic

-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: C:/ncs/VSC2.6.0/dmic
-- 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.0/zephyr/.cache
-- Zephyr version: 3.5.99 (C:/ncs/v2.6.0/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf54l15pdk_nrf54l15_cpuapp, Revision: 0.2.0
-- 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.0/zephyr/boards/arm/nrf54l15pdk_nrf54l15/nrf54l15pdk_nrf54l15_cpuapp.dts
-- Generated zephyr.dts: C:/ncs/VSC2.6.0/dmic/build/zephyr/zephyr.dts
-- Generated devicetree_generated.h: C:/ncs/VSC2.6.0/dmic/build/zephyr/include/generated/devicetree_generated.h
-- Including generated dts.cmake file: C:/ncs/VSC2.6.0/dmic/build/zephyr/dts.cmake
Parsing C:/ncs/v2.6.0/zephyr/Kconfig
Loaded configuration 'C:/ncs/v2.6.0/zephyr/boards/arm/nrf54l15pdk_nrf54l15/nrf54l15pdk_nrf54l15_cpuapp_defconfig'
Merged configuration 'c:/ncs/VSC2.6.0/dmic/prj.conf'
Configuration saved to 'C:/ncs/VSC2.6.0/dmic/build/zephyr/.config'
Kconfig header saved to 'C:/ncs/VSC2.6.0/dmic/build/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.0/zephyr/CMakeLists.txt:862 (message):
  No SOURCES given to Zephyr library: drivers__audio

  Excluding target from build.


-- Configuring done
-- Generating done
-- Build files have been written to: C:/ncs/VSC2.6.0/dmic/build
-- west build: building application
[2/144] Generating include/generated/version.h
-- Zephyr version: 3.5.99 (C:/ncs/v2.6.0/zephyr), build: v3.5.99-ncs1
[16/144] Building C object CMakeFiles/app.dir/src/main.c.obj
FAILED: CMakeFiles/app.dir/src/main.c.obj 
C:\ncs\toolchains\cf2149caf2\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe -DKERNEL -DNRF54L15_ENGA_XXAA -DNRF_APPLICATION -DNRF_CONFIG_CPU_FREQ_MHZ=128 -DPICOLIBC_LONG_LONG_PRINTF_SCANF -D_FORTIFY_SOURCE=1 -D_POSIX_C_SOURCE=200809 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/ncs/v2.6.0/zephyr/include -IC:/ncs/VSC2.6.0/dmic/build/zephyr/include/generated -IC:/ncs/v2.6.0/zephyr/soc/arm/nordic_nrf/nrf54l -IC:/ncs/v2.6.0/zephyr/soc/common/nordic_nrf/. -IC:/ncs/v2.6.0/zephyr/soc/arm/nordic_nrf/common/. -IC:/ncs/v2.6.0/nrf/include -IC:/ncs/v2.6.0/nrf/tests/include -IC:/ncs/v2.6.0/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v2.6.0/zephyr/modules/cmsis/. -IC:/ncs/v2.6.0/modules/hal/nordic/nrfx -IC:/ncs/v2.6.0/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v2.6.0/modules/hal/nordic/nrfx/mdk -IC:/ncs/v2.6.0/zephyr/modules/hal_nordic/nrfx/. -isystem C:/ncs/v2.6.0/zephyr/lib/libc/common/include -fno-strict-aliasing -Os -imacros C:/ncs/VSC2.6.0/dmic/build/zephyr/include/generated/autoconf.h -fno-printf-return-value -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-format=ieee -mtp=soft --sysroot=C:/ncs/toolchains/cf2149caf2/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-security -Wno-format-zero-length -Wno-pointer-sign -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -Werror=implicit-int -fno-pic -fno-pie -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reorder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefix-map=C:/ncs/VSC2.6.0/dmic=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v2.6.0/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v2.6.0=WEST_TOPDIR -ffunction-sections -fdata-sections --specs=picolibc.specs -std=c99 -MD -MT CMakeFiles/app.dir/src/main.c.obj -MF CMakeFiles\app.dir\src\main.c.obj.d -o CMakeFiles/app.dir/src/main.c.obj -c C:/ncs/VSC2.6.0/dmic/src/main.c
In file included from C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain/gcc.h:98,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain.h:50,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/kernel_includes.h:23,
                 from C:/ncs/v2.6.0/zephyr/include/zephyr/kernel.h:17,
                 from C:/ncs/VSC2.6.0/dmic/src/main.c:7:
C:/ncs/VSC2.6.0/dmic/src/main.c: In function 'main':
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:89:41: error: '__device_dts_ord_DT_N_NODELABEL_dmic_dev_ORD' undeclared (first use in this function)
   89 | #define DEVICE_NAME_GET(dev_id) _CONCAT(__device_, dev_id)
      |                                         ^~~~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain/common.h:137:26: note: in definition of macro '_DO_CONCAT'
  137 | #define _DO_CONCAT(x, y) x ## y
      |                          ^
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:89:33: note: in expansion of macro '_CONCAT'
   89 | #define DEVICE_NAME_GET(dev_id) _CONCAT(__device_, dev_id)
      |                                 ^~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:216:37: note: in expansion of macro 'DEVICE_NAME_GET'
  216 | #define DEVICE_DT_NAME_GET(node_id) DEVICE_NAME_GET(Z_DEVICE_DT_DEV_ID(node_id))
      |                                     ^~~~~~~~~~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:233:34: note: in expansion of macro 'DEVICE_DT_NAME_GET'
  233 | #define DEVICE_DT_GET(node_id) (&DEVICE_DT_NAME_GET(node_id))
      |                                  ^~~~~~~~~~~~~~~~~~
C:/ncs/VSC2.6.0/dmic/src/main.c:78:47: note: in expansion of macro 'DEVICE_DT_GET'
   78 |         const struct device *const dmic_dev = DEVICE_DT_GET(DT_NODELABEL(dmic_dev));
      |                                               ^~~~~~~~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:89:41: note: each undeclared identifier is reported only once for each function it appears in
   89 | #define DEVICE_NAME_GET(dev_id) _CONCAT(__device_, dev_id)
      |                                         ^~~~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/toolchain/common.h:137:26: note: in definition of macro '_DO_CONCAT'
  137 | #define _DO_CONCAT(x, y) x ## y
      |                          ^
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:89:33: note: in expansion of macro '_CONCAT'
   89 | #define DEVICE_NAME_GET(dev_id) _CONCAT(__device_, dev_id)
      |                                 ^~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:216:37: note: in expansion of macro 'DEVICE_NAME_GET'
  216 | #define DEVICE_DT_NAME_GET(node_id) DEVICE_NAME_GET(Z_DEVICE_DT_DEV_ID(node_id))
      |                                     ^~~~~~~~~~~~~~~
C:/ncs/v2.6.0/zephyr/include/zephyr/device.h:233:34: note: in expansion of macro 'DEVICE_DT_NAME_GET'
  233 | #define DEVICE_DT_GET(node_id) (&DEVICE_DT_NAME_GET(node_id))
      |                                  ^~~~~~~~~~~~~~~~~~
C:/ncs/VSC2.6.0/dmic/src/main.c:78:47: note: in expansion of macro 'DEVICE_DT_GET'
   78 |         const struct device *const dmic_dev = DEVICE_DT_GET(DT_NODELABEL(dmic_dev));
      |                                               ^~~~~~~~~~~~~
[25/144] Building C object zephyr/lib/libc/picolibc/CMakeFiles/lib__libc__picolibc.dir/libc-hooks.c.obj
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\cf2149caf2\opt\bin\cmake.EXE' --build 'c:\ncs\VSC2.6.0\dmic\build'

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

  • Hi,

    The DMIC sample does not support the nRF54L15 out of the box. You will need to add an overlay file that configure the PDM, similarily to how it is done for some other boards under the boards directory in the sample.

    PS: You should not use nRF Connect SDK v.2.6.0 for nRF54L15 development. Instead, use v2.6.99-dev1 (this should only be used with nRF54L15).

Related