研究生
最后登录1970-1-1
在线时间 小时
注册时间2014-8-21
|
楼主 |
发表于 2014-9-21 16:50:27
|
显示全部楼层
继续更新,今天继续调试,努力很了很多遍之后 [code=c]res = chk_mounted(&path, &dj.fs, (BYTE)(mode & ~FA_READ));[/code] 能够执行了,但是死在 [code=c]if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK)[/code] 这句上了,原因是执行函数
[code=c]SD_Error SD_WaitReadOperation(void)
{
SD_Error errorstatus = SD_OK;
//μè′ydma′«êä½áêø
while ((SD_DMAEndOfTransferStatus() == RESET) && (TransferEnd == 0) && (TransferError == SD_OK))
{}
if (TransferError != SD_OK)
{
return(TransferError);
}
return(errorstatus);
}[/code]
时在 [code=c] if (TransferError != SD_OK)[/code] 处设置断点会跳到函数
[code=c]void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}[/code]
这里,而单步往下执行时可以执行到 [code=c] if (TransferError != SD_OK)[/code] 这一句。
这是什么情况...求解释... |
|