首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FatFS文件系统 (9)

FatFS文件系统 (9)

27.disk_status

获取当前磁盘的状态   

DSTATUS disk_status (

  BYTE Drive     /*  物理驱动器号 */

);

参数   

Drive  

指定待确认的物理驱动器号。   

返回值   

磁盘状态,是下列标志的组合:  STA_NOINIT 指示磁盘驱动器还没有被初始化。当系统复位、磁盘移除和 disk_initialize 函数失败时,该标志被设置;当 disk_initialize 函数成功时,该标志被清除。 STA_NODISK 指示驱动器中没有存储介质。当安装了磁盘驱动器后,该标志始终被清除。   

STA_PROTECTED  

指示存储介质被写保护。在不支持写保护缺口的驱动器上,该标志始终被清除。当 STA_NODISK 被设置时,该标志无效。   

28.disk_read

从磁盘驱动器中读取扇区   

DRESULT disk_read (

  BYTE Drive,          /*  物理驱动器号  */

  BYTE* Buffer,        /*  读取数据缓冲区的指针  */

  DWORD SectorNumber,  /*  起始扇区号  */

  BYTE SectorCount     /*  要读取的扇区数  */

);

参数   

Drive  

指定物理驱动器号。   

Buffer  

存储读取数据的缓冲区的指针。该缓冲区大小需要满足要读取的字节数 ( 扇区大小  *  扇区总数。由上层指定的存储器地址可能会也可能不会以字边界对齐。 SectorNumber  指定在逻辑块地址 (LBA) 中的起始扇区号。   

SectorCount  

指定要读取的扇区数 (1-255) 。   

返回值   

RES_OK (0)  

函数成功   

RES_ERROR  

在读操作过程中发生了不能恢复的硬错误。   

RES_PARERR  

无效的参数。   

RES_NOTRDY  

磁盘驱动器还没被初始化。   

29.disk_write

向磁盘驱动器中写入扇区   

DRESULT disk_write (

  BYTE Drive,          /*  物理驱动器号  */

  const BYTE* Buffer,  /*  写入数据缓冲区的指针 ( 可能未对齐 ) */

  DWORD SectorNumber,  /*  起始扇区号  */

  BYTE SectorCount     /*  要写入的扇区数  */

);

参数   

Drive  

指定物理驱动器号。   

Buffer  

存储写入数据的缓冲区的指针。由上层指定的存储器地址可能会也可能不会以字边界对齐。   

SectorNumber  

指定在逻辑块地址 (LBA) 中的起始扇区号。   

SectorCount  

指定要写入的扇区数 (1-255) 。   

返回值   

RES_OK (0)  

函数成功   

RES_ERROR  

在读操作过程中发生了不能恢复的硬错误。   

RES_WRPRT  

存储介质被写保护。   

RES_PARERR  

无效的参数。   

RES_NOTRDY  

磁盘驱动器还没被初始化。   




在只读配置中,不需要此函数。   

30.disk_ioctl

控制设备特定的功能以及磁盘读写以外的其它功能。   

DRESULT disk_ioctl (

  BYTE Drive,      /*  驱动器号  */

  BYTE Command,    /*  控制命令代码  */

  void* Buffer     /*  数据传输缓冲区  */

);

参数   

Drive  

指定驱动器号 (1-9) 。   

Command  

指定命令代码。   

Buffer  

取决于命令代码的参数缓冲区的指针。当不使用时,指定一个 NULL 指针。   

返回值   

RES_OK (0)  

函数成功。   

RES_ERROR  

发生错误。   

RES_PARERR  

无效的命令代码。   

RES_NOTRDY  

磁盘驱动器还没被初始化。   




FatFs 模块只使用下述与设备无关的命令,没有使用任何设备相关功能。

命令  


描述


GET_SECTOR_SIZE


返回驱动器的扇区大小赋给 Buffer 指向的 WORD 变量。在单个扇区大小配置中(_MAX_SS  为  512) ,不需要该命令。


GET_SECTOR_COUNT  


返回总扇区数赋给 Buffer 指向的 DWORD 变量。只在 f_mkfs 函数中,使用了该命令。


GET_BLOCK_SIZE  


返回以扇区为单位的存储阵列的擦除块大小赋给 Buffer 指向的 DWORD 变量。当擦除块大小未知或是磁盘设备时,返回 1 。只在 f_mkfs 函数中,使用了该命令。




31.get_fattime

获取当前时间   

DWORD get_fattime (void);

返回值   

返回的当前时间被打包进一个 DWORD 数值。各位域定义如下:  

bit31:25  

年,从 1980 年开始算起 (0..127)  

bit24:21  

(1..12)  

bit20:16  

(1..31)  

bit15:11  

(0..23)  

bit10:5  

(0..59)  

bit4:0  

/2(0..29) ,由此可见 FatFs 的时间分辨率为 2 秒   

get_fattime 函数必须返回任何有效的时间,即使系统不支持实时时钟。如果返回一个 0 ,则文件将没有一个有效的时间。在只读配置中,不需要此函数。
继承事业,薪火相传
返回列表