我在使用pvPortMalloc的时候发现返回了NULL。
最终增大configTOTAL_HEAP_SIZE解决了问题。
原因之一:
pvPortMalloc()
是用于从 FreeRTOS 的堆中分配内存的函数。如果堆中没有足够的可用内存来满足请求的大小,pvPortMalloc()
将返回 NULL
。这通常是最常见的原因。
改进:
实时检测freertos的剩余堆栈以及各个任务剩余大小,做到心里有数,提前预防此类错误。
我在使用pvPortMalloc的时候发现返回了NULL。
最终增大configTOTAL_HEAP_SIZE解决了问题。
原因之一:
pvPortMalloc()
是用于从 FreeRTOS 的堆中分配内存的函数。如果堆中没有足够的可用内存来满足请求的大小,pvPortMalloc()
将返回 NULL
。这通常是最常见的原因。
改进:
实时检测freertos的剩余堆栈以及各个任务剩余大小,做到心里有数,提前预防此类错误。