This page describes all changes made to the media_drv_mmcsd_stm32 package, the MMCSD Media Driver for STM32, since its release.
2.21 (2021-02-08, 17:36):
- psp_idle() now also called from command and DMA read/write busy loops, in order to allow users to take necessary actions, like triggering watchdog, etc.
2.20 (2020-07-20, 17:30):
- Data buffer address is checked if it points to Core Coupled Memory (CCM) area before starting a DMA transfer. (DMA can not access CCM.)
2.19 (2020-05-19, 14:30):
- psp_idle() called in busy state to indicate idle time.
2.18 (2019-02-08, 15:09):
- Fixed Incompatibility issue with media_drv_base. This could cause file system initialization error when used with SafeFAT (IOCTL lock/unlock).
2.17 (2019-01-23, 16:31):
- Added support for high speed (>25MHz, <=48MHz) operation.
2.16r2 (2018-08-29, 18:12):
- Document HTML link added to the documentation folder.
- History and document files renamed to the package name.
2.16 (2017-10-09, 11:36):
- Compiler warnings were eliminated.
2.15 (2017-06-30, 15:05)
- A delay in the execution of the driver while performing MMC/SD read operation could lead to read error. This was typically the case of a higher priority task preempting the task the read (typically a file system read) was initiated from.
2.14 r2 (2017-06-21, 15:48):
- PSP template for STM32F4 updated for usage with HAL in STM32CubeMX.
- wait_busy() avoids polling the status back-to-back as some cards will not tolerate this and will never finish a write request.
- Multi-sector write and read will send CMD12 (STOP) even if data time-out has occurred to put back the card to a known state.
- Wait in mmcsd_set_speed() fixed: it could cause timeout error on the first read or write command.
- EMMC support added.
- Hardware flow control removed from the driver as STM32F20x and STM32F21x Errata sheet (DM00027123, 2.10.1) declares that hardware flow control is not reliable and therefore, it should not be used.
- Sector write could fail if the driver was reinitialized immediately after the write (release/init driver). This could occur because the busy state was waited at the beginning of read/write and re-initialization sends the card to idle state. This could also be an issue for the file system using the driver if it assumed the sector being written when it returned.
- Write from unaligned address worked incorrectly.
- Uses common mmcsd_init v1.0.
- Removed warnings.
- The driver can recover from unexpected states (extra error check added to wait_busy()).
- Added support for standard and high-capacity eMMC cards.
- Added support for stm32f4xx devices.
- Added delay between SDIO_CLKCR writes. This issue could lead to lockups in under certain conditions as the SDIO clock could remain disabled.
- HCC_ASSERTs removed.
- Calculation of number_of_sectors corrected for non-SDHC cards.
- Compilation error fixed for the case when no ISR is used.
- Configuration separated and HW specific moved to mmcsd_hw.
- cd, wp, power separated to mmcsd_hw.
- MMCSD error codes introduced.
- Initial release.