64 #define UART_CLK_DIVIDER 8
97 sizeof(g_ppui32UARTIntMapSnowflake[0]);
114 _UARTBaseValid(uint32_t ui32Base)
139 uint_fast8_t ui8Idx, ui8Rows;
140 const uint32_t (*ppui32UARTIntMap)[2];
158 for(ui8Idx = 0; ui8Idx < ui8Rows; ui8Idx++)
163 if(ppui32UARTIntMap[ui8Idx][0] == ui32Base)
168 return(ppui32UARTIntMap[ui8Idx][1]);
201 ASSERT(_UARTBaseValid(ui32Base));
236 ASSERT(_UARTBaseValid(ui32Base));
265 uint32_t ui32RxLevel)
270 ASSERT(_UARTBaseValid(ui32Base));
308 uint32_t *pui32RxLevel)
315 ASSERT(_UARTBaseValid(ui32Base));
369 uint32_t ui32Baud, uint32_t ui32Config)
376 ASSERT(_UARTBaseValid(ui32Base));
389 if((ui32Baud * 16) > ui32UARTClk)
413 ui32Div = (((ui32UARTClk * 8) / ui32Baud) + 1) / 2;
468 uint32_t *pui32Baud, uint32_t *pui32Config)
470 uint32_t ui32Int, ui32Frac;
475 ASSERT(_UARTBaseValid(ui32Base));
482 *pui32Baud = (ui32UARTClk * 4) / ((64 * ui32Int) + ui32Frac);
521 ASSERT(_UARTBaseValid(ui32Base));
553 ASSERT(_UARTBaseValid(ui32Base));
591 ASSERT(_UARTBaseValid(ui32Base));
616 ASSERT(_UARTBaseValid(ui32Base));
652 ASSERT(_UARTBaseValid(ui32Base));
693 ASSERT(_UARTBaseValid(ui32Base));
726 ASSERT(_UARTBaseValid(ui32Base));
768 ASSERT(_UARTBaseValid(ui32Base));
952 ASSERT(_UARTBaseValid(ui32Base));
988 ASSERT(_UARTBaseValid(ui32Base));
1025 ASSERT(_UARTBaseValid(ui32Base));
1064 ASSERT(_UARTBaseValid(ui32Base));
1092 ASSERT(_UARTBaseValid(ui32Base));
1119 ASSERT(_UARTBaseValid(ui32Base));
1148 ASSERT(_UARTBaseValid(ui32Base));
1189 ASSERT(_UARTBaseValid(ui32Base));
1227 ASSERT(_UARTBaseValid(ui32Base));
1273 ASSERT(_UARTBaseValid(ui32Base));
1309 ASSERT(_UARTBaseValid(ui32Base));
1341 ASSERT(_UARTBaseValid(ui32Base));
1376 ASSERT(_UARTBaseValid(ui32Base));
1421 ASSERT(_UARTBaseValid(ui32Base));
1476 ASSERT(_UARTBaseValid(ui32Base));
1508 ASSERT(_UARTBaseValid(ui32Base));
1538 ASSERT(_UARTBaseValid(ui32Base));
1586 ASSERT(_UARTBaseValid(ui32Base));
1622 ASSERT(_UARTBaseValid(ui32Base));
1654 ASSERT(_UARTBaseValid(ui32Base));
1685 ASSERT(_UARTBaseValid(ui32Base));
1713 ASSERT(_UARTBaseValid(ui32Base));
1750 ASSERT(_UARTBaseValid(ui32Base));
1783 ASSERT(_UARTBaseValid(ui32Base));
1812 ASSERT(_UARTBaseValid(ui32Base));
1841 ASSERT(_UARTBaseValid(ui32Base));
1877 ASSERT(_UARTBaseValid(ui32Base));
1917 ASSERT(_UARTBaseValid(ui32Base));
void UARTModemControlClear(uint32_t ui32Base, uint32_t ui32Control)
#define INT_UART7_TM4C129
void UARTFIFOEnable(uint32_t ui32Base)
uint32_t UARTClockSourceGet(uint32_t ui32Base)
void UARTSmartCardDisable(uint32_t ui32Base)
#define UART_CONFIG_PAR_EVEN
bool UARTCharsAvail(uint32_t ui32Base)
#define UART_FLOWCONTROL_RX
#define INT_UART4_TM4C123
#define UART_9BITADDR_9BITEN
#define UART_FLOWCONTROL_TX
#define INT_UART7_TM4C123
static uint32_t _UARTIntNumberGet(uint32_t ui32Base)
void UARTConfigSetExpClk(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t ui32Baud, uint32_t ui32Config)
void UARTParityModeSet(uint32_t ui32Base, uint32_t ui32Parity)
#define INT_UART4_TM4C129
#define UART_9BITADDR_ADDR_S
void UARTDMAEnable(uint32_t ui32Base, uint32_t ui32DMAFlags)
void UARTFIFOLevelSet(uint32_t ui32Base, uint32_t ui32TxLevel, uint32_t ui32RxLevel)
void UARTIntRegister(uint32_t ui32Base, void(*pfnHandler)(void))
void UARTIntDisable(uint32_t ui32Base, uint32_t ui32IntFlags)
void UARTIntClear(uint32_t ui32Base, uint32_t ui32IntFlags)
void UARTDisable(uint32_t ui32Base)
#define INT_UART6_TM4C123
void UARTBreakCtl(uint32_t ui32Base, bool bBreakState)
void UARTModemControlSet(uint32_t ui32Base, uint32_t ui32Control)
bool UARTSpaceAvail(uint32_t ui32Base)
void UARTSmartCardEnable(uint32_t ui32Base)
void UARTRxErrorClear(uint32_t ui32Base)
bool UARTBusy(uint32_t ui32Base)
#define INT_UART6_TM4C129
#define INT_UART5_TM4C123
uint32_t UARTModemStatusGet(uint32_t ui32Base)
int32_t UARTCharGetNonBlocking(uint32_t ui32Base)
void UART9BitEnable(uint32_t ui32Base)
#define UART_9BITAMASK_MASK_S
void UARTEnableSIR(uint32_t ui32Base, bool bLowPower)
void UART9BitDisable(uint32_t ui32Base)
uint32_t UARTIntStatus(uint32_t ui32Base, bool bMasked)
#define INT_UART0_TM4C129
bool UARTCharPutNonBlocking(uint32_t ui32Base, unsigned char ucData)
void UARTClockSourceSet(uint32_t ui32Base, uint32_t ui32Source)
#define UART_TXINT_MODE_FIFO
#define INT_UART3_TM4C123
#define INT_UART1_TM4C129
uint32_t UARTParityModeGet(uint32_t ui32Base)
void UARTDisableSIR(uint32_t ui32Base)
#define UART_CONFIG_PAR_ZERO
uint32_t UARTRxErrorGet(uint32_t ui32Base)
#define INT_UART0_TM4C123
void UARTConfigGetExpClk(uint32_t ui32Base, uint32_t ui32UARTClk, uint32_t *pui32Baud, uint32_t *pui32Config)
#define INT_UART2_TM4C129
static const uint32_t g_ppui32UARTIntMap[][2]
static const uint_fast8_t g_ui8UARTIntMapRowsSnowflake
int32_t UARTCharGet(uint32_t ui32Base)
#define UART_CONFIG_PAR_ODD
void UART9BitAddrSend(uint32_t ui32Base, uint8_t ui8Addr)
#define UART_CLOCK_SYSTEM
#define INT_UART5_TM4C129
void IntUnregister(uint32_t ui32Interrupt)
uint32_t UARTFlowControlGet(uint32_t ui32Base)
void UART9BitAddrSet(uint32_t ui32Base, uint8_t ui8Addr, uint8_t ui8Mask)
uint32_t UARTTxIntModeGet(uint32_t ui32Base)
void UARTFIFOLevelGet(uint32_t ui32Base, uint32_t *pui32TxLevel, uint32_t *pui32RxLevel)
#define INT_UART2_TM4C123
uint32_t UARTModemControlGet(uint32_t ui32Base)
void UARTEnable(uint32_t ui32Base)
#define INT_UART1_TM4C123
void UARTCharPut(uint32_t ui32Base, unsigned char ucData)
void UARTTxIntModeSet(uint32_t ui32Base, uint32_t ui32Mode)
void UARTIntEnable(uint32_t ui32Base, uint32_t ui32IntFlags)
void UARTFlowControlSet(uint32_t ui32Base, uint32_t ui32Mode)
static const uint32_t g_ppui32UARTIntMapSnowflake[][2]
#define UART_CONFIG_PAR_ONE
#define INT_UART3_TM4C129
static const uint_fast8_t g_ui8UARTIntMapRows
#define UART_CONFIG_PAR_NONE
void UARTIntUnregister(uint32_t ui32Base)
#define UART_TXINT_MODE_EOT
void IntDisable(uint32_t ui32Interrupt)
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
void IntEnable(uint32_t ui32Interrupt)
void UARTDMADisable(uint32_t ui32Base, uint32_t ui32DMAFlags)
void UARTFIFODisable(uint32_t ui32Base)