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