void serial_putc(serial_t *obj, int c) { #ifdef CONFIG_MBED_ENABLED if (obj->index == UART_3) { log_uart_putc(&stdio_uart_log, (char)c); // UnMask LOG_UART TX FIFO empty IRQ if (serial_log_irq_en & SERIAL_TX_IRQ_EN) { log_uart_t *log_obj = &stdio_uart_log; HAL_LOG_UART_ADAPTER *pUartAdapter=(PHAL_LOG_UART_ADAPTER)&(log_obj->log_hal_uart); pUartAdapter->IntEnReg |= IER_ETBEI; HalLogUartSetIntEn(pUartAdapter); } return; } #endif PHAL_RUART_ADAPTER pHalRuartAdapter=(PHAL_RUART_ADAPTER)&(obj->hal_uart_adp); u8 uart_idx = pHalRuartAdapter->UartIndex; while (!serial_writable(obj)); HAL_RUART_WRITE32(uart_idx, RUART_TRAN_HOLD_REG_OFF, (c & 0xFF)); if (serial_irq_en[uart_idx] & SERIAL_TX_IRQ_EN) { // UnMask TX FIFO empty IRQ pHalRuartAdapter->Interrupts |= RUART_IER_ETBEI; HalRuartSetIMRRtl8195a (pHalRuartAdapter); } }
size_t LOGUARTClass::write( const uint8_t uc_data ) { log_uart_putc(&log_uart_obj, uc_data); return 1; }