nRF5340 dual CPU development without NCS

Hello!

I've been investigating NCS for several days and come to the conclusion that we don't definitely have to use it for our developments. By the way, it'd be way too difficult to integrate the whole NCS into our existing build system, as NCS (apart from nRF SDK) is a build system too, which is very incompatible with ours.

I've successfully found the NRF MDK package with linker scripts for both the net and app processors. This implies me that it's possible to develop bare metal (OS-less) programs for either processor core in nRF5340. In the first phase we don't plan to develop BLE applications, so in practice perhaps we don't need to use e.g. the net core at all.

Later, when the net core will be in our focus, with the help of IPC, MUTEX etc. peripherals, we can even develop our own IPC solutions to let the two cores communicate with each other. Or maybe we can make use of OpenAMP and other related libs from NCS, unless they refuse to compile and work out of Zephyr.

A research on a FreeRTOS for the application core is also in our interest.

These all above seem to be pretty logical and "doable" to me, but please correct my misconceptions, if any.

The tricky part comes in by the need of BLE. SoftDevice BLE controller on net processor, what BLE host to use on app processor? On nRF52 I can't recall any BLE host, I just called API functions. Can this be the same on nRF5340? But to call the API functions (nrfxlib, sdc.h etc) is some kind of IPC needed, isn't it? Is the SoftDevice tied to OpenAMP / nRF-RPC? If so, can these libs be used out of Zephyr? Furthermore, SoftDevice is just a precompiled lib (.a), it definitely needs az execution environment (a simple mainloop or anyhing much more complicated) to run on the net processor and to be able to process the requests from the app processor, or to signal events to app processor etc.

So SoftDevice is considered to be RTOS-agnostic, but may need some "wrapper" to be able to run correctly, as flashing a simple .a to the net processor flash won't give a good solution to this problem ;)

Am I on the wrong path? Any thoughts on these all above?

Thanks, regards,

Related