Paparazzi UAS
v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
|
UART/Serial driver implementation for ChibiOS arch. More...
Go to the source code of this file.
Data Structures | |
struct | SerialInit |
Functions | |
static void | handle_uart_rx (struct uart_periph *p) |
RX handler. More... | |
static void | handle_uart_tx (struct uart_periph *p) |
TX handler. More... | |
uint8_t | uart_getch (struct uart_periph *p) |
void | uart_periph_set_baudrate (struct uart_periph *p, uint32_t baud) |
Set baudrate. More... | |
void | uart_periph_set_mode (struct uart_periph *p, bool tx_enabled, bool rx_enabled, bool hw_flow_control) |
Set mode (not necessary, or can be set by SerialConfig) More... | |
void | uart_periph_set_bits_stop_parity (struct uart_periph *p, uint8_t bits, uint8_t stop, uint8_t parity) |
Set parity and stop bits. More... | |
bool | uart_check_free_space (struct uart_periph *p, long *fd, uint16_t len) |
void | uart_put_byte (struct uart_periph *p, long fd, uint8_t data) |
Uart transmit implementation. More... | |
void | uart_put_buffer (struct uart_periph *p, long fd, const uint8_t *data, uint16_t len) |
Uart transmit buffer implementation. More... | |
void | uart_send_message (struct uart_periph *p, long fd) |
UART/Serial driver implementation for ChibiOS arch.
ChibiOS has a high level Serial Driver, for Paparazzi it is more convenient than pure UART driver (which needs callbacks etc.). This implementation is asynchronous and the RX thread has to use event flags. See ChibiOS documen- tation.
Definition in file uart_arch.c.
struct SerialInit |
Definition at line 42 of file uart_arch.c.
Data Fields | ||
---|---|---|
SerialConfig * | conf | |
mutex_t * | rx_mtx | |
semaphore_t * | rx_sem | |
mutex_t * | tx_mtx | |
semaphore_t * | tx_sem |
|
static |
RX handler.
Definition at line 53 of file uart_arch.c.
References uart_periph::init_struct, uart_periph::reg_addr, uart_periph::rx_buf, uart_periph::rx_extract_idx, uart_periph::rx_insert_idx, SerialInit::rx_mtx, SerialInit::rx_sem, and UART_RX_BUFFER_SIZE.
|
static |
TX handler.
Definition at line 74 of file uart_arch.c.
References uart_periph::init_struct, uart_periph::reg_addr, uart_periph::tx_buf, uart_periph::tx_extract_idx, uart_periph::tx_insert_idx, SerialInit::tx_mtx, uart_periph::tx_running, SerialInit::tx_sem, and UART_TX_BUFFER_SIZE.
bool uart_check_free_space | ( | struct uart_periph * | p, |
long * | fd, | ||
uint16_t | len | ||
) |
Definition at line 899 of file uart_arch.c.
Referenced by sdlogger_spi_direct_periodic(), send_buffer_to_uart(), and tunnel_event().
uint8_t uart_getch | ( | struct uart_periph * | p | ) |
Definition at line 822 of file uart_arch.c.
Referenced by airspeed_uADC_event(), esc32_event(), gps_piksi_read(), high_speed_logger_direct_memory_periodic(), hott_check_serial_data(), hott_send_telemetry_data(), imu_um6_event(), ReadGX3Buffer(), sbus_common_decode_event(), tunnel_event(), and vn200_read_buffer().
void uart_periph_set_baudrate | ( | struct uart_periph * | p, |
uint32_t | baud | ||
) |
Set baudrate.
Definition at line 838 of file uart_arch.c.
Referenced by gps_ubx_ucenter_autobaud(), gps_ubx_ucenter_configure(), px4flash_event(), sbus_common_init(), and uart_periph_init().
void uart_periph_set_bits_stop_parity | ( | struct uart_periph * | p, |
uint8_t | bits, | ||
uint8_t | stop, | ||
uint8_t | parity | ||
) |
Set parity and stop bits.
Definition at line 858 of file uart_arch.c.
Referenced by high_speed_logger_direct_memory_init(), and sbus_common_init().
void uart_periph_set_mode | ( | struct uart_periph * | p, |
bool | tx_enabled, | ||
bool | rx_enabled, | ||
bool | hw_flow_control | ||
) |
Set mode (not necessary, or can be set by SerialConfig)
Definition at line 852 of file uart_arch.c.
Referenced by hott_enable_receiver(), and hott_enable_transmitter().
void uart_put_buffer | ( | struct uart_periph * | p, |
long | fd, | ||
const uint8_t * | data, | ||
uint16_t | len | ||
) |
Uart transmit buffer implementation.
Definition at line 945 of file uart_arch.c.
void uart_put_byte | ( | struct uart_periph * | p, |
long | fd, | ||
uint8_t | data | ||
) |
Uart transmit implementation.
Definition at line 917 of file uart_arch.c.
Referenced by ahrs_gx3_align(), direct_memory_logger_periodic(), drop_ball(), esc32_periodic(), esc32_send(), gps_piksi_write(), hott_send_telemetry_data(), imu_gx3_init(), sdlogger_spi_direct_periodic(), send_buffer_to_uart(), tunnel_event(), uart_periph_init(), uart_put_buffer(), and UM6_send_packet().
void uart_send_message | ( | struct uart_periph * | p, |
long | fd | ||
) |
Definition at line 975 of file uart_arch.c.