24 #ifdef DRV_UART_MODULE_ENABLED 59 #ifndef DRV_HANDLE_CHECK_INACTIVE 63 #define DRV_HANDLE_CHECK(handle)\ 65 return DRV_ERROR_PARAM; \ 67 if((handle)->ptDevice==0){ \ 68 return DRV_ERROR_PARAM; \ 74 #define DRV_HANDLE_CHECK(handle) 239 #define DEV_BAUDRATE_DIV_LO(baud) (((baud*16ull*65536ull)/(SystemCoreClock/100ull)) & 0xff) 240 #define DEV_BAUDRATE_DIV_HI(baud) (((baud*16ull*65536ull)/(SystemCoreClock/100ull))>>8) 404 uint32_t ulExclusiveRead = 0xFFFFFFFFul;
504 uint32_t ulExclusiveRead = 0xFFFFFFFFul;
600 if(txData == 0 || rxData == 0)
606 uint32_t ulExclusiveRead = 0xFFFFFFFFul;
971 if(ptDriver == 0 || ptDriver->
ptDevice != s_apDeviceAddressTable[ulDeviceOffset])
973 ((
DRV_UART_DEVICE_T * const ) s_apDeviceAddressTable[ulDeviceOffset])->uartcr = 0;
1053 #define DRV_UART_IRQHandler_Generator(id, _) DRV_Default_IRQHandler_Function_Generator(DRV_UART_IRQ_HANDLER ## id,DRV_UART_IRQ_Inline_Handler,DRV_UART_DEVICE_ID_UART ## id)
DRV_CALLBACK_F fnTxCompleteCallback
DRV_DMAC_DEVICE_ID_E eDMATx
The handle of the driver.
#define DRV_DEF_REPEAT_EVAL(...)
uint8_t volatile RxBufferStatic[16]
DRV_STATUS_E DRV_UART_TransmitReceive(DRV_UART_HANDLE_T *const ptDriver, uint8_t *const txData, uint8_t *const rxData, size_t size)
Transmits and receives data of given size via the given uart.
DRV_STATUS_E DRV_UART_GetState(DRV_UART_HANDLE_T *const ptDriver, DRV_UART_STATE_E *const ptState)
The driver and device state are returned by this function.
static DRV_UART_DEVICE_T *const s_apDeviceAddressTable[DRV_UART_DEVICE_COUNT]
Table of the device addresses.
DRV_STATUS_E DRV_UART_PutChar(DRV_UART_HANDLE_T *const ptDriver, unsigned char const cData)
Transmits a single char via the given uart.
#define DEV_BAUDRATE_DIV_LO(baud)
struct uart_app_Type::@4693::@4723 uartlcr_h_b
size_t volatile RxBufferCounter
static IRQn_Type const s_apHandleIRQnTable[DRV_UART_DEVICE_COUNT]
Table of the IRQ vector numbers.
DRV_UART_LOOP_BACK_E eLoopBack
#define DRV_LOCK_INITIALIZER
Initializer of the type to be locked as rvalue is in default the mutex initializer.
DRV_CALLBACK_F fnRxTimeoutCallback
DRV_DMAC_DEVICE_ID_E eDeviceID
void DRV_NVIC_DisableIRQ(IRQn_Type IRQn)
This method disables a given interrupt.
#define DRV_UART_DEVICE_IRQ_LIST
DRV_STATUS_E DRV_UART_Receive(DRV_UART_HANDLE_T *const ptDriver, uint8_t *const data, size_t size)
Receives the given size and stores it into data via the given uart.
static DRV_DMAC_PERIPHERAL_E const s_apDeviceDmacTable[DRV_UART_DEVICE_COUNT]
Table of the device associated dmac channels.
DRV_STATUS_E DRV_DMAC_Abort(DRV_DMAC_HANDLE_T *const ptSequencer)
Aborts the given dmac sequencer.
DRV_STATUS_E DRV_UART_GetRxState(DRV_UART_HANDLE_T *const ptDriver, DRV_UART_STATE_E *const ptState)
The driver and device state are returned by this function.
#define uart_uartcr_TIE_Msk
DRV_UART_LINE_CONTROL_MASK_E eLineControl
DRV_STATUS_E DRV_UART_DeInit(DRV_UART_HANDLE_T *const ptDriver)
Deinitializes the uart device and handle.
#define uart_uartcr_RIE_Msk
DRV_UART_BAUDRATE_E eBaudrate
struct uart_app_Type::@4703::@4728 uartiir_b
void DRV_NVIC_EnableIRQ(IRQn_Type IRQn)
This method enables a given interrupt.
#define DRV_UART_DEVICE_COUNT
uint64_t ullFrameStartTick
#define DEV_BAUDRATE_DIV_HI(baud)
void * pRxCompleteCallbackHandle
void * ptCallbackHandleComplete
struct uart_app_Type::@4719::@4736 uarttxiflsel_b
#define DRV_UART_DEVICE_DMA_LIST
DRV_UART_WATERMARK_E eTxFifoWatermark
__STATIC_INLINE void DRV_UART_Flush_Buffers(DRV_UART_HANDLE_T *const ptDriver)
This function shall flush the software and hardware buffers of the device.
DRV_CALLBACK_F fCallbackComplete
DRV_STATUS_E DRV_UART_Init(DRV_UART_HANDLE_T *const ptDriver)
Initializes the uart device and handle by the given configuration.
DRV_UART_BAUDRATEMODE_E Baud_Rate_Mode
#define DRV_LOCK(__HANDLE__)
A function calling the trylock of the mutex and returning locked in case it is blocked.
size_t volatile TxBufferSize
DRV_STATUS_E DRV_UART_GetChar(DRV_UART_HANDLE_T *const ptDriver, unsigned char *const pcData)
Receives a single char via the given uart.
DRV_DMAC_TRANSFER_WIDTH_E eTransferWidthDest
#define NVIC_ClearPendingIRQ
struct uart_app_Type::@4699::@4726 uartcr_b
DRV_DMAC_TRANSFER_WIDTH_E eTransferWidthSource
DRV_DMAC_INCREMENTATION_E eIncrementationDest
This file contains all the functions prototypes for the peripheral module driver. ...
DRV_DMAC_CONFIGURATION_T tConfiguration
DRV_STATUS_E DRV_UART_GetTxState(DRV_UART_HANDLE_T *const ptDriver, DRV_UART_STATE_E *const ptState)
The driver and device state are returned by this function.
#define DRV_HANDLE_CHECK(handle)
static DRV_UART_HANDLE_T * s_apHandleAddressTable[DRV_UART_DEVICE_COUNT]
Used for mapping the handle to an interrupt.
DRV_UART_RTS_CONTROL_MASK_E eRTSControl
void(* DRV_CALLBACK_F)(void *pvDriverHandle, void *pvUserHandle)
The definition of callbacks used in the driver.
__IOM uint32_t uartdrvout
DRV_CALLBACK_F fnRxCallback
DRV_STATUS_E
DRV Status structures definition.
static void DRV_UART_Flush_DMA_Callback_Tx(void *ptDriverHandle, DRV_UART_HANDLE_T *const ptDriver)
DRV_OPERATION_MODE_E eOperationMode
DRV_UART_TX_MODE_MASK_E eTxMode
void * pTxCompleteCallbackHandle
DRV_CALLBACK_F fnRxCompleteCallback
struct uart_app_Type::@4717::@4735 uartrxiflsel_b
void DRV_NVIC_ClearPendingIRQ(IRQn_Type IRQn)
This method clears the pending state of a given interrupt.
DRV_STATUS_E DRV_DMAC_Start(DRV_DMAC_HANDLE_T *const ptSequencer, void *const ptBufferSource, void *const ptBufferDestination, size_t size)
Starts the given dmac sequencer.
static void DRV_UART_Flush_DMA_Callback_Rx(void *ptDriverHandle, DRV_UART_HANDLE_T *const ptDriver)
DRV_STATUS_E DRV_DMAC_Init(DRV_DMAC_HANDLE_T *const ptSequencer)
Initializes the dmac sequencer and its handle by the given configuration.
#define DRV_UNLOCK(__HANDLE__)
The release function used.
#define DRV_UART_DEVICE_LIST
DRV_DMAC_INCREMENTATION_E eIncrementationSource
DRV_DMAC_HANDLE_T * ptSequencerRx
size_t volatile TxBufferCounter
DRV_DMAC_HANDLE_T * ptSequencerTx
DRV_STATUS_E DRV_UART_Abort(DRV_UART_HANDLE_T *const ptDriver)
Aborts any transmissions on the given uart.
__STATIC_INLINE void DRV_UART_IRQ_Inline_Handler(DRV_UART_DEVICE_ID_E const eDeviceID)
DRV_UART_DEVICE_ID_E eDeviceID
DRV_UART_WORD_LENGTH_E eWordLength
__IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr)
void * pRxTimeoutCallbackHandle
DRV_DMAC_PERIPHERAL_E ePeripheralSource
#define DRV_UART_IRQHandler_Generator(id, _)
DRV_UART_STATE_E
Enumeration of uart device states.
struct uart_app_Type::@4701::@4727 uartfr_b
DRV_DMAC_DEVICE_ID_E eDMARx
#define uart_uartcr_RTIE_Msk
DRV_UART_CONFIGURATION_T tConfiguration
DRV_DMAC_PERIPHERAL_E ePeripheralDest
DRV_UART_WATERMARK_E eRxFifoWatermark
DRV_STATUS_E DRV_UART_Transmit(DRV_UART_HANDLE_T *const ptDriver, uint8_t const *const data, size_t size)
Performs a transmission of the given size of the data array via the given uart.
__IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr)
size_t volatile RxBufferSize
DRV_UART_DEVICE_T * ptDevice