大家好,
在调试startware中的SD boo例程的时候,发现程序在执行fat_mmcsd.c中的API: disk_initialize()发生初始化失败的情况,
/* SD Card init */
status = MMCSDCardInit(card->ctrl);
if (status == 0)
{
UARTPuts("\r\nCard Init Failed \r\n", -1);//此处串口打印初始化失败的信息
return STA_NOINIT;
}
else
{….}
查找具体位置是在 API: MMCSDCardInit()中
/* Send CMD2, to get the card identification register */
cmd.idx = SD_CMD(2);
cmd.flags = SD_CMDRSP_136BITS;
cmd.arg = 0;
status = MMCSDCmdSend(ctrl,&cmd);//发送CMD2时的返回值为0??
memcpy(card->raw_cid, cmd.rsp, 16);
if (status == 0)
{
return 0;
}
之前跑过此例程是成功的,排除了PinMux部分,
所以想请教各位这种问题从哪些方面入手排除错误呢?
还请各位不吝指教啊,谢谢!
Jian Zhou:
请问你有换过SD卡吗?另外是所有板子都有这个问题吗?
STONE:
回复 Jian Zhou:
SD卡槽电源不稳导致,此问题已结案。