OpenEdv-开源电子网

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

在用VS1003做一个简单MP3 怎么解决内存不够问题

[复制链接]

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2012-11-11
在线时间
3 小时
发表于 2013-3-18 17:44:51 | 显示全部楼层 |阅读模式
我移植原子哥的FAT代码, 当读完一个簇后,这时候就得去查找下一个簇的位置,这时候也得占用512个字节内存。在查找下个簇的时候,VS1003就已经把数据播放完了,造成一卡一卡的。播放低码率的还好,只要达到80 或者96K就卡的很了。内部时钟已经是44兆了,但读一个扇区的时间还是比较长,造成VS1003在等待。 该怎么解决掉这种问题呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

175

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2013-1-13
在线时间
6 小时
发表于 2013-3-18 17:49:45 | 显示全部楼层
回复【楼主位】xiaozhuqing1:
---------------------------------
我以前做的时候是用的znFAT里的一个ReadFileX函数,,这个就不占多少内存,是适合51单片机的。就是读一个字节处理一个字节,不用建立缓冲区。
电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...
回复 支持 反对

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2012-11-11
在线时间
3 小时
 楼主| 发表于 2013-3-18 17:52:31 | 显示全部楼层
回复【2楼】liklon:
---------------------------------
现在不是缓冲区的问题。  问题在于读完一个簇后,又要读额外的一个扇区进行查找下个簇号。在这段时间里面,VS1003已经把其内部缓冲的数据播放完了。不知道VS1003处理完它内部的缓冲区要多久,我现在想把VS1003的缓冲区填满后 然后再去查找下一个簇号。这样可能会节省一定的时间。
回复 支持 反对

使用道具 举报

10

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2012-11-11
在线时间
3 小时
 楼主| 发表于 2013-3-18 18:35:55 | 显示全部楼层
回复【3楼】xiaozhuqing1:
---------------------------------
自己回复一下。  看了原子的TINYFAT  没仔细看。 突然自己想到了一种方法。 不知道是不是和原子哥的一样。 首先在读文件前,就把这个文件所有的簇号都读一遍,因为文件一般都是连续的,每个簇号在FAT表中一般也是连续的。 出现断续的几率比较小,我只要记录这些断续的簇号放在内存当中,并且记录连续多少个扇区后又断续。然后读取的时候根据这个规律解析得到簇号。  得设置个断续数量的上线,否则就太占内存了。  不知道是否可以
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-18 19:29:43 | 显示全部楼层
回复【3楼】xiaozhuqing1:
---------------------------------
我们的MP3例程(Mini板的),就算wav(1K多码率)也不会卡.
所以,应该是你的处理方式有问题.
不过我们现在都换fatfs了,建议你也学学,呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 19:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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