main.lua 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "wdtdemo"
  3. VERSION = "1.0.0"
  4. log.info("main", PROJECT, VERSION)
  5. -- sys库是标配
  6. _G.sys = require("sys")
  7. sys.taskInit(function()
  8. -- 这个demo要求有wdt库
  9. -- wdt库的使用,基本上每个demo的头部都有演示
  10. -- 模组/芯片的内部硬狗, 能解决绝大多数情况下的死机问题
  11. -- 但如果有要求非常高的场景, 依然建议外挂硬件,然后通过gpio/i2c定时喂狗
  12. if wdt == nil then
  13. while 1 do
  14. sys.wait(1000)
  15. log.info("wdt", "this demo need wdt lib")
  16. end
  17. end
  18. -- 注意, 大部分芯片/模块是 2 倍超时时间后才会重启
  19. -- 以下是常规配置, 9秒超时, 3秒喂一次狗
  20. -- 若软件崩溃,死循环,硬件死机,那么 最多 18 秒后,自动复位
  21. -- 注意: 软件bug导致业务失败, 并不能通过wdt解决
  22. wdt.init(9000)
  23. sys.timerLoopStart(wdt.feed, 3000)
  24. end)
  25. -- 用户代码已结束---------------------------------------------
  26. -- 结尾总是这一句
  27. sys.run()
  28. -- sys.run()之后后面不要加任何语句!!!!!