Keil Logo

MDK MIDDLEWARE: fmount() returns fsNoFileSystem, EVR: ReadSectorFailed


Information in this knowledgebase article applies to:

  • MDK v5.x
  • Middleware File System Component V6.9.8 (Middleware Pack v7.4.1)
  • STM32F7xx devices

SYMPTOM

The function fmount() fails, returning 0x0B, fsNoFileSystem. If I enable the Event Recorder, µVision IDE reports the following:

75      0.00619223       FsCore          fmount                 drive=0x08001188
76      0.00619569       FsFAT           MountDrive             drive=M0
77      0.00619761       FsMcMCI         DevCtrl                instance=0  code=fsDevCtrlCodeCheckMedia  p=0x20010858
78      0.00619987       FsMcMCI         MediaCdActive          instance=0
79      0.00620249       FsMcMCI         InitMedia              instance=0
80      0.01007477       FsMcMCI         MediaReset             instance=0
81      0.01049918       FsMcMCI         MediaDetectionSD       instance=0
82      0.01077361       FsMcMCI         MediaSD_V2             instance=0
83      0.02160613       FsMcMCI         MediaReady             instance=0  OCR=0xC0FF8000
84      3.02708311       FsMcMCI         SendCommandError       instance=0  cmd=6  arg=0x0000FFF1
85      3.02709121       FsMcMCI         InitSuccess            instance=0
86      3.02709338       FsFAT           ReadMBR                drive=M0    sector=0
87      3.02709518       FsMcMCI         SectorRead             instance=0  sector=0  count=1
88      3.0271179        FsMcMCI         ReadXferSetupError     instance=0  buf=0x10000200  cnt=1  size=512
89      3.02712008       FsMcMCI         TransferRetry          instance=0  retry=1
90      3.02712859       FsMcMCI         ReadXferSetupError     instance=0  buf=0x10000200  cnt=1  size=512
91      3.02713073       FsMcMCI         TransferRetry          instance=0  retry=2
92      3.02713937       FsMcMCI         ReadXferSetupError     instance=0  buf=0x10000200  cnt=1  size=512
93      3.02714137       FsMcMCI         TransferRetry          instance=0  retry=3
94      3.02715002       FsMcMCI         ReadXferSetupError     instance=0  buf=0x10000200  cnt=1  size=512
95      3.02715233       FsMcMCI         SectorReadError        instance=0  sector=0  count=1
96      3.02715399       FsFAT           SectorReadFailed       drive=M0    sector=0  count=1

ending with SectorReadFailed. When re-formatting the file system, with fformat(), the return value is also fsStatus fsNoFileSystem. The first write in fformat() fails with the message SectorWriteFailed.

Earlier versions of the file system may report errors InvalidFAT, as well.

CAUSE

The setup of the file system may be incorrect. The file system buffer must be stored in an area of RAM that supports DMA. If buffer is stored in RAM region without DMA support, then during fmount(), the first read fails. In earlier versions of file system, this failure could occur during a validation check, which causes the error InvalidFAT.

RESOLUTION

Move the file system buffer to a RAM area that supports DMA. For the STM32F7xx devices, this area starts at 0x20000000. This can be done from the configuration file, "FS_Config_xx(x)_#.h", under the section Locate Drive Cache and Drive Buffer => Base address. Refer to a File System Demo example, to view a setup.

MORE INFORMATION

SEE ALSO

Last Reviewed: Monday, December 21, 2020


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.