| eRPC API Reference Rev. 1.8.1 NXP Semiconductors

- Main Page
- API Reference
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
erpc::RPMsgTransport Class Reference
Transport Layers » RPMsg-Lite

Transport that uses RPMsg zero copy API for interprocessor messaging. More...

`#include <erpc_rpmsg_lite_transport.h>`

Inheritance diagram for erpc::RPMsgTransport:
[legend]
Collaboration diagram for erpc::RPMsgTransport:
[legend]

## Public Member Functions
| RPMsgTransport (void)
| Constructor. More...
virtual | ~RPMsgTransport (void)
| Codec destructor.
virtual erpc_status_t | init (uint32_t src_addr, uint32_t dst_addr, void *base_address, uint32_t length, uint32_t rpmsg_link_id)
| Initialization of RPMsgTransport layer - as RPMsg master. More...
virtual erpc_status_t | init (uint32_t src_addr, uint32_t dst_addr, void *base_address, uint32_t rpmsg_link_id, void(*ready_cb)(void), char *nameservice_name)
| Initialization of RPMsgTransport layer - as RPMsg remote. More...
virtual erpc_status_t | receive (MessageBuffer *message)
| Set message to first received message. More...
virtual erpc_status_t | send (MessageBuffer *message)
| Function to send prepared message. More...
virtual bool | hasMessage (void)
| Function to check if is message in receive queue and wait for processing. More...
Public Member Functions inherited from erpc::RPMsgBaseTransport
struct rpmsg_lite_instance * | get_rpmsg_lite_instance (void)
| This function returns pointer to instance of RPMSG lite. More...
Public Member Functions inherited from erpc::Transport
| Transport (void)
| Constructor.
virtual | ~Transport (void)
| Transport destructor.
virtual void | setCrc16 (Crc16 *crcImpl)
| This functions sets the CRC-16 implementation. More...

## Static Protected Member Functions
static int32_t | rpmsg_read_cb (void *payload, uint32_t payload_len, uint32_t src, void *priv)
| RPMSG callback for receiving data. More...

## Protected Attributes
StaticQueue< MessageBuffer, ERPC_DEFAULT_BUFFERS_COUNT > | m_messageQueue
uint32_t | m_dst_addr
struct rpmsg_lite_ept_static_context | m_rpmsg_ept_context
struct rpmsg_lite_endpoint * | m_rpmsg_ept

## Static Protected Attributes
static struct rpmsg_lite_instance | s_rpmsg_ctxt
Static Protected Attributes inherited from erpc::RPMsgBaseTransport
static struct rpmsg_lite_instance * | s_rpmsg
static uint8_t | s_initialized

## Detailed Description

Transport that uses RPMsg zero copy API for interprocessor messaging.

## Constructor & Destructor Documentation

RPMsgTransport::RPMsgTransport | ( | void |  | ) |

Constructor.

This function initializes object attributes.

## Member Function Documentation

erpc_status_t RPMsgTransport::init | ( | uint32_t | src_addr,
|  | uint32_t | dst_addr,
|  | void * | base_address,
|  | uint32_t | length,
|  | uint32_t | rpmsg_link_id
| ) |  |
| virtual

Initialization of RPMsgTransport layer - as RPMsg master.

Call init() for RPMsg. Create buffers for receiving messages.

Parameters

  [in] | src_addr | Source address.
  [in] | dst_addr | Destination address.
  [in] | base_address | RPMsg base address in the shared memory.
  [in] | length | RPMsg shared memory region length.
  [in] | rpmsg_link_id | Selection between what cores the communication will occur.

Return values

  kErpcStatus_Success | When rpmsg init function was executed successfully.
  kErpcStatus_InitFailed | When rpmsg init function wasn't executed successfully.

erpc_status_t RPMsgTransport::init | ( | uint32_t | src_addr,
|  | uint32_t | dst_addr,
|  | void * | base_address,
|  | uint32_t | rpmsg_link_id,
|  | void(*)(void) | ready_cb,
|  | char * | nameservice_name
| ) |  |
| virtual

Initialization of RPMsgTransport layer - as RPMsg remote.

Call init() for RPMsg. Create buffers for receiving messages.

Parameters

  [in] | src_addr | Source address.
  [in] | dst_addr | Destination address.
  [in] | base_address | RPMsg base address in the shared memory.
  [in] | rpmsg_link_id | Selection between what cores the communication will occur.
  [in] | ready_cb | Callback called after RPMsg init is done and the core is ready.
  [in] | nameservice_name | Name of the nameservice channel to be announced to the other core.

Return values

  kErpcStatus_Success | When rpmsg init function was executed successfully.
  kErpcStatus_InitFailed | When rpmsg init function wasn't executed successfully.

erpc_status_t RPMsgTransport::receive | ( | MessageBuffer * | message | ) |
| virtual

Set message to first received message.

In loop while no message come.

Parameters

  [in] | message | Message buffer, to which will be stored incoming message.

Returns
  kErpcStatus_Success

Implements erpc::Transport.

erpc_status_t RPMsgTransport::send | ( | MessageBuffer * | message | ) |
| virtual

Function to send prepared message.

Parameters

  [in] | message | Pass message buffer to send.

Return values

  kErpcStatus_SendFailed | Failed to send message buffer.
  kErpcStatus_Success | Successfully sent all data.

Implements erpc::Transport.

virtual bool erpc::RPMsgTransport::hasMessage | ( | void |  | ) |
| inline virtual

Function to check if is message in receive queue and wait for processing.

This function should be called before function receive() to avoid waiting for new message.

Returns
  True if exist received message, else false.

Reimplemented from erpc::Transport.

int32_t RPMsgTransport::rpmsg_read_cb | ( | void * | payload,
|  | uint32_t | payload_len,
|  | uint32_t | src,
|  | void * | priv
| ) |  |
| static protected

RPMSG callback for receiving data.

This function is used as RPMSG receive callback in which is copied message to free message buffer.

Parameters

  payload | RPMSG data to receive.
  payload_len | Length of data.
  src | Source endpoint address.
  priv | Callback data.

Returns

## Member Data Documentation

StaticQueue<MessageBuffer, ERPC_DEFAULT_BUFFERS_COUNT> erpc::RPMsgTransport::m_messageQueue
| protected

Received messages. Queue of messages with buffers filled in rpmsg callback.

uint32_t erpc::RPMsgTransport::m_dst_addr
| protected

Destination address used by rpmsg.

struct rpmsg_lite_ept_static_context erpc::RPMsgTransport::m_rpmsg_ept_context
| protected

RPMsg Lite Endpoint static context.

struct rpmsg_lite_endpoint* erpc::RPMsgTransport::m_rpmsg_ept
| protected

Pointer to RPMsg Lite Endpoint structure.

struct rpmsg_lite_instance erpc::RPMsgTransport::s_rpmsg_ctxt
| static protected

Context for RPMsg Lite stack instance.

The documentation for this class was generated from the following files:

- erpc_rpmsg_lite_transport.h
- erpc_rpmsg_lite_transport.cpp