你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f4+freertos+SDIO

[复制链接]
120742915 提问时间:2017-3-23 17:15 /
本帖最后由 120742915 于 2017-3-23 17:22 编辑

在下用freerots+sdio驱动tf卡,出了不少问题
1.读取数据经常卡死
解决方式:由4位模式改为1位模式。稳定性倒是上去了,但公司要求速度,于是找另外的方式,发现sd_diskio.c里面没有使用dma传输,
      于是改为dma传输,稳定性和速度都看似解决了。

2.大数据操作出错
现象:问题1说了,问题看似解决了,但实际还有问题,加入以512个数据长度进行操作很稳定,数据也没错误,但如果超过512进行操作就会
      偶尔出问题,这个偶尔是只也有正确的,也有不正确的,并且不正确始终就是那几个不正确,且每次都一样。
      如果我改回1位非dma方式就没有错误。也就是说问题应该出在dma上,这下完全不知道怎么解决了。

错误数据

错误数据
                              

正确数据

正确数据


请看上图(部分数据),读取少了两个数据,但最后结果长度是一样的,因为在后面某个地方又会添加两个数据,那两个数据并不是丢的这两个数据。

哪位高手有遇到过没,帮帮忙,不胜感激
收藏 2 评论7 发布时间:2017-3-23 17:15

举报

7个回答
混森蓝兽 回答时间:2017-3-23 18:10:09
不懂帮顶
草民星空 回答时间:2017-3-24 08:58:45

不懂帮顶
hpdell 回答时间:2017-3-24 09:57:11
st官网应该有历程吧,你可以参考一下看看
Esbin 回答时间:2017-3-26 16:18:47
我没上系统也出现了类似的情况,求解啊
xmshao 回答时间:2017-3-27 17:24:55
如果是大容量卡的话,只支持BLOCK 读写操作,且块大小固定为512B。
相关函数也是基于这个约定写的。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

120742915 回答时间:2017-3-29 16:22:57
xmshao 发表于 2017-3-27 17:24
如果是大容量卡的话,只支持BLOCK 读写操作,且块大小固定为512B。
相关函数也是基于这个约定写的。 ...

是dma模式限制的?
为何用非dma方式却又是正常的?
drjloveyou 回答时间:2017-4-10 17:17:25
也遇到和你相似的问题。似乎512字节dma操作,容易有概率在512倍数的地方丢失数据。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版