-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[bsp/gd32] 更新GD32 SPI驱动 #10657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bsp/gd32] 更新GD32 SPI驱动 #10657
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the GD32 SPI driver to improve GPIO configuration, add support for new MCU series, and enhance functionality with SPI5 support and better CS pin handling.
- Refactors GPIO pin configuration to handle SCK, MISO, and MOSI pins independently instead of as a combined group
- Adds support for GD32H7xx and GD32F5xx series MCUs with appropriate GPIO speed settings and flag handling
- Introduces SPI5 peripheral support and modernizes CS pin management using the RT-Thread device framework
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h | Updates structure definition to separate GPIO clocks and ports for individual pin control |
| bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c | Major refactoring of GPIO initialization, adds GD32H7xx/F5xx support, SPI5 configuration, and modern CS handling |
| bsp/gd32/arm/gd32h759i-eval/board/Kconfig | Adds SPI configuration options for GD32H759I evaluation board |
| bsp/gd32/arm/gd32527I-eval/board/Kconfig | Expands SPI configuration options to include all SPI peripherals (SPI0-SPI5) |
| LOG_D("%s transfer prepare and start", spi_drv->config->bus_name); | ||
| LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d", | ||
| spi_drv->config->bus_name, |
Copilot
AI
Sep 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[bug/错误]: Undefined variable spi_drv is used in debug logging statements.
English: The variable spi_drv is not defined in the spixfer function scope. The correct variable should be spi_device which is defined at line 375.
中文:变量 spi_drv 在 spixfer 函数作用域中未定义。应该使用在第375行定义的正确变量 spi_device。
Example/示例:
LOG_D("%s transfer prepare and start", spi_device->bus_name);
LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d",
spi_device->bus_name,
(uint32_t)message->send_buf,
(uint32_t)message->recv_buf, message->length);| LOG_D("%s transfer prepare and start", spi_drv->config->bus_name); | |
| LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d", | |
| spi_drv->config->bus_name, | |
| LOG_D("%s transfer prepare and start", spi_device->config->bus_name); | |
| LOG_D("%s sendbuf: %X, recvbuf: %X, length: %d", | |
| spi_device->config->bus_name, |
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
更新GD32 SPI驱动
]
当前拉取/合并请求的状态 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