文件系统FatFsR0.09a翻译(二):ffconf.h

//本译文只供学习使用,未经作者许可,不得用于其它任何用途  

//译者:xiaofeng

//修改日期:2013/03/18

//版本:V1.0

//版权所有,盗版必究。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
/*---------------------------------------------------------------------------/
/  FatFs - FAT file system module configuration file  R0.09a (C)ChaN, 2012
/----------------------------------------------------------------------------/
/
/ CAUTION! Do not forget to make clean the project after any changes to
/ the configuration options.
/注意!配置选项任何变换之后不要忘了整理工程
/
/----------------------------------------------------------------------------*/
#ifndef _FFCONF
#define _FFCONF 4004    /* Revision ID */
   
   
/*---------------------------------------------------------------------------/
/ Functions and Buffer Configurations
/函数和缓冲区的配置
/----------------------------------------------------------------------------*/
   
#define _FS_TINY        0   /* 0:正常 1:迷你的 0:Normal or 1:Tiny */
/* When _FS_TINY is set to 1, FatFs uses the sector buffer in the file system
/  object instead of the sector buffer in the individual file object for file
/  data transfer. This reduces memory consumption 512 bytes each file object. */
//当FS_TINY为1,将减少内存的使用
   
#define _FS_READONLY    0   /* 0:读/写 1:只读 0:Read/Write or 1:Read only */
/* Setting _FS_READONLY to 1 defines read only configuration. This removes
/  writing functions, f_write, f_sync, f_unlink, f_mkdir, f_chmod, f_rename,
/  f_truncate and useless f_getfree. */
//设置FS_READONLY为1,将删除一些函数
   
#define _FS_MINIMIZE    0   /* 0 to 3 */
/* The _FS_MINIMIZE option defines minimization level to remove some functions.
/
/   0: Full function.
/   1: f_stat, f_getfree, f_unlink, f_mkdir, f_chmod, f_truncate and f_rename
/      are removed.
/   2: f_opendir and f_readdir are removed in addition to 1.
/   3: f_lseek is removed in addition to 2. */
//FS_MINIMIZE选项定义最小限度的删除部分函数,设定不同值裁剪程度不同
   
#define _USE_STRFUNC    0   /* 0:取消 1:使能 0:Disable or 1-2:Enable */
/* To enable string functions, set _USE_STRFUNC to 1 or 2. */
//字符串支持是否使能
   
#define _USE_MKFS       0   /* 0:取消 1:使能 0:Disable or 1:Enable */
/* To enable f_mkfs function, set _USE_MKFS to 1 and set _FS_READONLY to 0 */
//f_mkfs函数的使能
   
#define _USE_FORWARD    0   /* 0:取消 1:使能  0:Disable or 1:Enable */
/* To enable f_forward function, set _USE_FORWARD to 1 and set _FS_TINY to 1. */
//f_forward函数的使能
   
#define _USE_FASTSEEK   0   /* 0:取消 1:使能  0:Disable or 1:Enable */
/* To enable fast seek feature, set _USE_FASTSEEK to 1. */
//快速索引特色的支持
   
   
/*---------------------------------------------------------------------------/
/ Locale and Namespace Configurations
/ 本地语言和文件命名空间的配置
/----------------------------------------------------------------------------*/
   
#define _CODE_PAGE  936  //中文应该选择936
/* The _CODE_PAGE specifies the OEM code page to be used on the target system.
/  Incorrect setting of the code page can cause a file open failure.
/ CODE_PAGE指定OEM编码页在目标系统上的使用,不正确的设定将导致打开文件失败
/   932  - Japanese Shift-JIS (DBCS, OEM, Windows)
/   936  - Simplified Chinese GBK (DBCS, OEM, Windows)
/   949  - Korean (DBCS, OEM, Windows)
/   950  - Traditional Chinese Big5 (DBCS, OEM, Windows)
/   1250 - Central Europe (Windows)
/   1251 - Cyrillic (Windows)
/   1252 - Latin 1 (Windows)
/   1253 - Greek (Windows)
/   1254 - Turkish (Windows)
/   1255 - Hebrew (Windows)
/   1256 - Arabic (Windows)
/   1257 - Baltic (Windows)
/   1258 - Vietnam (OEM, Windows)
/   437  - U.S. (OEM)
/   720  - Arabic (OEM)
/   737  - Greek (OEM)
/   775  - Baltic (OEM)
/   850  - Multilingual Latin 1 (OEM)
/   858  - Multilingual Latin 1 + Euro (OEM)
/   852  - Latin 2 (OEM)
/   855  - Cyrillic (OEM)
/   866  - Russian (OEM)
/   857  - Turkish (OEM)
/   862  - Hebrew (OEM)
/   874  - Thai (OEM, Windows)
/   1    - ASCII only (Valid for non LFN cfg.)
*/
   
   
#define _USE_LFN    0       /* 0 to 3 */
#define _MAX_LFN    255     /* Maximum LFN length to handle (12 to 255) */
/* The _USE_LFN option switches the LFN support.
/ USE_LFN选项选择长文件名的支持程度
/   0: Disable LFN feature. _MAX_LFN and _LFN_UNICODE have no effect.
/   0:不支持长文件名,MAX_LEN和LFN_UNICODE不影响
/   1: Enable LFN with static working buffer on the BSS. Always NOT reentrant.
/   1:在BSS的静态缓冲区上对长文件名的支持,总是不可重入的
/   2: Enable LFN with dynamic working buffer on the STACK.
/   2:在堆栈的动态缓冲区上对长文件名的支持
/   3: Enable LFN with dynamic working buffer on the HEAP.
/   3:在堆的动态缓冲区上对长文件名支持
/
/  The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. To enable LFN,
/  Unicode handling functions ff_convert() and ff_wtoupper() must be added
// 对长文件名支持时,Unicode处理函数ff_convert()和ff_wtoupper()必须添加到工程
/  to the project. When enable to use heap, memory control functions
/  ff_memalloc() and ff_memfree() must be added to the project. */
// 当使用堆,内存控制时,ff_memalloc()和ff_memfree()必须添加到工程
   
