Transport that uses RPMsg zero copy API for interprocessor messaging.
More...
#include <erpc_rpmsg_lite_transport.hpp>
|
static int32_t | rpmsg_read_cb (void *payload, uint32_t payload_len, uint32_t src, void *priv) |
| RPMSG callback for receiving data. More...
|
|
Transport that uses RPMsg zero copy API for interprocessor messaging.
RPMsgTransport::RPMsgTransport |
( |
void |
| ) |
|
Constructor.
This function initializes object attributes.
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. |
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.
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.
bool RPMsgTransport::hasMessage |
( |
void |
| ) |
|
|
overridevirtual |
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.
void RPMsgTransport::setCrc16 |
( |
Crc16 * |
crcImpl | ) |
|
|
overridevirtual |
This functions sets the CRC-16 implementation.
- Parameters
-
[in] | crcImpl | Object containing crc-16 compute function. |
Reimplemented from erpc::Transport.
Crc16 * RPMsgTransport::getCrc16 |
( |
void |
| ) |
|
|
overridevirtual |
This functions gets the CRC-16 object.
- Returns
- Crc16* Pointer to CRC-16 object containing crc-16 compute function.
Reimplemented from erpc::Transport.
int32_t RPMsgTransport::rpmsg_read_cb |
( |
void * |
payload, |
|
|
uint32_t |
payload_len, |
|
|
uint32_t |
src, |
|
|
void * |
priv |
|
) |
| |
|
staticprotected |
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
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_endpoint* erpc::RPMsgTransport::m_rpmsg_ept |
|
protected |
Pointer to RPMsg Lite Endpoint structure.
The documentation for this class was generated from the following files: