OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5757|回复: 19

请教个关于环形缓冲区的问题

[复制链接]
头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
发表于 2016-10-21 11:43:22 来自手机 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1821
金钱
1821
注册时间
2014-6-27
在线时间
977 小时
发表于 2016-10-21 12:00:42 | 显示全部楼层
如果你是用动态内存来做环形队列,你来一个信息要开辟一个空间,你如此你不处理信息释放动态内存,到达一定数量你没有从头保存,继续开辟,就是如此一般问题。如果你用数组来做,保存到尾了,再从头存放,信息处不处理都不会死机,只是信息被覆盖了而已。
回复 支持 反对

使用道具 举报

21

主题

387

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1043
金钱
1043
注册时间
2016-9-8
在线时间
213 小时
发表于 2016-10-21 12:04:33 | 显示全部楼层
shop60994719.taobao.com
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-21 16:12:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-21 16:36:37 | 显示全部楼层
liu1028tao 发表于 2016-10-21 16:12
你好  我用的是数组的方式,但是发现程序运行将近十分钟左右就死机了,打印日志是 内存不够,所以我感到 ...

环形缓冲区,每个人实现的代码不一样的,有的读取有2种,一种的读取同时会把数据从缓冲区删掉,一种只读不删,你看下缓冲区代码先吧
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-21 16:38:47 | 显示全部楼层
另外,你只存不读,肯定最后内存不够用,至于存数据溢出有什么情况,得看你环形缓冲区的代码实现,毕竟每个人写的不一样
回复 支持 反对

使用道具 举报

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
发表于 2016-10-21 17:32:02 | 显示全部楼层
环形缓冲区这个概念是看哪节视频能有介绍?
回复 支持 反对

使用道具 举报

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
发表于 2016-10-21 17:32:30 | 显示全部楼层
环形缓冲区,在哪节课中有介绍?
回复 支持 反对

使用道具 举报

10

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1821
金钱
1821
注册时间
2014-6-27
在线时间
977 小时
发表于 2016-10-21 19:16:23 | 显示全部楼层
liu1028tao 发表于 2016-10-21 16:12
你好  我用的是数组的方式,但是发现程序运行将近十分钟左右就死机了,打印日志是 内存不够,所以我感到 ...

用数组来做的,应该是是其他导致的问题。
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-22 10:47:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-22 10:50:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-22 10:51:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
发表于 2016-10-22 11:59:01 | 显示全部楼层
liu1028tao 发表于 2016-10-22 10:51
一个项目中用到的  视频教程是没有的  你看看数据结构的书  应该有介绍的

谢谢,环形模式是什么意思呢?
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-22 12:47:34 | 显示全部楼层
liu1028tao 发表于 2016-10-22 10:50
打印出来是内存不够,出错的时候,获取到缓冲区的可写容量已经是1了,我每次写入的也是一个字节

环形缓冲,代码实现肯定有删除的代码,你把读完没用的删了不就好了。你在这里问,还不如去看看人家实现的代码呢
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-22 12:49:24 | 显示全部楼层
如果没有删除的实现,自己写一个呗,不过一般是有删除实现的,看码源去吧,这样问没人帮得鸟你
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-22 18:11:25 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-10-22 20:38:46 | 显示全部楼层
liu1028tao 发表于 2016-10-22 18:11
我只是想确定一下,如果没有删除的实现,一直往里面写数据会不会导致缓冲区内存不够。说的庸俗点我是想刨 ...

会不会得看你代码的实现,每个人的实现不一样的,有的人写满了会直接写不进去,返回错误,有的人直接回去覆盖队头的
回复 支持 反对

使用道具 举报

38

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2014-3-5
在线时间
67 小时
发表于 2016-10-22 21:05:38 | 显示全部楼层
我用数组方式写过一个环形缓冲,数据超过buffer大小后就写不进去了,返回buffer overflow,不会导致数据覆盖,如果处理一些数据后在继续写,又可以开始写。
Hard work!
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-23 19:24:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

106

主题

157

帖子

0

精华

禁止访问

积分
1263
金钱
1263
注册时间
2014-3-7
在线时间
90 小时
 楼主| 发表于 2016-10-23 19:25:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 06:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表