•disk_read(): 从磁盘读取数据。 •disk_write(): 向磁盘写入数据。 •disk_ioctl(): 控制磁盘的操作,比如获取磁盘扇区、块大小、擦除等。 在上位机工程中,我们支持对SD卡及串行闪存盘进行文件系统移植,需添加硬件初始化及磁盘操作的相关头文件(SWM341.h、FlashDisk.h<闪存盘读写擦操作的头文件>),其...
DRESULTdisk_write(BYTE pdrv,// 设备物理编号(0..)constBYTE*buff,// 欲写入数据的缓存区DWORD sector,// 扇区首地址UINT count// 扇区个数(1..128)){uint32_twrite_addr;DRESULT status=RES_PARERR;if(!count){returnRES_PARERR;// Check parameter}switch(pdrv){caseATA:// SD CARDbreak;caseSPI...
disk_write函数有四个形参,pdrv为设备物理编号。buff指向待写入扇区数据的首地址。sector,指定要写入数据的扇区首地址。 count指定扇区数量。对于SPI Flash芯片,在写入数据之前需要先擦除,所以用到扇区擦除函数(SPI_FLASH_SectorErase)。然后就是在调用数据写入函数(SPI_FLASH_BufferWrite)把数据写入到指定位置内。 其...
首先是disk_initialize函数,该函数介绍如表46.1.2所示: 表46.1.2 disk_initialize函数介绍 第二个函数是disk_status函数,该函数介绍如表46.1.3所示: 表46.1.3 disk_status函数介绍 第三个函数是disk_read函数,该函数介绍如表46.1.4所示: 表46.1.4 disk_read函数介绍 第四个函数是disk_write函数,该函数介绍如表...
29.disk_write向磁盘驱动器中写入扇区 31.get_fattime获取当前时间 API详细说明 1.f_mount在 FatFs 模块上注册 / 注销一个工作区 ( 文件系统对象 ) 函数原型 FRESULT f_mount ( BYTE Drive, /* 逻辑驱动器号 */ FATFS* FileSystemObject /* 工作区指针 */ ...
UINT count /* Number of sectors to write */ ) { DRESULT res; res = disk.drv[pdrv]->disk_write(disk.lun[pdrv], buff, sector, count); return res; } 其他 DRESULT disk_ioctl ( BYTE pdrv, /* Physical drive nmuber (0..) */ ...
DSTATUS disk_status ( BYTE pdrv /* Physical drive nmuber to identify the drive */ ) { if(pdrv == SPI_FLASH) { return RES_OK; } else { printf("!!!disk_status ERR\r\n"); return RES_PARERR; } } 1. 2. 3. 4. 5.
FATFS 模块在移植的时候,我们一般只需要修改 2 个文件,即 ffconf.h 和 diskio.c。 FATFS模块的所有配置项都是存放在 ffconf.h 里面,我们可以通过配置里面的一些选项,来满足自己的需求。 最顶层是应用层,使用者无需理会 FATFS 的内部结构和复杂的 FAT 协议,只需要调用FATFS 模块提供给用户的一系列应用接口函数,...
图46.1.2 diskio需要实现的函数 通过以下三步,我们即可完成对FATFS的移植。 第一步,我们使用的是MDK5.34编译器,数据类型和integer.h里面定义的一致,所以此步,我们不需要做任何改动。 第二步,关于ffconf.h里面的相关配置,我们在前面已经有介绍(之前介绍的11个配置),我们将对应配置修改为我们介绍时候的...
1.在diskio.c,disk_write与disk_read中的sector是指0-1023,里面加上你对SPIFLASH的操作就得*512。2.要想用格式化命令,除了在ffconf文件打开相应设置以外,还要在disk_ioctl中加上相应的参数。就可以成功格式化。3.如果还不成功,还要注意你的格式化命令第三个参数的设置。