一次写入,永久锁定!OTP存储操作需谨慎

2026-01-28 274728阅读

今天,我们一起来聊聊LuatOS中的OTP功能。

OTP(One-Time Programmable Memory)是一次性可编程存储。其核心特点是 “一次写入,永久锁定” ,数据在物理层面无法再被修改或擦除。

典型应用场景:

设备身份标识:

读取OTP中内置的唯一ID,作为设备 “身份证”;

加密密钥存储:

将AES/RSA密钥写入OTP,防止被逆向窃取;

生产信息固化:

工厂量产时写入固件版本、生产日期等信息,永久保存。

一、OTP核心库主要特性

目前,OTP核心库已全面支持基于LuatOS开发的产品。不同系列OTP特性有差异,开发前请仔细确认对应型号最新资料

1.1 关键特性

OTP核心库的主要功能:获取芯片内置的OTP数据(设备ID、密钥、生产信息等);向OTP区域写入永久性数据。

使用OTP前,务必牢记——模组型号决定擦除能力,锁定操作不可逆,且所有读写地址必须按4字节对齐。

擦除限制:

Air780Exx/Air8000x系列支持写入后擦除重写;

Air8101系列不支持。

锁定不可逆:

所有合宙模组OTP锁定后永久变为只读,无法再次修改。加锁前必须确认数据正确,且地址未被使用过。

数据对齐:

写入/读取的长度需与OTP块大小对齐,按4字节对齐。

1.2 固件支持

目前LuatOS采用多功能多固件方案,针对不同功能场景将固件细化,并分为32位/64位版本。用户可根据需求灵活选择适配版本,无需另行编译,即可实现精准的空间优化和功能定制。

需要注意的是:

Air780EPM仅104号固件支持OTP核心库;其余型号的所有固件都支持OTP核心库。

二、OTP核心库应用示例

提供的OTP应用参考示例及实操教程,帮助开发者快速上手,实际应用中可结合具体业务需求灵活调整。

下文以Air780EHV核心板为例:

一次写入,永久锁定!OTP存储操作需谨慎

2.1 核心代码解析

本示例功能为使用Air780EHV核心板实现OTP核心库API的用法,进行写入、读取、擦除OTP数据等操作。

运行核心逻辑:

读取指定OTP区域的数据;

进入飞行模式,擦除指定的OTP区域的数据;

擦除完成后向该区域写入数据;

谨慎操作区域加锁(区域加锁后会永久变成只读无法写入);

退出飞行模式。

otp_test.lua核心示例代码如下,完整demo详见源码仓库最新文件。

2.2 示例运行结果

根据实操教程搭建好硬件环境,使用Luatools工具给Air780EHV核心板烧录内核固件和demo脚本代码。烧录成功后,自动开机运行。

运行日志如下图示:

打印相关信息,OTP读取结果、进入飞行模式、OTP区域擦除、写入/读取数据、退出飞行模式。

一次写入,永久锁定!OTP存储操作需谨慎

今天的内容就分享到这里了

审核编辑 黄宇

文章版权声明:除非注明,否则均为天创资讯网原创文章,转载或复制请以超链接形式并注明出处。