USER_ioctl()修改 FATFS调用该函数获取FLASH的器件信息,函数中添加扇区大小、扇区数量信息等,代码如下: DRESULT USER_ioctl ( BYTE pdrv, /* Physical drive nmuber (0..) */ BYTE cmd, /* Control code */ void *buff /* Buffer to send/receive control data */ ...
其次,需要选一下FATFS下拉列表中的user-defined,接着生成工程文件 自己拓展用户自定义磁盘需要在user-diskio.c中添加API接口函数,这点与SD卡不同,因为SD卡自动帮你添加了这些接口,非常方便。 下一步,打开user-diskio.c,添加接口函数,具体有USER_read,USER_write,USER_ioctl三个部分 首先根据我们选择的硬件,添加...
(uint32_t)(sector),count,SD_DATATIMEOUT)==MSD_OK){while(BSP_SD_GetCardState()!=MSD_OK){if(timeout--==0)returnRES_ERROR;}res=RES_OK;}returnres;}#endif/* _USE_WRITE == 1 */#if _USE_IOCTL == 1DRESULTSD_ioctl(BYTElun,BYTEcmd,void*buff){DRESULTres=RES_ERROR;BSP_SD_Card...
与SDMMC配置一样,需要实现对应的接口函数,也就是修改user_diskio.c,同样也只需对修改USER_read,USER_write,USER_ioctl三个函数接口,其他可以不做修改。完整代码如下: /* USER CODE BEGIN Header *//** *** * @file user_diskio.c * @brief This file includes a diskio driver skeleton to be complete...
DSTATUSUSER_initialize(BYTE pdrv);DSTATUSUSER_status(BYTE pdrv);DRESULTUSER_read(BYTE pdrv,BYTE*buff,DWORD sector,UINT count);#if_USE_WRITE==1DRESULTUSER_write(BYTE pdrv,const BYTE*buff,DWORD sector,UINT count);#endif/* _USE_WRITE == 1 */#if_USE_IOCTL==1DRESULTUSER_ioctl(BYTE p...
第五个函数是 disk_ioctl 函数,该函数介绍如图 44.1.7 所示: 图44.1.7 disk_ioctl 函数介绍 最后一个函数是 get_fattime 函数,该函数介绍如图 44.1.8 所示: 以上六个函数,我们将在软件设计部分一一实现。通过以上 3 个步骤,我们就完成了对 FATFS 的移植,就可以在我们的代码里面使用 FATFS 了。
* @retval DRESULT: Operation result*/#if_USE_IOCTL == 1DRESULT disk_ioctl ( BYTE pdrv,/*Physical drive nmuber (0..)*/BYTE cmd,/*Control code*/void*buff/*Buffer to send/receive control data*/) { DRESULT res;switch(cmd) {caseGET_SECTOR_COUNT:*(DWORD *)buff =1536;break;caseGET...
DRESULT disk_ioctl ( BYTE pdrv,/* 物理驱动号 */ BYTE cmd, /* 控制码 */ void *buff/* 发送/接收数据缓冲区地址 */ DRESULT res; int result; switch (pdrv) { case SD: switch(cmd) case CTRL_SYNC: //等待写过程 SD_CS(0); //选中SD卡 ...
DRESULT SD_ioctl (BYTE, BYTE, void*);#endif /* _USE_IOCTL == 1 */ const Diskio_drv...
sd卡接口采用sdio来驱动。文件系统使用的是最新的fatfs 0.10版本。spi_falsh驱动使用的是野火的代码,...