35 #define BSP_SER_MODULE
45 #define BSP_SER_PORT_NBR_MAX BSP_SER_ID_UART0
47 #define LM3SXXXX_BASE_UART0 0x4000C000uL
48 #define LM3SXXXX_BASE_UART1 0x4000D000uL
49 #define LM3SXXXX_BASE_UART2 0x4000E000uL
57 #define LM3SXXXX_BIT_UARTDR_FE DEF_BIT_08
58 #define LM3SXXXX_BIT_UARTDR_PE DEF_BIT_09
59 #define LM3SXXXX_BIT_UARTDR_BE DEF_BIT_10
60 #define LM3SXXXX_BIT_UARTDR_OE DEF_BIT_11
62 #define LM3SXXXX_BIT_UARTRSR_FE DEF_BIT_00
63 #define LM3SXXXX_BIT_UARTRSR_PE DEF_BIT_01
64 #define LM3SXXXX_BIT_UARTRSR_BE DEF_BIT_02
65 #define LM3SXXXX_BIT_UARTRSR_OE DEF_BIT_03
67 #define LM3SXXXX_BIT_UARTFR_CTS DEF_BIT_00
68 #define LM3SXXXX_BIT_UARTFR_DSR DEF_BIT_01
69 #define LM3SXXXX_BIT_UARTFR_DCD DEF_BIT_02
70 #define LM3SXXXX_BIT_UARTFR_BUSY DEF_BIT_03
71 #define LM3SXXXX_BIT_UARTFR_RXFE DEF_BIT_04
72 #define LM3SXXXX_BIT_UARTFR_TXFF DEF_BIT_05
73 #define LM3SXXXX_BIT_UARTFR_RXFF DEF_BIT_06
74 #define LM3SXXXX_BIT_UARTFR_TXFE DEF_BIT_07
75 #define LM3SXXXX_BIT_UARTFR_RI DEF_BIT_08
77 #define LM3SXXXX_BIT_UARTLCRH_BRK DEF_BIT_00
78 #define LM3SXXXX_BIT_UARTLCRH_PEN DEF_BIT_01
79 #define LM3SXXXX_BIT_UARTLCRH_EPS DEF_BIT_02
80 #define LM3SXXXX_BIT_UARTLCRH_STP2 DEF_BIT_03
81 #define LM3SXXXX_BIT_UARTLCRH_FEN DEF_BIT_04
82 #define LM3SXXXX_BIT_UARTLCRH_WLEN_5 0x00000000
83 #define LM3SXXXX_BIT_UARTLCRH_WLEN_6 0x00000020
84 #define LM3SXXXX_BIT_UARTLCRH_WLEN_7 0x00000040
85 #define LM3SXXXX_BIT_UARTLCRH_WLEN_8 0x00000060
87 #define LM3SXXXX_BIT_UARTCTL_UARTEN DEF_BIT_00
88 #define LM3SXXXX_BIT_UARTCTL_SIREN DEF_BIT_01
89 #define LM3SXXXX_BIT_UARTCTL_SIRLP DEF_BIT_02
90 #define LM3SXXXX_BIT_UARTCTL_SMART DEF_BIT_03
91 #define LM3SXXXX_BIT_UARTCTL_EOT DEF_BIT_04
92 #define LM3SXXXX_BIT_UARTCTL_HSE DEF_BIT_05
93 #define LM3SXXXX_BIT_UARTCTL_LIN DEF_BIT_06
94 #define LM3SXXXX_BIT_UARTCTL_LBE DEF_BIT_07
95 #define LM3SXXXX_BIT_UARTCTL_TXE DEF_BIT_08
96 #define LM3SXXXX_BIT_UARTCTL_RXE DEF_BIT_09
97 #define LM3SXXXX_BIT_UARTCTL_DTR DEF_BIT_10
98 #define LM3SXXXX_BIT_UARTCTL_RTS DEF_BIT_11
100 #define LM3SXXXX_BIT_UARTFLS_RX_1_8 0x00000000
101 #define LM3SXXXX_BIT_UARTFLS_RX_1_4 0x00000080
102 #define LM3SXXXX_BIT_UARTFLS_RX_1_2 0x00000100
103 #define LM3SXXXX_BIT_UARTFLS_RX_3_4 0x00000180
104 #define LM3SXXXX_BIT_UARTFLS_RX_7_8 0x00000200
105 #define LM3SXXXX_BIT_UARTFLS_TX_1_8 0x00000000
106 #define LM3SXXXX_BIT_UARTFLS_TX_1_4 0x00000001
107 #define LM3SXXXX_BIT_UARTFLS_TX_1_2 0x00000002
108 #define LM3SXXXX_BIT_UARTFLS_TX_3_4 0x00000003
109 #define LM3SXXXX_BIT_UARTFLS_TX_7_8 0x00000004
111 #define LM3SXXXX_BIT_UARTINT_RX DEF_BIT_04
112 #define LM3SXXXX_BIT_UARTINT_TX DEF_BIT_05
113 #define LM3SXXXX_BIT_UARTINT_RT DEF_BIT_06
114 #define LM3SXXXX_BIT_UARTINT_FE DEF_BIT_07
115 #define LM3SXXXX_BIT_UARTINT_PE DEF_BIT_08
116 #define LM3SXXXX_BIT_UARTINT_BE DEF_BIT_09
117 #define LM3SXXXX_BIT_UARTINT_OE DEF_BIT_10
133 typedef struct lm3sxxxx_struct_uart {
220 idiv = clk_freq / (16u * baud_rate);
221 fdiv = clk_freq % (16u * baud_rate);
222 fdiv = ((((2u * fdiv * 4u) / baud_rate) + 1u) / 2u);
228 SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
229 SysCtlPeripheralReset(SYSCTL_PERIPH_UART0);
230 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
231 GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);
235 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART1)
237 SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1);
238 SysCtlPeripheralReset(SYSCTL_PERIPH_UART1);
239 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
240 GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_3);
245 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART2)
247 SysCtlPeripheralEnable(SYSCTL_PERIPH_UART2);
248 SysCtlPeripheralReset(SYSCTL_PERIPH_UART2);
249 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
250 GPIOPinTypeUART(GPIO_PORTG_BASE, GPIO_PIN_0 | GPIO_PIN_1);
263 uart->
FR = 0x00000000;
265 uart->
IFLS = 0x00000000;
313 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART1)
319 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART2)
388 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART1)
394 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART2)
407 while (cnt < size - 1u) {
478 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART1)
484 #if (BSP_SER_PORT_NBR_MAX >= BSP_SER_ID_UART2)
544 va_start(vArgs, format);
545 vsnprintf((
char *)buf,
sizeof(buf) - 1, (
char const *)format, vArgs);
586 va_start(vArgs, format);
587 vsnprintf((
char *)buf,
sizeof(buf) - 1, (
char const *)format, vArgs);
595 return ((
int)len_wr);