高级会员
- 积分
- 673
- 金钱
- 673
- 注册时间
- 2013-8-16
- 在线时间
- 35 小时
|
楼主 |
发表于 2014-3-13 10:55:00
|
显示全部楼层
在移植好了文件系统ff.c文件后,要实现
DSTATUS disk_initialize (BYTE);
DSTATUS disk_status (BYTE);
DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE); // 如果实现只读的文件系统就不需要了。
DRESULT disk_ioctl (BYTE, BYTE, void*);
这5个函数,这是5个对磁盘操作的函数,可是在他们的实现过程中没有调用到文件系统中的函数,例如:
DRESULT disk_read (BYTE drv, BYTE *buff,DWORD sector,BYTE count)
{
u8 res=0;
if (!count)return RES_PARERR;//count不能等于0,否则返回参数错误
switch(drv)
{
case SD_CARD://SD卡
res=SD_ReadDisk(buff,sector,count);//SD_ReadDisk(……)函数是在mmc_sd.c中实现的,没有用到文件系统的函数
break;
default:
res=1;
}
//处理返回值,将SPI_SD_driver.c的返回值转成ff.c的返回值
if(res == 0x00)return RES_OK;
else return RES_ERROR;
} |
|