| 1234567891011121314151617181920212223242526272829303132333435 |
- #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;
- }
|