|
|
@@ -0,0 +1,35 @@
|
|
|
+#include "luat_base.h"
|
|
|
+#include "luat_otp.h"
|
|
|
+
|
|
|
+#include "wm_include.h"
|
|
|
+#include "wm_internal_flash.h"
|
|
|
+
|
|
|
+
|
|
|
+int luat_otp_read(int zone, char* buff, size_t offset, size_t len) {
|
|
|
+ if (zone < 0 || zone > 2)
|
|
|
+ return -1;
|
|
|
+ int addr = (zone + 1) * 0x1000 + offset;
|
|
|
+ if (tls_fls_otp_read(addr, (u8*)buff, len) == TLS_FLS_STATUS_OK) {
|
|
|
+ return len;
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
+}
|
|
|
+
|
|
|
+int luat_otp_write(int zone, char* buff, size_t offset, size_t len) {
|
|
|
+ if (zone < 0 || zone > 2)
|
|
|
+ return -1;
|
|
|
+ int addr = (zone + 1) * 0x1000 + offset;
|
|
|
+ if (tls_fls_otp_write(addr, (u8*)buff, len) == TLS_FLS_STATUS_OK) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
+}
|
|
|
+
|
|
|
+int luat_otp_erase(int zone, size_t offset, size_t len) {
|
|
|
+ return 0; // 无需主动擦除
|
|
|
+}
|
|
|
+
|
|
|
+int luat_otp_lock(int zone) {
|
|
|
+ tls_fls_otp_lock();
|
|
|
+ return 0;
|
|
|
+}
|