eRPC API Reference  Rev. 1.12.0
NXP Semiconductors
Transport Setup

Transport layer initialization. More...

Overview

Transport layer initialization.

+ Collaboration diagram for Transport Setup:

Files

file  erpc_transport_setup.h
 

Typedefs

typedef struct ErpcTransport * erpc_transport_t
 Opaque transport object type.
 
typedef void(* rpmsg_ready_cb) (void)
 Ready callback object type for RPMsg-Lite transport.
 

DSPI transport setup

erpc_transport_t erpc_transport_dspi_master_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create a DSPI master transport. More...
 
void erpc_transport_dspi_master_deinit (erpc_transport_t transport)
 Deinitialize DSPI master transport. More...
 
erpc_transport_t erpc_transport_dspi_slave_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create a DSPI slave transport. More...
 
void erpc_transport_dspi_slave_deinit (erpc_transport_t transport)
 Deinitialize DSPI slave transport. More...
 

I2C transport setup

erpc_transport_t erpc_transport_i2c_slave_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create an I2C slave transport. More...
 
void erpc_transport_i2c_slave_deinit (erpc_transport_t transport)
 Deinitialize I2C slave transport. More...
 

LPI2C transport setup

erpc_transport_t erpc_transport_lpi2c_slave_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create an LPI2C slave transport. More...
 
void erpc_transport_lpi2c_slave_deinit (erpc_transport_t transport)
 Deinitialize LPI2C slave transport. More...
 

LPSPI transport setup

erpc_transport_t erpc_transport_lpspi_slave_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create a LPSPI slave transport. More...
 
void erpc_transport_lpspi_slave_deinit (erpc_transport_t transport)
 Deinitialize LPSPI slave transport. More...
 

MU transport setup

erpc_transport_t erpc_transport_mu_init (void *baseAddr)
 Create an MU transport. More...
 
void erpc_transport_mu_deinit (erpc_transport_t transport)
 Deinitialize MU transport. More...
 

Linux RPMSG endpoint setup

erpc_transport_t erpc_transport_rpmsg_linux_init (int16_t local_addr, int8_t type, int16_t remote_addr)
 Create an Linux RPMSG endpoint transport. More...
 
void erpc_transport_rpmsg_linux_deinit (erpc_transport_t transport)
 Deinitialize an Linux RPMSG endpoint transport. More...
 

RPMsg-Lite transport setup

erpc_transport_t erpc_transport_rpmsg_lite_master_init (uint32_t src_addr, uint32_t dst_addr, uint32_t rpmsg_link_id)
 Create an RPMsg-Lite transport. More...
 
void erpc_transport_rpmsg_lite_master_deinit (erpc_transport_t transport)
 Deinitialize RPMsg-Lite transport. More...
 
erpc_transport_t erpc_transport_rpmsg_lite_remote_init (uint32_t src_addr, uint32_t dst_addr, void *start_address, uint32_t rpmsg_link_id, rpmsg_ready_cb ready, char *nameservice_name)
 Create an RPMsg-Lite transport. More...
 
void erpc_transport_rpmsg_lite_remote_deinit (erpc_transport_t transport)
 Deinitialize RPMsg-Lite transport. More...
 
erpc_transport_t erpc_transport_rpmsg_lite_rtos_master_init (uint32_t src_addr, uint32_t dst_addr, uint32_t rpmsg_link_id)
 Create an RPMsg-Lite RTOS transport. More...
 
void erpc_transport_rpmsg_lite_rtos_master_deinit (erpc_transport_t transport)
 Deinitialize RPMsg-Lite RTOS transport. More...
 
erpc_transport_t erpc_transport_rpmsg_lite_rtos_remote_init (uint32_t src_addr, uint32_t dst_addr, void *start_address, uint32_t rpmsg_link_id, rpmsg_ready_cb ready, char *nameservice_name)
 Create an RPMsg-Lite RTOS transport. More...
 
void erpc_transport_rpmsg_lite_rtos_remote_deinit (erpc_transport_t transport)
 Deinitialize RPMsg-Lite RTOS transport. More...
 
erpc_transport_t erpc_transport_rpmsg_lite_tty_rtos_remote_init (uint32_t src_addr, uint32_t dst_addr, void *start_address, uint32_t rpmsg_link_id, rpmsg_ready_cb ready, char *nameservice_name)
 Create an RPMsg-Lite TTY transport. More...
 
void erpc_transport_rpmsg_lite_tty_rtos_remote_deinit (erpc_transport_t transport)
 Deinitialize an RPMSG lite tty rtos transport. More...
 

Host PC serial port transport setup

erpc_transport_t erpc_transport_serial_init (const char *portName, long baudRate)
 Create a host PC serial port transport. More...
 
