Multicore SDK (MCSDK) components
The MCSDK consists of the following software components:
Embedded Remote Procedure Call (eRPC): This component is a combination of a library and code generator tool that implements a transparent function call interface to remote services (running on a different core).
Multicore Manager (MCMGR): This library maintains information about all cores and starts up secondary/auxiliary cores.
Remote Processor Messaging - Lite (RPMsg-Lite): Inter-Processor Communication library.
|
|
Embedded Remote Procedure Call (eRPC)
The Embedded Remote Procedure Call (eRPC) is the RPC system created by NXP. The RPC is a mechanism used to invoke a software routine on a remote system via a simple local function call.
When a remote function is called by the client, the function’s parameters and an identifier for the called routine are marshaled (or serialized) into a stream of bytes. This byte stream is transported to the server through a communications channel (IPC, TPC/IP, UART, and so on). The server unmarshaled the parameters, determines which function was invoked, and calls it. If the function returns a value, it is marshaled and sent back to the client.
|
|
RPC implementations typically use a combination of a tool (erpcgen) and IDL (interface definition language) file to generate source code to handle the details of marshaling a function’s parameters and building the data stream.
Main eRPC features:
Scalable from BareMetal to Linux OS - configurable memory and threading policies.
Focus on embedded systems - intrinsic support for C, modular, and lightweight implementation.
Abstracted transport interface - RPMsg is the primary transport for multicore, UART, or SPI-based solutions can be used for multichip.
The eRPC library is located in the <MCUXpressoSDK_install_dir>/middleware/multicore/erpc folder. For detailed information about the eRPC, see the documentation available in the <MCUXpressoSDK_install_dir>/middleware/multicore/erpc/docfolder.
Parent topic:Multicore SDK (MCSDK) components
Multicore Manager (MCMGR)
The Multicore Manager (MCMGR) software library provides a number of services for multicore systems.
The main MCMGR features:
Maintains information about all cores in system.
Secondary/auxiliary cores startup and shutdown.
Remote core monitoring and event handling.
The MCMGR library is located in the <MCUXpressoSDK_install_dir>/middleware/multicore/mcmgr folder. For detailed information about the MCMGR library, see the documentation available in the <MCUXpressoSDK_install_dir>/middleware/multicore/mcmgr/doc folder.
Parent topic:Multicore SDK (MCSDK) components
Remote Processor Messaging Lite (RPMsg-Lite)
RPMsg-Lite is a lightweight implementation of the RPMsg protocol. The RPMsg protocol defines a standardized binary interface used to communicate between multiple cores in a heterogeneous multicore system. Compared to the legacy OpenAMP implementation, RPMsg-Lite offers a code size reduction, API simplification, and improved modularity.
The main RPMsg protocol features:
Shared memory interprocessor communication.
Virtio-based messaging bus.
Application-defined messages sent between endpoints.
Portable to different environments/platforms.
Available in upstream Linux OS.
The RPMsg-Lite library is located in the <MCUXpressoSDK_install_dir>/middleware/multicore/rpmsg-lite folder. For detailed information about the RPMsg-Lite, see the RPMsg-Lite User’s Guide located in the <MCUXpressoSDK_install_dir>/middleware/multicore/rpmsg_lite/doc folder.
Parent topic:Multicore SDK (MCSDK) components