9 #ifndef _EMBEDDED_RPC__MU_TRANSPORT_H_ 10 #define _EMBEDDED_RPC__MU_TRANSPORT_H_ 12 #include "erpc_config_internal.h" 18 #include "fsl_device_registers.h" 30 #if ERPC_TRANSPORT_MU_USE_MCMGR 33 #define MU_REG_COUNT (MU_RR_COUNT - 1U) 34 #define MU_LAST_REG_IDX 2 36 #define MU_RX_Interrupt_Handler(x) MU_RX_Interrupt(x) 37 #define MU_RX_Interrupt(number) MU_Rx##number##FullFlagISR 38 #define MU_RxFullFlagISRCallback MU_RX_Interrupt_Handler(MU_LAST_REG_IDX) 40 #define MU_TX_Interrupt_Handler(x) MU_TX_Interrupt(x) 41 #define MU_TX_Interrupt(number) MU_Tx##number##EmptyFlagISR 42 #define MU_TxEmptyFlagISRCallback MU_TX_Interrupt_Handler(MU_LAST_REG_IDX) 45 #define MU_REG_COUNT (MU_RR_COUNT) 127 #if ERPC_TRANSPORT_MU_USE_MCMGR 136 static void mu_tx_empty_irq_callback(
void);
144 static void mu_rx_full_irq_callback(
void);
202 #endif // _EMBEDDED_RPC__MU_TRANSPORT_H_ Abstract interface for transport layer.
Definition: erpc_transport.h:35
int32_t erpc_status_t
Type used for all status and error return values.
Definition: erpc_common.h:86
uint32_t m_txMsgSize
Definition: erpc_mu_transport.h:182
virtual erpc_status_t receive(MessageBuffer *message)
Start receiving data and stores it to passed message buffer.
Definition: erpc_mu_transport.cpp:184
virtual ~MUTransport(void)
Destructor of MU transport.
Definition: erpc_mu_transport.cpp:91
MUTransport(void)
Constructor of MU transport.
Definition: erpc_mu_transport.cpp:71
Semaphore m_txSemaphore
Definition: erpc_mu_transport.h:189
MU_Type * m_muBase
Definition: erpc_mu_transport.h:195
uint32_t m_rxMsgSize
Definition: erpc_mu_transport.h:178
Semaphore m_rxSemaphore
Definition: erpc_mu_transport.h:188
Mutex m_sendLock
Definition: erpc_mu_transport.h:191
virtual bool hasMessage()
Function to check if is new message to receive.
Definition: erpc_mu_transport.h:125
virtual erpc_status_t init(MU_Type *muBase)
Initialization of MU transport layer.
Definition: erpc_mu_transport.cpp:93
Represents a memory buffer containing a message.
Definition: erpc_message_buffer.h:36
uint32_t m_rxCntBytes
Definition: erpc_mu_transport.h:180
Definition: erpc_arbitrated_client_manager.h:25
uint32_t *volatile m_txBuffer
Definition: erpc_mu_transport.h:185
virtual erpc_status_t send(MessageBuffer *message)
Function to send prepared message.
Definition: erpc_mu_transport.cpp:217
Transport that uses Messaging Unit (MU) for interprocessor messaging.
Definition: erpc_mu_transport.h:70
uint32_t *volatile m_rxBuffer
Definition: erpc_mu_transport.h:181
void tx_cb(void)
Function called from MU IRQ when the MU TX empty flag is asserted and the IRQ is enabled.
Definition: erpc_mu_transport.cpp:154
Mutex m_receiveLock
Definition: erpc_mu_transport.h:192
volatile bool m_newMessage
Definition: erpc_mu_transport.h:176
uint32_t m_txCntBytes
Definition: erpc_mu_transport.h:184
static void mu_irq_callback(void)
Callback function called from MU IRQ.
Definition: erpc_mu_transport.cpp:42
Mutex.
Definition: erpc_threading.h:259
Simple semaphore class.
Definition: erpc_threading.h:359
void rx_cb(void)
Function called from MU IRQ when the MU RX full flag is asserted and the IRQ is enabled.
Definition: erpc_mu_transport.cpp:111