Skip to content

Commit 56505ea

Browse files
committed
chore(ffconf): align after FatFs update
Signed-off-by: Frederic Pillon <frederic.pillon@st.com>
1 parent e20b7f3 commit 56505ea

File tree

1 file changed

+105
-90
lines changed

1 file changed

+105
-90
lines changed

src/ffconf_default_68300.h

Lines changed: 105 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,42 @@
1-
/**
2-
*
3-
* Portions COPYRIGHT 2017 STMicroelectronics
4-
* Copyright (C) 2017, ChaN, all right reserved.
5-
*
6-
******************************************************************************
7-
*
8-
* <h2><center>&copy; Copyright (c) 2017 STMicroelectronics International N.V.
9-
* All rights reserved.</center></h2>
10-
*
11-
* Redistribution and use in source and binary forms, with or without
12-
* modification, are permitted, provided that the following conditions are met:
13-
*
14-
* 1. Redistribution of source code must retain the above copyright notice,
15-
* this list of conditions and the following disclaimer.
16-
* 2. Redistributions in binary form must reproduce the above copyright notice,
17-
* this list of conditions and the following disclaimer in the documentation
18-
* and/or other materials provided with the distribution.
19-
* 3. Neither the name of STMicroelectronics nor the names of other
20-
* contributors to this software may be used to endorse or promote products
21-
* derived from this software without specific written permission.
22-
* 4. This software, including modifications and/or derivative works of this
23-
* software, must execute solely and exclusively on microcontroller or
24-
* microprocessor devices manufactured by or for STMicroelectronics.
25-
* 5. Redistribution and use of this software other than as permitted under
26-
* this license is void and will automatically terminate your rights under
27-
* this license.
28-
*
29-
* THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
30-
* AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
31-
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
32-
* PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
33-
* RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
34-
* SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
35-
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
36-
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
37-
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
38-
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
39-
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
40-
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41-
*
42-
******************************************************************************
43-
*/
1+
/*----------------------------------------------------------------------------/
2+
/ FatFs - Generic FAT file system module R0.12c /
3+
/-----------------------------------------------------------------------------/
4+
/
5+
/ Copyright (C) 2017, ChaN, all right reserved.
6+
/ Portions Copyright (C) STMicroelectronics, all right reserved.
7+
/
8+
/ FatFs module is an open source software. Redistribution and use of FatFs in
9+
/ source and binary forms, with or without modification, are permitted provided
10+
/ that the following condition is met:
11+
12+
/ 1. Redistributions of source code must retain the above copyright notice,
13+
/ this condition and the following disclaimer.
14+
/
15+
/ This software is provided by the copyright holder and contributors "AS IS"
16+
/ and any warranties related to this software are DISCLAIMED.
17+
/ The copyright owner or contributors be NOT LIABLE for any damages caused
18+
/ by use of this software.
19+
/----------------------------------------------------------------------------*/
20+
4421

4522
/*---------------------------------------------------------------------------/
4623
/ FatFs - FAT file system module configuration file
4724
/---------------------------------------------------------------------------*/
4825

49-
#define _FFCONF 68300 /* Revision ID */
26+
#define _FFCONF 68300 /* Revision ID */
5027

5128
/*---------------------------------------------------------------------------/
5229
/ Function Configurations
5330
/---------------------------------------------------------------------------*/
5431

55-
#define _FS_READONLY 0
32+
#define _FS_READONLY 0
5633
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
5734
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
5835
/ f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
5936
/ and optional writing functions as well. */
6037

6138

62-
#define _FS_MINIMIZE 0
39+
#define _FS_MINIMIZE 0
6340
/* This option defines minimization level to remove some basic API functions.
6441
/
6542
/ 0: All basic functions are enabled.
@@ -69,7 +46,7 @@
6946
/ 3: f_lseek() function is removed in addition to 2. */
7047

7148

72-
#define _USE_STRFUNC 0
49+
#define _USE_STRFUNC 0
7350
/* This option switches string functions, f_gets(), f_putc(), f_puts() and
7451
/ f_printf().
7552
/
@@ -78,42 +55,42 @@
7855
/ 2: Enable with LF-CRLF conversion. */
7956

8057

81-
#define _USE_FIND 0
58+
#define _USE_FIND 0
8259
/* This option switches filtered directory read functions, f_findfirst() and
8360
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
8461

8562

86-
#define _USE_MKFS 1
63+
#define _USE_MKFS 1
8764
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
8865

8966

90-
#define _USE_FASTSEEK 1
67+
#define _USE_FASTSEEK 1
9168
/* This option switches fast seek function. (0:Disable or 1:Enable) */
9269

