ZephRay 发表于 2014-7-10 18:31:10

求助,有人搞定过AMEv3上面的SD卡吗?

在折腾SD卡驱动,发现无论如何都调不通,卡在FindSCR,Github中的代码把FindSCR给禁用了所以能通过初始化,但是还是实际读写还是会出错。有人能搞定吗?

qqq37 发表于 2014-7-10 23:25:34

这里不太可能有回答,只能其他地方看看了,是以下的问题吗?

主要卡死在两个地方:
1、就是在初始化SD卡的时候,有一个FindSCR()函数中:
while (!(SDIO->STA & (SDIO_FLAG_RXOVERR | SDIO_FLAG_DCRCFAIL | SDIO_FLAG_DTIMEOUT | SDIO_FLAG_DBCKEND | SDIO_FLAG_STBITERR)))
{
if (SDIO_GetFlagStatus(SDIO_FLAG_RXDAVL) != RESET)
{
*(tempscr + index) = SDIO_ReadData();
index++;
}
}
卡死在这个while循环中,不过这个可以使用index来判断,当大于1时就跳出,不会影响操作。这个姑且算是解决了吧。呵呵。
2、另一个就卡死在SD_ReadBlock()或者SD_WriteBlock()函数的DMA查询那里,比如SD_ReadBlock()中的:
SDIO_ITConfig(SDIO_IT_DCRCFAIL | SDIO_IT_DTIMEOUT | SDIO_IT_DATAEND | SDIO_IT_RXOVERR | SDIO_IT_STBITERR, ENABLE);
SDIO_DMACmd(ENABLE);
DMA_RxConfiguration(readbuff, BlockSize);
while (DMA_GetFlagStatus(DMA2_FLAG_TC4) == RESET)
{}
这个就不好解决了,呵呵。通过观察SDIO中断标志,可以看出大多时候是出现了SDIO_IT_RXOVERR错误,但是极个别时候是数据正常。
另外,应用程序中是没有循环等待的。
测试程序是使用的官方例程,里面的DMA是每次使用前都重新配置了的。
很谢谢你的关注,呵呵。

conandllu 发表于 2014-7-11 12:55:39

本帖最后由 conandllu 于 2014-7-11 21:20 编辑

我有407 调试OK 上FatfsOK的 代码。
附件为SDIO源代码,4bit DMA 传输。中断程序中添加以下两个函数
/**
* @briefThis function handles SDIO global interrupt request.
* @paramNone
* @retval None
*/
void SDIO_IRQHandler(void)
{
/* Process All SDIO Interrupt Sources */
SD_ProcessIRQSrc();
}

/**
* @briefThis function handles DMA2 Stream3 or DMA2 Stream6 global interrupts
*         requests.
* @paramNone
* @retval None
*/
void SD_SDIO_DMA_IRQHANDLER(void)
{
/* Process DMA2 Stream3 or DMA2 Stream6 Interrupt Sources */
SD_ProcessDMAIRQ();
}

怺逺_海子 发表于 2014-7-20 20:04:10

卡的 两根数据线 弄反了,需要改硬件。

怺逺_海子 发表于 2014-7-20 20:06:37

我的重新构成了新的开发环境,mdk下的,现已通过调试,加入了lua脚本

hansh 发表于 2014-8-2 23:08:00

你直接上文件系统《《一切轻松

ZephRay 发表于 2014-8-3 08:54:45

hansh 发表于 2014-8-2 23:08
你直接上文件系统《《一切轻松

你觉得初始化都通不过文件系统有什么用吗?BTW,早就已经搞定啦

hansh 发表于 2014-8-4 11:23:49

nbzwt 发表于 2014-8-3 08:54
你觉得初始化都通不过文件系统有什么用吗?BTW,早就已经搞定啦

如果你用RTOS,需要做的只是设置SD接口方式为SDIO

ZephRay 发表于 2014-8-4 17:35:18

hansh 发表于 2014-8-4 11:23
如果你用RTOS,需要做的只是设置SD接口方式为SDIO

移植RTOS工作量超过修改SDIO驱动了
页: [1]
查看完整版本: 求助,有人搞定过AMEv3上面的SD卡吗?