VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Variables
usart.h File Reference
#include "hal/vsf_hal_cfg.h"
#include "hal/driver/common/template/vsf_template_hal_driver.h"
#include "../../__device.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

class  vsf_$
 
struct  vsf_usart_status_t
 USART status information structure Contains the current status of USART operations and FIFO thresholds. More...
 
struct  vsf_usart_isr_t
 USART interrupt configuration structure Contains all necessary information for configuring USART interrupts. More...
 
struct  vsf_usart_cfg_t
 USART configuration structure Contains all parameters needed to initialize and configure a USART instance. More...
 
struct  vsf_usart_capability_t
 USART capability structure Defines the hardware capabilities and limitations of the USART interface. More...
 

Macros

#define __HAL_DRIVER_   ${SERIES/USART_IP}_USART_H__
 
#define VSF_   ${USART_IP}_USART_CFG_MULTI_CLASS VSF_USART_CFG_MULTI_CLASS
 
#define VSF_USART_CFG_REIMPLEMENT_TYPE_MODE   ENABLED
 
#define VSF_USART_CFG_REIMPLEMENT_TYPE_STATUS   ENABLED
 
#define VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK   ENABLED
 
#define VSF_USART_CFG_REIMPLEMENT_TYPE_CTRL   ENABLED
 
#define VSF_USART_CFG_REIMPLEMENT_TYPE_CFG   ENABLED
 
#define VSF_USART_CFG_REIMPLEMENT_TYPE_CAPABILITY   ENABLED
 

Typedefs

typedef enum vsf_usart_mode_t vsf_usart_mode_t
 
typedef enum vsf_usart_irq_mask_t vsf_usart_irq_mask_t
 
typedef enum vsf_usart_ctrl_t vsf_usart_ctrl_t
 
typedef struct vsf_usart_status_t vsf_usart_status_t
 
typedef struct vsf_usart_t vsf_usart_t
 
typedef void vsf_usart_isr_handler_t(void *target_ptr, vsf_usart_t *usart_ptr, vsf_usart_irq_mask_t irq_mask)
 
typedef struct vsf_usart_isr_t vsf_usart_isr_t
 
typedef struct vsf_usart_cfg_t vsf_usart_cfg_t
 
typedef struct vsf_usart_capability_t vsf_usart_capability_t
 

Enumerations

enum  vsf_usart_mode_t {
  VSF_USART_NO_PARITY = (0x0ul << 0) ,
  VSF_USART_EVEN_PARITY = (0x1ul << 0) ,
  VSF_USART_ODD_PARITY = (0x2ul << 0) ,
  VSF_USART_FORCE_0_PARITY = (0x3ul << 0) ,
  VSF_USART_FORCE_1_PARITY = (0x4ul << 0) ,
  VSF_USART_1_STOPBIT = (0x0ul << 3) ,
  VSF_USART_1_5_STOPBIT = (0x1ul << 3) ,
  VSF_USART_0_5_STOPBIT = (0x2ul << 3) ,
  VSF_USART_2_STOPBIT = (0x3ul << 3) ,
  VSF_USART_5_BIT_LENGTH = (0x0ul << 5) ,
  VSF_USART_6_BIT_LENGTH = (0x1ul << 5) ,
  VSF_USART_7_BIT_LENGTH = (0x2ul << 5) ,
  VSF_USART_8_BIT_LENGTH = (0x3ul << 5) ,
  VSF_USART_9_BIT_LENGTH = (0x4ul << 5) ,
  VSF_USART_10_BIT_LENGTH = (0x5ul << 5) ,
  VSF_USART_NO_HWCONTROL = (0x0ul << 8) ,
  VSF_USART_RTS_HWCONTROL = (0x1ul << 8) ,
  VSF_USART_CTS_HWCONTROL = (0x2ul << 8) ,
  VSF_USART_RTS_CTS_HWCONTROL = (0x3ul << 8) ,
  VSF_USART_TX_ENABLE = (0x0ul << 9) ,
  VSF_USART_TX_DISABLE = (0x1ul << 9) ,
  VSF_USART_RX_ENABLE = (0x0ul << 10) ,
  VSF_USART_RX_DISABLE = (0x1ul << 10) ,
  VSF_USART_SYNC_CLOCK_ENABLE = (0x0ul << 11) ,
  VSF_USART_SYNC_CLOCK_DISABLE = (0x1ul << 11) ,
  VSF_USART_HALF_DUPLEX_DISABLE = (0x0ul << 12) ,
  VSF_USART_HALF_DUPLEX_ENABLE = (0x1ul << 12) ,
  VSF_USART_TX_FIFO_THRESHOLD_EMPTY = (0x0ul << 13) ,
  VSF_USART_TX_FIFO_THRESHOLD_HALF_EMPTY = (0x1ul << 13) ,
  VSF_USART_TX_FIFO_THRESHOLD_NOT_FULL = (0x2ul << 15) ,
  VSF_USART_RX_FIFO_THRESHOLD_NOT_EMPTY = (0x0ul << 15) ,
  VSF_USART_RX_FIFO_THRESHOLD_HALF_FULL = (0x1ul << 15) ,
  VSF_USART_RX_FIFO_THRESHOLD_FULL = (0x2ul << 15) ,
  VSF_USART_SYNC_CLOCK_POLARITY_LOW = (0x0ul << 16) ,
  VSF_USART_SYNC_CLOCK_POLARITY_HIGH = (0x1ul << 16) ,
  VSF_USART_SYNC_CLOCK_PHASE_1_EDGE = (0x0ul << 17) ,
  VSF_USART_SYNC_CLOCK_PHASE_2_EDGE = (0x1ul << 17)
}
 
