SD卡SPI模式读写,读不到块起始token(0xfe)

hander_left 2018-01-12 02:49:13
在MX28板子上,使用linux2.6.25代码中的mmc_spi驱动。因为板子上的spi只有一个dma缓冲区,所有spi是半双工模式,但是mmc_spi的驱动是全双工,所以我把mmc_spi中的命令收发及数据读写修改为了半双工。

现在的情况是,初始化已经通过,获取到了卡的大小。但是在使用CMD18读取多个数据块时,无法读取到块起始token(0xfe),尝试死循环读取,一直没有读到,只读到了一个(0x80),然后读到的512字节,校验错。 后面有通过CMD17读取单个数据块时,成功读取到0xfe,且数据校验成功。

请问为什么CMD18无法读到0xfe呢?有什么解决办法吗?
...全文
7545 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hander_left 2018-01-23
  • 打赏
  • 举报
回复
引用 2 楼 yuelengdihai 的回复:
用winhex看看地址需不需要偏移
使用单块读写,读写都是有成功的时候。写命令CMD24重发多次应答也OK了。 在写入了一块数据之后,SD卡应该回应一个0xfe表示数据写成功,这个在前面的多个块也可以成功,但是后面有时就会收不到0XFE的应答,一直收到 0x00。目前没有找到原因。
cocoabird 2018-01-18
  • 打赏
  • 举报
回复
用winhex看看地址需不需要偏移
hander_left 2018-01-15
  • 打赏
  • 举报
回复
有人吗?

改为单块读之后,读成功了。但是单块写,第一块成功,写第二块时,CMD24命令应答错。

请问大家知道怎么解决吗?非常感谢

1,317

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