RPMsg
RPMsg (Remote Processor Messaging) is a protocol enabling inter-core communication in heterogeneous multicore systems.
Implementations
Protocol RPMsg is present in the Linux kernel,[1][2] has been demonstrated in Zephyr (operating system),[3][4] FreeRTOS,[5] Cadence XOS,[6] ThreadX,[7] QNX[8] and is also available as a stand-alone component for microcontroller-based systems.[9][10]
Most of the RPMsg implementations are developed as open-source.[2][9][10][11]
History
The first implementation of RPMsg was developed for the Linux kernel by Ohad Ben-Cohen.[12][13][14][15] It was first used in Android Ice Cream Sandwich, on the Galaxy Nexus phone, to enable offloading of cpu-intensive multimedia tasks from the ARM Cortex-A9 cores, running the Linux Kernel, to the ARM Cortex-M3 cores, running the TI-RTOS OS. Several semiconductor companies have since added support for RPMsg, including Texas Instruments,[16] STMicroelectronics,[17] Xilinx,[11][18] NXP Semiconductors,[10] Renesas Electronics[19] and Nordic Semiconductor.[20]
References
- "Remote Processor Messaging (rpmsg) Framework — The Linux Kernel documentation". www.kernel.org. Retrieved 2022-02-25.
- "Linux/Documentation/staging/rpmsg.rst - Linux Cross Reference - Bootlin". lxr.bootlin.com. Retrieved 2019-09-04.
- Project, Zephyr (2019-02-20). "The Zephyr Project Demonstrates IoT Innovation at Embedded World". Zephyr Project. Retrieved 2022-03-05.
- RPMsg Component, NXP Micro, 2022-02-16, retrieved 2022-03-05
- RPMsg Component, NXP Micro, 2022-02-16, retrieved 2022-03-05
- RPMsg Component, NXP Micro, 2022-02-16, retrieved 2022-03-05
- RPMsg Component, NXP Micro, 2022-02-16, retrieved 2022-03-05
- RPMsg Component, NXP Micro, 2022-02-16, retrieved 2022-03-05
- "RPMsg-Lite User's Guide: RPMsg Component". nxpmicro.github.io. Retrieved 2016-09-27.
- "NXPmicro/rpmsg-lite". GitHub. Retrieved 2016-09-27.
- "Xilinx Wiki - OpenAMP". www.wiki.xilinx.com. Retrieved 2016-09-27.
- "Introducing a generic AMP/IPC framework [LWN.net]". lwn.net. Retrieved 2022-02-24.
- "LKML: Ohad Ben-Cohen: [GIT PULL] adding rpmsg and remoteproc to 3.3". lkml.org. Retrieved 2022-02-24.
- "LKML: Ohad Ben-Cohen: [PATCH 0/7] Introducing a generic AMP framework". lkml.org. Retrieved 2022-02-24.
- "A Generic AMP/IPC Framework For Linux". www.phoronix.com. Retrieved 2022-02-24.
- "3.6.2.3. RPMsg Quick Start Guide — Processor SDK Linux for AM65X Documentation". software-dl.ti.com. Retrieved 2022-02-25.
- "Linux RPMsg framework overview - stm32mpu". wiki.st.com. Retrieved 2022-02-25.
- Aboelhassan, Mustafa O. E.; Bartik, Ondrej; Novak, Marek (November 2017). "Embedded multi-core systems for mixed-critical applications with RPMsg protocol based on xilinx ZYNQ-7000". 2017 7th IEEE International Conference on Control System, Computing and Engineering (ICCSCE): 162–167. doi:10.1109/ICCSCE.2017.8284398.
- "Renesas RPMsg".
- "nRF5340: Multiprotocol RPMsg — nRF Connect SDK 1.9.99 documentation". developer.nordicsemi.com. Retrieved 2022-03-05.