void erpc_transport_serial_deinit (erpc_transport_t transport)
 Deinitialize a host PC serial port transport. More...
 

SPI transport setup

erpc_transport_t erpc_transport_spi_master_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create a SPI master transport. More...
 
void erpc_transport_spi_master_deinit (erpc_transport_t transport)
 Deinitialize SPI master transport. More...
 
erpc_transport_t erpc_transport_spi_slave_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
 Create a SPI slave transport. More...
 
void erpc_transport_spi_slave_deinit (erpc_transport_t transport)
 Deinitialize SPI slave transport. More...
 

SPIdev transport setup

erpc_transport_t erpc_transport_spidev_master_init (const char *spidev, uint32_t speed_Hz)
 Create a SPIdev transport. More...
 
void erpc_transport_spidev_master_deinit (erpc_transport_t transport)
 Deinitialize SPIdev transport. More...
 

TCP transport setup

erpc_transport_t erpc_transport_tcp_init (const char *host, uint16_t port, bool isServer)
 Create and open TCP transport. More...
 
void erpc_transport_tcp_close (erpc_transport_t transport)
 Close TCP connection. More...
 
void erpc_transport_tcp_deinit (erpc_transport_t transport)
 Deinitialize TCP transport. More...
 

CMSIS UART transport setup

erpc_transport_t erpc_transport_cmsis_uart_init (void *uartDrv)
 Create a CMSIS UART transport. More...
 
void erpc_transport_cmsis_uart_deinit (erpc_transport_t transport)
 Deinitialize CMSIS UART transport. More...
 
erpc_transport_t erpc_transport_zephyr_uart_init (void *dev)
 Create a Zephyr UART transport. More...
 

USB CDC transport setup

erpc_transport_t erpc_transport_usb_cdc_init (void *serialHandle, void *serialConfig, void *usbCdcConfig, uint8_t *usbRingBuffer, uint32_t usbRingBufferLength)
 Create an USB CDC transport. More...
 
void erpc_transport_usb_cdc_deinit (erpc_transport_t transport)
 Deinitialize USB CDC transport. More...
 

Function Documentation

erpc_transport_t erpc_transport_dspi_master_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create a DSPI master transport.

Create DSPI master transport instance, to be used at master core.

Parameters
[in]baseAddrBase address of DSPI peripheral used in this transport layer.
[in]baudRateDSPI baud rate.
[in]srcClock_HzDSPI source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_dspi_master_deinit ( erpc_transport_t  transport)

Deinitialize DSPI master transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_dspi_slave_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create a DSPI slave transport.

Create DSPI slave transport instance, to be used at slave core.

Parameters
[in]baseAddrBase address of DSPI peripheral used in this transport layer.
[in]baudRateDSPI baud rate.
[in]srcClock_HzDSPI source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_dspi_slave_deinit ( erpc_transport_t  transport)

Deinitialize DSPI slave transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_i2c_slave_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create an I2C slave transport.

Create I2C slave transport instance, to be used at slave core.

Parameters
[in]baseAddrBase address of I2C peripheral used in this transport layer.
[in]baudRateSPI baud rate.
[in]srcClock_HzI2C source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_i2c_slave_deinit ( erpc_transport_t  transport)

Deinitialize I2C slave transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_lpi2c_slave_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create an LPI2C slave transport.

Create LPI2C slave transport instance, to be used at slave core.

Parameters
[in]baseAddrBase address of LPI2C peripheral used in this transport layer.
[in]baudRateSPI baud rate.
[in]srcClock_HzLPI2C source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_lpi2c_slave_deinit ( erpc_transport_t  transport)

Deinitialize LPI2C slave transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_lpspi_slave_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create a LPSPI slave transport.

Create LPSPI slave transport instance, to be used at slave core.

Parameters
[in]baseAddrBase address of LPSPI peripheral used in this transport layer.
[in]baudRateLPSPI baud rate.
[in]srcClock_HzLPSPI source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_lpspi_slave_deinit ( erpc_transport_t  transport)

Deinitialize LPSPI slave transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_mu_init ( void *  baseAddr)

Create an MU transport.

Create Messaging Unit (MU) transport instance, to be used on both the server and the client side. Base address of the MU peripheral needs to be passed.

Parameters
[in]baseAddrBase address of MU peripheral.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_mu_deinit ( erpc_transport_t  transport)

Deinitialize MU transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_rpmsg_linux_init ( int16_t  local_addr,
int8_t  type,
int16_t  remote_addr 
)

Create an Linux RPMSG endpoint transport.

