四博智联产品售后

标题: NodeMCU启动的时候编译文件 内存不足解决方法 (not enough memory) [打印本页]

作者: yangping    时间: 2015-6-17 09:39
标题: NodeMCU启动的时候编译文件 内存不足解决方法 (not enough memory)
NodeMCU启动的时候编译内存不足,会出现如下提示:
  1. lua: not enough memory
复制代码

或者:
  1. PANIC: unprotected error in call to Lua API (not enough memory)
复制代码



Doitcar的程序是在init.lua里面对指定的文件进行编译。
由于lua解释器在启动的时候占用较多内存,此时如果进行文件编译有可能出现内存不足。
解决方法是:在启动的时候,利用定时器延迟一定的时间后再启动编译。
init.lua文件改为下面代码即可:
  1. print("\n")
  2. print("ESP8266 Started")
  3. tmr.alarm(1, 1000, 0, function()
  4.         local exefile="sta"
  5.         local luaFile = {exefile..".lua","DoitCarControlSTA3.lua"}
  6.         for i, f in ipairs(luaFile) do
  7.                 if file.open(f) then
  8.                   file.close()
  9.                   print("Compile File:"..f)
  10.                   node.compile(f)
  11.                   print("Remove File:"..f)
  12.                   file.remove(f)
  13.                 end
  14.          end

  15.         if file.open(exefile..".lc") then
  16.                 dofile(exefile..".lc")
  17.         else
  18.                 print(exefile..".lc not exist")
  19.         end
  20.         exefile=nil;luaFile = nil
  21.         collectgarbage()
  22. end)
复制代码








欢迎光临 四博智联产品售后 (http://bbs.doit.am/) Powered by Discuz! X3.2