MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / uart_isr

Function uart_isr

bsp/bluetrum/libraries/hal_drivers/drv_usart.c:237–267  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

235
236rt_section(".irq.usart")
237static void uart_isr(int vector, void *param)
238{
239 rt_interrupt_enter();
240
241#ifdef BSP_USING_UART0
242 if(hal_uart_getflag(UART0_BASE, UART_FLAG_RXPND)) //RX one byte finish
243 {
244 uart_obj[0].rx_buf[uart_obj[0].rx_idx++ % 10] = hal_uart_read(UART0_BASE);
245 hal_uart_clrflag(UART0_BASE, UART_FLAG_RXPND);
246 uart0_irq_post();
247 }
248#endif
249#ifdef BSP_USING_UART1
250 if(hal_uart_getflag(UART1_BASE, UART_FLAG_RXPND)) //RX one byte finish
251 {
252 uart_obj[1].rx_buf[uart_obj[1].rx_idx++ % 10] = hal_uart_read(UART1_BASE);
253 hal_uart_clrflag(UART1_BASE, UART_FLAG_RXPND);
254 uart1_irq_post();
255 }
256#endif
257#ifdef BSP_USING_UART2
258 if(hal_uart_getflag(UART2_BASE, UART_FLAG_RXPND)) //RX one byte finish
259 {
260 uart_obj[2].rx_buf[uart_obj[2].rx_idx++ % 10] = hal_uart_read(UART2_BASE);
261 hal_uart_clrflag(UART2_BASE, UART_FLAG_RXPND);
262 uart2_irq_post();
263 }
264#endif
265
266 rt_interrupt_leave();
267}
268
269#ifdef HUART_ENABLE
270rt_section(".irq.huart")

Callers

nothing calls this directly

Calls 8

hal_uart_getflagFunction · 0.85
hal_uart_readFunction · 0.85
hal_uart_clrflagFunction · 0.85
uart0_irq_postFunction · 0.85
uart1_irq_postFunction · 0.85
uart2_irq_postFunction · 0.85
rt_interrupt_enterFunction · 0.50
rt_interrupt_leaveFunction · 0.50

Tested by

no test coverage detected