pvPortMalloc возвращает NULL, хотя свободной кучи ещё 6 КБ
Прошивка собирается с heap_2.c. Сетевая задача выделяет буферы под сообщения разного размера (от 40 до 900 байт) и освобождает их после отправки. Через сутки работы:
xPortGetFreeHeapSize() = 6128
pvPortMalloc(512) = NULL
Утечек нет: число выделений и освобождений совпадает. В чём причина?
- heap_2 не склеивает соседние свободные блоки
- Размер кучи уменьшается при каждом вызове free
- heap_2 выделяет память только блоками по 1 КБ
- Нужно вызвать сборку мусора планировщика
