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.c
esb.h
,esb_peripherals.h
,esb_ppi_api.h
- I created a
Kconfig
file 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.txt
usingtarget_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.txt
andKconfig
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!