This module implements a CDD driver in ANSI C programming language to centralize the configuration of ports and pins which are used by more than one driver module. This driver can:
- Configure the UART config registers
- Read and write data over UART
This file defines CDD UART data structures
- See also
- CDD Uart Configuration
|
typedef uint8 | CddUartDataBufferType |
| Typedef for the data buffer elements.
|
|
typedef uint8_least | CddUartDataDirectionType |
| Type for defining the direction of data transfer, i.e., sending or receival.
|
|
void | Cdd_Uart_GetVersionInfo (Std_VersionInfoType *VersionInfoPtr) |
| Service for getting CDD UART version.
|
|
Std_ReturnType | Cdd_Uart_RegisterReadback (uint8 ChannelID, CddUart_RegisterReadbackType *RegisterSetPtr) |
| Service for reading HW IP registers of a CDD UART instance.
|
|
void | Cdd_Uart_Init (const Cdd_Uart_CfgType *ConfigurationPtr) |
| Service for CDD UART Initialization.
|
|
void | Cdd_Uart_DeInit (void) |
| Service for deinitializing CDD UART.
|
|
Std_ReturnType | Cdd_Uart_Write (uint8 ChannelID, CddUartDataBufferType *SrcBufferPtr, uint32 Count, uint32 Timeout) |
| Service to transmit message using UART.
|
|
Std_ReturnType | Cdd_Uart_Read (uint8 ChannelID, CddUartDataBufferType *DestBufferPtr, uint32 Count, uint32 Timeout) |
| Service to read message or command from the UART.
|
|
boolean | Cdd_Uart_Cancel (uint8 ChannelID, CddUartDataDirectionType TransferType) |
| Service to cancel an ongoing transaction with UART.
|
|
uint32 | Cdd_Uart_GetRemainingWords (uint8 ChannelID, CddUartDataDirectionType TransferType) |
| Service to get remaining words to be transmitted from the UART for any ongoing transaction.
|
|
#define | MCAL_STATE_RESET (0U) |
|
#define | MCAL_STATE_READY (1U) |
|
#define | MCAL_STATE_BUSY (2U) |
|
#define | MCAL_STATE_ERROR (3U) |
|
◆ UART_FIFO_SIZE
#define UART_FIFO_SIZE (64U) |
◆ UART_TRANSMITEMPTY_TRIALCOUNT
#define UART_TRANSMITEMPTY_TRIALCOUNT (3000U) |
Timeout in ms used for TX FIFO empty at the time of delete. Three seconds is more than sufficient to transfer 64 bytes (FIFO size) at the lowest baud rate of 2400.
◆ CDD_UART_MODULE_ID
#define CDD_UART_MODULE_ID 255U |
◆ CDD_UART_VENDOR_ID
#define CDD_UART_VENDOR_ID 44U |
Texas Instruments Vendor ID.
◆ CDD_UART_INSTANCE_ID
#define CDD_UART_INSTANCE_ID 0U |
Texas Instruments Vendor ID.
◆ CDD_UART_SW_MAJOR_VERSION
Driver Implementation Major Version.
◆ CDD_UART_SW_MINOR_VERSION
Driver Implementation Minor Version.
◆ CDD_UART_SW_PATCH_VERSION
Driver Implementation patch Version.
◆ CDD_UART_AR_RELEASE_MAJOR_VERSION
#define CDD_UART_AR_RELEASE_MAJOR_VERSION 4U |
AUTOSAR Major version specification implemented by CDD Driver.
◆ CDD_UART_AR_RELEASE_MINOR_VERSION
#define CDD_UART_AR_RELEASE_MINOR_VERSION 3U |
AUTOSAR Minor version specification implemented by CDD Driver.
◆ CDD_UART_AR_RELEASE_REVISION_VERSION
#define CDD_UART_AR_RELEASE_REVISION_VERSION 1U |
AUTOSAR Patch version specification implemented by CDD Driver.
◆ CDD_UART_INIT_SERVICE_ID
#define CDD_UART_INIT_SERVICE_ID 0x01U |
API Service ID for initialization.
◆ CDD_UART_GETVERSIONINFO_SERVICE_ID
#define CDD_UART_GETVERSIONINFO_SERVICE_ID 0x02U |
API Service ID for get version info.
◆ CDD_UART_REGISTERREADBACK_SERVICE_ID
#define CDD_UART_REGISTERREADBACK_SERVICE_ID 0x0DU |
API Service ID for Register Readback service ID.
◆ CDD_UART_READDATA_SERVICE_ID
#define CDD_UART_READDATA_SERVICE_ID 0x03U |
API Service ID for read API.
◆ CDD_UART_WRITEDATA_SERVICE_ID
#define CDD_UART_WRITEDATA_SERVICE_ID 0x04U |
API Service ID for write API.
◆ CDD_UART_ERROR_SERVICE_ID
#define CDD_UART_ERROR_SERVICE_ID 0x05U |
API Service ID for error API.
◆ CDD_UART_CANCEL_SERVICE_ID
#define CDD_UART_CANCEL_SERVICE_ID 0x06U |
API Service ID for cancel API.
◆ CDD_UART_GETREMAININGWORDS_SERVICE_ID
#define CDD_UART_GETREMAININGWORDS_SERVICE_ID 0x07U |
API Service ID for get remaining words API.
◆ CDD_UART_READNOTIF_SERVICE_ID
#define CDD_UART_READNOTIF_SERVICE_ID 0x08U |
API Service ID for read notification handler.
◆ CDD_UART_WRITENOTIF_SERVICE_ID
#define CDD_UART_WRITENOTIF_SERVICE_ID 0x09U |
API Service ID for write notification handler.
◆ CDD_UART_ERRORNOTIF_SERVICE_ID
#define CDD_UART_ERRORNOTIF_SERVICE_ID 0x0AU |
API Service ID for error notification handler.
◆ CDD_UART_DEINIT_SERVICE_ID
#define CDD_UART_DEINIT_SERVICE_ID 0x0BU |
API Service ID for deinitialization.
◆ CDD_UART_INTERNAL_ISR_ID
#define CDD_UART_INTERNAL_ISR_ID 0x0CU |
◆ CDD_UART_E_UNINIT
#define CDD_UART_E_UNINIT 0x01U |
Error code indicating the UART is uninitialized.
◆ CDD_UART_E_INVALID_EVENT
#define CDD_UART_E_INVALID_EVENT 0x02U |
Error code indicating an invalid event.
◆ CDD_UART_E_READ_LOCKED
#define CDD_UART_E_READ_LOCKED 0x03U |
Error code indicating UART reading mode ongoing.
◆ CDD_UART_E_WRITE_LOCKED
#define CDD_UART_E_WRITE_LOCKED 0x04U |
Error code indicating UART writing mode ongoing.
◆ CDD_UART_E_PARAM_POINTER
#define CDD_UART_E_PARAM_POINTER 0x05U |
Error code indicating invalid parameter pointer.
◆ CDD_UART_E_ALREADY_INITIALIZED
#define CDD_UART_E_ALREADY_INITIALIZED 0x06U |
Error code indicating UART is already initialized.
◆ CDD_UART_E_PARAM_VALUE
#define CDD_UART_E_PARAM_VALUE 0x07U |
Error code indicating Service called with wrong param.
◆ CDD_UART_E_PARAM_LENGTH
#define CDD_UART_E_PARAM_LENGTH 0x08U |
Error code indicating Service called with invalid length.
◆ CDD_UART_E_INVALID_CHANNEL
#define CDD_UART_E_INVALID_CHANNEL 0x09U |
Error code indicating invalid UART channel.
◆ CDD_UART_E_INVALID_CONFIG
#define CDD_UART_E_INVALID_CONFIG 0x0AU |
Error code indicating invalid UART configuration.
◆ UART_TX_FIFO_NOT_FULL
#define UART_TX_FIFO_NOT_FULL |
Value: ( \
UART_SSR_TX_FIFO_FULL_TX_FIFO_FULL_VALUE_0)
◆ UART_TX_FIFO_FULL
#define UART_TX_FIFO_FULL |
Value: ( \
UART_SSR_TX_FIFO_FULL_TX_FIFO_FULL_VALUE_1)
◆ UART_INTID_MODEM_STAT
#define UART_INTID_MODEM_STAT |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_0 \
<< \
UART_IIR_IT_TYPE_SHIFT)
Values pertaining to status of UART Interrupt sources.
◆ UART_INTID_TX_THRES_REACH
#define UART_INTID_TX_THRES_REACH |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_1 \
<< \
UART_IIR_IT_TYPE_SHIFT)
◆ UART_INTID_RX_THRES_REACH
#define UART_INTID_RX_THRES_REACH |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_2 \
<< \
UART_IIR_IT_TYPE_SHIFT)
◆ UART_INTID_RX_LINE_STAT_ERROR
#define UART_INTID_RX_LINE_STAT_ERROR |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_3 \
<< \
UART_IIR_IT_TYPE_SHIFT)
◆ UART_INTID_CHAR_TIMEOUT
#define UART_INTID_CHAR_TIMEOUT |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_6 \
<< \
UART_IIR_IT_TYPE_SHIFT)
◆ UART_INTID_XOFF_SPEC_CHAR_DETECT
#define UART_INTID_XOFF_SPEC_CHAR_DETECT |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_8 \
<< \
UART_IIR_IT_TYPE_SHIFT)
◆ UART_INTID_MODEM_SIG_STATE_CHANGE
#define UART_INTID_MODEM_SIG_STATE_CHANGE |
Value: (UART_IIR_IT_TYPE_IT_TYPE_VALUE_10 \
<< \
UART_IIR_IT_TYPE_SHIFT)
◆ UART_INTR_PENDING
#define UART_INTR_PENDING (0U) |
Values indicating the UART Interrupt pending status.
◆ UART_NO_INTR_PENDING
#define UART_NO_INTR_PENDING (1U) |
◆ UART_INTR_CTS
#define UART_INTR_CTS (UART_IER_CTS_IT_MASK) |
Values for enabling/disabling the interrupts of UART.
◆ UART_INTR_RTS
#define UART_INTR_RTS (UART_IER_RTS_IT_MASK) |
◆ UART_INTR_XOFF
#define UART_INTR_XOFF (UART_IER_XOFF_IT_MASK) |
◆ UART_INTR_SLEEPMODE
#define UART_INTR_SLEEPMODE (UART_IER_SLEEP_MODE_MASK) |
◆ UART_INTR_MODEM_STAT
#define UART_INTR_MODEM_STAT (UART_IER_MODEM_STS_IT_MASK) |
◆ UART_INTR_LINE_STAT
#define UART_INTR_LINE_STAT (UART_IER_LINE_STS_IT_MASK) |
◆ UART_INTR_THR
#define UART_INTR_THR (UART_IER_THR_IT_MASK) |
◆ UART_INTR_RHR_CTI
#define UART_INTR_RHR_CTI (UART_IER_RHR_IT_MASK) |
◆ UART_INTR2_RX_EMPTY
#define UART_INTR2_RX_EMPTY (UART_IER2_EN_RXFIFO_EMPTY_MASK) |
◆ UART_INTR2_TX_EMPTY
#define UART_INTR2_TX_EMPTY (UART_IER2_EN_TXFIFO_EMPTY_MASK) |
◆ UART_FIFO_PE_FE_BI_DETECTED
#define UART_FIFO_PE_FE_BI_DETECTED (UART_LSR_RX_FIFO_STS_MASK) |
Values pertaining to UART Line Status information.
◆ UART_BREAK_DETECTED_ERROR
#define UART_BREAK_DETECTED_ERROR (UART_LSR_RX_BI_MASK) |
◆ UART_FRAMING_ERROR
#define UART_FRAMING_ERROR (UART_LSR_RX_FE_MASK) |
◆ UART_PARITY_ERROR
#define UART_PARITY_ERROR (UART_LSR_RX_PE_MASK) |
◆ UART_OVERRUN_ERROR
#define UART_OVERRUN_ERROR (UART_LSR_RX_OE_MASK) |
◆ UART_STATE_RX_DISABLED
#define UART_STATE_RX_DISABLED (0x0U) |
◆ UART_STATE_RX_ENABLED
#define UART_STATE_RX_ENABLED (0x1U) |
◆ IS_DATA_LENGTH_VALID
#define IS_DATA_LENGTH_VALID |
( |
| dataLength | ) |
|
Value:
#define CDD_UART_WORD_LENGTH_7
Word Length 7.
Definition Cdd_Uart_Cfg.h:117
#define CDD_UART_WORD_LENGTH_8
Word Length 8.
Definition Cdd_Uart_Cfg.h:119
#define CDD_UART_WORD_LENGTH_5
Word Length 5.
Definition Cdd_Uart_Cfg.h:113
#define CDD_UART_WORD_LENGTH_6
Word Length 6.
Definition Cdd_Uart_Cfg.h:115
Macro to check if the Data length is valid.
◆ IS_STOP_BITS_VALID
#define IS_STOP_BITS_VALID |
( |
| stopBits | ) |
|
Value:
#define CDD_UART_STOP_BIT_1
Stop Bit 1.
Definition Cdd_Uart_Cfg.h:180
#define CDD_UART_STOP_BITS_2
Stop Bit 2.
Definition Cdd_Uart_Cfg.h:182
Macro to check if the Number of stop bits is valid.
◆ IS_PARITY_TYPE_VALID
#define IS_PARITY_TYPE_VALID |
( |
| parityType | ) |
|
Value:
#define CDD_UART_PARITY_ODD
Odd Parity.
Definition Cdd_Uart_Cfg.h:131
#define CDD_UART_PARITY_EVEN
Even Parity.
Definition Cdd_Uart_Cfg.h:133
#define CDD_UART_PARITY_NONE
None Parity.
Definition Cdd_Uart_Cfg.h:129
Macro to check if the Parity type is valid.
◆ IS_OPER_MODE_VALID
#define IS_OPER_MODE_VALID |
( |
| operMode | ) |
|
Value:
#define CDD_UART_16x_OPER
UART16X mode.
Definition Cdd_Uart_Cfg.h:159
#define CDD_UART_16x_AUTO_OPER
UART16X AUTO mode.
Definition Cdd_Uart_Cfg.h:161
#define CDD_UART_13x_OPER
UART13X mode.
Definition Cdd_Uart_Cfg.h:157
Macro to check if the Operation mode is valid.
◆ IS_RXTRIG_LVL_VALID
#define IS_RXTRIG_LVL_VALID |
( |
| rxTrigLvl | ) |
|
Value:
#define CDD_UART_TRIGGER_LEVEL_60
Trigger Level 60.
Definition Cdd_Uart_Cfg.h:150
#define CDD_UART_TRIGGER_LEVEL_16
Trigger Level 16.
Definition Cdd_Uart_Cfg.h:144
#define CDD_UART_TRIGGER_LEVEL_56
Trigger Level 56.
Definition Cdd_Uart_Cfg.h:148
#define CDD_UART_TRIGGER_LEVEL_8
Trigger Level 8.
Definition Cdd_Uart_Cfg.h:142
#define CDD_UART_TRIGGER_LEVEL_1
Trigger Level 1.
Definition Cdd_Uart_Cfg.h:140
Macro to check if the RX Trigger level is valid.
◆ IS_TXTRIG_LVL_VALID
#define IS_TXTRIG_LVL_VALID |
( |
| txTrigLvl | ) |
|
Value:
#define CDD_UART_TRIGGER_LEVEL_32
Trigger Level 32.
Definition Cdd_Uart_Cfg.h:146
Macro to check if the TX Trigger level is valid.
◆ MCAL_STATE_RESET
#define MCAL_STATE_RESET (0U) |
◆ MCAL_STATE_READY
#define MCAL_STATE_READY (1U) |
◆ MCAL_STATE_BUSY
#define MCAL_STATE_BUSY (2U) |
◆ MCAL_STATE_ERROR
#define MCAL_STATE_ERROR (3U) |
◆ CddUartDataBufferType
Typedef for the data buffer elements.
◆ CddUartDataDirectionType
Type for defining the direction of data transfer, i.e., sending or receival.
◆ Cdd_Uart_GetVersionInfo()
void Cdd_Uart_GetVersionInfo |
( |
Std_VersionInfoType * | VersionInfoPtr | ) |
|
Service for getting CDD UART version.
None
* Service name : Cdd_Uart_GetVersionInfo
* Syntax : void Cdd_Uart_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr)
* Service ID[hex] : 0x02
* Sync/Async : Synchronous
* Reentrancy : Reentrant
* Parameters (in) : None
* Parameters (inout) : None
* Parameters (out) : VersionInfoPtr - Pointer to Std_VersionInfoType structure
* Return value : None
* Description : Service for getting CDD UART driver version.
*
◆ Cdd_Uart_RegisterReadback()
Std_ReturnType Cdd_Uart_RegisterReadback |
( |
uint8 | ChannelID, |
|
|
CddUart_RegisterReadbackType * | RegisterSetPtr ) |
Service for reading HW IP registers of a CDD UART instance.
* Service name : Cdd_Uart_RegisterReadback
* Syntax : void Cdd_Uart_RegisterReadback(uint8 ChannelID, P2VAR(CddUart_RegisterReadbackType, AUTOMATIC, CDD_UART_CFG) RegisterSetPtr)
* Service ID[hex] : 0x08
* Sync/Async : Synchronous
* Reentrancy : Reentrant
* Parameters (in) : None
* Parameters (inout) : None
* Parameters (out) : RegisterSetPtr - Pointer to CddUart_RegisterReadbackType structure with useful registers for UART IP
* Return value : Std_ReturnType
* Description : Service for reading data or status from the HW registers of a CDD UART instance.
*
◆ Cdd_Uart_Init()
Service for CDD UART Initialization.
* Service name : Cdd_Uart_Init
* Syntax : void Cdd_Uart_Init(ConfigurationPtr)
* Service ID[hex] : 0x01
* Sync/Async : Synchronous
* Reentrancy : Non-Reentrant
* Parameters (in) : ConfigurationPtr - Constant Pointer to Cdd_Uart_CfgType containing configurations for all channels
* Parameters (inout) : None
* Parameters (out) : None
* Return value : None
* Description : Service for CDD UART Initialization.
*
◆ Cdd_Uart_DeInit()
void Cdd_Uart_DeInit |
( |
void | | ) |
|
Service for deinitializing CDD UART.
* Service name : Cdd_Uart_DeInit
* Syntax : void Cdd_Uart_DeInit(void)
* Service ID[hex] : 0x03
* Sync/Async : Synchronous
* Reentrancy : Non-Reentrant
* Parameters (in) : None
* Parameters (inout) : None
* Parameters (out) : None
* Return value : None
* Description : Service for deinitializing the CDD UART and change driver state to uninitialized
*
◆ Cdd_Uart_Write()
Std_ReturnType Cdd_Uart_Write |
( |
uint8 | ChannelID, |
|
|
CddUartDataBufferType * | SrcBufferPtr, |
|
|
uint32 | Count, |
|
|
uint32 | Timeout ) |
Service to transmit message using UART.
* Service name : Cdd_Uart_Write
* Syntax : Std_ReturnType Cdd_Uart_Write(uint8 ChannelID, CddUartDataBufferType* SrcBufferPtr,
* uint32 Count, uint32 Timeout)
* Service ID[hex] : 0x04
* Sync/Async : Synchronous
* Reentrancy : Reentrant
* Parameters (in) : ChannelID - Channel number to be used for writing data
* SrcBufferPtr - Pointer to source data buffer
* count - Length (number of data elements) of the data to be
* transmitted from SrcBufferPtr to remote endpoint
* timeout - maximum duration of transmission for blocking mode.
* Parameters (inout) : None
* Parameters (out) : None
* Return value : Std_ReturnType
* E_OK: If successful.
* E_NOT_OK: If the write failed.
* Description : Service to write message using the UART instance.
*
◆ Cdd_Uart_Read()
Std_ReturnType Cdd_Uart_Read |
( |
uint8 | ChannelID, |
|
|
CddUartDataBufferType * | DestBufferPtr, |
|
|
uint32 | Count, |
|
|
uint32 | Timeout ) |
Service to read message or command from the UART.
* Service name : Cdd_Uart_Read
* Syntax : Std_ReturnType Cdd_Uart_Read(uint8 ChannelID, CddUartDataBufferType *DestBufferPtr,
* uint32 Count, uint32 Timeout)
* Service ID[hex] : 0x05
* Sync/Async : Synchronous
* Reentrancy : Reentrant
* Parameters (in) : ChannelID - Channel number to be used for reading data
* DestBufferPtr - Pointer to destination data buffer from which the data is read.
* count - Length (number of data elements) of the data to be received from DestBufferPtr.
* timeout - maximum duration of transmission for blocking mode
* Parameters (inout) : None
* Parameters (out) : None
* Return value : Std_ReturnType
* E_OK: If data has been read
* E_NOT_OK: If the read returned an error.
* Description : Service to read message from the UART instance.
*
◆ Cdd_Uart_Cancel()
Service to cancel an ongoing transaction with UART.
* Service name : Cdd_Uart_Cancel
* Syntax : boolean Cdd_Uart_Cancel(uint8 ChannelID, CddUart_Transaction* Transaction, CddUartDataDirectionType TransferType)
* Service ID[hex] : 0x06
* Sync/Async : Synchronous
* Reentrancy : Reentrant
* Parameters (in) : ChannelID - Channel number
* Transaction - UART Transaction object
* TransferType - Read or Write
* Parameters (inout) : None
* Parameters (out) : None
* Return value : boolean
* Cancellation status (true for success, else false).
* Description : Service to cancel any ongoing message transmission using the UART.
*
◆ Cdd_Uart_GetRemainingWords()
Service to get remaining words to be transmitted from the UART for any ongoing transaction.
* Service name : Cdd_Uart_GetRemainingWords
* Syntax : uint32 Cdd_Uart_GetRemainingWords(uint8 ChannelID, CddUartDataDirectionType TransferType)
* Service ID[hex] : 0x07
* Sync/Async : Synchronous
* Reentrancy : Reentrant
* Parameters (in) : ChannelID - Channel number with ongoing write transaction
* TransferType - Read or write
* Parameters (inout) : None
* Parameters (out) : None
* Return value : uint32
* Size of the data left to be transmitted
* E_NOT_OK: If the transmission isn't ongoing.
* Description : Service to get remaining bytes to be transmitted in an ongoing operation from the UART instance.
*