This function is using RPMSG endpoints based on this implementation: github.com/nxp-mcuxpresso/rpmsg-sysfs/tree/0aa1817545a765c200b1b2f9b6680a420dcf9171 .

When local/remote address is set to '-1', then default addresses will be used. When type is set to '0', then Datagram model will be used, else Stream.

Parameters
[in]local_addrLocal endpoint address.
[in]typeDatagram (0) or Stream (1).
[in]remote_addrRemote endpoint address.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_rpmsg_linux_deinit ( erpc_transport_t  transport)

Deinitialize an Linux RPMSG endpoint transport.

This function deinitialize the Linux RPMSG endpoint transport.

Parameters
[in]transportTransport which was returned from init function.
erpc_transport_t erpc_transport_rpmsg_lite_master_init ( uint32_t  src_addr,
uint32_t  dst_addr,
uint32_t  rpmsg_link_id 
)

Create an RPMsg-Lite transport.

Create RPMsg-Lite baremetal transport instance, to be used at master core.

Parameters
[in]src_addrAddress of local RPMsg endpoint used for communication.
[in]dst_addrAddress of remote RPMsg endpoint used for communication.
[in]rpmsg_link_idLink ID used to define the rpmsg-lite instance, see rpmsg_platform.h
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_rpmsg_lite_master_deinit ( erpc_transport_t  transport)

Deinitialize RPMsg-Lite transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_rpmsg_lite_remote_init ( uint32_t  src_addr,
uint32_t  dst_addr,
void *  start_address,
uint32_t  rpmsg_link_id,
rpmsg_ready_cb  ready,
char *  nameservice_name 
)

Create an RPMsg-Lite transport.

Create RPMsg-Lite baremetal transport instance, to be used at slave/remote core.

Parameters
[in]src_addrAddress of local RPMsg endpoint used for communication.
[in]dst_addrAddress of remote RPMsg endpoint used for communication.
[in]start_addressShared memory base address used for this instance of RPMsg-Lite.
[in]rpmsg_link_idLink ID used to define the rpmsg-lite instance, see rpmsg_platform.h.
[in]readyCallback function, which gets called, when RPMsg is initialized and master core can be notified.
[in]nameservice_nameName of the nameservice channel to be announced to the other core.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_rpmsg_lite_remote_deinit ( erpc_transport_t  transport)

Deinitialize RPMsg-Lite transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_rpmsg_lite_rtos_master_init ( uint32_t  src_addr,
uint32_t  dst_addr,
uint32_t  rpmsg_link_id 
)

Create an RPMsg-Lite RTOS transport.

Create RPMsg-Lite RTOS transport instance, to be used at master core.

Parameters
[in]src_addrAddress of local RPMsg endpoint used for communication.
[in]dst_addrAddress of remote RPMsg endpoint used for communication.
[in]rpmsg_link_idLink ID used to define the rpmsg-lite instance, see rpmsg_platform.h
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_rpmsg_lite_rtos_master_deinit ( erpc_transport_t  transport)

Deinitialize RPMsg-Lite RTOS transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_rpmsg_lite_rtos_remote_init ( uint32_t  src_addr,
uint32_t  dst_addr,
void *  start_address,
uint32_t  rpmsg_link_id,
rpmsg_ready_cb  ready,
char *  nameservice_name 
)

Create an RPMsg-Lite RTOS transport.

Create RPMsg-Lite RTOS transport instance, to be used at slave/remote core.

Parameters
[in]src_addrAddress of local RPMsg endpoint used for communication.
[in]dst_addrAddress of remote RPMsg endpoint used for communication.
[in]start_addressShared memory base address used for this instance of RPMsg-Lite.
[in]rpmsg_link_idLink ID used to define the rpmsg-lite instance, see rpmsg_platform.h.
[in]readyCallback function, which gets called, when RPMsg is initialized and master core can be notified.
[in]nameservice_nameName of the nameservice channel to be announced to the other core.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_rpmsg_lite_rtos_remote_deinit ( erpc_transport_t  transport)

Deinitialize RPMsg-Lite RTOS transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_rpmsg_lite_tty_rtos_remote_init ( uint32_t  src_addr,
uint32_t  dst_addr,
void *  start_address,
uint32_t  rpmsg_link_id,
rpmsg_ready_cb  ready,
char *  nameservice_name 
)

Create an RPMsg-Lite TTY transport.

Create RPMsg-Lite TTY transport instance, to be used at slave/remote core. This function is mainly used with Linux running on the master core.

