XCORE SDK
XCORE Software Development Kit
rtos_uart_tx.h
1 // Copyright 2022 XMOS LIMITED.
2 // This Software is subject to the terms of the XMOS Public Licence: Version 1.
3 
4 #ifndef RTOS_UART_TX_H_
5 #define RTOS_UART_TX_H_
6 
11 #define RTOS_UART_TX_CALL_ATTR __attribute__((fptrgroup("rtos_uart_tx_fptr_grp")))
12 
20 #include "uart.h"
21 
22 #include "rtos_osal.h"
23 
27 typedef struct rtos_uart_tx_struct rtos_uart_tx_t;
28 
35  RTOS_UART_TX_CALL_ATTR void (*write)(rtos_uart_tx_t *, const uint8_t buf[], size_t);
36  uart_tx_t dev;
37  rtos_osal_mutex_t lock;
38 };
39 
40 
41 
54 inline void rtos_uart_tx_write(
55  rtos_uart_tx_t *ctx,
56  const uint8_t buf[],
57  size_t n)
58 {
59  ctx->write(ctx, buf, n);
60 }
61 
77  rtos_uart_tx_t *ctx,
78  const port_t tx_port,
79  const uint32_t baud_rate,
80  const uint8_t num_data_bits,
81  const uart_parity_t parity,
82  const uint8_t stop_bits,
83  hwtimer_t tmr);
84 
96  rtos_uart_tx_t *ctx);
97 
98 
101 #endif /* RTOS_UART_TX_H_ */
uart_parity_t
Definition: uart.h:29
void rtos_uart_tx_start(rtos_uart_tx_t *ctx)
Definition: rtos_uart_tx.c:29
void rtos_uart_tx_write(rtos_uart_tx_t *ctx, const uint8_t buf[], size_t n)
Definition: rtos_uart_tx.h:54
void rtos_uart_tx_init(rtos_uart_tx_t *ctx, const port_t tx_port, const uint32_t baud_rate, const uint8_t num_data_bits, const uart_parity_t parity, const uint8_t stop_bits, hwtimer_t tmr)
Definition: rtos_uart_tx.c:35
Definition: rtos_uart_tx.h:34
Definition: uart.h:88
API for UART I/O.