打印

GD32 SDIO驱动问题 (Bug?)

[复制链接]
560|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JoshZou|  楼主 | 2022-10-18 17:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 JoshZou 于 2022-10-27 20:15 编辑

背景:使用GD32F470VG芯片,GD32F4xx_Firmware_Library_V3.0.1固件。SD_DMA_MODE模式

问题描述:
使用V3.0.1固件中的Example/SDIO/sdcard.c文件的接口进行block数据的读写,存在偶尔read返回OK,但是读出的数据不对的情况:以下两个函数都测试了,都存在类似问题
sd_multiblocks_read()
sd_block_read()

以下是测试代码以及测试结果



更新----------------------------------------------
最近一直在Debug这个问题,目前发现偶现sd卡读取失败的原因为会存在概率性读到的某个block数据前面多了一些不知道哪里来的数据,如下所示。
正常这里读取sector 989的前三个字节应该是SYS,但是这里读到的数据前面莫名多了四个字节。请问有大佬知道如何解决吗



使用特权

评论回复
沙发
JoshZou|  楼主 | 2022-10-18 17:40 | 只看该作者
可以看到读出错误数据的那次读到的数据为0xd4,为上一次写入的数据。这是为什么呢,是不是sdcard.c/sdcard.h存在bug?

使用特权

评论回复
板凳
JoshZou|  楼主 | 2022-10-18 17:46 | 只看该作者
再补充以下,当check fail以后,重新调用sd_multiblocks_read()又可读出来数据,说明write函数是成功写入了,看起来是sd卡读取的问题

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