请协助我验证当前 UART 在高波特率持续数据流下的 DMA 吞吐能力,找出丢包、溢出、解析阻塞或 CPU 占用过高的瓶颈。
你可以检查工程代码、构建并烧录固件;只有在真实发送源、串口工具或抓包日志支持时,才对吞吐能力做结论。
接口参数:目标波特率、数据位、校验、停止位、硬件流控和线路长度以当前项目为准。
接收模型:DMA 循环缓冲、IDLE 中断、半传输/全传输回调、环形队列和应用解析任务。
发送模型:DMA 发送队列、发送完成回调、背压策略和日志输出通道。
评价指标:有效吞吐、缓冲高水位、溢出次数、ORE/FE/NE/PE、CPU 占用和解析延迟。
低速通信稳定,但提高波特率或连续发送大块数据后,接收缓冲溢出、解析滞后或发送队列堆积。
- 找到 UART/DMA 初始化、缓冲区大小、IDLE 处理、解析任务和发送队列代码;
- 核对 DMA 数据宽度、循环模式、缓存一致性、临界区和读写索引更新;
- 设计压力测试:不同波特率、不同包长、连续流、突发流和双向同时收发;
- 增加可关闭统计,记录字节数、帧数、缓冲高水位、溢出、错误标志和任务耗时;
- 根据数据调整缓冲区、任务优先级、背压或解析分片策略,构建烧录并复测;
最终输出应包含:压力测试脚本或方法、吞吐统计、瓶颈分析、修改文件和复测结果。