Transport that uses RPMsg zero copy RTOS API for interprocessor messaging.
More...
#include <erpc_rpmsg_lite_rtos_transport.hpp>
Transport that uses RPMsg zero copy RTOS API for interprocessor messaging.
RPMsgRTOSTransport::RPMsgRTOSTransport |
( |
void |
| ) |
|
Constructor.
This function initializes object attributes.
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. |
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.
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 RPMsgRTOSTransport::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 RPMsgRTOSTransport::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 * RPMsgRTOSTransport::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.
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 |
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: