Hi Support team,
I can run the sample 'IPC service' successfully with the default build, which can print the bidirectional throughput on consoles of the app-core and net-core.
But when I want to try the unidirectional throughout from app-core to net-core with:
west build -p -b nrf5340dk_nrf5340_cpuapp -- -DCONF_FILE=prj_icmsg.conf -DOVERLAY_CONFIG=overlay-cpuapp-sending.conf
The build has failed:
-- Found Python3: C:/ncs/toolchains/c57af46cb7/opt/bin/python.exe (found suitable version "3.8.2", minimum required is "3.8") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.5.0/zephyr/.cache -- Zephyr version: 3.4.99 (C:/ncs/v2.5.0/zephyr) -- Found west (found suitable version "1.1.0", minimum required is "0.14.0") -- Board: nrf5340dk_nrf5340_cpuapp -- Found host-tools: zephyr 0.16.1 (C:/ncs/toolchains/c57af46cb7/opt/zephyr-sdk) -- Found toolchain: zephyr 0.16.1 (C:/ncs/toolchains/c57af46cb7/opt/zephyr-sdk) -- Found Dtc: C:/ncs/toolchains/c57af46cb7/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/ncs/v2.5.0/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuapp.dts -- Found devicetree overlay: .overlay <command-line>: fatal error: .overlay: No such file or directory compilation terminated. CMake Error at C:/ncs/v2.5.0/zephyr/cmake/modules/extensions.cmake:3885 (message): failed to preprocess devicetree files (error code 1): C:/ncs/v2.5.0/zephyr/boards/arm/nrf5340dk_nrf5340/nrf5340dk_nrf5340_cpuapp.dts;.overlay Call Stack (most recent call first): C:/ncs/v2.5.0/zephyr/cmake/modules/dts.cmake:226 (zephyr_dt_preprocess) C:/ncs/v2.5.0/zephyr/cmake/modules/zephyr_default.cmake:129 (include) C:/ncs/v2.5.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include) C:/ncs/v2.5.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:92 (include_boilerplate) CMakeLists.txt:27 (find_package) -- Configuring incomplete, errors occurred!
Could you help me with the below questions:
1. For the IPC communication between app-core and net-core on nRF5340, which IPC backend (RPMSG and ICMSG) should be used or what are the differences?
I see in the prj.conf, the configurations are different:
For the ICMSG:
CONFIG_IPC_SERVICE=y CONFIG_IPC_SERVICE_LOG_LEVEL_INF=y CONFIG_IPC_SERVICE_BACKEND_ICMSG=y CONFIG_MBOX=y
For the RPMSG:
CONFIG_IPC_SERVICE=y CONFIG_OPENAMP=y CONFIG_OPENAMP_SLAVE=n // or CONFIG_OPENAMP_MASTER=n CONFIG_IPC_SERVICE_LOG_LEVEL_INF=y CONFIG_IPC_SERVICE_BACKEND_RPMSG=y CONFIG_MBOX=y
Why there is no OPENAMP configuration for ICMSG?
2. From the above error info, seems the .overlay can not be found. But there is an overlay file in the sample: \ncs\v2.5.0\nrf\samples\ipc\ipc_service\icmsg.overlay.
Could you help see the error reason and give some hints for the building?
Thank you very much.
Best regards,
Yanpeng Wu