Paparazzi UAS  v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
uart_arch.c File Reference

linux uart handling More...

#include <BOARD_CONFIG>
#include "mcu_periph/uart.h"
#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "serial_port.h"
#include "rt_priority.h"
#include <pthread.h>
#include <sys/select.h>
+ Include dependency graph for uart_arch.c:

Go to the source code of this file.

Macros

#define UART_THREAD_PRIO   11
 
#define TRACE(fmt, args...)
 

Functions

static void uart_receive_handler (struct uart_periph *periph)
 
static void * uart_thread (void *data)
 
void uart_arch_init (void)
 
void uart_periph_set_baudrate (struct uart_periph *periph, uint32_t baud)
 Set baudrate. More...
 
void uart_put_byte (struct uart_periph *periph, long fd, uint8_t data)
 Uart transmit implementation. More...
 
uint8_t uart_getch (struct uart_periph *p)
 
uint16_t uart_char_available (struct uart_periph *p)
 Check UART for available chars in receive buffer. More...
 

Variables

static pthread_mutex_t uart_mutex = PTHREAD_MUTEX_INITIALIZER
 

Detailed Description

linux uart handling

Definition in file uart_arch.c.

Macro Definition Documentation

#define TRACE (   fmt,
  args... 
)

Definition at line 52 of file uart_arch.c.

Referenced by uart_periph_set_baudrate(), uart_put_byte(), and uart_receive_handler().

#define UART_THREAD_PRIO   11

Definition at line 44 of file uart_arch.c.

Referenced by uart_thread().

Function Documentation

void uart_arch_init ( void  )

Definition at line 54 of file uart_arch.c.

Referenced by mcu_init().

+ Here is the caller graph for this function:

uint16_t uart_char_available ( struct uart_periph p)

Check UART for available chars in receive buffer.

Returns
number of chars in the buffer

Definition at line 296 of file uart_arch.c.

Referenced by airspeed_uADC_event(), esc32_event(), gps_piksi_event(), gps_piksi_read(), high_speed_logger_direct_memory_periodic(), hott_check_serial_data(), hott_send_telemetry_data(), imu_gx3_event(), imu_um6_event(), ReadGX3Buffer(), sbus_common_decode_event(), tunnel_event(), vn200_event(), and vn200_read_buffer().

+ Here is the caller graph for this function:

uint8_t uart_getch ( struct uart_periph p)
void uart_periph_set_baudrate ( struct uart_periph periph,
uint32_t  baud 
)

Set baudrate.

Definition at line 216 of file uart_arch.c.

References uart_periph::baudrate, uart_periph::dev, uart_periph::reg_addr, serial_port_close(), serial_port_free(), serial_port_new(), serial_port_open_raw(), and TRACE.

+ Here is the call graph for this function:

void uart_put_byte ( struct uart_periph periph,
long  fd,
uint8_t  data 
)

Uart transmit implementation.

Definition at line 243 of file uart_arch.c.

References SerialPort::fd, uart_periph::reg_addr, and TRACE.

static void uart_receive_handler ( struct uart_periph periph)
static

Definition at line 261 of file uart_arch.c.

References fd, SerialPort::fd, TRACE, and UART_RX_BUFFER_SIZE.

Referenced by uart_thread().

+ Here is the caller graph for this function:

static void * uart_thread ( void *  data)
static

Definition at line 65 of file uart_arch.c.

References fd, get_rt_prio(), uart_receive_handler(), and UART_THREAD_PRIO.

Referenced by uart_arch_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

pthread_mutex_t uart_mutex = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 49 of file uart_arch.c.