Hi everyone,
I'm currently working on porting a project that uses Enhanced ShockBurst (ESB), originally developed with nRF Connect SDK v3.0.2, to Zephyr 4.2.0. The project runs on the nRF5340 DK, specifically on the network core (CPUNET).
Project context
- The original project uses
esb.h,dk_buttons_and_leds.h,clock_control, etc. - I copied the ESB source files from
nrf/subsys/esb/:esb.c,esb_dppi.c,esb_ppi.cesb.h,esb_peripherals.h,esb_ppi_api.h
- I created a
Kconfigfile inside theesb/folder and another one at the root of the project to declare symbols likeCONFIG_ESB,CONFIG_DK_LIBRARY, etc. - I added the sources and include paths in
CMakeLists.txtusingtarget_sources()andzephyr_include_directories().
Problem
When I try to build the project with:
west build -b nrf5340dk_nrf5340_cpunet
I get multiple warnings and errors like:
warning: attempt to assign the value 'y' to the undefined symbol ESB
warning: attempt to assign the value 'y' to the undefined symbol DK_LIBRARY
...
error: Aborting due to Kconfig warnings
Even though the Kconfig files are present, Zephyr doesn't seem to recognize the symbols defined in them.
What I’ve tried
- Verified the project structure and file names
- Added
rsource "esb/Kconfig"in the rootKconfig - Cleaned the build with
-p always - Verified that the
esb/folder is included in bothCMakeLists.txtandKconfig
What I need help with
- How to properly integrate the ESB module into a pure Zephyr 4.2.0 project (without NCS)
- How to make Zephyr recognize the custom Kconfig symbols
- Any advice on structuring the project correctly for nRF5340 DK (CPUNET)
Thanks in advance for your help!