Example #1
0
void UARTClass::IrqHandler( void )
{
  uint8_t uc_data;
  int ret;
  ret = uart_poll_in(CONFIG_UART_CONSOLE_INDEX, &uc_data);
  
  while ( ret != -1 ) {
    _rx_buffer->store_char(uc_data);
    ret = uart_poll_in(CONFIG_UART_CONSOLE_INDEX, &uc_data);
  }

  // Do we need to keep sending data?
  if (!uart_irq_tx_ready(CONFIG_UART_CONSOLE_INDEX))
  {
    if (_tx_buffer->_iTail != _tx_buffer->_iHead) {
      uart_poll_out(CONFIG_UART_CONSOLE_INDEX, _tx_buffer->_aucBuffer[_tx_buffer->_iTail]);
      _tx_buffer->_iTail = (unsigned int)(_tx_buffer->_iTail + 1) % SERIAL_BUFFER_SIZE;
    }
    else
    {
      // Mask off transmit interrupt so we don't get it anymore
      uart_irq_tx_disable(CONFIG_UART_CONSOLE_INDEX);
    }
  }
}
Example #2
0
static int console_in(void)
{
	unsigned char c;

	if (uart_poll_in(uart_console_dev, &c) < 0)
		return EOF;
	else
		return (int)c;
}
Example #3
0
static void test_by_polling(struct device *dev)
{
	unsigned char data;

	write_string(dev, banner1, strlen(banner1));

	/* Poll in the character */
	while (uart_poll_in(dev, &data) == -1)
		;

	write_string(dev, banner2, strlen(banner2));
	write_string(dev, &data, 1);
	write_string(dev, "\n", 1);
}
Example #4
0
void UARTClass::end( void )
{
  int ret=0;
  uint8_t uc_data;
  // Wait for any outstanding data to be sent
  flush();
  uart_irq_rx_disable(CONFIG_UART_CONSOLE_INDEX);
  uart_irq_tx_disable(CONFIG_UART_CONSOLE_INDEX);
  while ( ret != -1 ) {
    ret = uart_poll_in(CONFIG_UART_CONSOLE_INDEX, &uc_data);
  }
  opened = false;
  // Clear any received data
  _rx_buffer->_iHead = _rx_buffer->_iTail;
}
Example #5
0
void UARTClass::end( void )
{
  int ret=0;
  uint8_t uc_data;
  // Wait for any outstanding data to be sent
  flush();
  uart_irq_rx_disable(CONFIG_UART_CONSOLE_INDEX);
  uart_irq_tx_disable(CONFIG_UART_CONSOLE_INDEX);
  while ( ret != -1 ) {
    ret = uart_poll_in(CONFIG_UART_CONSOLE_INDEX, &uc_data);
  }
  opened = false;
  // Clear any received data
  _rx_buffer->_iHead = _rx_buffer->_iTail;

  SET_PIN_MODE(17, GPIO_MUX_MODE); // Rdx SOC PIN (Arduino header pin 0)
  SET_PIN_MODE(16, GPIO_MUX_MODE); // Txd SOC PIN (Arduino header pin 1)
}