fix serial dma rx ringbuffer position mismatch#10535
fix serial dma rx ringbuffer position mismatch#10535judecumt wants to merge 1 commit intoRT-Thread:masterfrom
Conversation
📌 Code Review Assignment🏷️ Tag: componentsReviewers: @Maihuanyi Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-07-24 21:56 CST)
📝 Review Instructions
|
|
#10529 |
我们用的是5.1.0版本,没有这里的dma_ping_rb |
|
#10263 |
好的 这个PR的改动其实不止是串口的使用,主要是看编译器开了优化选项情况下,ringbuffer的index加上volatile修饰,有没有必要 |
|
嗯嗯,这里的值理论上编译器不会进行优化的,是可变数据不会过度优化的。 |
嗯 目前的改动在我们串口出问题的场景,连续跑一周没有问题,暂时先不切换到最新版 |
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
单片机为小华的HC32F4A0,在使用serial v2+dma rx时,发现在erase内部flash时,有概率触发dma rx串口数据的一个bug:
你的解决方案是什么 (what is your solution)
一开始以为是因为线程收取太慢,dma buffer不够用导致的,因为我们的串口收流量比较大,增大dma的buffer size后运行,还是会出现改现象。
这里对ringbuffer做改动后,串口收就没有出现过以上现象。
]
当前拉取/合并请求的状态 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