Преглед изворни кода

add: demo/otp,对应otp库

Wendal Chen пре 2 година
родитељ
комит
54dd28ca2b
2 измењених фајлова са 49 додато и 0 уклоњено
  1. 48 0
      demo/otp/main.lua
  2. 1 0
      luat/modules/luat_lib_otp.c

+ 48 - 0
demo/otp/main.lua

@@ -0,0 +1,48 @@
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "otpdemo"
+VERSION = "1.0.0"
+
+log.info("main", PROJECT, VERSION)
+
+-- sys库是标配
+_G.sys = require("sys")
+
+--[[
+提示: OTP是比较高级的API, 一般用于存储密钥等核心数据, 不建议用于普通数据的存放
+
+OTP有个非常重要的特性, 就是一旦加锁就永久无法解锁, 这点非常非常重要
+
+OTP通常由多个zone, 0,1,2, 每个zone通常由256字节, 但这个非常取决于具体模块.
+
+OTP在没有加锁之前是可以抹除的, 每次都是整个zone一起抹除.
+]]
+
+sys.taskInit(function()
+    sys.wait(3000)
+
+    -- 擦除区域
+    -- otp.erase(2)
+
+    -- 写otp区域
+    local ret = otp.write(2, "1234", 0)
+    log.info("otp", "write", ret)
+
+    -- 读取otp区域
+    for zone = 0, 2, 1 do
+        local otpdata = otp.read(zone, 0, 64)
+        if otpdata then
+            log.info("otp", zone, otpdata:toHex())
+            log.info("otp", zone, otpdata)
+        end
+    end
+
+    -- 锁定otp区域, 别轻易尝试, 加锁之后就无法解锁了
+    -- otp.lock(2)
+end)
+
+
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 1 - 0
luat/modules/luat_lib_otp.c

@@ -5,6 +5,7 @@
 @version 1.0
 @date    2021.12.08
 @tag LUAT_USE_OTP
+@demo    otp
 */
 #include "luat_base.h"
 #include "luat_otp.h"