4 #ifndef RTOS_UART_RX_H_
5 #define RTOS_UART_RX_H_
14 #include <xcore/channel_streaming.h>
17 #include "rtos_osal.h"
18 #include "stream_buffer.h"
23 #define UR_COMPLETE_CB_CODE 0
24 #define UR_STARTED_CB_CODE 1
25 #define UR_START_BIT_ERR_CB_CODE 2
26 #define UR_PARITY_ERR_CB_CODE 3
27 #define UR_FRAMING_ERR_CB_CODE 4
28 #define UR_OVERRUN_ERR_CB_CODE 5
33 #define UR_COMPLETE_CB_FLAG (1 << UR_COMPLETE_CB_CODE)
34 #define UR_STARTED_CB_FLAG (1 << UR_STARTED_CB_CODE)
35 #define UR_START_BIT_ERR_CB_FLAG (1 << UR_START_BIT_ERR_CB_CODE)
36 #define UR_PARITY_ERR_CB_FLAG (1 << UR_PARITY_ERR_CB_CODE)
37 #define UR_FRAMING_ERR_CB_FLAG (1 << UR_FRAMING_ERR_CB_CODE)
38 #define UR_OVERRUN_ERR_CB_FLAG (1 << UR_OVERRUN_ERR_CB_CODE)
40 #if (UR_START_BIT_ERR_CB_CODE != UART_START_BIT_ERROR_VAL)
41 #error Please align the HIL uart_callback_code_t with CB codes in rtos_uart_rx.c
44 #define RX_ERROR_FLAGS (UR_START_BIT_ERR_CB_FLAG | UR_PARITY_ERR_CB_FLAG | UR_FRAMING_ERR_CB_FLAG)
45 #define RX_ALL_FLAGS (UR_COMPLETE_CB_FLAG | UR_STARTED_CB_FLAG | RX_ERROR_FLAGS)
56 #ifndef RTOS_UART_RX_BUF_LEN
57 #define RTOS_UART_RX_BUF_LEN (64 + 1)
64 #define RTOS_UART_RX_CALLBACK_ATTR __attribute__((fptrgroup("rtos_uart_rx_callback_fptr_grp")))
70 #define RTOS_UART_RX_CALL_ATTR __attribute__((fptrgroup("rtos_uart_rx_call_fptr_grp")))
130 streaming_channel_t c;
132 uart_buffer_t isr_to_app_fifo;
135 StreamBufferHandle_t app_byte_buffer;
137 rtos_osal_thread_t hil_thread;
138 rtos_osal_thread_t app_thread;
184 uint32_t io_core_mask,
218 unsigned interrupt_core_id,
220 size_t app_rx_buff_size);
uart_parity_t
Definition: uart.h:29
#define RTOS_UART_RX_BUF_LEN
Definition: rtos_uart_rx.h:57
void rtos_uart_rx_init(rtos_uart_rx_t *uart_rx_ctx, uint32_t io_core_mask, port_t rx_port, uint32_t baud_rate, uint8_t data_bits, uart_parity_t parity, uint8_t stop_bits, hwtimer_t tmr)
Definition: rtos_uart_rx.c:124
void(* rtos_uart_rx_error_t)(rtos_uart_rx_t *ctx, uint8_t err_flags)
Definition: rtos_uart_rx.h:112
void(* rtos_uart_rx_started_cb_t)(rtos_uart_rx_t *ctx)
Definition: rtos_uart_rx.h:87
#define RTOS_UART_RX_CALLBACK_ATTR
Definition: rtos_uart_rx.h:64
size_t rtos_uart_rx_read(rtos_uart_rx_t *uart_rx_ctx, uint8_t *buf, size_t n, rtos_osal_tick_t timeout)
Definition: rtos_uart_rx.c:104
void rtos_uart_rx_start(rtos_uart_rx_t *uart_rx_ctx, void *app_data, rtos_uart_rx_started_cb_t start, rtos_uart_rx_complete_cb_t rx_complete, rtos_uart_rx_error_t error, unsigned interrupt_core_id, unsigned priority, size_t app_rx_buff_size)
void rtos_uart_rx_reset_buffer(rtos_uart_rx_t *uart_rx_ctx)
Definition: rtos_uart_rx.c:119
void(* rtos_uart_rx_complete_cb_t)(rtos_uart_rx_t *ctx)
Definition: rtos_uart_rx.h:97
#define RTOS_UART_RX_CALL_ATTR
Definition: rtos_uart_rx.h:70
Definition: rtos_uart_rx.h:119