summaryrefslogtreecommitdiffstats
path: root/src/usart.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usart.c')
-rw-r--r--src/usart.c104
1 files changed, 0 insertions, 104 deletions
diff --git a/src/usart.c b/src/usart.c
deleted file mode 100644
index b0ea2a4..0000000
--- a/src/usart.c
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "project.h"
-
-#define BUFFER_SIZE 256
-
-static ring_t output_ring;
-static uint8_t output_ring_buf[BUFFER_SIZE];
-
-void
-usart1_isr (void)
-{
- uint8_t data;
-
- /* Check if we were called because of RXNE. */
- if (((USART_CR1 (USART1) & USART_CR1_RXNEIE) != 0) &&
- ((USART_SR (USART1) & USART_SR_RXNE) != 0))
- {
-
- /* Retrieve the data from the peripheral. */
- data = usart_recv (USART1);
-
- kvm_recv (data);
- }
-
- /* Check if we were called because of TXE. */
- if (((USART_CR1 (USART1) & USART_CR1_TXEIE) != 0) &&
- ((USART_SR (USART1) & USART_SR_TXE) != 0))
- {
-
- if (ring_read_byte (&output_ring, &data))
- {
- /*No more data, Disable the TXE interrupt, it's no longer needed. */
- USART_CR1 (USART1) &= ~USART_CR1_TXEIE;
- }
- else
- {
- usart_send (USART1, data);
- }
- }
-
-}
-
-int
-_write (int file, char *ptr, int len)
-{
- int ret;
-
- if (file == 1)
- {
- ret = ring_write (&output_ring, (uint8_t *) ptr, len);
-
- if (ret < 0)
- ret = -ret;
-
- USART_CR1 (USART1) |= USART_CR1_TXEIE;
- return ret;
- }
-
- errno = EIO;
- return -1;
-}
-
-void
-usart_queue (uint8_t d)
-{
- ring_write_byte(&output_ring,d);
- USART_CR1 (USART1) |= USART_CR1_TXEIE;
-
-#if 0
- printf ("0x%02x ", d);
- fflush (stdout);
-#endif
-}
-
-
-void
-usart_init (void)
-{
- ring_init (&output_ring, output_ring_buf, sizeof (output_ring_buf));
-
- /* Enable the USART1 interrupt. */
- nvic_enable_irq (NVIC_USART1_IRQ);
-
- /* Setup GPIO pin GPIO_USART1_RE_TX on GPIO port B for transmit. */
- gpio_set_mode (GPIOA, GPIO_MODE_OUTPUT_50_MHZ,
- GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO_USART1_TX);
-
- /* Setup GPIO pin GPIO_USART1_RE_RX on GPIO port B for receive. */
- gpio_set_mode (GPIOA, GPIO_MODE_INPUT,
- GPIO_CNF_INPUT_FLOAT, GPIO_USART1_RX);
-
- /* Setup UART parameters. */
- usart_set_baudrate (USART1, 38400);
- usart_set_databits (USART1, 8);
- usart_set_stopbits (USART1, USART_STOPBITS_1);
- usart_set_parity (USART1, USART_PARITY_NONE);
- usart_set_flow_control (USART1, USART_FLOWCONTROL_NONE);
- usart_set_mode (USART1, USART_MODE_TX_RX);
-
- /* Enable USART1 Receive interrupt. */
- USART_CR1 (USART1) |= USART_CR1_RXNEIE;
-
- /* Finally enable the USART. */
- usart_enable (USART1);
-}