-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[bsp][spi flash]: 优化GD32F470 SPI Flash初始化和UART0配置 #10983
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
Conversation
主要修改: 1. SPI Flash初始化优化 - 添加可配置的SPI Flash自动初始化选项(BSP_USING_SPI_FLASH) - 支持按SPI总线独立配置Flash初始化(BSP_USING_SPIx_FLASH) - 避免SPI Flash初始化与其他SPI设备(如OLED、WIFI)冲突 - 添加SPI5 Flash支持 - 修改drv_spi_flash.c,仅在明确配置的SPI总线上初始化Flash 2. UART0配置修复 - 将UART0的AFIO默认值从AF1改为AF7 - 修复串口无响应问题 这些修改使得用户可以更灵活地配置SPI Flash初始化,避免自动初始化导致的设备冲突问题。
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: bsp_gd32470z-lckfbReviewers: godmial Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-12-01 11:58 CST)
📝 Review Instructions
|
|
LGTM |
|
GD/arm 每个系列都会有一个板载flash吗?如果只是某个bsp带flash,其实这个drv_spi_flash.c更建议放到bsp/board级别下作为一个demo,没必要上升到通用驱动级别 |
这是之前的解决方案,如果放到具体某个bsp/board的话,那就需要你们官方来做了 |
那就先放到这里吧,另外请针对这个bsp补充对BSP_USING_SPI的配置项,确保一键开启可用,并测试通过后提交截图 |
|
请压缩一下提交 |
* feat(gd32): 优化GD32F470 SPI Flash初始化和UART0配置 主要修改: 1. SPI Flash初始化优化 - 添加可配置的SPI Flash自动初始化选项(BSP_USING_SPI_FLASH) - 支持按SPI总线独立配置Flash初始化(BSP_USING_SPIx_FLASH) - 避免SPI Flash初始化与其他SPI设备(如OLED、WIFI)冲突 - 添加SPI5 Flash支持 - 修改drv_spi_flash.c,仅在明确配置的SPI总线上初始化Flash 2. UART0配置修复 - 将UART0的AFIO默认值从AF1改为AF7 - 修复串口无响应问题 这些修改使得用户可以更灵活地配置SPI Flash初始化,避免自动初始化导致的设备冲突问题。 * feat(gd32): 解耦SPI Flash与SFUD的依赖关系



拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
当前GD32F470 BSP的SPI Flash驱动存在以下问题:
RT_USING_SFUD并配置多个SPI接口时,驱动会自动在所有启用的SPI总线上调用rt_sfud_flash_probe进行Flash初始化,这会导致问题。因为某些SPI接口可能用于其他设备(如OLED显示屏、WIFI模块等),在这些接口上尝试初始化Flash会导致其他设备初始化异常。你的解决方案是什么 (what is your solution)
SPI Flash初始化优化:
board/Kconfig中添加了BSP_USING_SPI_FLASH菜单配置选项,允许用户选择是否启用SPI Flash自动初始化BSP_USING_SPIx_FLASH),用户可以选择在哪些SPI总线上初始化Flashdrv_spi_flash.c,使Flash初始化仅在用户明确配置的SPI总线上进行,避免与其他SPI设备冲突#ifdef BSP_USING_SPI_FLASH包裹整个初始化函数,当用户禁用自动初始化时,不会编译相关代码UART0配置修复:
BSP_UART0_AFIO的默认值从"AF1"改为"AF7",修复串口无响应问题请提供验证的bsp和config (provide the config and bsp)
BSP:
bsp/gd32/arm/gd32470z-lckfb.config:
CONFIG_BSP_USING_SPI=y- 启用SPI总线支持CONFIG_BSP_USING_SPI_FLASH=y- 启用SPI Flash自动初始化(可选)CONFIG_BSP_USING_SPIx_FLASH=y- 选择在哪些SPI总线上初始化Flash(x为0-5,根据实际硬件连接选择)CONFIG_BSP_UART0_AFIO="AF7"- UART0复用功能配置为AF7CONFIG_RT_USING_SFUD=y- 启用SFUD驱动(当启用SPI Flash时自动选择)action:
]
当前拉取/合并请求的状态 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