main.lua 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. PROJECT = "rtos_demo"
  2. VERSION = "1.0.0"
  3. -- RTOS 功能测试脚本
  4. local sys = require("sys")
  5. -- 1. 系统信息查询测试
  6. log.info("固件信息", "版本:", rtos.version())
  7. log.info("编译信息", "日期:", rtos.buildDate(), "BSP:", rtos.bsp())
  8. log.info("完整描述", rtos.firmware())
  9. -- 2. 内存信息测试
  10. local total_lua, used_lua, max_used_lua = rtos.meminfo("lua")
  11. local total_sys, used_sys, max_used_sys = rtos.meminfo("sys")
  12. log.info("内存信息",
  13. "Lua - 总:", total_lua, "已用:", used_lua, "峰值:", max_used_lua,
  14. "系统 - 总:", total_sys, "已用:", used_sys, "峰值:", max_used_sys)
  15. -- 3. 定时器测试
  16. -- 测试用例1: 基本单次定时器测试
  17. local timer_id = 1001
  18. log.info( "单次定时器测试开始 (ID:"..timer_id..")")
  19. -- 启动3秒后触发的单次定时器
  20. rtos.timer_start(timer_id, 3000, 0)
  21. -- 定时器回调处理
  22. local msg = rtos.receive(100) -- 等待消息
  23. if msg == timer_id then
  24. log.info("测试1", "单次定时器触发成功")
  25. end
  26. -- 启动定时器 (2秒触发一次,共触发5次)
  27. rtos.timer_start(timer_id, 2000, 5)
  28. log.info("定时器", "已启动ID:", timer_id, "间隔2秒")
  29. rtos.timer_stop(timer_id)
  30. -- 5. 内存自动回收配置
  31. rtos.autoCollectMem(200, 75, 85) -- 配置较宽松的自动回收
  32. -- 6. 空函数测试(性能测试用)
  33. local function test_nop()
  34. local start = os.clock()
  35. for i = 1, 1000 do
  36. rtos.nop()
  37. end
  38. log.info("性能测试", "1000次nop耗时:", os.clock()-start, "秒")
  39. end
  40. -- 10秒后执行空函数测试
  41. sys.timerStart(test_nop, 10000)
  42. -- 7. 重启测试(注释掉防止意外重启)
  43. -- sys.timerStart(function()
  44. -- log.info("系统", "准备重启...")
  45. -- rtos.reboot()
  46. -- end, 30000)
  47. log.info("RTOS测试", "所有测试已启动")
  48. sys.run()