Ejemplo n.º 1
0
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);
    }
}
Ejemplo n.º 2
0
size_t LOGUARTClass::write( const uint8_t uc_data )
{
    log_uart_putc(&log_uart_obj, uc_data);
  	return 1;
}