9 #ifndef _EMBEDDED_RPC__MU_TRANSPORT_H_ 10 #define _EMBEDDED_RPC__MU_TRANSPORT_H_ 12 #include "erpc_config_internal.h" 13 #if !ERPC_THREADS_IS(NONE) 19 #include "fsl_device_registers.h" 31 #if ERPC_TRANSPORT_MU_USE_MCMGR 34 #define MU_REG_COUNT (MU_RR_COUNT - 1U) 35 #define MU_LAST_REG_IDX 2 37 #define MU_RX_Interrupt_Handler(x) MU_RX_Interrupt(x) 38 #define MU_RX_Interrupt(number) MU_Rx##number##FullFlagISR 39 #define MU_RxFullFlagISRCallback MU_RX_Interrupt_Handler(MU_LAST_REG_IDX) 41 #define MU_TX_Interrupt_Handler(x) MU_TX_Interrupt(x) 42 #define MU_TX_Interrupt(number) MU_Tx##number##EmptyFlagISR 43 #define MU_TxEmptyFlagISRCallback MU_TX_Interrupt_Handler(MU_LAST_REG_IDX) 46 #define MU_REG_COUNT (MU_RR_COUNT) 128 #if ERPC_TRANSPORT_MU_USE_MCMGR 137 static void mu_tx_empty_irq_callback(
void);
145 static void mu_rx_full_irq_callback(
void);
188 #if !ERPC_THREADS_IS(NONE) 203 #endif // _EMBEDDED_RPC__MU_TRANSPORT_H_ Abstract interface for transport layer.
Definition: erpc_transport.h:36
uint32_t m_txMsgSize
Definition: erpc_mu_transport.h:183
virtual erpc_status_t receive(MessageBuffer *message)
Start receiving data and stores it to passed message buffer.
Definition: erpc_mu_transport.cpp:193
virtual ~MUTransport(void)
Destructor of MU transport.
Definition: erpc_mu_transport.cpp:96
MUTransport(void)
Constructor of MU transport.
Definition: erpc_mu_transport.cpp:76
enum _erpc_status erpc_status_t
Type used for all status and error return values.
Definition: erpc_common.h:87
Semaphore m_txSemaphore
Definition: erpc_mu_transport.h:190
virtual bool hasMessage(void)
Function to check if is new message to receive.
Definition: erpc_mu_transport.h:126
MU_Type * m_muBase
Definition: erpc_mu_transport.h:196
uint32_t m_rxMsgSize
Definition: erpc_mu_transport.h:179
Semaphore m_rxSemaphore
Definition: erpc_mu_transport.h:189
Mutex m_sendLock
Definition: erpc_mu_transport.h:192
virtual erpc_status_t init(MU_Type *muBase)
Initialization of MU transport layer.
Definition: erpc_mu_transport.cpp:98
Represents a memory buffer containing a message.
Definition: erpc_message_buffer.h:37
uint32_t m_rxCntBytes
Definition: erpc_mu_transport.h:181
Definition: erpc_arbitrated_client_manager.h:25
uint32_t *volatile m_txBuffer
Definition: erpc_mu_transport.h:186
virtual erpc_status_t send(MessageBuffer *message)
Function to send prepared message.
Definition: erpc_mu_transport.cpp:231
Transport that uses Messaging Unit (MU) for interprocessor messaging.
Definition: erpc_mu_transport.h:71
uint32_t *volatile m_rxBuffer
Definition: erpc_mu_transport.h:182
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:161
Mutex m_receiveLock
Definition: erpc_mu_transport.h:193
volatile bool m_newMessage
Definition: erpc_mu_transport.h:177
uint32_t m_txCntBytes
Definition: erpc_mu_transport.h:185
static void mu_irq_callback(void)
Callback function called from MU IRQ.
Definition: erpc_mu_transport.cpp:45
Mutex.
Definition: erpc_threading.h:338
Simple semaphore class.
Definition: erpc_threading.h:445
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:116