18#ifndef __VSF_HAL_DISTBUS_USART_H__
19#define __VSF_HAL_DISTBUS_USART_H__
25#if VSF_HAL_USE_USART == ENABLED && VSF_HAL_DISTBUS_USE_USART == ENABLED
30#if defined(__VSF_HAL_DISTBUS_USART_CLASS_IMPLEMENT)
31# define __VSF_CLASS_IMPLEMENT__
32#elif defined(__VSF_HAL_DISTBUS_USART_CLASS_INHERIT__)
33# define __VSF_CLASS_INHERIT__
44#ifndef VSF_HAL_DISTBUS_USART_CFG_MULTI_CLASS
45# define VSF_HAL_DISTBUS_USART_CFG_MULTI_CLASS VSF_USART_CFG_MULTI_CLASS
48#ifndef VSF_HAL_DISTBUS_USART_CFG_FIFO_SIZE
49# define VSF_HAL_DISTBUS_USART_CFG_FIFO_SIZE 1024
52#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
53# define VSF_USART_CFG_REIMPLEMENT_TYPE_MODE ENABLED
54# define VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK ENABLED
56#define VSF_USART_CFG_DEC_FIFO_TO_REQUEST
61#if defined(__VSF_HAL_DISTBUS_USART_CLASS_IMPLEMENT) || defined(__VSF_HAL_DISTBUS_USART_CLASS_INHERIT__)
64 VSF_HAL_DISTBUS_USART_CMD_INIT = 0,
65 VSF_HAL_DISTBUS_USART_CMD_ENABLE,
66 VSF_HAL_DISTBUS_USART_CMD_DISABLE,
67 VSF_HAL_DISTBUS_USART_CMD_IRQ_ENABLE,
68 VSF_HAL_DISTBUS_USART_CMD_IRQ_DISABLE,
69 VSF_HAL_DISTBUS_USART_CMD_TX,
72 VSF_HAL_DISTBUS_USART_CMD_TXED_COUNT,
73 VSF_HAL_DISTBUS_USART_CMD_RX,
74 VSF_HAL_DISTBUS_USART_CMD_ISR,
76 VSF_HAL_DISTBUS_USART_CMD_ADDR_RANGE,
79typedef struct vsf_hal_distbus_usart_init_t {
85typedef struct vsf_hal_distbus_usart_isr_t {
89typedef struct vsf_hal_distbus_usart_txed_cnt_t {
144#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
226#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
227# define VSF_USART_IRQ_MASK_TX_IDLE VSF_USART_IRQ_MASK_TX_IDLE
228# define VSF_USART_IRQ_MASK_RX_IDLE VSF_USART_IRQ_MASK_RX_IDLE
229# define VSF_USART_IRQ_MASK_RX_TIMEOUT VSF_USART_IRQ_MASK_RX_TIMEOUT
230# define VSF_USART_IRQ_MASK_CTS VSF_USART_IRQ_MASK_CTS
231# define VSF_USART_IRQ_MASK_FRAME_ERR VSF_USART_IRQ_MASK_FRAME_ERR
232# define VSF_USART_IRQ_MASK_BREAK_ERR VSF_USART_IRQ_MASK_BREAK_ERR
233# define VSF_USART_IRQ_MASK_PARITY_ERR VSF_USART_IRQ_MASK_PARITY_ERR
234# define VSF_USART_IRQ_MASK_RX_OVERFLOW_ERR VSF_USART_IRQ_MASK_RX_OVERFLOW_ERR
235# define VSF_USART_IRQ_MASK_TX_OVERFLOW_ERR VSF_USART_IRQ_MASK_TX_OVERFLOW_ERR
258#ifdef VSF_HAL_DISTBUS_AS_REAL_DRIVER
265#if VSF_HAL_DISTBUS_USART_CFG_MULTI_CLASS == ENABLED
316#undef __VSF_HAL_DISTBUS_USART_CLASS_IMPLEMENT
317#undef __VSF_HAL_DISTBUS_USART_CLASS_INHERIT__
@ VSF_USART_HALF_DUPLEX_DISABLE
Definition uart.h:72
@ VSF_USART_8_BIT_LENGTH
Definition uart.h:34
@ VSF_USART_EVEN_PARITY
Definition uart.h:46
@ VSF_USART_ODD_PARITY
Definition uart.h:45
@ VSF_USART_NO_PARITY
Definition uart.h:44
@ VSF_USART_RX_ENABLE
Definition uart.h:66
@ VSF_USART_TX_ENABLE
Definition uart.h:63
@ VSF_USART_1_STOPBIT
Definition uart.h:40
@ VSF_USART_NO_HWCONTROL
Definition uart.h:58
@ VSF_USART_IRQ_MASK_TX_CPL
Definition uart.h:125
@ VSF_USART_IRQ_MASK_TX
Definition uart.h:109
@ VSF_USART_IRQ_MASK_RX
Definition uart.h:108
@ VSF_USART_IRQ_MASK_RX_CPL
Definition uart.h:124
@ VSF_USART_BIT_LENGTH_MASK
Definition uart.h:106
@ VSF_USART_ENABLE_MASK
Definition uart.h:119
@ VSF_USART_PARITY_MASK
Definition uart.h:97
@ VSF_USART_MODE_ALL_BITS_MASK
Definition uart.h:122
@ VSF_USART_HWCONTROL_MASK
Definition uart.h:112
@ VSF_USART_STOPBIT_MASK
Definition uart.h:102
@ VSF_USART_IRQ_MASK_ERR
Definition uart.h:145
@ VSF_USART_IRQ_ALL_BITS_MASK
Definition uart.h:150
#define VSF_USART_7_BIT_LENGTH
Definition usart.h:105
#define VSF_USART_CTS_HWCONTROL
Definition usart.h:94
#define VSF_USART_SYNC_CLOCK_DISABLE
Definition usart.h:132
#define VSF_USART_HALF_DUPLEX_ENABLE
Definition usart.h:77
#define VSF_USART_1_5_STOPBIT
Definition usart.h:117
#define VSF_USART_TX_FIFO_THRESHOLD_EMPTY
Definition usart.h:189
#define VSF_USART_TX_DISABLE
Definition usart.h:84
#define VSF_USART_RX_FIFO_THRESHOLD_FULL
Definition usart.h:198
#define VSF_USART_RTS_CTS_HWCONTROL
Definition usart.h:95
#define VSF_USART_RTS_HWCONTROL
Definition usart.h:93
#define VSF_USART_RX_FIFO_THRESHOLD_NOT_EMPTY
Definition usart.h:195
#define VSF_USART_0_5_STOPBIT
Definition usart.h:116
#define VSF_USART_SYNC_CLOCK_ENABLE
Definition usart.h:131
#define VSF_USART_2_STOPBIT
Definition usart.h:118
#define VSF_USART_IRQ_MASK_TX_IDLE
Definition usart.h:223
#define VSF_USART_RX_DISABLE
Definition usart.h:85
#define VSF_USART_IRQ_MASK_RX_IDLE
Definition usart.h:230
#define VSF_USART_TX_FIFO_THRESHOLD_NOT_FULL
Definition usart.h:192
#define VSF_USART_RX_FIFO_THRESHOLD_MASK
Definition usart.h:149
#define VSF_USART_TX_FIFO_THRESHOLD_MASK
Definition usart.h:143
Definition vsf_distbus.h:87
Definition vsf_distbus.h:122
Definition vsf_hal_distbus_usart.h:264
Definition vsf_mem_stream.h:88
#define VSF_HAL_DISTBUS_PREFIX
Definition driver.h:35
#define VSF_HAL_DISTBUS_ENUM(__ELEMENT)
Definition driver.h:34
#define vsf_class(__name)
Definition ooc_class.h:48
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
USART instance structure Used for USART Multi Class support.
Definition vsf_template_usart.h:1008
#define VSF_HAL_DISTBUS_USART_CFG_FIFO_SIZE
Definition vsf_hal_distbus_usart.h:49
uint32_t vsf_hal_distbus_usart_register_service(vsf_distbus_t *distbus, vsf_hal_distbus_usart_t *usart, void *info, uint32_t infolen)
Definition vsf_hal_distbus_usart.c:152
enum VSF_MCONNECT(VSF_HAL_DISTBUS_PREFIX, usart_mode_t)
Definition vsf_hal_distbus_usart.h:94
uint32_t size
Definition vsf_memfs.h:50
__bfs_node_fifo_t fifo
Definition vsf_msg_tree.h:247
struct vk_romfs_header_t VSF_CAL_PACKED
#define VSF_USART_IRQ_MASK_RX_TIMEOUT
Definition vsf_template_usart.h:574
#define VSF_USART_IRQ_MASK_FRAME_ERR
Definition vsf_template_usart.h:628
#define VSF_USART_IRQ_MASK_CTS
Definition vsf_template_usart.h:590
#define VSF_USART_5_BIT_LENGTH
Definition vsf_template_usart.h:349
#define VSF_USART_9_BIT_LENGTH
Definition vsf_template_usart.h:355
#define VSF_USART_FORCE_1_PARITY
Definition vsf_template_usart.h:325
#define VSF_USART_RX_FIFO_THRESHOLD_HALF_FULL
Definition vsf_template_usart.h:432
#define VSF_USART_10_BIT_LENGTH
Definition vsf_template_usart.h:357
#define VSF_USART_IRQ_MASK_RX_OVERFLOW_ERR
Definition vsf_template_usart.h:662
#define VSF_USART_IRQ_MASK_BREAK_ERR
Definition vsf_template_usart.h:630
#define VSF_USART_FORCE_0_PARITY
Definition vsf_template_usart.h:323
#define VSF_USART_IRQ_MASK_PARITY_ERR
Definition vsf_template_usart.h:646
#define VSF_USART_TX_FIFO_THRESHOLD_HALF_EMPTY
Definition vsf_template_usart.h:417
void vsf_usart_isr_handler_t(void *target_ptr, vsf_usart_t *usart_ptr, vsf_usart_irq_mask_t irq_mask)
USART interrupt handler function type declaration.
Definition vsf_template_usart.h:817
#define VSF_USART_IRQ_MASK_NOISE_ERR
@ VSF_USART_HALF_DUPLEX_MASK
Definition vsf_template_usart.h:517
@ VSF_USART_SYNC_CLOCK_MASK
Definition vsf_template_usart.h:514
#define VSF_USART_6_BIT_LENGTH
Definition vsf_template_usart.h:351
#define VSF_USART_IRQ_MASK_TX_OVERFLOW_ERR
Definition vsf_template_usart.h:674