9370

94-
#define _USE_EXPAND 0
71+
#define _USE_EXPAND 0
9572
/* This option switches f_expand function. (0:Disable or 1:Enable) */
9673

9774

98-
#define _USE_CHMOD 0
75+
#define _USE_CHMOD 0
9976
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
10077
/ (0:Disable or 1:Enable) Also _FS_READONLY needs to be 0 to enable this option. */
10178

10279

103-
#define _USE_LABEL 0
80+
#define _USE_LABEL 0
10481
/* This option switches volume label functions, f_getlabel() and f_setlabel().
10582
/ (0:Disable or 1:Enable) */
10683

10784

108-
#define _USE_FORWARD 0
85+
#define _USE_FORWARD 0
10986
/* This option switches f_forward() function. (0:Disable or 1:Enable) */
11087

11188

11289
/*---------------------------------------------------------------------------/
11390
/ Locale and Namespace Configurations
11491
/---------------------------------------------------------------------------*/
11592

116-
#define _CODE_PAGE 850
93+
#define _CODE_PAGE 850
11794
/* This option specifies the OEM code page to be used on the target system.
11895
/ Incorrect setting of the code page can cause a file open failure.
11996
/
@@ -142,8 +119,8 @@
142119
*/
143120

144121

145-
#define _USE_LFN 3
146-
#define _MAX_LFN 255
122+
#define _USE_LFN 3
123+
#define _MAX_LFN 255
147124
/* The _USE_LFN switches the support of long file name (LFN).
148125
/
149126
/ 0: Disable support of LFN. _MAX_LFN has no effect.
@@ -160,13 +137,13 @@
160137
/ ff_memfree(), must be added to the project. */
161138

162139

163-
#define _LFN_UNICODE 0
140+
#define _LFN_UNICODE 0
164141
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16)
165142
/ To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
166143
/ This option also affects behavior of string I/O functions. */
167144

168145

169-
#define _STRF_ENCODE 3
146+
#define _STRF_ENCODE 3
170147
/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to
171148
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
172149
/
@@ -178,7 +155,7 @@
178155
/ This option has no effect when _LFN_UNICODE == 0. */
179156

180157

181-
#define _FS_RPATH 0
158+
#define _FS_RPATH 0
182159
/* This option configures support of relative path.
183160
/
184161
/ 0: Disable relative path and remove related functions.
@@ -191,20 +168,20 @@
191168
/ Drive/Volume Configurations
192169
/---------------------------------------------------------------------------*/
193170

194-
#define _VOLUMES 2
171+
#define _VOLUMES 2
195172
/* Number of volumes (logical drives) to be used. */
196173

197174

198-
#define _STR_VOLUME_ID 0
199-
#define _VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3"
175+
#define _STR_VOLUME_ID 0
176+
#define _VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3"
200177
/* _STR_VOLUME_ID switches string support of volume ID.
201178
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
202179
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
203180
/ logical drives. Number of items must be equal to _VOLUMES. Valid characters for
204181
/ the drive ID strings are: A-Z and 0-9. */
205182

206183

207-
#define _MULTI_PARTITION 0
184+
#define _MULTI_PARTITION 0
208185
/* This option switches support of multi-partition on a physical drive.
209186
/ By default (0), each logical drive number is bound to the same physical drive
210187
/ number and only an FAT volume found on the physical drive will be mounted.
@@ -213,8 +190,8 @@
213190
/ function will be available. */
214191

215192

216-
#define _MIN_SS 512
217-
#define _MAX_SS 512
193+
#define _MIN_SS 512
194+
#define _MAX_SS 512
218195
/* These options configure the range of sector size to be supported. (512, 1024,
219196
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
220197
/ harddisk. But a larger value may be required for on-board flash memory and some
@@ -223,13 +200,13 @@
223200
/ disk_ioctl() function. */
224201

225202

226-
#define _USE_TRIM 0
203+
#define _USE_TRIM 0
227204
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
228205
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
229206
/ disk_ioctl() function. */
230207

231208

232-
#define _FS_NOFSINFO 0
209+
#define _FS_NOFSINFO 0
233210
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
234211
/ option, and f_getfree() function at first time after volume mount will force
235212
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
@@ -246,24 +223,24 @@
246223
/ System Configurations
247224
/---------------------------------------------------------------------------*/
248225

