打印
[STM32F4]

sdio多块读写问题

[复制链接]
2015|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jimmjimm|  楼主 | 2014-1-6 10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用f407发现一个问题,用多块读写方式写入sd的时候,会经常出现有几块(不连续)没有写入sd卡的情况(或者说没有写正确,那一块的值变成了sd卡中被删掉文件的一部分,如果低格了以后就是0x00了),请问下有人有这问题么?文件系统用的是fatfs
sdio_sd版本
  * @author  MCD Application Team
  * @version V1.0.0
  * @date    30-September-2011
4xx_sdio版本
  * @author  MCD Application Team
  * @version V1.1.0
  * @date    11-January-2013
dma中有加入while(SD_GetStatus() != SD_TRANSFER_OK);等待传输完成

请大家帮帮忙



沙发
airwill| | 2014-1-6 18:45 | 只看该作者
或许遇到坏块了吧?

使用特权

评论回复
板凳
jimmjimm|  楼主 | 2014-1-7 11:18 | 只看该作者
airwill 发表于 2014-1-6 18:45
或许遇到坏块了吧?

可是,试了几张卡都是这样,而且这块如果出现的话一定出现在4k的结尾位置,不管buffer怎么开2k-40k,都这样

使用特权

评论回复
地板
airwill| | 2014-1-7 16:57 | 只看该作者
看样子是个 bug 了, 象是个边界问题, 类似 > 或者 >= 这样的比较问题

使用特权

评论回复
5
huzi2099| | 2014-1-7 20:02 | 只看该作者
可能是多块写sd卡缓冲满了需要每次多块儿写后加个结束指令,具体的忘了是什么了。

使用特权

评论回复
6
jimmjimm|  楼主 | 2014-1-8 11:41 | 只看该作者
airwill 发表于 2014-1-7 16:57
看样子是个 bug 了, 象是个边界问题, 类似 > 或者 >= 这样的比较问题

又多了一个问题,在卡已储存容量大于4g的时候,文件虽然创建了,大小也对,可是数据一个都没有写进去,这要怎么改呢?

使用特权

评论回复
7
hebutwzl| | 2014-1-13 14:55 | 只看该作者
我也遇到了类似的问题,用示波器看cmd线上的波形宽度不一样,写同样的数据,比正常情况下cmd线上有波形的宽度要长很多,查看程序,是一直在执行读状态命令,返回状态为0x07;宏定义类是SD_CARD_PROGRAMMING.底层驱动用的是ST官方例程。

使用特权

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

本版积分规则

24

主题

56

帖子

1

粉丝