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

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官网应该有历程吧,你可以参考一下看看
彬果果 回答时间: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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版