首页 > 解决方案 > ESP8266 NodeMCU - 内存问题的 E:M 代码的含义

问题描述

我正在调整 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() 之外,我还应该跟踪另一个内存池吗?

标签: luaheap-memoryesp8266nodemcu

解决方案


推荐阅读