打印
[STM32F4]

请高手帮忙分析一下FATFS与STM32F4的SDIO的问题

[复制链接]
1484|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
@若水|  楼主 | 2017-4-17 11:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在想用TF卡记录实现数据,20ms记录一帧数据,一帧数据有2048个字节,每一帧数据写入时间不能超过20ms,由于发现有数据丢失,所以在程序中开了个定时计数器来计算时间,最后得到的结果是,最大时间居然会达到200几ms,这个时间远远大于20ms,所以在程序中,开了一个20帧的缓冲区,但还是丢数据,
SDIO的传输方式是DMA
我感觉是数据没写进去,然后 直接丢了,请问大家觉得这是什么问题?

SDIO的驱动是用原子的
文件系统是从FATFS官网上下载最新的版本

数据丢失率  <= 1%  ,产品对数据是必须不能丢失。

请各位帮忙排查一下原因!在此谢过了!
沙发
airwill| | 2017-4-17 12:30 | 只看该作者
这还真是个挺费劲的问题.
文件系统的实时性不好, 我感觉 200多mS 应该是大值了, 但缓冲了近一倍, 可以涵盖了.
应该还有问题没有找到吧.

使用特权

评论回复
板凳
王紫豪| | 2017-4-17 12:42 | 只看该作者
换个好卡试试。。现在市面上TF卡质量参差不齐。

使用特权

评论回复
地板
王紫豪| | 2017-4-17 12:43 | 只看该作者
fatfs 执行写命令后要sync一下。。

使用特权

评论回复
5
@若水|  楼主 | 2017-4-17 17:08 | 只看该作者
王紫豪 发表于 2017-4-17 12:43
fatfs 执行写命令后要sync一下。。

调用一次sync所用的时间太多了,不能用,

使用特权

评论回复
6
@若水|  楼主 | 2017-4-17 17:09 | 只看该作者
王紫豪 发表于 2017-4-17 12:42
换个好卡试试。。现在市面上TF卡质量参差不齐。

卡没问题的,两张卡都是新买的,都是在JD上买的

使用特权

评论回复
7
@若水|  楼主 | 2017-4-17 17:10 | 只看该作者
airwill 发表于 2017-4-17 12:30
这还真是个挺费劲的问题.
文件系统的实时性不好, 我感觉 200多mS 应该是大值了, 但缓冲了近一倍, 可以涵盖 ...

现在实在是找不到问题,问题往往一卡就会卡好久,但不会卡的就不算问题了

使用特权

评论回复
8
airwill| | 2017-4-17 20:48 | 只看该作者
@若水 发表于 2017-4-17 17:10
现在实在是找不到问题,问题往往一卡就会卡好久,但不会卡的就不算问题了 ...

是的, 卡了才是真的问题.
不过也是考验喝锻炼你的能力的时候了.
自己想办法搞定他, 这就是收获

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
@若水 + 4 淡定
9
ddllxxrr| | 2017-4-18 07:34 | 只看该作者
即在200ms是稳定的,楼主可先用200ms,保证系统稳定,然后再慢慢找原因,我觉得2048字节,就得用那么多的时间

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
@若水 + 3 淡定
10
@若水|  楼主 | 2017-4-18 11:47 | 只看该作者
ddllxxrr 发表于 2017-4-18 07:34
即在200ms是稳定的,楼主可先用200ms,保证系统稳定,然后再慢慢找原因,我觉得2048字节,就得用那么多的时 ...

但对于速度为Class 4的金士顿的8GTF卡,最小时间是3.4ms这两者相差也太大了,通常情况下写一次用时10ms

使用特权

评论回复
11
@若水|  楼主 | 2017-4-18 11:47 | 只看该作者
airwill 发表于 2017-4-17 20:48
是的, 卡了才是真的问题.
不过也是考验喝锻炼你的能力的时候了.
自己想办法搞定他, 这就是收获 ...

有没有什么好思路呢?有没有把问题引出来的思路?

使用特权

评论回复
12
迪卡| | 2017-4-18 20:50 | 只看该作者
fatfs 执行写命令后要sync一下。。

sync一下是干什么的

使用特权

评论回复
13
@若水|  楼主 | 2017-4-19 20:17 | 只看该作者
迪卡 发表于 2017-4-18 20:50
sync一下是干什么的

同步到文件

使用特权

评论回复
14
biechedan| | 2017-4-19 22:40 | 只看该作者
读写速度有问题?

使用特权

评论回复
15
biechedan| | 2017-4-19 22:42 | 只看该作者
这个缓冲区应该还是不够大。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
@若水 + 2 赞一个!
16
@若水|  楼主 | 2017-4-20 08:23 | 只看该作者
biechedan 发表于 2017-4-19 22:42
这个缓冲区应该还是不够大。

那应该开多大?单片机的RAM没多少了,还有20K左右,再开,想扩展都不行了

使用特权

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

本版积分规则

26

主题

2686

帖子

6

粉丝