详见:嵌入式大讲堂
由于FatFs模块完全与磁盘I/O层分开,因此底层磁盘I/O需要下列函数去读/写物理磁盘以及获取当前时间。由于底层磁盘I/O模块并不是FatFs的一部分,因此它必须由用户提供。
disk_initialize:
1 /*-----------------------------------------------------------------------*/ 2 /* Inidialize a Drive */ 3 4 DSTATUS disk_initialize ( 5 BYTE drv /* Physical drive nmuber (0..) */ 6 ) 7 { 8 SD_Error Status; 9 /* Supports only single drive */ 10 if (drv) 11 { 12 return STA_NOINIT; 13 } 14 /*-------------------------- SD Init ----------------------------- */ 15 Status = SD_Init(); 16 if (Status!=SD_OK ) 17 { 18 return STA_NOINIT; 19 } 20 else 21 { 22 return RES_OK; 23 } 24 25 }