Advertisement
Guest User

Untitled

a guest
Jul 28th, 2021
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 12.75 KB | None | 0 0
  1. /* USER CODE BEGIN Header */
  2. /**
  3.   ******************************************************************************
  4.   *  FatFs - FAT file system module configuration file  R0.11 (C)ChaN, 2015
  5.   ******************************************************************************
  6.   * @attention
  7.   *
  8.   * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
  9.   * All rights reserved.</center></h2>
  10.   *
  11.   * This software component is licensed by ST under Ultimate Liberty license
  12.   * SLA0044, the "License"; You may not use this file except in compliance with
  13.   * the License. You may obtain a copy of the License at:
  14.   *                             www.st.com/SLA0044
  15.   *
  16.   ******************************************************************************
  17.   */
  18. /* USER CODE END Header */
  19.  
  20. #ifndef _FFCONF
  21. #define _FFCONF 32020   /* Revision ID */
  22.  
  23. /*-----------------------------------------------------------------------------/
  24. / Additional user header to be used
  25. /-----------------------------------------------------------------------------*/
  26. #include "main.h"
  27. #include "stm32f3xx_hal.h"
  28.  
  29. /*-----------------------------------------------------------------------------/
  30. / Functions and Buffer Configurations
  31. /-----------------------------------------------------------------------------*/
  32.  
  33. #define _FS_TINY             0      /* 0:Normal or 1:Tiny */
  34. /* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
  35. /  At the tiny configuration, size of the file object (FIL) is reduced _MAX_SS
  36. /  bytes. Instead of private sector buffer eliminated from the file object,
  37. /  common sector buffer in the file system object (FATFS) is used for the file
  38. /  data transfer. */
  39.  
  40. #define _FS_READONLY         0      /* 0:Read/Write or 1:Read only */
  41. /* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
  42. /  Read-only configuration removes writing API functions, f_write(), f_sync(),
  43. /  f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
  44. /  and optional writing functions as well. */
  45.  
  46. #define _FS_MINIMIZE         0      /* 0 to 3 */
  47. /* This option defines minimization level to remove some basic API functions.
  48. /
  49. /   0: All basic functions are enabled.
  50. /   1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_chmod(), f_utime(),
  51. /      f_truncate() and f_rename() function are removed.
  52. /   2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
  53. /   3: f_lseek() function is removed in addition to 2. */
  54.  
  55. #define _USE_STRFUNC         2      /* 0:Disable or 1-2:Enable */
  56. /* This option switches string functions, f_gets(), f_putc(), f_puts() and
  57. /  f_printf().
  58. /
  59. /  0: Disable string functions.
  60. /  1: Enable without LF-CRLF conversion.
  61. /  2: Enable with LF-CRLF conversion. */
  62.  
  63. #define _USE_FIND            0
  64. /* This option switches filtered directory read feature and related functions,
  65. /  f_findfirst() and f_findnext(). (0:Disable or 1:Enable) */
  66.  
  67. #define _USE_MKFS            1
  68. /* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
  69.  
  70. #define _USE_FASTSEEK        1
  71. /* This option switches fast seek feature. (0:Disable or 1:Enable) */
  72.  
  73. #define _USE_LABEL           0
  74. /* This option switches volume label functions, f_getlabel() and f_setlabel().
  75. /  (0:Disable or 1:Enable) */
  76.  
  77. #define _USE_FORWARD         0
  78. /* This option switches f_forward() function. (0:Disable or 1:Enable)
  79. /  To enable it, also _FS_TINY need to be set to 1. */
  80.  
  81. /*-----------------------------------------------------------------------------/
  82. / Locale and Namespace Configurations
  83. /-----------------------------------------------------------------------------*/
  84.  
  85. #define _CODE_PAGE         850
  86. /* This option specifies the OEM code page to be used on the target system.
  87. /  Incorrect setting of the code page can cause a file open failure.
  88. /
  89. /   932  - Japanese Shift_JIS (DBCS, OEM, Windows)
  90. /   936  - Simplified Chinese GBK (DBCS, OEM, Windows)
  91. /   949  - Korean (DBCS, OEM, Windows)
  92. /   950  - Traditional Chinese Big5 (DBCS, OEM, Windows)
  93. /   1250 - Central Europe (Windows)
  94. /   1251 - Cyrillic (Windows)
  95. /   1252 - Latin 1 (Windows)
  96. /   1253 - Greek (Windows)
  97. /   1254 - Turkish (Windows)
  98. /   1255 - Hebrew (Windows)
  99. /   1256 - Arabic (Windows)
  100. /   1257 - Baltic (Windows)
  101. /   1258 - Vietnam (OEM, Windows)
  102. /   437  - U.S. (OEM)
  103. /   720  - Arabic (OEM)
  104. /   737  - Greek (OEM)
  105. /   775  - Baltic (OEM)
  106. /   850  - Multilingual Latin 1 (OEM)
  107. /   858  - Multilingual Latin 1 + Euro (OEM)
  108. /   852  - Latin 2 (OEM)
  109. /   855  - Cyrillic (OEM)
  110. /   866  - Russian (OEM)
  111. /   857  - Turkish (OEM)
  112. /   862  - Hebrew (OEM)
  113. /   874  - Thai (OEM, Windows)
  114. /   1    - ASCII (No extended character. Valid for only non-LFN configuration.) */
  115.  
  116. #define _USE_LFN     1    /* 0 to 3 */
  117. #define _MAX_LFN     255    /* Maximum LFN length to handle (12 to 255) */
  118. /* The _USE_LFN option switches the LFN feature.
  119. /
  120. /   0: Disable LFN feature. _MAX_LFN has no effect.
  121. /   1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
  122. /   2: Enable LFN with dynamic working buffer on the STACK.
  123. /   3: Enable LFN with dynamic working buffer on the HEAP.
  124. /
  125. /  When enable the LFN feature, Unicode handling functions (option/unicode.c) must
  126. /  be added to the project. The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes.
  127. /  When use stack for the working buffer, take care on stack overflow. When use heap
  128. /  memory for the working buffer, memory management functions, ff_memalloc() and
  129. /  ff_memfree(), must be added to the project. */
  130.  
  131. #define _LFN_UNICODE    0 /* 0:ANSI/OEM or 1:Unicode */
  132. /* This option switches character encoding on the API. (0:ANSI/OEM or 1:Unicode)
  133. /  To use Unicode string for the path name, enable LFN feature and set _LFN_UNICODE
  134. /  to 1. This option also affects behavior of string I/O functions. */
  135.  
  136. #define _STRF_ENCODE    3
  137. /* When _LFN_UNICODE is 1, this option selects the character encoding on the file to
  138. /  be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
  139. /
  140. /  0: ANSI/OEM
  141. /  1: UTF-16LE
  142. /  2: UTF-16BE
  143. /  3: UTF-8
  144. /
  145. /  When _LFN_UNICODE is 0, this option has no effect. */
  146.  
  147. #define _FS_RPATH       0 /* 0 to 2 */
  148. /* This option configures relative path feature.
  149. /
  150. /   0: Disable relative path feature and remove related functions.
  151. /   1: Enable relative path feature. f_chdir() and f_chdrive() are available.
  152. /   2: f_getcwd() function is available in addition to 1.
  153. /
  154. /  Note that directory items read via f_readdir() are affected by this option. */
  155.  
  156. /*---------------------------------------------------------------------------/
  157. / Drive/Volume Configurations
  158. /----------------------------------------------------------------------------*/
  159.  
  160. #define _VOLUMES    1
  161. /* Number of volumes (logical drives) to be used. */
  162.  
  163. /* USER CODE BEGIN Volumes */
  164. #define _STR_VOLUME_ID          0   /* 0:Use only 0-9 for drive ID, 1:Use strings for drive ID */
  165. #define _VOLUME_STRS            "RAM","NAND","CF","SD1","SD2","USB1","USB2","USB3"
  166. /* _STR_VOLUME_ID option switches string volume ID feature.
  167. /  When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
  168. /  number in the path name. _VOLUME_STRS defines the drive ID strings for each
  169. /  logical drives. Number of items must be equal to _VOLUMES. Valid characters for
  170. /  the drive ID strings are: A-Z and 0-9. */
  171. /* USER CODE END Volumes */
  172.  
  173. #define _MULTI_PARTITION     0 /* 0:Single partition, 1:Multiple partition */
  174. /* This option switches multi-partition feature. By default (0), each logical drive
  175. /  number is bound to the same physical drive number and only an FAT volume found on
  176. /  the physical drive will be mounted. When multi-partition feature is enabled (1),
  177. /  each logical drive number is bound to arbitrary physical drive and partition
  178. /  listed in the VolToPart[]. Also f_fdisk() function will be available. */
  179.  
  180. #define _MIN_SS    512  /* 512, 1024, 2048 or 4096 */
  181. #define _MAX_SS    4096  /* 512, 1024, 2048 or 4096 */
  182. /* These options configure the range of sector size to be supported. (512, 1024,
  183. /  2048 or 4096) Always set both 512 for most systems, all type of memory cards and
  184. /  harddisk. But a larger value may be required for on-board flash memory and some
  185. /  type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
  186. /  to variable sector size and GET_SECTOR_SIZE command must be implemented to the
  187. /  disk_ioctl() function. */
  188.  
  189. #define _USE_TRIM      0
  190. /* This option switches ATA-TRIM feature. (0:Disable or 1:Enable)
  191. /  To enable Trim feature, also CTRL_TRIM command should be implemented to the
  192. /  disk_ioctl() function. */
  193.  
  194. #define _FS_NOFSINFO    0 /* 0,1,2 or 3 */
  195. /* If you need to know correct free space on the FAT32 volume, set bit 0 of this
  196. /  option, and f_getfree() function at first time after volume mount will force
  197. /  a full FAT scan. Bit 1 controls the use of last allocated cluster number.
  198. /
  199. /  bit0=0: Use free cluster count in the FSINFO if available.
  200. /  bit0=1: Do not trust free cluster count in the FSINFO.
  201. /  bit1=0: Use last allocated cluster number in the FSINFO if available.
  202. /  bit1=1: Do not trust last allocated cluster number in the FSINFO.
  203. */
  204.  
  205. /*---------------------------------------------------------------------------/
  206. / System Configurations
  207. /----------------------------------------------------------------------------*/
  208.  
  209. #define _FS_NORTC   0
  210. #define _NORTC_MON  6
  211. #define _NORTC_MDAY 4
  212. #define _NORTC_YEAR 2015
  213. /* The _FS_NORTC option switches timestamp feature. If the system does not have
  214. /  an RTC function or valid timestamp is not needed, set _FS_NORTC to 1 to disable
  215. /  the timestamp feature. All objects modified by FatFs will have a fixed timestamp
  216. /  defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR.
  217. /  When timestamp feature is enabled (_FS_NORTC == 0), get_fattime() function need
  218. /  to be added to the project to read current time form RTC. _NORTC_MON,
  219. /  _NORTC_MDAY and _NORTC_YEAR have no effect.
  220. /  These options have no effect at read-only configuration (_FS_READONLY == 1). */
  221.  
  222. #define _FS_LOCK    2     /* 0:Disable or >=1:Enable */
  223. /* The _FS_LOCK option switches file lock feature to control duplicated file open
  224. /  and illegal operation to open objects. This option must be 0 when _FS_READONLY
  225. /  is 1.
  226. /
  227. /  0:  Disable file lock feature. To avoid volume corruption, application program
  228. /      should avoid illegal open, remove and rename to the open objects.
  229. /  >0: Enable file lock feature. The value defines how many files/sub-directories
  230. /      can be opened simultaneously under file lock control. Note that the file
  231. /      lock feature is independent of re-entrancy. */
  232.  
  233. #define _FS_REENTRANT    0  /* 0:Disable or 1:Enable */
  234. #define _FS_TIMEOUT      1000 /* Timeout period in unit of time ticks */
  235. #define _SYNC_t          NULL
  236. /* The _FS_REENTRANT option switches the re-entrancy (thread safe) of the FatFs
  237. /  module itself. Note that regardless of this option, file access to different
  238. /  volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
  239. /  and f_fdisk() function, are always not re-entrant. Only file/directory access
  240. /  to the same volume is under control of this feature.
  241. /
  242. /   0: Disable re-entrancy. _FS_TIMEOUT and _SYNC_t have no effect.
  243. /   1: Enable re-entrancy. Also user provided synchronization handlers,
  244. /      ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
  245. /      function, must be added to the project. Samples are available in
  246. /      option/syscall.c.
  247. /
  248. /  The _FS_TIMEOUT defines timeout period in unit of time tick.
  249. /  The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
  250. /  SemaphoreHandle_t and etc.. */
  251.  
  252. #define _WORD_ACCESS    0 /* 0 or 1 */
  253. /* The _WORD_ACCESS option is an only platform dependent option. It defines
  254. /  which access method is used to the word data on the FAT volume.
  255. /
  256. /   0: Byte-by-byte access. Always compatible with all platforms.
  257. /   1: Word access. Do not choose this unless under both the following conditions.
  258. /
  259. /  * Address misaligned memory access is always allowed to ALL instructions.
  260. /  * Byte order on the memory is little-endian.
  261. /
  262. /  If it is the case, _WORD_ACCESS can also be set to 1 to reduce code size.
  263. /  Following table shows allowable settings of some processor types.
  264. /
  265. /   ARM7TDMI    0           ColdFire    0           V850E       0
  266. /   Cortex-M3   0           Z80         0/1         V850ES      0/1
  267. /   Cortex-M0   0           x86         0/1         TLCS-870    0/1
  268. /   AVR         0/1         RX600(LE)   0/1         TLCS-900    0/1
  269. /   AVR32       0           RL78        0           R32C        0
  270. /   PIC18       0/1         SH-2        0           M16C        0/1
  271. /   PIC24       0           H8S         0           MSP430      0
  272. /   PIC32       0           H8/300H     0           8051        0/1
  273. */
  274.  
  275. #endif /* _FFCONF */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement