create.lua 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --[[
  2. @module create
  3. @summary task调度演示
  4. @version 1.0
  5. @date 2025.08.12
  6. @author 朱天华
  7. @usage
  8. 本文件为task_scheduling应用功能模块,用来演示task调度,核心业务逻辑为:
  9. 1、创建两个task,task1和task2;
  10. 2、在task1的任务处理函数中,每隔500毫秒,task1的计数器加1,并且通过日志打印task1计数器的值;
  11. 3、在task2的任务处理函数中,每隔300毫秒,task2的计数器加1,并且通过日志打印task2计数器的值;
  12. 本文件没有对外接口,直接在main.lua中require "create"就可以加载运行;
  13. ]]
  14. local count = 0
  15. -- led task的任务处理函数
  16. local function led_task_func()
  17. while true do
  18. log.info("led_task_func")
  19. -- 等待500ms
  20. -- sys.wait(500)
  21. sys.waitUntil("INVALID_MESSAGE")
  22. -- log.info("during led task, mem.lua", rtos.meminfo())
  23. -- log.info("before led task, mem.sys", rtos.meminfo("sys"))
  24. end
  25. end
  26. log.info("before led task, mem.lua", rtos.meminfo())
  27. log.info("before led task, mem.sys", rtos.meminfo("sys"))
  28. -- 创建并启动第一个led task
  29. -- 运行这个task的任务处理函数led_task_func
  30. while true do
  31. sys.taskInit(led_task_func)
  32. count = count+1
  33. log.info("create task count", count)
  34. end
  35. log.info("after led task, mem.lua", rtos.meminfo())
  36. log.info("before led task, mem.sys", rtos.meminfo("sys"))