[bsp/renesas][drivers] Support configurable CAN FD operation - #11751
[bsp/renesas][drivers] Support configurable CAN FD operation#11751CYFS3 wants to merge 1 commit into
Conversation
|
👋 感谢您对 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-08-26 11:09 CST)
📝 Review Instructions
|
|
v5.3.0 |
| g_can_tx_frame.data_length_code = msg_rt->len; | ||
| #if defined(BSP_USING_CANFD) && (defined(BSP_USING_CAN_RZ) || defined(BSP_USING_CAN_RA)) | ||
| #endif | ||
| #if defined(BSP_USING_CANFD) |
There was a problem hiding this comment.
这块的BSP_USING_CANFD和下面的RT_CAN_USING_CANFD语义不可以统一成一个?
e1a43a7 to
e08fa92
Compare
| #ifdef RA_CAN_USING_DYNAMIC_CANFD_TIMING | ||
| static rt_uint32_t ra_canfd_clock_divisor_get(void) | ||
| { | ||
| #if BSP_CFG_CANFDCLK_DIV == BSP_CLOCKS_CANFD_CLOCK_DIV_1 |
There was a problem hiding this comment.
这块确认下RA/RZ系列是否都支持该宏定义/有API命名差异
另外可以考虑补充RZ系列支持,可以用etherkit测试

拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
Renesas CAN/CAN FD 驱动未正确处理 RT-Thread 中断控制参数,可能访问无效 IRQ 并触发 HardFault;同时固定时序和帧长度处理导致 RA8 系列无法可靠切换仲裁波特率及收发 CAN FD/BRS 帧。
你的解决方案是什么 (what is your solution)
修正中断启停和共享 RX FIFO IRQ 管理,基于 CANFDCLK 动态计算仲裁及数据相位时序并在配置变化时重新初始化 FSP;补全 Classic CAN、CAN FD、BRS 帧属性及 DLC/字节长度转换,并加强回调和错误处理。已在 bsp/renesas/ra8p1-titan-board/m85 上完成 Classic CAN、CAN FD、BRS 及双路 CAN 实板验证,并通过 Keil 编译。
请提供验证的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