enum  vsf_usart_irq_mask_t {
  VSF_USART_IRQ_MASK_TX_CPL = (0x1ul << 0) ,
  VSF_USART_IRQ_MASK_RX_CPL = (0x1ul << 1) ,
  VSF_USART_IRQ_MASK_TX = (0x1ul << 2) ,
  VSF_USART_IRQ_MASK_RX = (0x1ul << 3) ,
  VSF_USART_IRQ_MASK_RX_TIMEOUT = (0x1ul << 4) ,
  VSF_USART_IRQ_MASK_CTS = (0x1ul << 5) ,
  VSF_USART_IRQ_MASK_FRAME_ERR = (0x1ul << 6) ,
  VSF_USART_IRQ_MASK_PARITY_ERR = (0x1ul << 7) ,
  VSF_USART_IRQ_MASK_BREAK_ERR = (0x1ul << 8) ,
  VSF_USART_IRQ_MASK_OVERFLOW_ERR = (0x1ul << 9)
}
 
enum  vsf_usart_ctrl_t {
  VSF_USART_CTRL_SEND_BREAK = (0x01ul << 0) ,
  VSF_USART_CTRL_SET_BREAK = (0x01ul << 1) ,
  VSF_USART_CTRL_CLEAR_BREAK = (0x01ul << 2)
}
 

Variables

class vsf_$reg
 
vsf_usart_isr_t isr
 

Macro Definition Documentation

◆ __HAL_DRIVER_

#define __HAL_DRIVER_   ${SERIES/USART_IP}_USART_H__

◆ VSF_

#define VSF_   ${USART_IP}_USART_CFG_MULTI_CLASS VSF_USART_CFG_MULTI_CLASS
Note
When vsf_peripheral_status_t is inherited, vsf_template_hal_driver.h needs to be included

◆ VSF_USART_CFG_REIMPLEMENT_TYPE_MODE

#define VSF_USART_CFG_REIMPLEMENT_TYPE_MODE   ENABLED

◆ VSF_USART_CFG_REIMPLEMENT_TYPE_STATUS

#define VSF_USART_CFG_REIMPLEMENT_TYPE_STATUS   ENABLED

◆ VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK

#define VSF_USART_CFG_REIMPLEMENT_TYPE_IRQ_MASK   ENABLED

◆ VSF_USART_CFG_REIMPLEMENT_TYPE_CTRL

#define VSF_USART_CFG_REIMPLEMENT_TYPE_CTRL   ENABLED

◆ VSF_USART_CFG_REIMPLEMENT_TYPE_CFG

#define VSF_USART_CFG_REIMPLEMENT_TYPE_CFG   ENABLED

◆ VSF_USART_CFG_REIMPLEMENT_TYPE_CAPABILITY

