关于 FreeRTOS 和 newlib库共存问题
# 前言 newlib 的 strtod、sprintf、sscanf、snprintf、vsnprintf 这些函数都是非线程安全的,这些函数的行为和 keil \ IAR 以及我们的认知并不一样,这些函数在使用 %f or %lf 来输出浮点时,会在申请一块 3.5K 左右的内存空间,该内存空间只申请一次,且不释放。作为全局内存使用。如果有多个线程同时调用 sprintf 来字符串化浮点数据,会有几率或较大几率导致系统死机(尤其是多个线程高密度的调用 sprintf...
more...