ARM mbed OS derives its thread management capabilities from ARM’s RTX realtime operating system.
When a thread crashes due to a stack overflow or other HardFaults, it can be unclear what code is causing the issue. Also unclear is how the threads are initially created, as ARM mbed OS defines its stack sizes via a handful of preprocessor
#defines and linker
provides which aren’t well documented at all.
Here are some notes on the things I’ve had to figure out by reading the source.