|
|
@@ -0,0 +1,64 @@
|
|
|
+--[[
|
|
|
+@module mcu_test
|
|
|
+@summary 测试mcu模块功能
|
|
|
+@version 1.0
|
|
|
+@date 2025.10.21
|
|
|
+@author 孟伟
|
|
|
+@usage
|
|
|
+本demo演示的功能为:
|
|
|
+ MCU死机时的处理模式设置
|
|
|
+ 唯一ID获取与显示
|
|
|
+ 系统tick计数功能测试
|
|
|
+ 64位tick计数和差值计算
|
|
|
+ 微秒、毫秒、秒级别的时间计数
|
|
|
+ 16进制字符串转换输出
|
|
|
+
|
|
|
+ 本文件没有对外接口,直接在main.lua中require "mcu_test"就可以加载运行;
|
|
|
+]]
|
|
|
+function mcu_test()
|
|
|
+ -- 测试MCU 死机时的处理模式
|
|
|
+ -- 死机后重启,一般用于正式产品_
|
|
|
+ mcu.hardfault(1)
|
|
|
+
|
|
|
+ -- 测试唯一ID
|
|
|
+ local unique_id = mcu.unique_id()
|
|
|
+ if #unique_id > 0 then
|
|
|
+ log.info("mcu", "Unique ID(hex):", unique_id:toHex())
|
|
|
+ else
|
|
|
+ log.warn("mcu", "Unique ID not supported")
|
|
|
+ end
|
|
|
+
|
|
|
+ -- 测试ticks相关函数
|
|
|
+ -- 获取启动后的 tick 数
|
|
|
+ log.info("mcu", "ticks:", mcu.ticks())
|
|
|
+ -- 获取每秒的 tick 数量
|
|
|
+ log.info("mcu", "获取每秒的tick数量:", mcu.hz())
|
|
|
+
|
|
|
+
|
|
|
+ -- 测试64位tick
|
|
|
+ local tick_str, tick_per = mcu.tick64()
|
|
|
+ log.info("mcu", "tick64:", tick_str:toHex(), "ticks per us:", tick_per)
|
|
|
+ -- 测试mcu.dtick64接口获取ticks差值计算
|
|
|
+ local tick1 = mcu.tick64()
|
|
|
+ sys.wait(100)
|
|
|
+ local tick2 = mcu.tick64()
|
|
|
+ local result, diff_tick = mcu.dtick64(tick1, tick2)
|
|
|
+ log.info("mcu", "dtick64 result:", result, "diff:", diff_tick)
|
|
|
+
|
|
|
+
|
|
|
+ -- 测试ticks2函数
|
|
|
+ local us_h, us_l = mcu.ticks2(0)
|
|
|
+ local ms_h, ms_l = mcu.ticks2(1)
|
|
|
+ local sec_h, sec_l = mcu.ticks2(2)
|
|
|
+ log.info("mcu", "us:", us_h, us_l)
|
|
|
+ log.info("mcu", "ms:", ms_h, ms_l)
|
|
|
+ log.info("mcu", "sec:", sec_h, sec_l)
|
|
|
+
|
|
|
+ -- 测试 转换 10 进制数为 16 进制字符串输出
|
|
|
+ local value = mcu.x32(0x2009FFFC) --输出"0x2009fffc"
|
|
|
+ log.info("mcu", "string", value)
|
|
|
+
|
|
|
+
|
|
|
+end
|
|
|
+
|
|
|
+sys.taskInit(mcu_test)
|