打印

SD卡的文件系统

[复制链接]
2635|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
y607|  楼主 | 2011-12-21 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在已经在板子上成功抑制文件系统,能对SD卡进行读写,对SD卡进行写入的时候,写一条完整的数据,开文件,写入,和关闭,耗时在几百个ms,有没有什么方法(不用Fats32文件系统或者其他的方式)写一条完整的的数据时间控制在10ms以内,每个采样数据是间断的过来,大约40个ms,所以写入也是间断的,实时的要求比较高,高手有没有什么建议,谢谢了。
沙发
香水城| | 2011-12-21 13:08 | 只看该作者
我的建议是,先在RAM中开一个缓冲区,等积攒到一定数量的数据时,在空闲时集中把缓冲区中的内容写入SD中,缓冲区的大小要根据你采样数据到来的速率选择。

使用特权

评论回复
板凳
liugp25| | 2011-12-21 17:37 | 只看该作者
过来看看

使用特权

评论回复
地板
y607|  楼主 | 2011-12-21 20:30 | 只看该作者
没有找到好的答案,现在我遇到的问题是对实时写入的要求比较高,现在用的网上下载的fats32文件系统,如果就一般的对实时要求不高,这个fats32完全可以。
现在采样的周期是确定的,大约40ms。其中有30ms cpu可以做其他的事,目前测定将一组数据写入SD卡,需要150ms,这样采样就间断了,我想问有什么办法可以将数据写入SD卡的时间缩短,一组数据很短,最多150字节,不影响数据的采样。

使用特权

评论回复
5
na239152605| | 2012-4-10 10:30 | 只看该作者
学习了!呵呵!

使用特权

评论回复
6
fuxudong| | 2012-4-17 22:18 | 只看该作者
鼎!

使用特权

评论回复
7
aozima| | 2012-4-17 23:02 | 只看该作者
本帖最后由 aozima 于 2012-4-17 23:07 编辑

多线程,队列。

比如要求1ms写一个字节,但文件系统这边,写一个字节是1秒,写1K也是1秒。

那么,当收到第一个字节时,先去写,等1秒后写完,队列中又收到了1000个字节了,
于是一次写入,花了一秒回来,又是1000个字节。

当然,如果文件系统的能力低于1000字节每秒,那肯定是不可能完全任务了。

另外。FAT文件系统都是512扇区的,在上面的基础上再想办法做下对齐,性能可以再次提高 。

使用特权

评论回复
8
sunshine1990| | 2014-8-30 11:04 | 只看该作者
我也在用SD的文件系统,有个很奇怪的问题,不加断点程序一直跑之后把用电脑读SD卡里面的文件是空的,在 f_open函数和f_write函数前面加断点发现f_write执行完以后 fsrc.fsize的值是正常增加的,但是f_open执行完以后 fsrc.fsize会减少,这是什么原因啊
f_mount(0, &fs);//注册工作区
    Can_Delayms(1000);
    f_chdrive(0);
    res = f_open(&fsrc, "obd1.txt" ,  FA_OPEN_ALWAYS | FA_WRITE|FA_READ);
            if (res == FR_OK)
            {
              sd_wrnum=0;
              Can_Delayms(100);
              res = f_lseek(&fsrc, fsrc.fsize);
              Can_Delayms(100);
              if (res == FR_OK)
              {
                  res = f_write(&fsrc, sd_write, sizeof(sd_write), &bw);
                  
                 if(res==0)
                  {
                    if(bw!=sizeof(sd_write))
                    {
                      res=f_close(&fsrc);
                      res=f_unlink("obd1.txt");
                    }
                    
                  }

使用特权

评论回复
9
1398117027| | 2014-8-30 11:44 | 只看该作者
看看,学习了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

13

帖子

1

粉丝