Просмотр исходного кода

fix: 没设置串口回调时会调用空指针的bug, close #I4HREO

chenxuuu 4 лет назад
Родитель
Сommit
2dba8a922e
2 измененных файлов с 3 добавлено и 3 удалено
  1. BIN
      lib/libdrivers.a
  2. 3 3
      platform/drivers/uart/wm_uart.c

BIN
lib/libdrivers.a


+ 3 - 3
platform/drivers/uart/wm_uart.c

@@ -621,7 +621,7 @@ ATTRIBUTE_ISR void UART0_IRQHandler(void)
         fifos = port->regs->UR_FIFOS;
         uart_handle_cts_change(port, fifos & UFS_CST_STS);
     }
-    if (intr_src & UIS_RX_FIFO_TIMEOUT)
+    if (port->rx_callback != NULL && intr_src & UIS_RX_FIFO_TIMEOUT)
     {
         port->rx_callback(0, (void*)((int)port->priv_data+100));
     }
@@ -728,7 +728,7 @@ ATTRIBUTE_ISR void UART1_IRQHandler(void)
         fifos = port->regs->UR_FIFOS;
         uart_handle_cts_change(port, fifos & UFS_CST_STS);
     }
-    if (intr_src & UIS_RX_FIFO_TIMEOUT)
+    if (port->rx_callback != NULL && intr_src & UIS_RX_FIFO_TIMEOUT)
     {
         port->rx_callback(0, (void*)((int)port->priv_data+100));
     }
@@ -816,7 +816,7 @@ ATTRIBUTE_ISR void UART2_4_IRQHandler(void)
         fifos = port->regs->UR_FIFOS;
         uart_handle_cts_change(port, fifos & UFS_CST_STS);
     }
-    if (intr_src & UIS_RX_FIFO_TIMEOUT)
+    if (port->rx_callback != NULL && intr_src & UIS_RX_FIFO_TIMEOUT)
     {
         port->rx_callback(0, (void*)((int)port->priv_data+100));
     }