Factoring of USART driver for GD32VF103.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
#include <chopstx.h>
|
||||
#include <mcu/stm32l.h>
|
||||
#include <contrib/usart.h>
|
||||
|
||||
#include <contrib/usart-impl.h>
|
||||
|
||||
#define RCC_APB1_1_USART2 (1 << 17)
|
||||
#define RCC_APB2_USART1 (1 << 14)
|
||||
@@ -84,20 +84,6 @@ static int usart2_tx_ready;
|
||||
#define USART_DEVNO_START 1
|
||||
#define USART_DEVNO_END 2
|
||||
|
||||
struct usart {
|
||||
struct USART *USART;
|
||||
struct chx_intr *intr;
|
||||
uint8_t irq_num;
|
||||
struct usart_stat *stat;
|
||||
struct rb *rb_a2h;
|
||||
struct rb *rb_h2a;
|
||||
uint8_t *buf_a2h;
|
||||
uint8_t *buf_h2a;
|
||||
chopstx_poll_cond_t *app_write_event;
|
||||
int *tx_ready;
|
||||
};
|
||||
|
||||
|
||||
static const struct usart usart_array[] =
|
||||
{
|
||||
{ USART1, &usart1_intr, INTR_REQ_USART1,
|
||||
@@ -109,17 +95,6 @@ static const struct usart usart_array[] =
|
||||
buf_usart2_rb_h2a, &usart2_app_write_event, &usart2_tx_ready,
|
||||
},
|
||||
};
|
||||
#define NUM_USART ((int)(sizeof (usart_array) / sizeof (struct usart)))
|
||||
|
||||
static int handle_intr (struct USART *USARTx, struct rb *rb2a, struct usart_stat *stat);
|
||||
static int handle_tx (struct USART *USARTx, struct rb *rb2h, struct usart_stat *stat);
|
||||
static void usart_config_recv_enable (struct USART *USARTx, int on);
|
||||
|
||||
struct brr_setting {
|
||||
uint8_t baud_spec;
|
||||
uint32_t brr_value;
|
||||
};
|
||||
#define NUM_BAUD (int)(sizeof (brr_table) / sizeof (struct brr_setting))
|
||||
|
||||
/* We assume 40MHz f_CK */
|
||||
static const struct brr_setting brr_table[] = {
|
||||
|
||||
Reference in New Issue
Block a user