Я работаю над адаптацией программы часов в NodeMCU.
Программа сообщает об использовании кучи последовательной консоли каждую секунду. Куча колеблется между 12360 и 12472, так как она успешно работает в течение 15-40 минут. Затем он падает с:
E:M 2568
PANIC: unprotected error in call to Lua API (not enough memory)
В момент сбоя он выполняется из функции tmr.alarm, как и в течение всего времени выполнения:
tmr.alarm(1, 1000, 1, function() dofile("doloops.lua") end )
doloops.lua увеличивает временные переменные и обновляет отображение. Он не выполняет никаких сетевых действий. collectgarbage () вызывается в конце каждого цикла (1 в секунду)
Поиск не дает подробностей на E: M 2568. Что означает число после него? Могу ли я использовать его, чтобы найти точку, где возникает проблема с памятью? Какие другие функции NodeMCU могут работать асинхронно и использовать память?
Есть ли еще пул памяти, который я должен отслеживать в дополнение к node.heap ()?