嵌入式技术论坛
直播中

刘勇

7年用户 1342经验值
私信 关注
[问答]

rtt的环形缓冲区读完就丢弃了?

请教大家,有这样的需求:

1、mcu ram缓冲区大小固定,每隔一段时间采集一个数据放到缓冲区,缓冲区满了覆盖写入,每个数据会对应一个编号;
2、可以通过编号判断是否在缓冲区有数据,并可以快速定位读出来;

rtt的环形缓冲区读完就丢弃了,而且是不能读取任意的位置,现在想到的方法就是: 搞一个数组当缓冲区,不断增加数据,记住缓冲区头和尾部对应的序号,满了就全部往前移动,但这种方法在缓冲区很大, 满了就得全部移动,这样的效率会不会太低?是否有其他思路实现?

回帖(3)

李俊

2023-4-17 14:40:06
需要读取任意位置,那就只能数组了,记录头和尾,满了就把最旧的数据覆盖,头和尾都加1,数据好像不需要移动吧
举报

刘勇

2023-4-17 14:40:14
嗯,多一些防止数组溢出的判断咯
举报

李玉兰

2023-4-17 14:40:25
rtt的环形缓冲区读完就丢弃了,而且是不能读取任意的位置
并不是不可以,只是当前没有这样实现罢了。可以根据实际需要去修改和完善它。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分