| 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 | Protected Attributes | List of all members
erpc::RPMsgRTOSTransport Class Reference
Transport Layers » RPMsg-Lite RTOS

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

`#include <erpc_rpmsg_lite_rtos_transport.h>`

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

## Public Member Functions
| RPMsgRTOSTransport (void)
| Constructor. More...
virtual | ~RPMsgRTOSTransport (void)
| RPMsgRTOSTransport 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)
| This function call RPMsg rtos init function - 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)
| This function call RPMsg rtos init function - as RPMsg remote. More...
virtual erpc_status_t | receive (MessageBuffer *message)
| Store incoming message to message buffer. 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...

## Protected Attributes
struct remote_device * | m_rdev
struct rpmsg_channel * | m_app_rp_chnl
uint32_t | m_dst_addr
rpmsg_queue_handle | m_rpmsg_queue
struct rpmsg_lite_endpoint * | m_rpmsg_ept

## Additional Inherited Members
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 RTOS API for interprocessor messaging.

## Constructor & Destructor Documentation

RPMsgRTOSTransport::RPMsgRTOSTransport | ( | void |  | ) |

Constructor.

This function initializes object attributes.

## Member Function Documentation

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

This function call RPMsg rtos init function - as RPMsg master.

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 RPMsgRTOSTransport::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

This function call RPMsg rtos init function - as RPMsg remote.

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 RPMsgRTOSTransport::receive | ( | MessageBuffer * | message | ) |
| virtual

Store incoming message to message buffer.

In loop while no message come.

Parameters

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

Return values

  kErpcStatus_ReceiveFailed | Failed to receive message buffer.
  kErpcStatus_Success | Successfully received all data.

Implements erpc::Transport.

erpc_status_t RPMsgRTOSTransport::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::RPMsgRTOSTransport::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.

## Member Data Documentation

struct remote_device* erpc::RPMsgRTOSTransport::m_rdev
| protected

Device which represent the second core.

struct rpmsg_channel* erpc::RPMsgRTOSTransport::m_app_rp_chnl
| protected

Represent connection between two device (two cores).

uint32_t erpc::RPMsgRTOSTransport::m_dst_addr
| protected

Destination address used by rpmsg.

rpmsg_queue_handle erpc::RPMsgRTOSTransport::m_rpmsg_queue
| protected

Handle of RPMsg queue.

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

Pointer to RPMsg Lite Endpoint structure.

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

- erpc_rpmsg_lite_rtos_transport.h
- erpc_rpmsg_lite_rtos_transport.cpp