资料库

µCFS中文手册.pdf

第1页 / 共116页
第2页 / 共116页
第3页 / 共116页
第4页 / 共116页
第5页 / 共116页
第6页 / 共116页
第7页 / 共116页
第8页 / 共116页
资料共116页,剩余部分请下载后查看
μC/FS 文件系统    软件版本  1.26      CPU 无关    用户参考手册          翻译:Coolbor Xie  2012 年 10 月 6 日           
目录  1.关于本文档 .................................................................................................................................... 1  1.1.假设..................................................................................................................................... 1  1.2.如用使用本手册 ................................................................................................................. 1  2.µC/FS 简介 ..................................................................................................................................... 2  2.1.什么是 µC/FS? .................................................................................................................... 2  2.2.特性..................................................................................................................................... 2  3.基本概念 ................................................................................................................................ 3  3.1.API 层 .................................................................................................................................. 3  3.2.文件系统层 ......................................................................................................................... 3  3.3.逻辑块层 ............................................................................................................................. 3  3.4.设备驱动 ............................................................................................................................. 3  4.入门 ............................................................................................................................................... 4  4.1.安装..................................................................................................................................... 4  4.2.使用 Windows 示例............................................................................................................ 4  4.2.1.编译示例程序 .......................................................................................................... 4  4.2.2.一步一步调试示例程序 .......................................................................................... 4  4.3.将 µC/FS 集成到你的系统中 ............................................................................................. 6  4.3.1.创建一个没有 µC/FS 的简单工程 .......................................................................... 7  4.3.2.添加 µC/FS 配置 ...................................................................................................... 7  4.3.3.添加 µC/FS 通用源代码 .......................................................................................... 7  4.3.4.配置搜索路径 .......................................................................................................... 7  4.3.5.添加通用示例代码 .................................................................................................. 7  4.3.6.编译并测试你的应用 .............................................................................................. 7  5.µC/FS 的配置 ................................................................................................................................. 8  5.1.fs_conf.h .............................................................................................................................. 8  5.1.1.操作系统支持 ........................................................................................................ 13  5.1.2.时间/日期支持 ...................................................................................................... 13  5.1.3.文件系统层支持 .................................................................................................... 13  5.1.4.设备驱动支持和配置 ............................................................................................ 13  5.2.fs_port.h ............................................................................................................................ 14  6. API 函数 ...................................................................................................................................... 16  6.1.文件系统控制函数 ........................................................................................................... 16  6.1.1. FS_Exit():停止文件系统 ..................................................................................... 16  6.1.2.FS_Init():启用文件系统 ...................................................................................... 17  6.2.文件访问函数 ................................................................................................................... 18  6.2.1.FS_FClose():关闭文件 ......................................................................................... 18  6.2.2.FS_FOpen():打开文件 ......................................................................................... 19  6.3.直接输入/输出函数 ......................................................................................................... 21  6.3.1.FS_FRead():从文件读取数据 .............................................................................. 21  6.3.2. FS_FWrite():写数据到文件 ................................................................................ 22  6.4.文件定位函数 ................................................................................................................... 23  I 
6.4.1. FS_FSeek():设置文件指针的位置 ..................................................................... 23  6.4.2. FS_FTell():返回文件指针的位置 ........................................................................ 24  6.5.错误处理函数 ................................................................................................................... 25  6.5.1. FS_ClearErr():清除错误状态 .............................................................................. 25  6.5.2. FS_FError():返回错误代码 ................................................................................. 26  6.6.在文件上操作 ................................................................................................................... 27  6.6.1. FS_Remove():删除文件 ...................................................................................... 27  6.7.目录函数 ........................................................................................................................... 28  6.7.1. FS_CloseDir():关闭目录 ..................................................................................... 28  6.7.2. FS_MkDir():创建目录 ......................................................................................... 29  6.7.3. FS_OpenDir():打开目录 ..................................................................................... 30  6.7.4. FS_ReadDir():从目录读 ...................................................................................... 31  6.7.5. FS_RewindDir():复位目录流中的位置 .............................................................. 32  6.7.6. FS_RmDir():删除目录 ......................................................................................... 33  7.设备驱动 ...................................................................................................................................... 34  7.1.设备驱动函数 ................................................................................................................... 34  7.1.1. _FS_DevIoCtl() ....................................................................................................... 34  7.1.2. _FS_DevRead() ...................................................................................................... 35  7.1.3. _FS_DevStatus() .................................................................................................... 36  7.1.4. _FS_DevWrite() ..................................................................................................... 37  7.2.设备驱动函数表 ............................................................................................................... 38  7.3.集成一个新设备驱动 ....................................................................................................... 38  8.SmartMedia 卡设备驱动 ............................................................................................................. 40  8.1.控制线函数 ....................................................................................................................... 40  8.1.1. FS_SMC_HW_X_BusyLedOff() ............................................................................... 40  8.1.2. FS_SMC_HW_X_BusyLedOn() ............................................................................... 41  8.1.3. FS_SMC_HW_X_SetAddr() .................................................................................... 42  8.1.4. FS_SMC_HW_X_SetCmd() ..................................................................................... 43  8.1.5. FS_SMC_HW_X _SetData() .................................................................................... 44  8.1.6. FS_SMC_HW_X_SetStandby() ............................................................................... 45  8.2.电源控制函数 ................................................................................................................... 46  8.2.1. FS_SMC_HW_X_VccOff() ....................................................................................... 46  8.2.2. FS_SMC_HW_X_VccOn() ....................................................................................... 47  8.3.状态检测函数 ................................................................................................................... 48  8.3.1. FS_SMC_HW_X_ChkBusy() .................................................................................... 48  8.3.2. FS_SMC_HW_X_ChkCardIn() ................................................................................. 49  8.3.3. FS_SMC_HW_X_ChkPower() ................................................................................. 50  8.3.4. FS_SMC_HW_X_ChkStatus() ................................................................................. 51  8.3.5. FS_SMC_HW_X_ChkWP() ...................................................................................... 52  8.3.6. FS_SMC_HW_X_DetectStatus() ............................................................................. 53  8.4.数据传输函数 ................................................................................................................... 54  8.4.1. FS_SMC_HW_X_InData() ....................................................................................... 54  8.4.2. FS_SMC_HW_X_OutData() .................................................................................... 55  8.5.  定时器函数 ..................................................................................................................... 56  II 
8.5.1. FS_SMC_HW_X_ChkTimer() .................................................................................. 56  8.5.2. FS_SMC_HW_X_SetTimer() ................................................................................... 57  8.5.3. FS_SMC_HW_X_StopTimer() ................................................................................. 58  8.5.4. FS_SMC_HW_X_WaitTimer() ................................................................................ 59  9.MultiMedia & SD 卡设备驱动 ..................................................................................................... 60  9.1.控制线函数 ....................................................................................................................... 60  9.1.1. FS_MMC_HW_X_BusyLedOff() ............................................................................. 60  9.1.2. FS_MMC_HW_X_BusyLedOn() .............................................................................. 61  9.1.3. FS_MMC_HW_X_ClockCard() ................................................................................ 62  9.1.4. FS_MMC_HW_X_SetCS() ....................................................................................... 63  9.2.操作条件检测与调整函数 ............................................................................................... 64  9.2.1. FS_MMC_HW_X_AdjustFOP() ............................................................................... 64  9.2.2. FS_MMC_HW_X_CheckOCR() ............................................................................... 65  9.2.3. FS_MMC_HW_X_GetFOP() ................................................................................... 66  9.3.状态检测函数 ................................................................................................................... 67  9.3.1. FS_MMC_HW_X_CheckWP() ................................................................................ 67  9.3.2. FS_MMC_HW_X_DetectStatus() ........................................................................... 68  9.3.3. FS_MMC_HW_X_WaitBusy() ................................................................................. 69  9.4.数据传输函数 ................................................................................................................... 70  9.4.1. FS_MMC_HW_X_ReadByte() ................................................................................ 70  9.4.2. FS_MMC_HW_X_ReadByteNoSync() .................................................................... 72  9.4.3. FS_MMC_HW_X_ReadSingleBlock() ..................................................................... 73  9.4.4. FS_MMC_HW_X_WriteByte() ............................................................................... 75  9.4.5. FS_MMC_HW_X_WriteByteSingleBlock() ............................................................. 76  10.CompactFlash 卡  & IDE 设备驱动 ............................................................................................ 77  10.1.控制线函数 ..................................................................................................................... 77  10.1.1. FS_IDE_HW_X_BusyLedOff() ............................................................................... 77  10.1.2. FS_IDE_HW_X_BusyLedOn() ............................................................................... 78  10.1.3. FS_IDE_HW_X_HWReset() .................................................................................. 79  10.2. ATA I/O 寄存器访问函数 ............................................................................................... 80  10.2.1. FS_IDE_HW_X_GetAltStatus() ............................................................................. 80  10.2.2. FS_IDE_HW_X_GetCylHigh() ............................................................................... 81  10.2.3. FS_IDE_HW_X_GetCylLow() ................................................................................ 82  10.2.4. FS_IDE_HW_X_GetData() .................................................................................... 83  10.2.5. FS_IDE_HW_X_GetDevice() ................................................................................. 84  10.2.6. FS_IDE_HW_X_GetError() ................................................................................... 85  10.2.7. FS_IDE_HW_X_GetSectorCount() ....................................................................... 86  10.2.8. FS_IDE_HW_X_GetSectorNo() ............................................................................ 87  10.2.9. FS_IDE_HW_X_GetStatus() ................................................................................. 88  10.2.10. FS_IDE_HW_X_SetCommand() ......................................................................... 89  10.2.11. FS_IDE_HW_X_SetCylHigh() .............................................................................. 90  10.2.12. FS_IDE_HW_X_SetCylLow() ............................................................................... 91  10.2.13. FS_IDE_HW_X_SetData() ................................................................................... 92  10.2.14. FS_IDE_HW_X_SetDevControl() ........................................................................ 93  III 
10.2.15. FS_IDE_HW_X_SetDevice() ............................................................................... 94  10.2.16. FS_IDE_HW_X_SetFeatures() ............................................................................ 95  10.2.17. FS_IDE_HW_X_SetSectorCount() ...................................................................... 96  10.2.18. FS_IDE_HW_X_SetSectorNo() ........................................................................... 97  10.3.状态检测函数 ................................................................................................................. 98  10.3.1. FS_IDE_HW_X_DetectStatus()............................................................................. 98  11.操作系统集成 .......................................................................................................................... 100  11.1.操作系统层控制函数 ................................................................................................... 100  11.1.1. FS_X_OS_Exit() .................................................................................................. 100  11.1.2. FS_X_OS_Init() ................................................................................................... 101  11.2.内部数据结构保护 ....................................................................................................... 102  11.2.1. FS_X_OS_LockFileHandle() ................................................................................ 102  11.2.2. FS_X_OS_LockMem() ........................................................................................ 103  11.2.3. FS_X_OS_UnlockFileHandle() ............................................................................ 104  11.2.4. FS_X_OS_UnlockMem() .................................................................................... 105  11.3.文件访问保护 ............................................................................................................... 106  11.3.1. FS_X_OS_LockFileOp()....................................................................................... 106  11.3.2. FS_X_OS_UnlockFileOp() ................................................................................... 107  11.4.设备访问保护 ............................................................................................................... 108  11.4.1. FS_X_OS_LockDeviceOp() ................................................................................. 108  11.4.2. FS_X_OS_UnlockDeviceOp() ............................................................................. 109  11.5.时间/日期函数 ............................................................................................................. 110  11.5.1. FS_X_OS_GetDate() ........................................................................................... 110  11.5.2. FS_X_OS_GetTime() .......................................................................................... 111    IV 
1.关于本文档  本文档描述了 µC/FS FAT 文件系统的功能和用户 API。 1.1.假设  本文档假设你已经具备以下知识: 用于编译应用的软件工具(汇编器、连接器、C 编译器) C 语言 目标处理器 DOS 命令行 1.2.如用使用本手册  本手册介绍了 µC/FS 提供的所有函数和宏。本册需要 C 语言知识,而对汇编知识没有要求。 1 
2.µC/FS 简介  2.1.什么是 µC/FS?    µC/FS 是能用于任何媒体的 FAT 文件系统,而你只需要为其提供基本硬件访问函数即可。 µC/FS 是一个在速度、灵活性和内在使用上都优化过的高效软件库。 2.2.特性  µC/FS 是用 ANSI C 写的,能够在任何 CPU 上使用。µC/FS 的一些特性如下: 支持 MS-DOS/MS-Windows 兼容的 FAT12 和 FAT16 多设备驱动支持。你可以在 µC/FS 使用多个不同的设备驱动,这允许你同时访问不同类型硬件的文件 系统。 多媒体支持。一个设备驱动允许你同时访问不同的媒体。 操作系统支持。µC/FS 能够很容易地集成到任何操作系统中。这样就能够在多纯种环境下进行文件操 作。 为用户应用提供类似 API 的 ANSI C stdio.h.。使用 µC/FS 能够很容易移植到使用标准 C I/O 库的应用 中。 非常简单的设备驱动结构。µC/FS 设备驱动只需要非常基本的块读写函数。所以支持用户自己的硬件 是非常简单的。 SmartMedia 卡的通用设备驱动程序,能容易地用于任何一种读卡硬件。 使用 SPI 模式的 MultitMedia & SD 卡的通用设备驱动程序,便于集成。 2 
API 层  文件系统层  3.基本概念  µC/FS 是按不用的层来组织的。以下给出了每一层功能性方面的简单描述。 设备驱动层  逻辑块层  文件操作到扇区操作的 转换  类似函数,例如: FS_fopen,FS_fread 等 不同文件操作的设备操 作同步  访问设备扇区和检查状 态的低级程序  3.1.API 层  API 层是 µC/FS 与用户应用之间的接口。其中包含了一个 ANSI C 面向文件函数的库,如 FS_FOpen、 FS_FWrite 等。API 层将这些调用传递到文件系统层。目前,µC/FS 只有 FAT 文件系统层可用,但是 API 层可以同时处理多个不同的文件系统层。所以在 µC/FS 中同时使用 FAT 和其他任何文件系统是可能的。 3.2.文件系统层  文件系统层将文件操作转换成逻辑块操作。在这样的转换之后,文件系统调用逻辑块层并为设备指定相应 的设备驱动程序。 3.3.逻辑块层  逻辑块层的主要目的是同步访问设备驱动程序,以及为文件系统层提供简单的接口。逻辑块层将调用设备 驱动程序来进行块操作。 3.4.设备驱动  设备驱动是用于访问硬件的底层程序。设备驱动的结构很简单,可以很容易地集成到硬件。 3 
分享到:
收藏