#define VSF_USART_CFG_REIMPLEMENT_TYPE_CAPABILITY   ENABLED

Typedef Documentation

◆ vsf_usart_mode_t

◆ vsf_usart_irq_mask_t

◆ vsf_usart_ctrl_t

◆ vsf_usart_status_t

Note
It's not obligated to inherit from vsf_peripheral_status_t. If not, there MUST be a is_busy bit in vsf_usart_status_t.

◆ vsf_usart_t

typedef struct vsf_usart_t vsf_usart_t
Note
Redefining vsf_usart_cfg_t usually requires declaring vsf_usart_t and vsf_usart_isr_handler_t types and define vsf_usart_isr_t.

◆ vsf_usart_isr_handler_t

typedef void vsf_usart_isr_handler_t(void *target_ptr, vsf_usart_t *usart_ptr, vsf_usart_irq_mask_t irq_mask)

◆ vsf_usart_isr_t

◆ vsf_usart_cfg_t

◆ vsf_usart_capability_t

Enumeration Type Documentation

◆ vsf_usart_mode_t

Enumerator
VSF_USART_NO_PARITY 
VSF_USART_EVEN_PARITY 
VSF_USART_ODD_PARITY 
VSF_USART_FORCE_0_PARITY 
VSF_USART_FORCE_1_PARITY 
VSF_USART_1_STOPBIT 
VSF_USART_1_5_STOPBIT 
VSF_USART_0_5_STOPBIT 
VSF_USART_2_STOPBIT 
VSF_USART_5_BIT_LENGTH 
VSF_USART_6_BIT_LENGTH 
VSF_USART_7_BIT_LENGTH 
VSF_USART_8_BIT_LENGTH 
VSF_USART_9_BIT_LENGTH 
VSF_USART_10_BIT_LENGTH 
VSF_USART_NO_HWCONTROL 
VSF_USART_RTS_HWCONTROL 
VSF_USART_CTS_HWCONTROL 
VSF_USART_RTS_CTS_HWCONTROL 
VSF_USART_TX_ENABLE 
VSF_USART_TX_DISABLE 
VSF_USART_RX_ENABLE 
VSF_USART_RX_DISABLE 
VSF_USART_SYNC_CLOCK_ENABLE 
VSF_USART_SYNC_CLOCK_DISABLE 
VSF_USART_HALF_DUPLEX_DISABLE 
VSF_USART_HALF_DUPLEX_ENABLE 
VSF_USART_TX_FIFO_THRESHOLD_EMPTY 
VSF_USART_TX_FIFO_THRESHOLD_HALF_EMPTY 
VSF_USART_TX_FIFO_THRESHOLD_NOT_FULL 
VSF_USART_RX_FIFO_THRESHOLD_NOT_EMPTY 
VSF_USART_RX_FIFO_THRESHOLD_HALF_FULL 
VSF_USART_RX_FIFO_THRESHOLD_FULL 
VSF_USART_SYNC_CLOCK_POLARITY_LOW 
VSF_USART_SYNC_CLOCK_POLARITY_HIGH 
VSF_USART_SYNC_CLOCK_PHASE_1_EDGE 
VSF_USART_SYNC_CLOCK_PHASE_2_EDGE 

◆ vsf_usart_irq_mask_t

Enumerator
VSF_USART_IRQ_MASK_TX_CPL 
VSF_USART_IRQ_MASK_RX_CPL 
VSF_USART_IRQ_MASK_TX 
VSF_USART_IRQ_MASK_RX 
VSF_USART_IRQ_MASK_RX_TIMEOUT 
VSF_USART_IRQ_MASK_CTS 
VSF_USART_IRQ_MASK_FRAME_ERR 
VSF_USART_IRQ_MASK_PARITY_ERR 
VSF_USART_IRQ_MASK_BREAK_ERR 
VSF_USART_IRQ_MASK_OVERFLOW_ERR 

◆ vsf_usart_ctrl_t

Enumerator
VSF_USART_CTRL_SEND_BREAK 
VSF_USART_CTRL_SET_BREAK 
VSF_USART_CTRL_CLEAR_BREAK 

Variable Documentation

◆ reg

class vsf_$* reg

◆ isr

Generated from commit: vsfteam/vsf@2b286be