Multiple IPC channels

Hello,

Referencing this link here, I am looking for any updates to using IPC for some custom inter-core communication WHILE ALSO running Bluetooth on an nrf5340.

Long story short, I have a project with custom code for both the cpu_app and cpu_net cores of an nrf5340, and I am looking for a way to communicate between both. Right now, the cpu_net code is running the hci_rpmsg sample so that I can use BLE from the application core. I have not found a clean way to modify this to provide some hooks for my custom use case, nor do I want to try.

If there are any updates on being able to use a custom IPC channel and BLE at the same time, or if IPC is not the right abstraction layer to go through, please let me know! The link I provided mention using the BTS but I am not sure how that is relevant or possible.

I know that there are some complex structures being put to use here and I have tried to spend some time learning it but perhaps there is an easy-to-follow overview of inter-process communication that shows us how IPC, RMPSG, ICMSG, MBOX, shared SRAM and all other abstraction layers play together.

Thank you much.

Parents Reply
  • Thank you for this, this is helpful, as is the nrf53_sync_rtc sample. However I am trying out some things from these and I still run into the issue of BLE competing with the IPC calls.

    I added this code to my cpu_app code (from the nrf53_sync_rtc sample) to try and send a message to the network core. I get the following message:

    nrf_ipc_task_t task = offsetof(NRF_IPC_Type, TASKS_SEND[2]);
    uint32_t shared_cell = 0x20070000;
    
    *(volatile uint32_t *)shared_cell = 0xDEADBEEF;
    nrf_ipc_task_trigger(NRF_IPC, task);

Children
Related