[bsp][drives]fix(spi_config):修复H7的SPI6配置缺失问题 - #11633
Conversation
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: bsp_stm32Reviewers: @Liang1795 @hamburger-os @wdfk-prog Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-07-20 20:32 CST)
📝 Review Instructions
|
|
关于验证,我在自己负责的DM-MC02 BSP上编写了一个WS2812驱动的软件包,经过本地测试SPI6正常工作。由于软件包还有格式和API问题,所以和BSP一起没有推上来,目前主仓库的BSP还不能直接验证这个改动。 |
clangd format已经完成 |
SPI6_RX_DMA_RCC, \
SPI6_RX_DMA_IRQ, \
SPI6_TX_DMA_RCC, \
SPI6_TX_DMA_IRQ, \ |
啊对的...我还没有测试过SPI6配合DMA。而且也不能照搬F4的...我的锅。稍后我再加个commit吧 |
不过SPI6似乎只支持BDMA,看起来H7尚不支持,如果顺便修改DMA会涉及很多的驱动相关...或许需要开一个新的PR。我这段时间尝试一下修改SPI驱动吧 |
|
我最近正在做BDMA的驱动。但是实现完drv_bdma开始着手drv_spi的时候发现绝大部分逻辑几乎与dma完全一致,如果单独开一个编译分支之类相当的浪费。考虑到dma实际存在其他类型,是否可以做一些薄封装,使得dma的config等差异化的部分可以被替换,传给SPI的是一个包括config,句柄等的泛DMA结构体?我目前的想法如下: struct stm32_spi_dma_ops
{
rt_err_t (*setup)(DMA_HandleTypeDef *handle,
void *parent,
DMA_HandleTypeDef **slot,
const void *config);
rt_err_t (*deinit)(DMA_HandleTypeDef *handle,
const void *config,
rt_bool_t abort_first);
};
struct stm32_spi_dma_endpoint
{
DMA_HandleTypeDef handle;
const void *config;
const struct stm32_spi_dma_ops *ops;
};考虑到dma相关驱动很多是您贡献的,这里会修改一部分逻辑,所以在此征询您的意见。目前我是单独实现了deinit和init等,还在处理spi_xfer函数。 |



拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
为了解决issue #11626 中的H7 SPI6配置缺失问题
你的解决方案是什么 (what is your solution)
参考F4的配置,修改了spi_config.h
请提供验证的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