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
30 #define UR_COMPLETE_CB_FLAG (1 << UR_COMPLETE_CB_CODE)
31 #define UR_STARTED_CB_FLAG (1 << UR_STARTED_CB_CODE)
32 #define UR_START_BIT_ERR_CB_FLAG (1 << UR_START_BIT_ERR_CB_CODE)
33 #define UR_PARITY_ERR_CB_FLAG (1 << UR_PARITY_ERR_CB_CODE)
34 #define UR_FRAMING_ERR_CB_FLAG (1 << UR_FRAMING_ERR_CB_CODE)
35 #define UR_OVERRUN_ERR_CB_FLAG (1 << UR_OVERRUN_ERR_CB_CODE)
37 #if (UR_START_BIT_ERR_CB_CODE != UART_START_BIT_ERROR_VAL)
38 #error Please align the HIL uart_callback_code_t with CB codes in rtos_uart_rx.c
41 #define RX_ERROR_FLAGS (UR_START_BIT_ERR_CB_FLAG | UR_PARITY_ERR_CB_FLAG | UR_FRAMING_ERR_CB_FLAG)
42 #define RX_ALL_FLAGS (UR_COMPLETE_CB_FLAG | UR_STARTED_CB_FLAG | RX_ERROR_FLAGS)
53 #ifndef RTOS_UART_RX_BUF_LEN
54 #define RTOS_UART_RX_BUF_LEN (64 + 1)
61 #define RTOS_UART_RX_CALLBACK_ATTR __attribute__((fptrgroup("rtos_uart_rx_callback_fptr_grp")))
67 #define RTOS_UART_RX_CALL_ATTR __attribute__((fptrgroup("rtos_uart_rx_call_fptr_grp")))
128 streaming_channel_t c;
130 uart_buffer_t isr_to_app_fifo;
133 StreamBufferHandle_t app_byte_buffer;
135 rtos_osal_thread_t hil_thread;
136 rtos_osal_thread_t app_thread;
180 uint32_t io_core_mask,
214 unsigned interrupt_core_id,
216 size_t app_rx_buff_size);
uart_parity_t
Definition: uart.h:29
#define RTOS_UART_RX_BUF_LEN
Definition: rtos_uart_rx.h:54
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:109
void(* rtos_uart_rx_started_cb_t)(rtos_uart_rx_t *ctx)
Definition: rtos_uart_rx.h:84
#define RTOS_UART_RX_CALLBACK_ATTR
Definition: rtos_uart_rx.h:61
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:94
#define RTOS_UART_RX_CALL_ATTR
Definition: rtos_uart_rx.h:67
Definition: rtos_uart_rx.h:116