[bsp][spi flash]: 优化GD32F470 SPI Flash初始化和UART0配置#10983
[bsp][spi flash]: 优化GD32F470 SPI Flash初始化和UART0配置#10983kurisaW merged 2 commits intoRT-Thread:masterfrom
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