#define _LFN_UNICODE    0   /* 0:ANSI/OEM or 1:Unicode */
/* To switch the character code set on FatFs API to Unicode,
/  enable LFN feature and set _LFN_UNICODE to 1. */
// FatFs API要切换字符编码形式为Union时,将LEN和LFN_UNICODE为1
   
#define _FS_RPATH       0   /* 0 to 2 */
/* The _FS_RPATH option configures relative path feature.
/  FS_RPATH选项配置相对路径特征
/   0: Disable relative path feature and remove related functions.
/   0:取消相对路径特征,删除相关函数
/   1: Enable relative path. f_chdrive() and f_chdir() are available.
/   1:取消相对路径特征,但f_chdrive()和f_chdir()仍然可用
/   2: f_getcwd() is available in addition to 1.
/   2:除1之外f_getcwd()函数仍然可用
/  Note that output of the f_readdir fnction is affected by this option. */
//注意!f_readdir函数的输出受此项配置的影响
   
   
/*---------------------------------------------------------------------------/
/ Physical Drive Configurations
/ 物理驱动配置
/----------------------------------------------------------------------------*/
   
#define _VOLUMES    1
/* Number of volumes (logical drives) to be used. */
// 卷(逻辑驱动器)能使用的数目
   
#define _MAX_SS     512     /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.能处理的最大扇区大小
/  Always set 512 for memory card and hard disk but a larger value may be
/  required for on-board flash memory, floppy disk and optical disk.
/  When _MAX_SS is larger than 512, it configures FatFs to variable sector size
/  and GET_SECTOR_SIZE command must be implememted to the disk_ioctl function. */
   
   
#define _MULTI_PARTITION    0   /* 0\xA3:单分区 1/2:多分区 0:Single partition, 1/2:Enable multiple partition */
/* When set to 0, each volume is bound to the same physical drive number and
/ it can mount only first primaly partition. When it is set to 1, each volume
/ is tied to the partitions listed in VolToPart[]. */
   
   
#define _USE_ERASE  0   /* 0:Disable or 1:Enable */
/* To enable sector erase feature, set _USE_ERASE to 1. CTRL_ERASE_SECTOR command
/  should be added to the disk_ioctl functio. */
// 使能扇区擦输功能,应设定USE_ERASE为1
   
   
/*---------------------------------------------------------------------------/
/ System Configurations
/ 系统配置
/----------------------------------------------------------------------------*/
   
#define _WORD_ACCESS    0   /* 0 or 1 */
/* Set 0 first and it is always compatible with all platforms. The _WORD_ACCESS
/  option defines which access method is used to the word data on the FAT volume.
/  优先设置为0,兼用所有的平台,WORD_ACCESS选项定义了那种方式获取字数据在FAT卷上
/   0: Byte-by-byte access.
/   1: Word access. Do not choose this unless following condition is met.
/
/  When the byte order on the memory is big-endian or address miss-aligned word
/  access results incorrect behavior, the _WORD_ACCESS must be set to 0.
/  If it is not the case, the value can also be set to 1 to improve the
/  performance and code size.
*/
   
   
/* A header file that defines sync object types on the O/S, such as
/  windows.h, ucos_ii.h and semphr.h, must be included prior to ff.h. */
//在O/S上一个头文件定义同步对象类型
   
#define _FS_REENTRANT   0       /* 0:Disable or 1:Enable */
#define _FS_TIMEOUT     1000    /* Timeout period in unit of time ticks */
#define _SYNC_t         HANDLE  /* O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc.. */
   
/* The _FS_REENTRANT option switches the reentrancy (thread safe) of the FatFs module.
/  FS_REENTRANT选项选择FatFs模块是否可重入(线程安全)
/   0: Disable reentrancy. _SYNC_t and _FS_TIMEOUT have no effect.
/   1: Enable reentrancy. Also user provided synchronization handlers,
/      ff_req_grant, ff_rel_grant, ff_del_syncobj and ff_cre_syncobj
/      function must be added to the project. */
   
   
#define _FS_LOCK    0   /* 0:Disable or >=1:Enable */
/* To enable file lock control feature, set _FS_LOCK to 1 or greater.
    The value defines how many files can be opened simultaneously. */
//使能文件锁功能,设置FS_LOCK为1或者更大
//定义的大小决定了多少文件能同时打开
   
#endif /* _FFCONFIG */


原文地址:https://www.cnblogs.com/javawebsoa/p/3033514.html