F4系列标准库库SDIO的FatFS例子修改一个bug,可提升4线SDIO的DMA稳定性
修改后的例子:static/image/hrline/4.gif
diskio.C文件中disk_write函数的单块和多块写入后,等待操作都错误的写成了等待读完成
这两个地方要修改为SD_WaitWriteOperation
连续测试20次2MB文件的读写,全部正确无错误。
这个问题是此贴坛友帮忙发现的。
SDIO驱动SD卡的写多块的问题
http://www.armbbs.cn/forum.php?mod=viewthread&tid=94473&fromuid=58
(出处: 安富莱电子论坛)
细微之处,见真情啊!!!:loveliness: 学习坛友的细心 ! 我读了野火家的驱动 , 都没看出这个问题 . 以后要再细心一些.顶硬汉论坛! 咸喜喜 发表于 2020-5-11 15:46
学习坛友的细心 ! 我读了野火家的驱动 , 都没看出这个问题 . 以后要再细心一些.顶硬汉论坛!
我们这个是手抖写错的,你的是咋回事 :lol标记之。 tianqi911 发表于 2020-6-24 17:16
标记之。
最好还是浏览器收藏,然后分类,效果是最好的,然后手机,电脑和pad同步标签,这样以后有问题查找比较方便。 eric2013 发表于 2020-6-24 17:21
最好还是浏览器收藏,然后分类,效果是最好的,然后手机,电脑和pad同步标签,这样以后有问题查找比较方 ...
好的。我试试这种方法。 支持硬汉。
然后建议以后的代码都放在git上,你那边有修改了,我们可以直接更新。这样子比较方便。 tanjing2017 发表于 2020-6-28 19:03
支持硬汉。
然后建议以后的代码都放在git上,你那边有修改了,我们可以直接更新。这样子比较方便。
例子太多,Github太卡了。 eric2013 发表于 2020-6-29 09:52
例子太多,Github太卡了。
可以考虑放到国内的gitee上,这样代码可以由大家一起维护,毕竟git在版本维护方面优势巨大 你们使用的标准库的xxx_sdio_sd.c里还有一个小BUG,SD_WriteBlock和SD_WriteMultiBlocks函数里错误的配置了SDIO_IT_RXOVERR,应该是配置SDIO_FLAG_TXUNDERR, 这个st在后续新版本发现但只发现修复了一半,至今最新的库中仍是错的。。。 浇了汁鸡 发表于 2021-6-21 10:32
可以考虑放到国内的gitee上,这样代码可以由大家一起维护,毕竟git在版本维护方面优势巨大
谢谢建议,不折腾这些git了。
不方便用户下载。不用git 用户太多了。 浇了汁鸡 发表于 2021-6-21 10:42
你们使用的标准库的xxx_sdio_sd.c里还有一个小BUG,SD_WriteBlock和SD_WriteMultiBlocks函数里错误的配置了 ...
1、标准库版除了你指出的这个,还有别的bug,此贴
继续提升STM32F4的4线SDIO DMA方式的读写稳定性,发布新版案例(2020-06-30)
http://www.armbbs.cn/forum.php?mod=viewthread&tid=98560
2、HAL库版的所有这些bug都修正了,此贴:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255
浇了汁鸡 发表于 2021-6-21 10:42
你们使用的标准库的xxx_sdio_sd.c里还有一个小BUG,SD_WriteBlock和SD_WriteMultiBlocks函数里错误的配置了 ...
为什么说“应该是配置SDIO_FLAG_TXUNDERR”?
unsv29 发表于 2022-8-12 16:40
为什么说“应该是配置SDIO_FLAG_TXUNDERR”?
Wirte是发送,当然要配置为TXUNDERR了,配置为RXOVERR是有误的。 eric2013 发表于 2022-8-12 17:02
Wirte是发送,当然要配置为TXUNDERR了,配置为RXOVERR是有误的。
谢谢!一般人真注意不到这个。 HAL库没有这个SD_WaitWriteOperation,是用的读取标志位加tick超时判断,DMA + SDIO 四线模式每秒钟一次性写8K数据可以很稳定吗 miaoguoqiang 发表于 2023-1-6 23:29
HAL库没有这个SD_WaitWriteOperation,是用的读取标志位加tick超时判断,DMA + SDIO 四线模式每秒钟一次性写8 ...
可以,但要注意实时写入问题,注意一点就是随着写入文件越来越大,写一次的时间会不断加上。最好文件大小超过一定值后,再创建个新文件继续写。 eric2013 发表于 2023-1-7 00:39
可以,但要注意实时写入问题,注意一点就是随着写入文件越来越大,写一次的时间会不断加上。最好文件大小 ...
F446 SDIO+DMA不定时会出现`Hardware I / O driver error`.然后必须重新挂载才能继续写入.感觉中断会影响到数据的写入 miaoguoqiang 发表于 2023-1-7 12:51
F446 SDIO+DMA不定时会出现`Hardware I / O driver error`.然后必须重新挂载才能继续写入.感觉中断会影响 ...
如果怀疑中断影响,可以关闭中断其它中断,排查下试试。 谢谢,学习了
页:
[1]