[bsp/renesas][drivers] Fix SCI SPI runtime configuration and transfer errors - #11792
[bsp/renesas][drivers] Fix SCI SPI runtime configuration and transfer errors#11792CYFS3 wants to merge 1 commit into
Conversation
… errors 修复 SCI SPI 分频参数和运行时配置生命周期,保持位宽单位一致,应用模式及片选配置,并在收发超时或错误后停止传输、清理状态。
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
📌 Code Review Assignment🏷️ Tag: bsp_renesasReviewers: @kurisaW Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-09-09 17:25 CST)
📝 Review Instructions
|
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
在 RZ/N2L EtherKit 的 SCI SPI 回环排查中发现,共享 SCI SPI 驱动存在以下问题:RZ 分频接口将 false 作为分频结果指针传入,且未使用 FSP 配置中的实际时钟源;运行时配置没有可靠地传递给 FSP,重复配置也未正确关闭旧实例;配置过程将 RT-Thread 的位宽从 bit 改成 byte;收发等待超时或出错后仍返回传输长度,导致调用方误判传输成功。
你的解决方案是什么 (what is your solution)
为每条 SCI 总线保存持久的可写 FSP 配置及扩展配置副本,修正各 SCI 分支的分频调用,并在 RZ 分支使用实际配置的时钟源;检查分频错误,在重新配置前显式关闭已打开的实例。保持 RT-Thread 位宽单位为 bit,同步主从模式、时钟极性/相位、位序和回调上下文,保留无片选及无效 CS 引脚保护。
统一处理发送、接收和全双工传输的等待结果,在超时或错误时关闭传输、清理事件和总线归属,使后续操作可以重新配置并重试。
已通过 RZ、普通 SCI、SCI_B 三条分支的主机模拟测试,覆盖 6 档时钟、1~512 字节收发、配置生命周期、多总线隔离及错误恢复
请提供验证的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