3 UARTs and QSPI Flash Causing System Hang

UPDATE: switching to GCC instead of the ARMC6 supplied with Mbed Studio seems to fix the issue.


I’m developing a project with Mbed OS 5.15 where there are three UARTs (a stdio console UART and two UARTs that will be ultimately connected to Bluetooth-to-serial modules) and a QSPI flash device with LittleFS on it.

When I try to set up the third UART, the system hangs when it tries to open a file on the LittleFS filesystem. When I single-step through the code, it looks like the fopen() function is hanging on a mutex.

I found this issue for an older version of Mbed OS: https://os.mbed.com/forum/mbed/topic/3980/. Apparently the problem is that the C standard library is running out of mutexes. A fix was proposed at https://os.mbed.com/users/mbed_official/code/mbed-rtos/rev/53e6cccd8782/ by adding more default mutexes for the C libarary.

Is there a way to do this on Mbed OS 5.15?


-Dan Fay