大家好,
在starteware下面调用SD例程来调试自己制作的开发板,使用例程hsMmcSdRw,调用fmount后,使用f_open后报错。
在文件ff.c中,针对f_open函数一路追踪下去,执行顺序如下:
f_open()->auto_mount()->check_fs()->disk_read()->MMCSDReadCmdSend(),执行完后fs->win[510]仍然为零(错误),
导致函数check_fs()中返回值为2.
if (LD_WORD(&fs->win[BS_55AA]) != 0xAA55) /* Check record signature (always offset 510) */
return 2;
正确的时候fs->win[510]的值为0x55AA.
现在我的问题是,出错的地方找到了,可不清楚错误数值产生的原因,所以请教一下诸位?
谢谢!