cancel
Showing results for 
Search instead for 
Did you mean: 

Why has CubeMX changed FatFS Version from 0.14 (2019) to 0.12 (2023?). - Which version should I use and why?

Garnett.Robert
Senior III

Hi,

In 2019 I built a project using an SD Card and cube MX built the platform with FatFS R0.14 which came out in 2019.

I revisited this project with a view to updating drivers and third party software. To find out what version of FatFs cube was using now I built a dummy project for the same and other processors and found CubeMX was using FatFs R0.12.

the questions I have are:

  • Why the reversion from R0.14 to R0.12?
  • Are there any issues with using higher versions, currently the latest is R0.15?
  • Has anyone played around with various versions and if so what were the conclusions drawn?

Version R0.12 does not provide support for 64-bit LBA and GUID partition tables (FF_LBA64). Version R0.14 does.

I am using FatFs R0.14 with an sqLite amalgamation and have occasional errors hence the reason for revisiting the FatFs version.

3 REPLIES 3
JFieb
Associate II

Hi Robert,

Did you get any answers on this?

It seems ST maintains a fork of the FatFs code (https://github.com/STMicroelectronics/stm32_mw_fatfs/tree/master) which has been updated to R0.15. However, all the auto-generated code I can get from CubeMx is using R0.12c.

It's not a direct copy/paste from the R0.15 version github. The CubeMx generates some additional layering for multiple volumes on different hardware and the source code structure is different. And the R0.12c to R0.15 API changes in FatFs also require some porting.

 

Cheers,

 +Joel.

application_ninja
Associate

Anyone... looking for answers here too on this topic ...

The 0.12c version (2017) ST ships is 7+ years old and has a number of serious bugs. The DISKIO layer interface changed a little, but 0.15 or 0.14 have many less bugs, and don't fail with large volumes. elm-chan has always had documentation on their change logs,

I don't recall ST updating the Middleware, I know I've complained about it for years, and always used newer versions in my own projects, but I'm also not beholden to code generators, or just using demo/example code.

Don't limit yourself by what ST chooses to do.

Port over code you want, and do basic validation and testing to confirm things do indeed work properly.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..