st_readme.txt 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. @verbatim
  2. ******************************************************************************
  3. * @file st_readme.txt
  4. * @author MCD Application Team
  5. * @brief This file lists the main modification done by STMicroelectronics on
  6. * FatFs for integration with STM32Cube solution.
  7. * For more details on FatFs implementation on STM32Cube, please refer
  8. * to UM1721 "Developing Applications on STM32Cube with FatFs"
  9. ******************************************************************************
  10. * @attention
  11. *
  12. * Copyright (c) 2017 STMicroelectronics. All rights reserved.
  13. *
  14. * This software component is licensed by ST under BSD 3-Clause license,
  15. * the "License"; You may not use this file except in compliance with the
  16. * License. You may obtain a copy of the License at:
  17. * opensource.org/licenses/BSD-3-Clause
  18. *
  19. ******************************************************************************
  20. @endverbatim
  21. ### V2.1.4/18-10-2019 ###
  22. ============================
  23. + Fix wrong usage of the "memcpy" in the SD_Write() function
  24. - drivers/sd_diskio_dma_template_bspv1.c
  25. - drivers/sd_diskio_dma_template_bspv2.c
  26. - drivers/sd_diskio_dma_rtos_template_bspv1.c
  27. - drivers/sd_diskio_dma_rtos_template_bspv2.c
  28. + correct the usage of the "_USE_MUTEX" config flag
  29. - syscall.c
  30. ### V2.1.3/26-07-2019 ###
  31. ============================
  32. + add new BSPv2 templates:
  33. - drivers/sd_diskio_dma_rtos_template_bspv2.c
  34. - drivers/sd_diskio_dma_template_bspv2.c
  35. - drivers/sd_diskio_template_bspv2.c
  36. - drivers/sdram_diskio_template_bspv2.c
  37. + rename old template to "xxxx_diskio_template_bspv1.c":
  38. - drivers/sd_diskio_dma_rtos_template_bspv1.c
  39. - drivers/sd_diskio_dma_template_bspv1.c
  40. - drivers/sd_diskio_template_bspv1.c
  41. - drivers/sdram_diskio_template_bspv1.c
  42. + Add CMSIS-OSv2 support in templates, syscall.c and ff_conf_template.h
  43. - syscall.c
  44. - ff_conf_template.h
  45. - drivers/sd_diskio_dma_rtos_template_bspv2.c
  46. + support usage of "osMutex" alongside "osSemaphore" as _SYNC_t type in fatfs
  47. - syscall.c
  48. - ff_conf_template.h
  49. ### V2.1.2/29-03-2019 ###
  50. ============================
  51. + add st_license.txt in the root directory
  52. + src/drivers/xxx_diskio_template.[c/h], src/ff_gen_drv.[c/h], src/option/syscall.c: update the license terms to BSD-3-Clause
  53. ### V2.1.1/25-01-2019 ###
  54. ============================
  55. + sd_diskio_dma_rtos_template.c
  56. - Fix memory leak in the SD_Initialize()
  57. - Disable the ENABLE_SD_DMA_CACHE_MAINTENANCE flag by default to fix a build error for CM4
  58. - include correct diskio header file
  59. + sd_diskio_dma_template.c
  60. - Correct the SD_read() function when enabling the ENABLE_SCRATCH_BUFFER flag
  61. + sd_diskio_dma_rtos_template.c sd_diskio_dma_template.c
  62. - fix potential overflow when using SysTick.
  63. ### V2.1.0/21-09-2018 ###
  64. ============================
  65. + ff.c
  66. - back-port a fix from 0.13, to correct an issue when using multi-threading
  67. access in the same device due to a missing semaphore lock when calling
  68. disk_status() API.
  69. + sd_diskio_dma_rtos_template.c
  70. - Add support to CMSIS-RTOS V2 API
  71. + sd_diskio_dma_rtos_template.c sd_diskio_dma_template.c
  72. - Add a compile flag "ENABLE_SCRATCH_BUFFER" to avoid misaligned access
  73. caused buffer alignment constraint in some DMA versions.
  74. - Add BSP_SD_ErrorCallback() and BSP_SD_AbortCallback() template functions.
  75. ### V2.0.2/17-November-2017 ###
  76. ============================
  77. + sdram_diskio_template.c sram_diskio_template.c
  78. Fix wrong buffer size in the (SRAM/SDRAM)DISK_read(), (SRAM/SDRAM)DISK_write()
  79. + sd_diskio_template.c
  80. - define a generic 'SD_TIMEOUT' based on the BSP drivers defines. This fixes
  81. a build issue when using this driver with the Adafruit shield.
  82. + sd_diskio_dma_rtos_template.c
  83. - add a check via osKernelRunning(), to avoid runtime errors due to
  84. osMessageXXX calls that needs the "osKernelStart()" call done first.
  85. + sd_diskio_dma_template.c, sd_diskio_dma_rtos_template.c
  86. - fix wrong address alignment when calling SCB_InvalidateDCache_by_Addr() and
  87. SCB_CleanDCache_by_Addr(), the address has to be 32-Byte and not
  88. 32-bit aligned.
  89. - fix BSP_SD_ReadCpltCallback() and BSP_SD_WriteCpltCallback() prototypes by
  90. adding 'void' as argument to avoid IAR compiler errors
  91. + sd_diskio_template.c sd_diskio_dma_template.c, sd_diskio_dma_rtos_template.c
  92. - add the flag "DISABLE_SD_INIT" to give the user the choice to initialize the SD
  93. either in the application or in the FatFs diskio driver.
  94. + all xxx_diskio_template.c
  95. - fix GET_BLOCK_SIZE ioctl call; the return value is in unit of sectors.
  96. ### V2.0.1/10-July-2017 ###
  97. ============================
  98. + sd_diskio_dma_template.c, sd_diskio_dma_rtos_template.c
  99. - add the flag "ENABLE_SD_DMA_CACHE_MAINTENANCE", to enable cache maintenance at each read write operation.
  100. This is useful for STM32F7/STM32H7 based platforms when using a cachable memory region.
  101. - add timeout checks in SD_Read() and SD_Write() to give the control back to the application to decide in case of errors.
  102. + ff_gen_drv.c: fix a wrong check that causes an out of bound array access.
  103. ### V2.0.0/07-March-2017 ###
  104. ============================
  105. + Upgrade to use FatFS R0.12c. The R0.12c breaks the API compatibility with R0.11b.
  106. - f_mkfs() API has a new signature.
  107. - The _CODE_PAGE got new values.
  108. - For more details check the files (doc/updates.txt) and the following urls:
  109. http://elm-chan.org/fsw/ff/en/mkfs.html
  110. http://elm-chan.org/fsw/ff/en/config.html
  111. + Add USB, RAMDISK and uSD template drivers under src/drivers.
  112. - The diskio drivers aren't part of fatfs anymore, they are just templates instead.
  113. - User has to copy the suitable template .c/.h file under the project, rename them by
  114. removing the "_template" suffix then link them into the final application.
  115. - The diskio driver .c/.h files have to be edited according to the used platform.
  116. + Define the macros "ff_malloc" and "ff_free" in the ff_conf_template.h and use
  117. them in the syscall.c instead of direct calls to stdlib malloc and free functions.
  118. + Define the "__weak" attribute in diskio.c for the GNU GCC compiler
  119. ### V1.4.0/09-September-2016 ###
  120. ================================
  121. + Upgrade to use FatFs R0.12b.
  122. + ff_conf.h: remove the use of define "_USE_BUFF_WO_ALIGNMENT".
  123. ### V1.3.0/08-May-2015 ###
  124. ==========================
  125. + Upgrade to use FatFs R0.11.
  126. + Add new APIs FATFS_LinkDriverEx() and FATFS_UnLinkDriverEx() to manage USB Key Disk having
  127. multi-lun capability. These APIs are equivalent to FATFS_LinkDriver() and FATFS_UnLinkDriver()
  128. with "lun" parameter set to 0.
  129. + ff_conf.h: add new define "_USE_BUFF_WO_ALIGNMENT".
  130. This option is available only for usbh diskio interface and allow to disable
  131. the management of the unaligned buffer.
  132. When STM32 USB OTG HS or FS IP is used with internal DMA enabled, this define
  133. must be set to 0 to align data into 32bits through an internal scratch buffer
  134. before being processed by the DMA . Otherwise (DMA not used), this define must
  135. be set to 1 to avoid Data alignment and improve the performance.
  136. Please note that if _USE_BUFF_WO_ALIGNMENT is set to 1 and an unaligned 32bits
  137. buffer is forwarded to the FatFs Write/Read functions, an error will be returned.
  138. (0: default value or 1: unaligned buffer return an error).
  139. + Important note:
  140. For application code based on previous FatFs version; when moving to R0.11
  141. the changes that need to be done is to update ffconf.h file, taking
  142. ffconf_template.h file as reference.
  143. ### V1.2.1/20-November-2014 ###
  144. ===============================
  145. + Disk I/O drivers; change count argument type from BYTE to UINT
  146. + Important note:
  147. For application code based on previous FatFs version; when moving to R0.10b
  148. the only change that need to be done is to update ffconf.h file, taking
  149. ffconf_template.h file as reference.
  150. ### V1.2.0/04-November-2014 ###
  151. ===============================
  152. + Upgrade to use FatFs R0.10b.
  153. + diskio.c: update disk_read() and disk_write() argument's type.
  154. + Important note:
  155. For application code based on previous FatFs version; when moving to R0.10b
  156. the only change that need to be done is to update ffconf.h file, taking
  157. ffconf_template.h file as reference.
  158. ### V1.1.1/12-September-2014 ###
  159. ================================
  160. + ff_gen_drv.c: Update the Disk_drvTypeDef disk variable initialization to avoid
  161. warnings detected with Atollic TrueSTUDIO Complier.
  162. ### V1.1.0/22-April-2014 ###
  163. ============================
  164. + Update sd_diskio to use SD BSP in polling mode instead of DMA mode (the scratch
  165. buffer needed for DMA alignment is removed as well).
  166. + diskio.c and ff_gen_drv.c/.h: update to prevent multiple initialization.
  167. ### V1.0.0/18-February-2014 ###
  168. ===============================
  169. + First R0.10 customized version for STM32Cube solution.
  170. * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
  171. */