[Fix] <components>:drivers/can/dev_can.c 修复CAN底层无法工作时导致调用_can_int_tx的线程一直挂起的问题#10560
Merged
Rbb666 merged 1 commit intoRT-Thread:masterfrom Jul 29, 2025
Merged
[Fix] <components>:drivers/can/dev_can.c 修复CAN底层无法工作时导致调用_can_int_tx的线程一直挂起的问题#10560Rbb666 merged 1 commit intoRT-Thread:masterfrom
Rbb666 merged 1 commit intoRT-Thread:masterfrom
Conversation
📌 Code Review Assignment🏷️ Tag: componentsReviewers: Maihuanyi Changed Files (Click to expand)
🏷️ Tag: components_driver_canReviewers: wdfk-prog Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-07-29 15:04 CST)
📝 Review Instructions
|
wdfk-prog
approved these changes
Jul 29, 2025
Contributor
|
Rbb666
reviewed
Jul 29, 2025
components/drivers/can/dev_can.c
Outdated
| can->status.sndchange = 1; | ||
| rt_completion_wait(&(tx_tosnd->completion), RT_WAITING_FOREVER); | ||
| can->status.sndchange |= 1<<no; | ||
|
|
Contributor
Author
感觉目前不是不需要诶 默认值100ms应该够了 或者自己改一下宏定义 就不动态调整超时时间了^^ |
Contributor
|
… 的线程一直挂起的问题 Solution: 使用 can->status.sndchange 的bit位来表示某个发送邮箱超时 如果超时 底层驱动再通知tx_done或者tx_fail事件时不予处理 Signed-off-by: Yucai Liu <1486344514@qq.com>
Rbb666
approved these changes
Jul 29, 2025
Contributor
|
我不明白为什么发送会超时?正常来说一旦开始发送 它会自动很快完成,有什么操作会阻值发送过程? |
GPTKEY
reviewed
Jul 29, 2025
| can->status.sndchange |= 1<<no; | ||
| if (rt_completion_wait(&(tx_tosnd->completion), RT_CANSND_MSG_TIMEOUT) != RT_EOK) | ||
| { | ||
| level = rt_hw_interrupt_disable(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Solution: 使用 can->status.sndchange 的bit位来表示某个发送邮箱超时 如果超时 底层驱动再通知tx_done或者tx_fail事件时不予处理
resolves #10550
拉取/合并请求描述:(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