18#ifndef __VSF_TEMPLATE_USART_H__
19#define __VSF_TEMPLATE_USART_H__
32#ifndef VSF_USART_CFG_MULTI_CLASS
33# define VSF_USART_CFG_MULTI_CLASS ENABLED
36#if defined(VSF_HW_USART_COUNT) && !defined(VSF_HW_USART_MASK)
37# define VSF_HW_USART_MASK VSF_HAL_COUNT_TO_MASK(VSF_HW_USART_COUNT)
40#if defined(VSF_HW_USART_MASK) && !defined(VSF_HW_USART_COUNT)
41# define VSF_HW_USART_COUNT VSF_HAL_MASK_TO_COUNT(VSF_HW_USART_MASK)
53#ifndef VSF_USART_CFG_PREFIX
54# if VSF_USART_CFG_MULTI_CLASS == ENABLED
55# define VSF_USART_CFG_PREFIX vsf
56# elif defined(VSF_HW_USART_COUNT) && (VSF_HW_USART_COUNT != 0)
57# define VSF_USART_CFG_PREFIX vsf_hw
59# define VSF_USART_CFG_PREFIX vsf
65#ifndef VSF_USART_CFG_FUNCTION_RENAME
66# define VSF_USART_CFG_FUNCTION_RENAME ENABLED
71#ifndef VSF_USART_CFG_REIMPLEMENT_TYPE_MODE
72# define VSF_USART_CFG_REIMPLEMENT_TYPE_MODE DISABLED
77#ifndef VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK
78# define VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK DISABLED
83#ifndef VSF_USART_CFG_REIMPLEMENT_TYPE_STATUS
84# define VSF_USART_CFG_REIMPLEMENT_TYPE_STATUS DISABLED
89#ifndef VSF_USART_CFG_REIMPLEMENT_TYPE_CMD
90# define VSF_USART_CFG_REIMPLEMENT_TYPE_CMD DISABLED
93#ifndef VSF_USART_CFG_REIMPLEMENT_MODE_TO_DATA_BITS
94# define VSF_USART_CFG_REIMPLEMENT_MODE_TO_DATA_BITS \
101#if VSF_USART_CFG_REIMPLEMENT_TYPE_CFG == DISABLED
102# define VSF_USART_CFG_REIMPLEMENT_TYPE_CFG DISABLED
108#if VSF_USART_CFG_REIMPLEMENT_TYPE_CAPABILITY == DISABLED
109# define VSF_USART_CFG_REIMPLEMENT_TYPE_CAPABILITY DISABLED
112#ifndef VSF_USART_CFG_INHERT_HAL_CAPABILITY
113# define VSF_USART_CFG_INHERT_HAL_CAPABILITY ENABLED
116#ifndef VSF_USART_CFG_REQUEST_API
117# define VSF_USART_CFG_REQUEST_API ENABLED
120#ifndef VSF_USART_CFG_FIFO_API
121# define VSF_USART_CFG_FIFO_API ENABLED
126#define __VSF_USART_BASE_APIS(__prefix_name) \
127 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, usart, init, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, vsf_usart_cfg_t *cfg_ptr) \
128 __VSF_HAL_TEMPLATE_API(__prefix_name, void, usart, fini, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
129 __VSF_HAL_TEMPLATE_API(__prefix_name, fsm_rt_t, usart, enable, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
130 __VSF_HAL_TEMPLATE_API(__prefix_name, fsm_rt_t, usart, disable, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
131 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_usart_capability_t, usart, capability, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
132 __VSF_HAL_TEMPLATE_API(__prefix_name, void, usart, irq_enable, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, vsf_usart_irq_mask_t irq_mask) \
133 __VSF_HAL_TEMPLATE_API(__prefix_name, void, usart, irq_disable, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, vsf_usart_irq_mask_t irq_mask) \
134 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_usart_status_t, usart, status, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr)
136#if VSF_USART_CFG_FIFO_API == ENABLED
137# define __VSF_USART_FIFO_APIS(__prefix_name) \
138 __VSF_HAL_TEMPLATE_API(__prefix_name, uint_fast16_t, usart, rxfifo_get_data_count, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
139 __VSF_HAL_TEMPLATE_API(__prefix_name, uint_fast16_t, usart, rxfifo_read, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, void *buffer_ptr, uint_fast16_t count) \
140 __VSF_HAL_TEMPLATE_API(__prefix_name, uint_fast16_t, usart, txfifo_get_free_count, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
141 __VSF_HAL_TEMPLATE_API(__prefix_name, uint_fast16_t, usart, txfifo_write, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, void *buffer_ptr, uint_fast16_t count)
143# define __VSF_USART_FIFO_APIS(__prefix_name)
146#if VSF_USART_CFG_REQUEST_API == ENABLED
147# define __VSF_USART_REQUEST_APIS(__prefix_name) \
148 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, usart, request_rx, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, void *buffer_ptr, uint_fast32_t count) \
149 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, usart, request_tx, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, void *buffer_ptr, uint_fast32_t count) \
150 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, usart, cancel_rx, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
151 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, usart, cancel_tx, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
152 __VSF_HAL_TEMPLATE_API(__prefix_name, int_fast32_t, usart, get_rx_count, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
153 __VSF_HAL_TEMPLATE_API(__prefix_name, int_fast32_t, usart, get_tx_count, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr)
155# define __VSF_USART_REQUEST_APIS(__prefix_name)
158#define __VSF_USART_REQUEST_EXTRA_APIS(__prefix_name) \
159 __VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, usart, cmd, VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr, vsf_usart_cmd_t cmd, void* param)
161#define VSF_USART_ADDITIONAL_APIS(__prefix_name) \
162 static inline vsf_err_t VSF_MCONNECT(__prefix_name, _usart_send_break) \
163 (VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
165 return VSF_MCONNECT(__prefix_name, _usart_cmd)(usart_ptr, \
166 VSF_USART_CMD_SEND_BREAK, NULL); \
168 static inline vsf_err_t VSF_MCONNECT(__prefix_name, _usart_set_break) \
169 (VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
171 vsf_usart_capability_t cap = \
172 VSF_MCONNECT(__prefix_name, _usart_capability)(usart_ptr); \
173 VSF_HAL_ASSERT(cap.support_set_and_clear_break); \
174 return VSF_MCONNECT(__prefix_name, _usart_cmd)(usart_ptr, \
175 VSF_USART_CMD_SET_BREAK, NULL); \
177 static inline vsf_err_t VSF_MCONNECT(__prefix_name, _usart_clear_break) \
178 (VSF_MCONNECT(__prefix_name, _usart_t) *usart_ptr) \
180 vsf_usart_capability_t cap = \
181 VSF_MCONNECT(__prefix_name, _usart_capability)(usart_ptr); \
182 VSF_HAL_ASSERT(cap.support_set_and_clear_break); \
183 return VSF_MCONNECT(__prefix_name, _usart_cmd)(usart_ptr, \
184 VSF_USART_CMD_CLEAR_BREAK, NULL); \
187#define VSF_USART_APIS(__prefix_name) \
188 __VSF_USART_BASE_APIS(__prefix_name) \
189 __VSF_USART_FIFO_APIS(__prefix_name) \
190 __VSF_USART_REQUEST_APIS(__prefix_name) \
191 __VSF_USART_REQUEST_EXTRA_APIS(__prefix_name)
195#if VSF_USART_CFG_REIMPLEMENT_TYPE_MODE == DISABLED
327 VSF_USART_IRDA_ENABLE = (0x1ul << 18),
328 VSF_USART_IRDA_DISABLE = (0x0ul << 18),
329 #define VSF_USART_IRDA_ENABLE VSF_USART_IRDA_ENABLE
330 #define VSF_USART_IRDA_DISABLE VSF_USART_IRDA_DISABLE
331 #define VSF_USART_IRDA_MASK VSF_USART_IRDA_ENABLE | VSF_USART_IRDA_DISABLE
333 VSF_USART_SMARTCARD_ENABLE = (0x1ul << 19),
334 VSF_USART_SMARTCARD_DISABLE = (0x0ul << 19),
335 #define VSF_USART_SMARTCARD_ENABLE VSF_USART_SMARTCARD_ENABLE
336 #define VSF_USART_SMARTCARD_DISABLE VSF_USART_SMARTCARD_DISABLE
337 #define VSF_USART_SMARTCARD_MASK VSF_USART_SMARTCARDENABLE | VSF_USART_SMARTCARD_DISABLE
339 // whether the clock pulse corresponding to the last transmitted
340 VSF_USART_SYNC_CLOCK_LAST_BIT_ENABLE = (0x0ul << 20),
341 VSF_USART_SYNC_CLOCK_LAST_BIT_DISABLE = (0x0ul << 20),
342 #define VSF_USART_SYNC_CLOCK_LAST_BIT_ENABLE VSF_USART_SYNC_CLOCK_LAST_BIT_ENABLE
343 #define VSF_USART_SYNC_CLOCK_LAST_BIT_DISABLE VSF_USART_SYNC_CLOCK_LAST_BIT_DISABLE
344 #define VSF_USART_SYNC_CLOCK_LAST_BIT_MASK VSF_USART_SYNC_CLOCK_LAST_BIT_ENABLE | \
345 VSF_USART_SYNC_CLOCK_LAST_BIT_DISABLE
347 // divisor of IRDA clock
348 VSF_USART_IRDA_PRESCALER_BIT_OFFSET = (21),
349 VSF_USART_IRDA_PRESCALER_MASK = (0xFul << VSF_USART_IRDA_PRESCALER_BIT_OFFSET),
350 #define VSF_USART_IRDA_PRESCALER_BIT_OFFSET VSF_USART_IRDA_PRESCALER_BIT_OFFSET
351 #define VSF_USART_IRDA_PRESCALER_MASK VSF_USART_IRDA_PRESCALER_MASK
357#ifndef VSF_USART_PARITY_MASK
365#ifndef VSF_USART_STOPBIT_MASK
372#ifndef VSF_USART_BIT_LENGTH_MASK
381#ifndef VSF_USART_TX_FIFO_THRESH_MASK
387#ifndef VSF_USART_RX_FIFO_THRESH_MASK
393#ifndef VSF_USART_HWCONTROL_MASK
433#ifdef VSF_USART_SYNC_CLOCK_LAST_BIT_MASK
437#ifdef VSF_USART_IRDA_PRESCALER_MASK
438 | VSF_USART_IRDA_PRESCALER_MASK
440#ifdef VSF_USART_IRDA_MASK
441 | VSF_USART_IRDA_MASK
444#ifdef VSF_USART_SMARTCARD_MASK
445 | VSF_USART_SMARTCARD_MASK
449#if VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK == DISABLED
513#ifndef VSF_USART_IRQ_MASK_ERR
520#ifndef VSF_USART_IRQ_ALL_BITS_MASK
528# ifdef VSF_USART_IRQ_MASK_TX_HALF_CPL
529 | VSF_USART_IRQ_MASK_TX_HALF_CPL
531# ifdef VSF_USART_IRQ_MASK_RX_HALF_CPL
532 | VSF_USART_IRQ_MASK_RX_HALF_CPL
534# ifdef VSF_USART_IRQ_MASK_CANCEL_TX_CPL
535 | VSF_USART_IRQ_MASK_CANCEL_TX_CPL
537# ifdef VSF_USART_IRQ_MASK_CANCEL_RX_CPL
538 | VSF_USART_IRQ_MASK_CANCEL_RX_CPL
543#if VSF_USART_CFG_REIMPLEMENT_TYPE_CFG == DISABLED
564#if VSF_USART_CFG_REIMPLEMENT_TYPE_CMD == DISABLED
613#if VSF_USART_CFG_REIMPLEMENT_TYPE_STATUS == DISABLED
631#if VSF_USART_CFG_INHERT_HAL_CAPABILITY == ENABLED
654#undef __VSF_HAL_TEMPLATE_API
655#define __VSF_HAL_TEMPLATE_API VSF_HAL_TEMPLATE_API_FP
660#if VSF_USART_CFG_MULTI_CLASS == ENABLED
960#if VSF_USART_CFG_REIMPLEMENT_MODE_TO_DATA_BITS == DISABLED
1042#if VSF_USART_CFG_FUNCTION_RENAME == ENABLED
1043# define __vsf_usart_t VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_t)
1044# define vsf_usart_init(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_init) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1045# define vsf_usart_fini(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_fini) ((__vsf_usart_t *)(__USART))
1046# define vsf_usart_capability(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_capability) ((__vsf_usart_t *)(__USART))
1047# define vsf_usart_enable(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_enable) ((__vsf_usart_t *)(__USART))
1048# define vsf_usart_disable(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_disable) ((__vsf_usart_t *)(__USART))
1049# define vsf_usart_irq_enable(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_irq_enable) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1050# define vsf_usart_irq_disable(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_irq_disable) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1051# define vsf_usart_status(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_status) ((__vsf_usart_t *)(__USART))
1052# define vsf_usart_rxfifo_get_data_count(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_rxfifo_get_data_count) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1053# define vsf_usart_rxfifo_read(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_rxfifo_read) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1054# define vsf_usart_txfifo_get_free_count(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_txfifo_get_free_count) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1055# define vsf_usart_txfifo_write(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_txfifo_write) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1056# define vsf_usart_request_rx(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_request_rx) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1057# define vsf_usart_request_tx(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_request_tx) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
1058# define vsf_usart_cancel_rx(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_cancel_rx) ((__vsf_usart_t *)(__USART))
1059# define vsf_usart_cancel_tx(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_cancel_tx) ((__vsf_usart_t *)(__USART))
1060# define vsf_usart_get_rx_count(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_get_rx_count) ((__vsf_usart_t *)(__USART))
1061# define vsf_usart_get_tx_count(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_get_tx_count) ((__vsf_usart_t *)(__USART))
1062# define vsf_usart_send_break(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_send_break) ((__vsf_usart_t *)(__USART))
1063# define vsf_usart_set_break(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_send_break) ((__vsf_usart_t *)(__USART))
1064# define vsf_usart_clear_break(__USART) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_send_break) ((__vsf_usart_t *)(__USART))
1065# define vsf_usart_cmd(__USART, ...) VSF_MCONNECT(VSF_USART_CFG_PREFIX, _usart_cmd) ((__vsf_usart_t *)(__USART), ##__VA_ARGS__)
vsf_err_t
Definition __type.h:42
vsf_usart_mode_t
Definition uart.h:32
vsf_usart_irq_mask_t
Definition uart.h:105
#define VSF_USART_SYNC_CLOCK_LAST_BIT_MASK
Definition usart.h:129
vsf_arch_prio_t
Definition cortex_a_generic.h:88
#define NULL
Definition stddef.h:52
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
unsigned uint32_t
Definition stdint.h:9
unsigned int uint_fast32_t
Definition stdint.h:27
int int_fast32_t
Definition stdint.h:26
unsigned short uint_fast16_t
Definition stdint.h:25
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_hal_driver.h:203
Definition vsf_template_hal_driver.h:196
Definition vsf_template_usart.h:630
uint8_t max_data_bits
Definition vsf_template_usart.h:645
uint8_t support_set_and_clear_break
Definition vsf_template_usart.h:650
inherit(vsf_peripheral_capability_t) vsf_usart_irq_mask_t irq_mask
uint8_t support_rx_timeout
Definition vsf_template_usart.h:648
uint8_t rxfifo_depth
Definition vsf_template_usart.h:643
uint8_t support_send_break
Definition vsf_template_usart.h:649
uint8_t txfifo_depth
Definition vsf_template_usart.h:641
uint8_t min_data_bits
Definition vsf_template_usart.h:646
uint32_t min_baudrate
Definition vsf_template_usart.h:638
uint32_t max_baudrate
Definition vsf_template_usart.h:637
Definition vsf_template_usart.h:556
uint32_t mode
Definition vsf_template_usart.h:557
uint32_t baudrate
Definition vsf_template_usart.h:558
uint32_t rx_timeout
Definition vsf_template_usart.h:559
vsf_usart_isr_t isr
Definition vsf_template_usart.h:560
Definition vsf_template_usart.h:550
vsf_arch_prio_t prio
Definition vsf_template_usart.h:553
vsf_usart_isr_handler_t * handler_fn
Definition vsf_template_usart.h:551
void * target_ptr
Definition vsf_template_usart.h:552
Definition vsf_template_usart.h:653
uint32_t is_busy
Definition usart.h:276
Definition vsf_template_usart.h:661
const vsf_usart_op_t * op
Definition vsf_template_usart.h:662
fsm_rt_t
Definition vsf_fsm.h:315
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
#define vsf_usart_send_break(__USART,...)
Definition vsf_template_usart.h:1062
@ VSF_USART_IRQ_MASK_ERR
Definition vsf_template_usart.h:514
@ VSF_USART_IRQ_MASK_TX_FIFO_THRESHOLD
Definition vsf_template_usart.h:510
@ VSF_USART_IRQ_ALL_BITS_MASK
Definition vsf_template_usart.h:521
@ VSF_USART_IRQ_MASK_RX_IDLE
Definition vsf_template_usart.h:509
@ VSF_USART_IRQ_MASK_RX_FIFO_THRESHOLD
Definition vsf_template_usart.h:511
#define vsf_usart_txfifo_get_free_count(__USART,...)
Definition vsf_template_usart.h:1054
#define vsf_usart_disable(__USART)
Definition vsf_template_usart.h:1048
#define vsf_usart_init(__USART,...)
Definition vsf_template_usart.h:1044
#define vsf_usart_capability(__USART)
Definition vsf_template_usart.h:1046
vsf_usart_mode_t
Predefined VSF USART modes that can be reimplemented in specific hal drivers.
Definition vsf_template_usart.h:270
@ VSF_USART_TX_FIFO_THRESH_HALF_FULL
Half of the threshold for txfifo.
Definition vsf_template_usart.h:313
@ VSF_USART_HALF_DUPLEX_DISABLE
Definition vsf_template_usart.h:307
@ VSF_USART_8_BIT_LENGTH
data bits : 8,
Definition vsf_template_usart.h:288
@ VSF_USART_SYNC_CLOCK_ENABLE
Definition vsf_template_usart.h:304
@ VSF_USART_EVEN_PARITY
Definition vsf_template_usart.h:273
@ VSF_USART_ODD_PARITY
Definition vsf_template_usart.h:274
@ VSF_USART_SYNC_CLOCK_PHASE_1_EDGE
Definition vsf_template_usart.h:322
@ VSF_USART_NO_PARITY
USART Parity.
Definition vsf_template_usart.h:272
@ VSF_USART_10_BIT_LENGTH
data bits : 10,
Definition vsf_template_usart.h:290
@ VSF_USART_RTS_HWCONTROL
Definition vsf_template_usart.h:294
@ VSF_USART_RX_FIFO_THRESH_FULL
Full of the threshold for txfifo.
Definition vsf_template_usart.h:317
@ VSF_USART_RX_ENABLE
Definition vsf_template_usart.h:301
@ VSF_USART_RX_FIFO_THRESH_ONE
one data for txfifo
Definition vsf_template_usart.h:315
@ VSF_USART_FORCE_0_PARITY
Definition vsf_template_usart.h:275
@ VSF_USART_TX_FIFO_THRESH_ONE
one data for txfifo
Definition vsf_template_usart.h:312
@ VSF_USART_TX_ENABLE
Definition vsf_template_usart.h:298
@ VSF_USART_SYNC_CLOCK_POLARITY_HIGH
Definition vsf_template_usart.h:321
@ VSF_USART_9_BIT_LENGTH
data bits : 9,
Definition vsf_template_usart.h:289
@ VSF_USART_7_BIT_LENGTH
data bits : 7,
Definition vsf_template_usart.h:287
@ VSF_USART_1_STOPBIT
USART Stopbit.
Definition vsf_template_usart.h:279
@ VSF_USART_FORCE_1_PARITY
Definition vsf_template_usart.h:276
@ VSF_USART_SYNC_CLOCK_POLARITY_LOW
USART SYNC Mode Clock.
Definition vsf_template_usart.h:320
@ VSF_USART_RX_DISABLE
Definition vsf_template_usart.h:302
@ VSF_USART_2_STOPBIT
stopbit: 2 bit
Definition vsf_template_usart.h:282
@ VSF_USART_CTS_HWCONTROL
Definition vsf_template_usart.h:295
@ VSF_USART_5_BIT_LENGTH
USART Databit Lenght.
Definition vsf_template_usart.h:285
@ VSF_USART_RX_FIFO_THRESH_HALF_FULL
Half of the threshold for txfifo.
Definition vsf_template_usart.h:316
@ VSF_USART_SYNC_CLOCK_DISABLE
Definition vsf_template_usart.h:305
@ VSF_USART_RTS_CTS_HWCONTROL
Definition vsf_template_usart.h:296
@ VSF_USART_SYNC_CLOCK_PHASE_2_EDGE
Definition vsf_template_usart.h:323
@ VSF_USART_HALF_DUPLEX_ENABLE
Definition vsf_template_usart.h:308
@ VSF_USART_TX_DISABLE
Definition vsf_template_usart.h:299
@ VSF_USART_TX_FIFO_THRESH_FULL
Full of the threshold for txfifo.
Definition vsf_template_usart.h:314
@ VSF_USART_6_BIT_LENGTH
data bits : 6,
Definition vsf_template_usart.h:286
@ VSF_USART_0_5_STOPBIT
stopbit: 0.5 bit
Definition vsf_template_usart.h:281
@ VSF_USART_NO_HWCONTROL
USART Hardware Control.
Definition vsf_template_usart.h:293
@ VSF_USART_1_5_STOPBIT
stopbit: 1.5 bit
Definition vsf_template_usart.h:280
#define vsf_usart_request_tx(__USART,...)
Definition vsf_template_usart.h:1057
#define vsf_usart_clear_break(__USART)
Definition vsf_template_usart.h:1064
#define vsf_usart_rxfifo_read(__USART,...)
Definition vsf_template_usart.h:1053
#define vsf_usart_irq_disable(__USART,...)
Definition vsf_template_usart.h:1050
#define vsf_usart_rxfifo_get_data_count(__USART,...)
Definition vsf_template_usart.h:1052
#define vsf_usart_cmd(__USART,...)
Definition vsf_template_usart.h:1065
#define vsf_usart_cancel_tx(__USART)
Definition vsf_template_usart.h:1059
#define vsf_usart_request_rx(__USART,...)
Definition vsf_template_usart.h:1056
vsf_usart_cmd_t
Predefined VSF USART command that can be reimplemented in specific hal drivers.
Definition vsf_template_usart.h:582
@ VSF_USART_CMD_SET_BREAK
usart set break condition
Definition vsf_template_usart.h:589
@ VSF_USART_CMD_CLEAR_BREAK
usart clean break condition
Definition vsf_template_usart.h:591
@ VSF_USART_CMD_SEND_BREAK
Definition vsf_template_usart.h:586
@ VSF_USART_TX_FIFO_THRESH_MASK
Definition vsf_template_usart.h:382
@ VSF_USART_BIT_LENGTH_MASK
Definition vsf_template_usart.h:373
@ VSF_USART_SYNC_CLOCK_POLARITY_MASK
Definition vsf_template_usart.h:412
@ VSF_USART_PARITY_MASK
Definition vsf_template_usart.h:358
@ VSF_USART_MODE_ALL_BITS_MASK
Definition vsf_template_usart.h:421
@ VSF_USART_HALF_DUPLEX_MASK
Definition vsf_template_usart.h:409
@ VSF_USART_HWCONTROL_MASK
Definition vsf_template_usart.h:394
@ VSF_USART_RX_MASK
Definition vsf_template_usart.h:403
@ VSF_USART_SYNC_CLOCK_PHASE_MASK
Definition vsf_template_usart.h:416
@ VSF_USART_STOPBIT_MASK
Definition vsf_template_usart.h:366
@ VSF_USART_RX_FIFO_THRESH_MASK
Definition vsf_template_usart.h:388
@ VSF_USART_SYNC_CLOCK_MASK
Definition vsf_template_usart.h:406
@ VSF_USART_TX_MASK
Definition vsf_template_usart.h:400
#define vsf_usart_txfifo_write(__USART,...)
Definition vsf_template_usart.h:1055
#define vsf_usart_cancel_rx(__USART)
Definition vsf_template_usart.h:1058
vsf_usart_irq_mask_t
Predefined VSF USART interrupt that can be reimplemented in specific hal drivers.
Definition vsf_template_usart.h:472
@ VSF_USART_IRQ_MASK_TX_CPL
Definition vsf_template_usart.h:474
@ VSF_USART_IRQ_MASK_OVERFLOW_ERR
Definition vsf_template_usart.h:489
@ VSF_USART_IRQ_MASK_CTS
Definition vsf_template_usart.h:483
@ VSF_USART_IRQ_MASK_TX
Definition vsf_template_usart.h:478
@ VSF_USART_IRQ_MASK_BREAK_ERR
Definition vsf_template_usart.h:488
@ VSF_USART_IRQ_MASK_RX
Definition vsf_template_usart.h:479
@ VSF_USART_IRQ_MASK_RX_TIMEOUT
Definition vsf_template_usart.h:480
@ VSF_USART_IRQ_MASK_RX_CPL
Definition vsf_template_usart.h:475
@ VSF_USART_IRQ_MASK_PARITY_ERR
Definition vsf_template_usart.h:487
@ VSF_USART_IRQ_MASK_FRAME_ERR
Definition vsf_template_usart.h:486
#define vsf_usart_get_tx_count(__USART)
Definition vsf_template_usart.h:1061
#define vsf_usart_status(__USART)
Definition vsf_template_usart.h:1051
#define vsf_usart_get_rx_count(__USART)
Definition vsf_template_usart.h:1060
#define VSF_USART_APIS(__prefix_name)
Definition vsf_template_usart.h:187
struct vsf_usart_status_t vsf_usart_status_t
#define vsf_usart_enable(__USART)
Definition vsf_template_usart.h:1047
#define vsf_usart_fini(__USART)
Definition vsf_template_usart.h:1045
void vsf_usart_isr_handler_t(void *target_ptr, vsf_usart_t *usart_ptr, vsf_usart_irq_mask_t irq_mask)
Definition vsf_template_usart.h:546
#define vsf_usart_irq_enable(__USART,...)
Definition vsf_template_usart.h:1049
#define vsf_usart_set_break(__USART)
Definition vsf_template_usart.h:1063