249-
#define _FS_TINY 0
226+
#define _FS_TINY 0
250227
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
251228
/ At the tiny configuration, size of file object (FIL) is reduced _MAX_SS bytes.
252229
/ Instead of private sector buffer eliminated from the file object, common sector
253230
/ buffer in the file system object (FATFS) is used for the file data transfer. */
254231

255232

256-
#define _FS_EXFAT 0
233+
#define _FS_EXFAT 0
257234
/* This option switches support of exFAT file system. (0:Disable or 1:Enable)
258235
/ When enable exFAT, also LFN needs to be enabled. (_USE_LFN >= 1)
259236
/ Note that enabling exFAT discards C89 compatibility. */
260237

261238

262-
#define _FS_NORTC 0
263-
#define _NORTC_MON 1
264-
#define _NORTC_MDAY 1
265-
#define _NORTC_YEAR 2016
266-
/* The option _FS_NORTC switches timestamp function. If the system does not have
239+
#define _FS_NORTC 0
240+
#define _NORTC_MON 1
241+
#define _NORTC_MDAY 1
242+
#define _NORTC_YEAR 2016
243+
/* The option _FS_NORTC switches timestamp functiton. If the system does not have
267244
/ any RTC function or valid timestamp is not needed, set _FS_NORTC = 1 to disable
268245
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
269246
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
@@ -273,7 +250,7 @@
273250
/ These options have no effect at read-only configuration (_FS_READONLY = 1). */
274251

275252

276-
#define _FS_LOCK 0
253+
#define _FS_LOCK 2
277254
/* The option _FS_LOCK switches file lock function to control duplicated file open
278255
/ and illegal operation to open objects. This option must be 0 when _FS_READONLY
279256
/ is 1.
@@ -284,13 +261,32 @@
284261
/ can be opened simultaneously under file lock control. Note that the file
285262
/ lock control is independent of re-entrancy. */
286263

287-
#define _FS_REENTRANT 0
264+
#define _FS_REENTRANT 0
265+
#define _USE_MUTEX 0
266+
/* Use CMSIS-OS mutexes as _SYNC_t object instead of Semaphores */
288267

289268
#if _FS_REENTRANT
290-
#include "cmsis_os.h"
291-
#define _FS_TIMEOUT 1000
292-
#define _SYNC_t osSemaphoreId
269+
270+
#include "cmsis_os.h"
271+
#define _FS_TIMEOUT 1000
272+
273+
#if _USE_MUTEX
274+
275+
#if (osCMSIS < 0x20000U)
276+
#define _SYNC_t osMutexId
277+
#else
278+
#define _SYNC_t osMutexId_t
279+
#endif
280+
281+
#else
282+
#if (osCMSIS < 0x20000U)
283+
#define _SYNC_t osSemaphoreId
284+
#else
285+
#define _SYNC_t osSemaphoreId_t
293286
#endif
287+
288+
#endif
289+
#endif //_FS_REENTRANT
294290
/* The option _FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
295291
/ module itself. Note that regardless of this option, file access to different
296292
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
@@ -308,19 +304,38 @@
308304
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
309305
/ included somewhere in the scope of ff.h. */
310306

311-
/* #include <windows.h> // O/S definitions */
307+
/* #include <windows.h> // O/S definitions */
312308

313309
#if _USE_LFN == 3
314-
#if !defined(ff_malloc) || !defined(ff_free)
315-
#include <stdlib.h>
316-
#endif
317310

318-
#if !defined(ff_malloc)
319-
#define ff_malloc malloc
320-
#endif
311+
#if !defined(ff_malloc) || !defined(ff_free)
312+
#include <stdlib.h>
313+
#endif
321314

322-
#if !defined(ff_free)
323-
#define ff_free free
324-
#endif
315+
#if !defined(ff_malloc)
316+
#define ff_malloc malloc
317+
#endif
318+
319+
#if !defined(ff_free)
320+
#define ff_free free
321+
#endif
322+
323+
/* by default the system malloc/free are used, but when the FreeRTOS is enabled
324+
/ the macros pvPortMalloc()/vportFree() to be used thus uncomment the code below
325+
/
326+
*/
327+
/*
328+
#if !defined(ff_malloc) || !defined(ff_free)
329+
#include "cmsis_os.h"
330+
#endif
331+
332+
#if !defined(ff_malloc)
333+
#define ff_malloc pvPortMalloc
334+
#endif
335+
336+
#if !defined(ff_free)
337+
#define ff_free vPortFree
338+
#endif
339+
*/
325340
#endif
326341
/*--- End of configuration options ---*/

0 commit comments

Comments
 (0)