[gd32][uart] Add GD32VW553 series UART driver support#11147
[gd32][uart] Add GD32VW553 series UART driver support#11147Rbb666 merged 5 commits intoRT-Thread:masterfrom
Conversation
- Add support for GD32VW55x series UART/USART peripherals - Implement proper GPIO alternate function configuration for GD32VW55x - Add conditional compilation for different GD32 series (GD32VF103V vs GD32VW55x) - Remove unused UART3/UART4 configurations from Kconfig
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
There was a problem hiding this comment.
Pull request overview
This PR adds UART driver support for the GD32VW553 series microcontroller by implementing SOC-specific differentiation between GD32VF103V and GD32VW55x families within the existing GD32 RISC-V BSP framework.
Changes:
- Adds conditional GPIO alternate function configuration support for GD32VW55x UART peripherals
- Implements correct interrupt vector naming (UART1/2 vs USART1/2) for GD32VW55x series
- Removes non-existent UART3/4 configuration options from GD32VW553H Kconfig
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.h | Adds tx_alt and rx_alt fields to gd32_uart struct for GD32VW55x GPIO alternate function configuration |
| bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c | Implements SOC-specific interrupt handlers, UART peripheral definitions, and GPIO initialization with alternate function support for GD32VW55x |
| bsp/gd32/risc-v/gd32vw553h-eval/board/Kconfig | Removes UART3/4 configuration options that don't exist in GD32VW553H hardware |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| rt_interrupt_leave(); | ||
| } | ||
| #else | ||
| #error "not support soc" |
There was a problem hiding this comment.
已经按照Comment进行修改,麻烦有时间时,帮忙再次Review & Approve一下,谢谢!!!
修改clang_format-ignore文件,根据反馈修改n32h7xxx/libraries/N32_Drivers/nano/*下的文件格式,修改n32h7xxx/n32/n32hxxx/n32h760zil7-stb/applications/main.c文件,区别处理Nano下头文件包含 将N32 BSP的.clang-format-ignore文件放入libraries同级目录 忽略库文件格式检查 fix(cherryusb): fix dwc2 host size check Signed-off-by: sakumisu <1203593632@qq.com> [components][clock_time] Refactor time subsystem around clock_time (RT-Thread#11111) * [components][clock_time] Refactor time subsystem around clock_time Introduce the clock_time core with clock source/event separation, high-resolution scheduling, and boot-time helpers, plus clock_timer adapters for timer peripherals. Remove legacy ktime/cputime/hwtimer implementations and migrate arch and BSP time paths to the new subsystem while keeping POSIX time integration functional. Update drivers, Kconfig/SConscript wiring, documentation, and tests; add clock_time overview docs and align naming to clock_boottime/clock_hrtimer/clock_timer. * [components][clock_time] Use BSP-provided clock timer frequency on riscv64 * [risc-v] Use runtime clock timer frequency for tick and delays * [bsp] Add clock timer frequency hooks for riscv64 boards * [bsp] Update Renesas RA driver doc clock_timer link * [bsp] Sync zynqmp-r5-axu4ev rtconfig after config refresh * [bsp][rk3500] Update rk3500 clock configuration * [bsp][hpmicro] Add rt_hw_us_delay hook and update board delays * [bsp][stm32l496-st-nucleo] enable clock_time for hwtimer sample in ci * [bsp][hpmicro] Fix rtconfig include scope for hpm6750evk Move rtconfig.h include outside the ENET_MULTIPLE_PORT guard for hpm6750evk and hpm6750evk2 so configuration macros are available regardless of ENET settings. * [bsp][raspi3] select clock time for systimer * [bsp][hpm5300evk] Trim trailing blank line * [bsp][hpm5301evklite] Trim trailing blank line * [bsp][hpm5e00evk] Trim trailing blank line * [bsp][hpm6200evk] Trim trailing blank line * [bsp][hpm6300evk] Trim trailing blank line * [bsp][hpm6750evk] Trim trailing blank line * [bsp][hpm6750evk2] Trim trailing blank line * [bsp][hpm6750evkmini] Trim trailing blank line * [bsp][hpm6800evk] Trim trailing blank line * [bsp][hpm6e00evk] Trim trailing blank line * [bsp][nxp] switch lpc178x to gcc and remove mcx timer source * [bsp][stm32] fix the CONFIG_RT_USING_CLOCK_TIME issue. * [docs][clock_time] add clock time documentation * [docs][clock_time] Update clock time subsystem documentation - Update device driver index to use correct page reference - Clarify upper layer responsibilities in architecture overview - Update README to describe POSIX/libc, Soft RTC, and device driver usage - Refine architecture diagram with improved layout and color scheme - Remove obsolete clock_timer.md file * [kernel][utest] Trim trailing space * [clock_time] Fix hrtimer wrap handling * [clock_time] fix the static rt_inline issue * [clock_time] fix the rt_clock_hrtimer_control result issue 解决N32 BSP project.ewp和project.uvprojx冲突 更新RTT最新同步 sdio: fix missing card status polling after CMD6 in eMMC DDR mode switch fix[dfs_v1]: prevent vnode ref underflow and double release on close/fd release feat[STM32][CAN]: drain RX FIFO frames in ISR with a bounded limit to reduce overruns - Add CAN_ISR_DRAIN_LIMIT (default 3) to cap ISR work - Drain multiple frames per RX0/RX1 interrupt to reduce FIFO FULL/OVERRUN docs(can): improve dev_can.h docs for batched RX example fix[STM32][RTC]: Compute tv_usec from SecondFraction/SubSeconds and skip during shift pending Use the generic SecondFraction/SubSeconds formula when SSR/PRER are available. If SHPF is present and a shift is pending, keep tv_usec at 0. Platforms without SSR/PRER (e.g. F1) default to 0. [bsp][gd32]:add gd32vw533xx pwm support Update Nsing's BSP architecture and add N32H7xx series BSPs. (RT-Thread#11159) * 更新国民技术BSP架构,添加N32H7xx系列BSP * 修改clang_format-ignore文件,根据反馈修改n32h7xxx/libraries/N32_Drivers/nano/*下的文件格式,修改n32h7xxx/n32/n32hxxx/n32h760zil7-stb/applications/main.c文件,区别处理Nano下头文件包含 * 将N32 BSP的.clang-format-ignore文件放入libraries同级目录 * 忽略库文件格式检查 * 解决N32 BSP project.ewp和project.uvprojx冲突 * 更新RTT最新同步 rename i2c mutex Co-authored-by: BernardXiong <1241087+BernardXiong@users.noreply.github.com> Squashed commit of the following: commit cadd095 Merge: 5ad4edc 68da106 Author: Onlyou_tzZ <97173915+OnlyoutzZ@users.noreply.github.com> Date: Wed Feb 4 22:50:54 2026 +0800 Merge branch 'RT-Thread:master' into master commit 68da106 Author: CYFS <2805686936@qq.com> Date: Wed Feb 4 16:45:30 2026 +0800 [components][drivers]:fix wlan err commit 5ad4edc Author: Onlyou_tzZ <17393117531@163.com> Date: Wed Feb 4 20:22:40 2026 +0800 更新BSP下README.md中N32相关的描述 更新BSP下README.md中N32相关的描述 [components][drivers]:fix wlan err [components][lwip]: fix ping timeout handling and support LWIP_SO_SNDRCVTIMEO_NONSTANDARD [gd32][uart] Add GD32VW553 series UART driver support (RT-Thread#11147) * feat(gd32): add GD32VW55x series USART driver support - Add support for GD32VW55x series UART/USART peripherals - Implement proper GPIO alternate function configuration for GD32VW55x - Add conditional compilation for different GD32 series (GD32VF103V vs GD32VW55x) - Remove unused UART3/UART4 configurations from Kconfig * Update drv_usart.c * Update drv_usart.h follow AI Review. * Update bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: optimize gd32 uart driver error messages --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
修改clang_format-ignore文件,根据反馈修改n32h7xxx/libraries/N32_Drivers/nano/*下的文件格式,修改n32h7xxx/n32/n32hxxx/n32h760zil7-stb/applications/main.c文件,区别处理Nano下头文件包含 将N32 BSP的.clang-format-ignore文件放入libraries同级目录 忽略库文件格式检查 fix(cherryusb): fix dwc2 host size check Signed-off-by: sakumisu <1203593632@qq.com> [components][clock_time] Refactor time subsystem around clock_time (RT-Thread#11111) * [components][clock_time] Refactor time subsystem around clock_time Introduce the clock_time core with clock source/event separation, high-resolution scheduling, and boot-time helpers, plus clock_timer adapters for timer peripherals. Remove legacy ktime/cputime/hwtimer implementations and migrate arch and BSP time paths to the new subsystem while keeping POSIX time integration functional. Update drivers, Kconfig/SConscript wiring, documentation, and tests; add clock_time overview docs and align naming to clock_boottime/clock_hrtimer/clock_timer. * [components][clock_time] Use BSP-provided clock timer frequency on riscv64 * [risc-v] Use runtime clock timer frequency for tick and delays * [bsp] Add clock timer frequency hooks for riscv64 boards * [bsp] Update Renesas RA driver doc clock_timer link * [bsp] Sync zynqmp-r5-axu4ev rtconfig after config refresh * [bsp][rk3500] Update rk3500 clock configuration * [bsp][hpmicro] Add rt_hw_us_delay hook and update board delays * [bsp][stm32l496-st-nucleo] enable clock_time for hwtimer sample in ci * [bsp][hpmicro] Fix rtconfig include scope for hpm6750evk Move rtconfig.h include outside the ENET_MULTIPLE_PORT guard for hpm6750evk and hpm6750evk2 so configuration macros are available regardless of ENET settings. * [bsp][raspi3] select clock time for systimer * [bsp][hpm5300evk] Trim trailing blank line * [bsp][hpm5301evklite] Trim trailing blank line * [bsp][hpm5e00evk] Trim trailing blank line * [bsp][hpm6200evk] Trim trailing blank line * [bsp][hpm6300evk] Trim trailing blank line * [bsp][hpm6750evk] Trim trailing blank line * [bsp][hpm6750evk2] Trim trailing blank line * [bsp][hpm6750evkmini] Trim trailing blank line * [bsp][hpm6800evk] Trim trailing blank line * [bsp][hpm6e00evk] Trim trailing blank line * [bsp][nxp] switch lpc178x to gcc and remove mcx timer source * [bsp][stm32] fix the CONFIG_RT_USING_CLOCK_TIME issue. * [docs][clock_time] add clock time documentation * [docs][clock_time] Update clock time subsystem documentation - Update device driver index to use correct page reference - Clarify upper layer responsibilities in architecture overview - Update README to describe POSIX/libc, Soft RTC, and device driver usage - Refine architecture diagram with improved layout and color scheme - Remove obsolete clock_timer.md file * [kernel][utest] Trim trailing space * [clock_time] Fix hrtimer wrap handling * [clock_time] fix the static rt_inline issue * [clock_time] fix the rt_clock_hrtimer_control result issue 解决N32 BSP project.ewp和project.uvprojx冲突 更新RTT最新同步 sdio: fix missing card status polling after CMD6 in eMMC DDR mode switch fix[dfs_v1]: prevent vnode ref underflow and double release on close/fd release feat[STM32][CAN]: drain RX FIFO frames in ISR with a bounded limit to reduce overruns - Add CAN_ISR_DRAIN_LIMIT (default 3) to cap ISR work - Drain multiple frames per RX0/RX1 interrupt to reduce FIFO FULL/OVERRUN docs(can): improve dev_can.h docs for batched RX example fix[STM32][RTC]: Compute tv_usec from SecondFraction/SubSeconds and skip during shift pending Use the generic SecondFraction/SubSeconds formula when SSR/PRER are available. If SHPF is present and a shift is pending, keep tv_usec at 0. Platforms without SSR/PRER (e.g. F1) default to 0. [bsp][gd32]:add gd32vw533xx pwm support Update Nsing's BSP architecture and add N32H7xx series BSPs. (RT-Thread#11159) * 更新国民技术BSP架构,添加N32H7xx系列BSP * 修改clang_format-ignore文件,根据反馈修改n32h7xxx/libraries/N32_Drivers/nano/*下的文件格式,修改n32h7xxx/n32/n32hxxx/n32h760zil7-stb/applications/main.c文件,区别处理Nano下头文件包含 * 将N32 BSP的.clang-format-ignore文件放入libraries同级目录 * 忽略库文件格式检查 * 解决N32 BSP project.ewp和project.uvprojx冲突 * 更新RTT最新同步 rename i2c mutex Co-authored-by: BernardXiong <1241087+BernardXiong@users.noreply.github.com> Squashed commit of the following: commit cadd095 Merge: 5ad4edc 68da106 Author: Onlyou_tzZ <97173915+OnlyoutzZ@users.noreply.github.com> Date: Wed Feb 4 22:50:54 2026 +0800 Merge branch 'RT-Thread:master' into master commit 68da106 Author: CYFS <2805686936@qq.com> Date: Wed Feb 4 16:45:30 2026 +0800 [components][drivers]:fix wlan err commit 5ad4edc Author: Onlyou_tzZ <17393117531@163.com> Date: Wed Feb 4 20:22:40 2026 +0800 更新BSP下README.md中N32相关的描述 更新BSP下README.md中N32相关的描述 [components][drivers]:fix wlan err [components][lwip]: fix ping timeout handling and support LWIP_SO_SNDRCVTIMEO_NONSTANDARD [gd32][uart] Add GD32VW553 series UART driver support (RT-Thread#11147) * feat(gd32): add GD32VW55x series USART driver support - Add support for GD32VW55x series UART/USART peripherals - Implement proper GPIO alternate function configuration for GD32VW55x - Add conditional compilation for different GD32 series (GD32VF103V vs GD32VW55x) - Remove unused UART3/UART4 configurations from Kconfig * Update drv_usart.c * Update drv_usart.h follow AI Review. * Update bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: optimize gd32 uart driver error messages --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
修改clang_format-ignore文件,根据反馈修改n32h7xxx/libraries/N32_Drivers/nano/*下的文件格式,修改n32h7xxx/n32/n32hxxx/n32h760zil7-stb/applications/main.c文件,区别处理Nano下头文件包含 将N32 BSP的.clang-format-ignore文件放入libraries同级目录 忽略库文件格式检查 fix(cherryusb): fix dwc2 host size check Signed-off-by: sakumisu <1203593632@qq.com> [components][clock_time] Refactor time subsystem around clock_time (#11111) * [components][clock_time] Refactor time subsystem around clock_time Introduce the clock_time core with clock source/event separation, high-resolution scheduling, and boot-time helpers, plus clock_timer adapters for timer peripherals. Remove legacy ktime/cputime/hwtimer implementations and migrate arch and BSP time paths to the new subsystem while keeping POSIX time integration functional. Update drivers, Kconfig/SConscript wiring, documentation, and tests; add clock_time overview docs and align naming to clock_boottime/clock_hrtimer/clock_timer. * [components][clock_time] Use BSP-provided clock timer frequency on riscv64 * [risc-v] Use runtime clock timer frequency for tick and delays * [bsp] Add clock timer frequency hooks for riscv64 boards * [bsp] Update Renesas RA driver doc clock_timer link * [bsp] Sync zynqmp-r5-axu4ev rtconfig after config refresh * [bsp][rk3500] Update rk3500 clock configuration * [bsp][hpmicro] Add rt_hw_us_delay hook and update board delays * [bsp][stm32l496-st-nucleo] enable clock_time for hwtimer sample in ci * [bsp][hpmicro] Fix rtconfig include scope for hpm6750evk Move rtconfig.h include outside the ENET_MULTIPLE_PORT guard for hpm6750evk and hpm6750evk2 so configuration macros are available regardless of ENET settings. * [bsp][raspi3] select clock time for systimer * [bsp][hpm5300evk] Trim trailing blank line * [bsp][hpm5301evklite] Trim trailing blank line * [bsp][hpm5e00evk] Trim trailing blank line * [bsp][hpm6200evk] Trim trailing blank line * [bsp][hpm6300evk] Trim trailing blank line * [bsp][hpm6750evk] Trim trailing blank line * [bsp][hpm6750evk2] Trim trailing blank line * [bsp][hpm6750evkmini] Trim trailing blank line * [bsp][hpm6800evk] Trim trailing blank line * [bsp][hpm6e00evk] Trim trailing blank line * [bsp][nxp] switch lpc178x to gcc and remove mcx timer source * [bsp][stm32] fix the CONFIG_RT_USING_CLOCK_TIME issue. * [docs][clock_time] add clock time documentation * [docs][clock_time] Update clock time subsystem documentation - Update device driver index to use correct page reference - Clarify upper layer responsibilities in architecture overview - Update README to describe POSIX/libc, Soft RTC, and device driver usage - Refine architecture diagram with improved layout and color scheme - Remove obsolete clock_timer.md file * [kernel][utest] Trim trailing space * [clock_time] Fix hrtimer wrap handling * [clock_time] fix the static rt_inline issue * [clock_time] fix the rt_clock_hrtimer_control result issue 解决N32 BSP project.ewp和project.uvprojx冲突 更新RTT最新同步 sdio: fix missing card status polling after CMD6 in eMMC DDR mode switch fix[dfs_v1]: prevent vnode ref underflow and double release on close/fd release feat[STM32][CAN]: drain RX FIFO frames in ISR with a bounded limit to reduce overruns - Add CAN_ISR_DRAIN_LIMIT (default 3) to cap ISR work - Drain multiple frames per RX0/RX1 interrupt to reduce FIFO FULL/OVERRUN docs(can): improve dev_can.h docs for batched RX example fix[STM32][RTC]: Compute tv_usec from SecondFraction/SubSeconds and skip during shift pending Use the generic SecondFraction/SubSeconds formula when SSR/PRER are available. If SHPF is present and a shift is pending, keep tv_usec at 0. Platforms without SSR/PRER (e.g. F1) default to 0. [bsp][gd32]:add gd32vw533xx pwm support Update Nsing's BSP architecture and add N32H7xx series BSPs. (#11159) * 更新国民技术BSP架构,添加N32H7xx系列BSP * 修改clang_format-ignore文件,根据反馈修改n32h7xxx/libraries/N32_Drivers/nano/*下的文件格式,修改n32h7xxx/n32/n32hxxx/n32h760zil7-stb/applications/main.c文件,区别处理Nano下头文件包含 * 将N32 BSP的.clang-format-ignore文件放入libraries同级目录 * 忽略库文件格式检查 * 解决N32 BSP project.ewp和project.uvprojx冲突 * 更新RTT最新同步 rename i2c mutex Co-authored-by: BernardXiong <1241087+BernardXiong@users.noreply.github.com> Squashed commit of the following: commit cadd095 Merge: 5ad4edc 68da106 Author: Onlyou_tzZ <97173915+OnlyoutzZ@users.noreply.github.com> Date: Wed Feb 4 22:50:54 2026 +0800 Merge branch 'RT-Thread:master' into master commit 68da106 Author: CYFS <2805686936@qq.com> Date: Wed Feb 4 16:45:30 2026 +0800 [components][drivers]:fix wlan err commit 5ad4edc Author: Onlyou_tzZ <17393117531@163.com> Date: Wed Feb 4 20:22:40 2026 +0800 更新BSP下README.md中N32相关的描述 更新BSP下README.md中N32相关的描述 [components][drivers]:fix wlan err [components][lwip]: fix ping timeout handling and support LWIP_SO_SNDRCVTIMEO_NONSTANDARD [gd32][uart] Add GD32VW553 series UART driver support (#11147) * feat(gd32): add GD32VW55x series USART driver support - Add support for GD32VW55x series UART/USART peripherals - Implement proper GPIO alternate function configuration for GD32VW55x - Add conditional compilation for different GD32 series (GD32VF103V vs GD32VW55x) - Remove unused UART3/UART4 configurations from Kconfig * Update drv_usart.c * Update drv_usart.h follow AI Review. * Update bsp/gd32/risc-v/libraries/gd32_drivers/drv_usart.c Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: optimize gd32 uart driver error messages --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
你的解决方案是什么 (what is your solution)
请提供验证的bsp和config (provide the config and bsp)
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up