Handles Serial Bridge driver functionalities.
Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.
#include "asf.h"
#include "serial_bridge.h"
#include "conf_serialbridge.h"
#include "serial_fifo.h"
#include "ble_utils.h"
#include "conf_serialdrv.h"
#include "serial_drv.h"
Macros | |
#define | ioport_set_pin_peripheral_mode(pin, mode) |
Set peripheral mode for one single IOPORT pin. More... | |
Functions | |
void | ble_pdc_send_data (uint8_t *buf, uint16_t len) |
void | platform_dtm_interface_receive (uint8_t rx_data) |
void | SB_UART_Handler (void) |
uint8_t | serial_bridge_init (void) |
This module performs serial input/output functionalities via UART. More... | |
void | serial_bridge_task (void) |
Bridges the UARTS. More... | |
Variables | |
static uint8_t | ble_eusart_rx_buf [BLE_MAX_TX_PAYLOAD_SIZE] |
static ser_fifo_desc_t | ble_eusart_rx_fifo |
static uint8_t | ble_eusart_tx_buf [BLE_MAX_TX_PAYLOAD_SIZE] |
volatile bool | ble_eusart_tx_cmpl = true |
static ser_fifo_desc_t | ble_eusart_tx_fifo |
uint8_t | ble_usart_rx_buf [BLE_MAX_RX_PAYLOAD_SIZE] |
ser_fifo_desc_t | ble_usart_rx_fifo |
static uint8_t | ble_usart_tx_buf [BLE_MAX_TX_PAYLOAD_SIZE] |
volatile bool | ble_usart_tx_cmpl |
ser_fifo_desc_t | ble_usart_tx_fifo |
#define ioport_set_pin_peripheral_mode | ( | pin, | |
mode | |||
) |
Set peripheral mode for one single IOPORT pin.
It will configure port mode and disable pin mode (but enable peripheral).
pin | IOPORT pin to configure |
mode | Mode masks to configure for the specified pin (IOPORT Modes) |
void ble_pdc_send_data | ( | uint8_t * | buf, |
uint16_t | len | ||
) |
References BLE_UART, ble_usart_pdc, pdc_tx_init(), pdc_packet::ul_addr, pdc_packet::ul_size, and usart_enable_interrupt().
Referenced by ble_pdc_serial_drv_send(), and serial_bridge_task().
void platform_dtm_interface_receive | ( | uint8_t | rx_data | ) |
References platform_start_rx, and ser_fifo_push_uint8().
Referenced by ble_init().
void SB_UART_Handler | ( | void | ) |
uint8_t serial_bridge_init | ( | void | ) |
This module performs serial input/output functionalities via UART.
Initializes the Serial IO Module
References sam_usart_opt_t::baudrate, ble_eusart_rx_buf, ble_eusart_tx_buf, BLE_MAX_RX_PAYLOAD_SIZE, BLE_MAX_TX_PAYLOAD_SIZE, ble_usart_rx_buf, ble_usart_tx_buf, CONF_UART_BAUDRATE, pio_pull_up(), PIO_PULLUP, SB_UART, SB_UART_ID, SB_UART_IRQn, ser_fifo_init(), STATUS_OK, sysclk_enable_peripheral_clock(), sysclk_get_peripheral_hz(), uart_enable_interrupt(), uart_init(), sam_uart_opt::ul_mck, usart_enable_interrupt(), usart_enable_rx(), usart_enable_tx(), and usart_init_rs232().
Referenced by main().
void serial_bridge_task | ( | void | ) |
Bridges the UARTS.
Takes | the data from one USART Rx to other USART Tx and vice versa |
References ble_eusart_tx_cmpl, ble_pdc_send_data(), ble_usart_tx_cmpl, LED0, LED_Toggle, SB_UART, SER_FIFO_OK, ser_fifo_pull_uint8(), ser_fifo_push_uint8(), uart_enable_interrupt(), uart_write(), usart_enable_interrupt(), and usart_putchar().
Referenced by main().
|
static |
Referenced by serial_bridge_init().
|
static |
|
static |
Referenced by serial_bridge_init().
Referenced by SB_UART_Handler(), and serial_bridge_task().
|
static |
uint8_t ble_usart_rx_buf[BLE_MAX_RX_PAYLOAD_SIZE] |
Referenced by serial_bridge_init().
ser_fifo_desc_t ble_usart_rx_fifo |
|
static |
Referenced by serial_bridge_init().
volatile bool ble_usart_tx_cmpl |
Referenced by ble_pdc_serial_drv_send(), ble_pdc_uart_handler(), platform_serial_drv_tx_status(), and serial_bridge_task().
ser_fifo_desc_t ble_usart_tx_fifo |