nRF5340, evaluate options for fast/reliable data transfer method between cores

I have a project with real-time requirements for a medical device (see my other post about fast BLE/ESB transfer for the exact details), with the main one being that one nRF5340 ("receiver") needs to receive 10-byte packets every 1-2ms from another nRF5340 ("sender") via some wireless protocol (BLE/ESB). I'm currently interested in programming the "receiver" device to use its network core solely for the wireless comms and its application core to take said data and output it via UART. I would imagine the communication/data-transfer between the network core and application core would need to be at least as fast as my "10-bytes-per-ms requirement".

I have read several documentation links, forum posts, etc. The following options seem to be what's available (FYI I'm quite new to learning/working-with these libraries and protocols):

  • RPC - I got the Entropy sample code working, but before trying to adapt it for my project, I wanted to clarify - is the data being sent wirelessly, even in the dual-core device setup? I take it that's why it's considered "remote" but I'm not too sure.
  • IPC
  • OpenAMP - Seems to be based off shared memory (see here)
  • Bluetooth HCI - Seems quite popular but, if it's Bluetooth-based, I'm skeptical about its feasibility. So far, my experiments with getting fast BLE transfer show that BLE isn't fast enough for my project, but ESB most likely will work.
  • Shared SRAM - I would imagine this is the "fastest" option as it's "wired", but I only found some forum posts with unofficial solutions like here. I was wondering if there was official sample code for this, especially ones that can handle race conditions via semaphores/mutexes and the like.

All in all, I'm hoping to get some advice/feedback on what options are out there, when to use this and that, and which ones I should put my efforts into first. Thanks in advance!

------------------------------------------------------------------------------------------

Development Setup:

  • Board: nRF5340-DK
  • Development Environment: VS Code
  • SDK: nRF Connect 2.5.0
  • OS: Windows 10
Parents Reply Children
No Data
Related