cancel
Showing results for 
Search instead for 
Did you mean: 

fx_file_open does not work from a different thread

fabio239955
Associate II

I have an application using STM32L475, threadx, filex.

Functions in the filex API work well when called from a specific thread: the same thread that initialized and mounted the file system. If I call the same functions from a different thread, the system crashes.

I have seen the calls to FX_PROTECT and it looks like the filex API should be working across multiple threads, however, something is not working here.

However the documentation does not tell much.

Just asking if someone has encounterd the same problems I have.

4 REPLIES 4
Haithem Rahmani
ST Employee

Ciao @fabio239955​,

Could you please share the code snippet how the 2 threads are using the FileX API?

regards

Haithem.

DmitryR
Associate III

Hi Fabio,

 

first of all you should make sure that the FileX is not configured as single-threaded, i.e. that FX_SINGLE_THREAD is not defined.

 

Regards,

Dmitry

scottg
Associate

I'm having the same exact issue.

I'm calling fx_file_create from a thread that is different from the one that mounted the file system. The system crashes on FX_PROTECT, trying to lock the mutex.

No issues when the same function is called within the thread that initialized the fs.

FX_SINGLE_THREAD is disabled by CubeMX.

Help needed.

scottg
Associate

I've just found the solution. Increase the stack size of the thread where you are calling FILEX functions (in my case at least to 2048 bytes).