[fix] gd32: can: add IRQ aliases and init fixes for legacy series#11145
[fix] gd32: can: add IRQ aliases and init fixes for legacy series#11145illustriousness wants to merge 1 commit intoRT-Thread:masterfrom
Conversation
- add CAN0 IRQ alias macros for F10x/F30x/E50x - guard optional CAN1 IRQs - adjust RX pin mode and auto-retrans handling
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
| if (CAN1 == can_dev->can_x) | ||
| { | ||
| #if defined(CAN1_RX0_IRQn) | ||
| nvic_irq_enable(CAN1_RX0_IRQn, 1, 0); |
There was a problem hiding this comment.
我看上面的CAN0修改成了 CAN0_RX0_IRQn_ALIAS,CAN1的这块是否也需要修正?
还是说这个MCU只有一路CAN?
There was a problem hiding this comment.
我看上面的CAN0修改成了
CAN0_RX0_IRQn_ALIAS,CAN1的这块是否也需要修正? 还是说这个MCU只有一路CAN?
can1 基本在CL型 中才有 我看pkg下 can1的中断名字都是这个
这个mcu中 只有一路can 不过库中有定义can1
更完善一下的话 可以把上面的ifdef CAN1 直接改成下面的#if defined(CAN1_RX0_IRQn)
|
然后建议把驱动添加到ci看护中: https://club.rt-thread.org/ask/article/5edd0f0940a57129.html |
| #ifdef RT_CAN_USING_HDR | ||
| config.maxhdr = 14; | ||
| #ifdef CAN1 | ||
| #ifdef CAN1_EWMC_IRQn |
There was a problem hiding this comment.
这块为什么只针对CAN1进行了处理,我看也有 CAN0_EWMC_IRQn 的定义:https://github.com/RT-Thread-packages/gd32-arm-cmsis/blob/6bc3d6b0f2e077d17d5e14222237fa155f9d143d/GD32F5xx/GD/GD32F5xx/Include/gd32f5xx.h#L129
| #ifdef CAN1 | ||
| if (CAN1 == can_dev->can_x) | ||
| { | ||
| #if defined(CAN1_TX_IRQn) |
There was a problem hiding this comment.
因为有的系列头文件是两个can都定义了的
定义了can1 不代表就能用 但是使用这个irqn可以区分出来这个板子支不支持can1
|
这个等我有空审查一下吧,先暂时别合并 |
请问这个是指针对can这块 还是其他呢 |
can即可,和pr内容相关即可 |

拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
你的解决方案是什么 (what is your solution)
请提供验证的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