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 
56 inline void rtos_uart_tx_write(
57  rtos_uart_tx_t *ctx,
58  const uint8_t buf[],
59  size_t n)
60 {
61  ctx->write(ctx, buf, n);
62 }
63 
79  rtos_uart_tx_t *ctx,
80  const port_t tx_port,
81  const uint32_t baud_rate,
82  const uint8_t num_data_bits,
83  const uart_parity_t parity,
84  const uint8_t stop_bits,
85  hwtimer_t tmr);
86 
98  rtos_uart_tx_t *ctx);
99 
100 
103 #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:56
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:77
API for UART I/O.