Browse Source

[bsp/gd32]Optimize UART (#5603)

* [bsp/gd32]Optimize UART

* [bsp/gd32]Optimize UART
BruceOu 3 years ago
parent
commit
38ed2a3ec4

+ 1 - 1
bsp/gd32/docs/GD32系列BSP制作教程.md

@@ -42,7 +42,7 @@ GD32的BSP架构主要分为三个部分:libraries、tools和具体的Boards
 
 安装完成后会自动打开,我们将其关闭。
 
-接下来我们下载GD32F30x的软件支持包。
+接下来我们下载GD32F4xx的软件支持包。
 
 [下载地址](http://www.gd32mcu.com/cn/download)
 

+ 1 - 1
bsp/gd32/gd32103c-eval/README.md

@@ -24,7 +24,7 @@ GD3103C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                           |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32103c-eval/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/gd32105c-eval/README.md

@@ -28,7 +28,7 @@ GD3105C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                           |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32105c-eval/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/gd32105r-start/README.md

@@ -28,7 +28,7 @@ GD3105R-START是-兆易创新推出的一款GD32F10X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                      |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32105r-start/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 	

+ 1 - 1
bsp/gd32/gd32107c-eval/README.md

@@ -28,7 +28,7 @@ GD3107C-EVAL是-兆易创新推出的一款GD32F10X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                           |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32107c-eval/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/gd32205r-start/README.md

@@ -28,7 +28,7 @@ GD32205R-START是-兆易创新推出的一款GD32F20X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                      |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32205r-start/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/gd32303e-eval/README.md

@@ -24,7 +24,7 @@ GD3303E-EVAL是-兆易创新推出的一款GD32F30X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                           |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32303e-eval/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/gd32305r-start/README.md

@@ -28,7 +28,7 @@ GD3305R-START是-兆易创新推出的一款GD32F30X系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART4                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 - SPI2                      |
 | SPI FLASH | 支持       |                                       |

+ 42 - 1
bsp/gd32/gd32305r-start/board/Kconfig

@@ -27,13 +27,54 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/gd32407v-start/README.md

@@ -28,7 +28,7 @@ GD32407V-START是-兆易创新推出的一款GD32F4XX系列的评估板,最高
 | **片上外设**  | **支持情况** | **备注**                                |
 |:--------- |:--------:|:------------------------------------- |
 | GPIO      | 支持       | PA0, PA1... PK15 ---> PIN: 0, 1...144 |
-| UART      | 支持       | UART0 - UART7                         |
+| UART      | 支持       | UART0 - UART5                         |
 | I2C       | 支持       | I2C1                                  |
 | SPI       | 支持       | SPI0 -  SPI2                          |
 | SPI FLASH | 支持       |                                       |

+ 52 - 1
bsp/gd32/gd32407v-start/board/Kconfig

@@ -27,13 +27,64 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART5
+                bool "Enable UART5"
+                default n
+
+            config BSP_UART5_RX_USING_DMA
+                bool "Enable UART5 RX DMA"
+                depends on BSP_USING_UART5 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 72 - 1
bsp/gd32/gd32450z-eval/board/Kconfig

@@ -27,13 +27,84 @@ menu "On-chip Peripheral Drivers"
         default y
         select RT_USING_SERIAL
         if BSP_USING_UART
+            config BSP_USING_UART0
+                bool "Enable UART0"
+                default n
+
+            config BSP_UART0_RX_USING_DMA
+                bool "Enable UART0 RX DMA"
+                depends on BSP_USING_UART0 
+                select RT_SERIAL_USING_DMA
+                default n
+
             config BSP_USING_UART1
                 bool "Enable UART1"
                 default y
 
             config BSP_UART1_RX_USING_DMA
                 bool "Enable UART1 RX DMA"
-                depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
+                depends on BSP_USING_UART1 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART2
+                bool "Enable UART2"
+                default n
+
+            config BSP_UART2_RX_USING_DMA
+                bool "Enable UART2 RX DMA"
+                depends on BSP_USING_UART2 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default n
+
+            config BSP_UART3_RX_USING_DMA
+                bool "Enable UART3 RX DMA"
+                depends on BSP_USING_UART3 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART4
+                bool "Enable UART4"
+                default n
+
+            config BSP_UART4_RX_USING_DMA
+                bool "Enable UART4 RX DMA"
+                depends on BSP_USING_UART4 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART5
+                bool "Enable UART5"
+                default n
+
+            config BSP_UART5_RX_USING_DMA
+                bool "Enable UART5 RX DMA"
+                depends on BSP_USING_UART5 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART6
+                bool "Enable UART6"
+                default n
+
+            config BSP_UART6_RX_USING_DMA
+                bool "Enable UART6 RX DMA"
+                depends on BSP_USING_UART6 
+                select RT_SERIAL_USING_DMA
+                default n
+
+            config BSP_USING_UART7
+                bool "Enable UART7"
+                default n
+
+            config BSP_UART7_RX_USING_DMA
+                bool "Enable UART7 RX DMA"
+                depends on BSP_USING_UART7 
+                select RT_SERIAL_USING_DMA
                 default n
         endif
 

+ 1 - 1
bsp/gd32/libraries/gd32_drivers/drv_usart.c

@@ -437,7 +437,7 @@ static int gd32_uart_putc(struct rt_serial_device *serial, char ch)
     uart = (struct gd32_uart *)serial->parent.user_data;
 
     usart_data_transmit(uart->uart_periph, ch);
-    while((usart_flag_get(uart->uart_periph, USART_FLAG_TC) == RESET));
+    while((usart_flag_get(uart->uart_periph, USART_FLAG_TBE) == RESET));
 
     return RT_EOK;
 }