Parameters
[in]src_addrAddress of local RPMsg endpoint used for communication.
[in]dst_addrAddress of remote RPMsg endpoint used for communication.
[in]start_addressShared memory base address used for this instance of RPMsg-Lite.
[in]rpmsg_link_idLink ID used to define the rpmsg-lite instance, see rpmsg_platform.h.
[in]readyCallback function, which gets called, when RPMsg is initialized and master core can be notified.
[in]nameservice_nameName of the nameservice channel to be announced to the other core.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_rpmsg_lite_tty_rtos_remote_deinit ( erpc_transport_t  transport)

Deinitialize an RPMSG lite tty rtos transport.

This function deinitialize the RPMSG lite tty rtos transport.

Parameters
[in]transportTransport which was returned from init function.
erpc_transport_t erpc_transport_serial_init ( const char *  portName,
long  baudRate 
)

Create a host PC serial port transport.

Create a host PC serial port transport instance.

Parameters
[in]portNamePort name.
[in]baudRateBaud rate.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_serial_deinit ( erpc_transport_t  transport)

Deinitialize a host PC serial port transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_spi_master_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create a SPI master transport.

Create SPI master transport instance, to be used at master core.

Parameters
[in]baseAddrBase address of SPI peripheral used in this transport layer.
[in]baudRateSPI baud rate.
[in]srcClock_HzSPI source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_spi_master_deinit ( erpc_transport_t  transport)

Deinitialize SPI master transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_spi_slave_init ( void *  baseAddr,
uint32_t  baudRate,
uint32_t  srcClock_Hz 
)

Create a SPI slave transport.

Create SPI slave transport instance, to be used at slave core.

Parameters
[in]baseAddrBase address of SPI peripheral used in this transport layer.
[in]baudRateSPI baud rate.
[in]srcClock_HzSPI source clock in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_spi_slave_deinit ( erpc_transport_t  transport)

Deinitialize SPI slave transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_spidev_master_init ( const char *  spidev,
uint32_t  speed_Hz 
)

Create a SPIdev transport.

Create SPIdev master transport instance, to be used at master core.

Parameters
[in]spidevSPI device name.
[in]speed_HzSPI clock speed in Hz.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_spidev_master_deinit ( erpc_transport_t  transport)

Deinitialize SPIdev transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_tcp_init ( const char *  host,
uint16_t  port,
bool  isServer 
)

Create and open TCP transport.

For server, create a TCP listen socket and wait for connections For client, connect to server

Parameters
[in]hosthostname/IP address to listen on or server to connect to
[in]portport to listen on or server to connect to
[in]isServertrue if we are a server
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_tcp_close ( erpc_transport_t  transport)

Close TCP connection.

For server, stop listening and close all sockets. Note that the server mode uses and accept() which is a not-recommended blocking method so we can't exit until a connection attempts is made. This is a deadlock but assuming that TCP code is supposed to be for test, I assume it's acceptable. Otherwise a non-blocking socket or select() shoudl be used For client, close server connection

Parameters
[in]transportTransport which was returned from init function.
void erpc_transport_tcp_deinit ( erpc_transport_t  transport)

Deinitialize TCP transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_cmsis_uart_init ( void *  uartDrv)

Create a CMSIS UART transport.

Create a CMSIS UART transport instance, to be used on both the server and the client side.

Parameters
[in]uartDrvCMSIS USART driver structure address (Driver Control Block).
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_cmsis_uart_deinit ( erpc_transport_t  transport)

Deinitialize CMSIS UART transport.

Parameters
[in]transportTransport which was initialized with init function.
erpc_transport_t erpc_transport_zephyr_uart_init ( void *  dev)

Create a Zephyr UART transport.

Create a Zephyr UART transport instance, to be used on both the server and the client side.

Parameters
[in]devZephyr UART device address.
Returns
Return NULL or erpc_transport_t instance pointer.
erpc_transport_t erpc_transport_usb_cdc_init ( void *  serialHandle,
void *  serialConfig,
void *  usbCdcConfig,
uint8_t *  usbRingBuffer,
uint32_t  usbRingBufferLength 
)

Create an USB CDC transport.

Create an USB CDC transport instance.

Parameters
[in]serialHandlePointer to point to a memory space of size #SERIAL_MANAGER_HANDLE_SIZE allocated by the caller, see serial manager header file.
[in]serialConfigPointer to user-defined configuration structure allocated by the caller, see serial manager header file.
[in]usbCdcConfigPointer to serial port usb config structure allocated by the caller, see serial manager header file.
[in]usbRingBufferPointer to point serial manager ring buffer allocated by the caller, see serial manager header file.
[in]usbRingBufferLengthSerial manager ring buffer size.
Returns
Return NULL or erpc_transport_t instance pointer.
void erpc_transport_usb_cdc_deinit ( erpc_transport_t  transport)

Deinitialize USB CDC transport.

Parameters
[in]transportTransport which was initialized with init function.