This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Linux
尊敬的 TI:
在定制板(AM571x 的参考)中、当我使用 dd 命令对 SD/uSD 卡执行正常读取/写入操作时、它在 mmc1和 mmc3控制器上工作正常。 但是、当我在 mmc1和 mmc3控制器上使用特定的写入/读取序列并具有供应商命令时、mmc1 SD/uSD 工作正常、但 mmc3在 cmd17中失败。
对我的理解:
1.对于 cmd17、SD/uSD 卡读取失败的可能性有多大。
2.在执行读/写操作时、需要考虑 mmc1和 mmc3之间的区别是什么。
3.以下情况下获取超时的原因可能是什么?
使用命令如下所示:
发送 cmd60、cmd24/cmd25、cmd17
错误:
CMD:17 arg=55aa 标志= 3a0010
需要将软件复位到 CMD 线路
错误:等待 SRD/SRC 复位完成超时
错误 CMD-17
[688.239507] CMD:25 arg=55aa flags = 3a002a
[688.246542] RESP0:900
[688.248825]在 MMC_WRITE_DATA cnT-128中、大小=16384
[688.271114]需要软件复位到数据线路
[689.277024]错误:等待 SRD/SRC 复位完成超时
[689.282795]错误:WR 状态错误
[689.286470] CMD:12 arg=0 FLAGS = 1b0000
[689.292333] RES0:c00
[690.296183]等待 dati | CMI 超时
[691.303039]等待 dati | CMI 超时
代码片段:
if ((MMC_stat & IE_CTO)!= 0){
printk (Kern_ERR "需要将软件复位到 CMD 行\n");
if (MMC_RESET_CMD_DATA (MMC->base、SYSCTL_SRC)){
返回1;
}
while (((HSMMC_Read (base、sysctl)& bit)!= 0){
if (i++> MAX_RETRY){
printk (KERR_ERR "错误:等待 SRD/SRC 重置完成超时");
返回1;
}否则{
mdelay (1);
}
}
if ((MMC_stat &(IE_DTO | IE_DCRC | IE_DEb))!= 0){
printk(Kern_ERR"需要将软件重置为数据行\n");
if (MMC_RESET_CMD_DATA (MMMC->base、SYSCTL_SRD)){
//返回1;
}
}
谢谢、此致、
Anil Kumar
您好、Pavel、
感谢您的参与。
谢谢、此致、
Anil