lpuart_driver.c File Reference
#include <stddef.h>
#include <stdbool.h>
#include "lpuart_hw_access.h"
#include "lpuart_irq.h"
#include "clock_manager.h"

Go to the source code of this file.

Functions

static status_t LPUART_DRV_StartSendDataUsingInt (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 
static void LPUART_DRV_CompleteSendDataUsingInt (uint32_t instance)
 
static status_t LPUART_DRV_StartReceiveDataUsingInt (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 
static void LPUART_DRV_CompleteReceiveDataUsingInt (uint32_t instance)
 
static void LPUART_DRV_StopTxDma (uint32_t instance)
 
static void LPUART_DRV_StopRxDma (uint32_t instance)
 
static status_t LPUART_DRV_StartSendDataUsingDma (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 
static void LPUART_DRV_TxDmaCallback (void *parameter, edma_chn_status_t status)
 
static status_t LPUART_DRV_StartReceiveDataUsingDma (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 
static void LPUART_DRV_RxDmaCallback (void *parameter, edma_chn_status_t status)
 
static void LPUART_DRV_PutData (uint32_t instance)
 
static void LPUART_DRV_GetData (uint32_t instance)
 
status_t LPUART_DRV_Init (uint32_t instance, lpuart_state_t *lpuartStatePtr, const lpuart_user_config_t *lpuartUserConfig)
 Initializes an LPUART operation instance. More...
 
status_t LPUART_DRV_Deinit (uint32_t instance)
 Shuts down the LPUART by disabling interrupts and transmitter/receiver. More...
 
uart_callback_t LPUART_DRV_InstallRxCallback (uint32_t instance, uart_callback_t function, void *callbackParam)
 Installs callback function for the LPUART receive. More...
 
uart_callback_t LPUART_DRV_InstallTxCallback (uint32_t instance, uart_callback_t function, void *callbackParam)
 Installs callback function for the LPUART transmit. More...
 
status_t LPUART_DRV_SendDataBlocking (uint32_t instance, const uint8_t *txBuff, uint32_t txSize, uint32_t timeout)
 Sends data out through the LPUART module using a blocking method. More...
 
void LPUART_DRV_SendDataPolling (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 Send out multiple bytes of data using polling method. More...
 
status_t LPUART_DRV_SendData (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 Sends data out through the LPUART module using a non-blocking method. This enables an a-sync method for transmitting data. When used with a non-blocking receive, the LPUART can perform a full duplex operation. Non-blocking means that the function returns immediately. The application has to get the transmit status to know when the transmit is complete. More...
 
status_t LPUART_DRV_GetTransmitStatus (uint32_t instance, uint32_t *bytesRemaining)
 Returns whether the previous transmit is complete. More...
 
status_t LPUART_DRV_AbortSendingData (uint32_t instance)
 Terminates a non-blocking transmission early. More...
 
status_t LPUART_DRV_ReceiveDataBlocking (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize, uint32_t timeout)
 Gets data from the LPUART module by using a blocking method. Blocking means that the function does not return until the receive is complete. More...
 
status_t LPUART_DRV_ReceiveDataPolling (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 Receive multiple bytes of data using polling method. More...
 
status_t LPUART_DRV_ReceiveData (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 Gets data from the LPUART module by using a non-blocking method. This enables an a-sync method for receiving data. When used with a non-blocking transmission, the LPUART can perform a full duplex operation. Non-blocking means that the function returns immediately. The application has to get the receive status to know when the receive is complete. More...
 
status_t LPUART_DRV_GetReceiveStatus (uint32_t instance, uint32_t *bytesRemaining)
 Returns whether the previous receive is complete. More...
 
status_t LPUART_DRV_AbortReceivingData (uint32_t instance)
 Terminates a non-blocking receive early. More...
 
status_t LPUART_DRV_SetBaudRate (uint32_t instance, uint32_t desiredBaudRate)
 Configures the LPUART baud rate. More...
 
void LPUART_DRV_GetBaudRate (uint32_t instance, uint32_t *configuredBaudRate)
 Returns the LPUART baud rate. More...
 
status_t LPUART_DRV_SetTxBuffer (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 Sets the internal driver reference to the tx buffer. More...
 
status_t LPUART_DRV_SetRxBuffer (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 Sets the internal driver reference to the rx buffer. More...
 
void LPUART_DRV_IRQHandler (uint32_t instance)
 

Variables

static lpuart_state_ts_lpuartStatePtr [(2u)] = {NULL}
 
static LPUART_Type *const s_lpuartBase [(2u)] = { ((LPUART_Type *) (0x4006A000u) ) , ((LPUART_Type *) (0x4006B000u) ) }
 
static const IRQn_Type s_lpuartRxTxIrqId [(2u)] = { LPUART0_RxTx_IRQn, LPUART1_RxTx_IRQn }
 
static const clock_names_t s_lpuartClkNames [(2u)] = {LPUART0_CLK, LPUART1_CLK}
 

Function Documentation

static void LPUART_DRV_CompleteReceiveDataUsingInt ( uint32_t  instance)
static

Definition at line 1590 of file lpuart_driver.c.

static void LPUART_DRV_CompleteSendDataUsingInt ( uint32_t  instance)
static

Definition at line 1396 of file lpuart_driver.c.

static void LPUART_DRV_GetData ( uint32_t  instance)
static

Definition at line 1736 of file lpuart_driver.c.

void LPUART_DRV_IRQHandler ( uint32_t  instance)

Definition at line 1044 of file lpuart_driver.c.

static void LPUART_DRV_PutData ( uint32_t  instance)
static

Definition at line 1694 of file lpuart_driver.c.

static void LPUART_DRV_RxDmaCallback ( void *  parameter,
edma_chn_status_t  status 
)
static

Definition at line 1634 of file lpuart_driver.c.

static status_t LPUART_DRV_StartReceiveDataUsingDma ( uint32_t  instance,
uint8_t *  rxBuff,
uint32_t  rxSize 
)
static

Definition at line 1532 of file lpuart_driver.c.

static status_t LPUART_DRV_StartReceiveDataUsingInt ( uint32_t  instance,
uint8_t *  rxBuff,
uint32_t  rxSize 
)
static

Definition at line 1483 of file lpuart_driver.c.

static status_t LPUART_DRV_StartSendDataUsingDma ( uint32_t  instance,
const uint8_t *  txBuff,
uint32_t  txSize 
)
static

Definition at line 1339 of file lpuart_driver.c.

static status_t LPUART_DRV_StartSendDataUsingInt ( uint32_t  instance,
const uint8_t *  txBuff,
uint32_t  txSize 
)
static

Definition at line 1293 of file lpuart_driver.c.

static void LPUART_DRV_StopRxDma ( uint32_t  instance)
static

Definition at line 1824 of file lpuart_driver.c.

static void LPUART_DRV_StopTxDma ( uint32_t  instance)
static

Definition at line 1782 of file lpuart_driver.c.

static void LPUART_DRV_TxDmaCallback ( void *  parameter,
edma_chn_status_t  status 
)
static

Definition at line 1440 of file lpuart_driver.c.

Variable Documentation

LPUART_Type* const s_lpuartBase[(2u)] = { ((LPUART_Type *) (0x4006A000u) ) , ((LPUART_Type *) (0x4006B000u) ) }
static

Definition at line 98 of file lpuart_driver.c.

const clock_names_t s_lpuartClkNames[(2u)] = {LPUART0_CLK, LPUART1_CLK}
static

Definition at line 104 of file lpuart_driver.c.

const IRQn_Type s_lpuartRxTxIrqId[(2u)] = { LPUART0_RxTx_IRQn, LPUART1_RxTx_IRQn }
static

Definition at line 101 of file lpuart_driver.c.

lpuart_state_t* s_lpuartStatePtr[(2u)] = {NULL}
static

Definition at line 95 of file lpuart_driver.c.