ESP8266 NodeMCU - E:M 内存问题代码的含义

我正在尝试在NodeMCU上适配一个时钟程序。

该程序每秒钟向串行控制台报告堆使用情况。当成功运行15到40分钟时,堆在12360到12472之间变化。然后它会因为以下错误而崩溃:

E:M 2568
PANIC:在调用Lua API时出现未受保护的错误(内存不足)

在失败点上,它正在执行一个tmr.alarm函数,就像整个运行时间一样:

tmr.alarm(1, 1000, 1, function() dofile("doloops.lua") end )

doloops.lua增加时间变量并更新显示。它不执行任何网络活动。每个循环的结尾都会调用collectgarbage()(每秒钟1次)

搜索结果中还没找到具体的信息,关于E:M 2568,这个数字代表什么意思?我能用它找到内存问题发生的地点吗?还有哪些NodeMCU函数会异步运行并使用内存?

除了node.heap(),还有其它需要我追踪的内存池吗?

点赞