野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11617|回复: 2

SDIO方式 不支持直接多块读写?

[复制链接]
发表于 2017-5-1 17:07:24 | 显示全部楼层 |阅读模式
例程中,发现SDIO方式提示不能进行多块读写,为什么呢?

      实际上,最近将几年前买的野火STM32开发板拿出来,测试下SD卡+FATFS,就发现用多块读写的方式进行数据的存储,在电脑上查看发现会出现随机个别数据错误,但总字节数是对的。
查找很长时间一直解决不了,后来实在无奈手动对写入到SD卡的数据进行拆分,多次调用单块读写的方式才保证正确无误的数据写入,但感觉写入延时太长了,我累积60秒时间进行一次写入,但
一次20K数据的写入大概需要2秒多。

     下载下看看指南者的SDIO读写例程,提示暂不支持直接多块读写,不知这个到底是什么原因造成的,查看了SDIO底层驱动应该是一样的。

      哎,本来还想用指南者的例程,看来是不能解决这个问题了

     不知F4或F7系列是否有这个问题。
回复

使用道具 举报

发表于 2017-5-2 08:46:10 | 显示全部楼层
支持啊,底层驱动是有multiblock的函数支持多块读写的,

加了文件系统之后,因为文件系统都是单块读写,所以就不加上多块读写的驱动了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-2 16:25:49 来自手机 | 显示全部楼层
你好,非常感谢你的回复。

FATFS文件系统写入文件仅有一个f_write函数,查看了此函数,如果写入数据量大于单块512字节时,调用的disk_write函数最后一个count参数还是会大于1,函数内部会根据此值判断是否调用多块写入函数SD_WriteMultiBlocks。

现在主要问题就是SD驱动的多块写入函数执行不正确,如果程序控制一次写入字节数小于512,则数据记录正确。如果1次写入大于512,则进行连续记录时,会出现个别数据随机性错误
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 01:26 , Processed in 0.027137 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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