3.13.1. 模块介绍
3.13.1.1. 功能简介
UserID 是指厂商在量产过程中烧录的自定义 ID 数据,比如:
SN 序列号
MAC 地址
其他通过指定名字索引的数据
这些信息可以在工厂生产过程中使用 AiBurnID 工具进行烧录,并且在存储在 “userid” 分区。
UserID 分区支持在烧录完成之后进行 锁定
功能,一旦锁定,启动过程中不再进入 UserID
烧录模式。
备注
ID 名字可以自定义,但是不能重复
ID 的数据长度没有做特殊限制,但是分区大小为 256KB
UserID 软件模块分为两部分:
U-Boot 中的 UserID 烧录
Linux 用户空间读写库
其中 U-Boot 的 UserID 程序主要用于实现烧录,以及 “userid” 分区读写;Linux 用户空间的 UserID 库用于用户程序读取相关的 ID 信息。
默认情况下,UserID 烧录功能在 U-Boot 中不使能,使能 UserID 功能会导致开发阶段启动速度变慢。
3.13.1.2. 启动流程
使能 UserID 功能之后,启动流程在不同场景下会有不同,容易让开发人员感到迷惑。 此处简要介绍在使能了 UserID 功能之后,在不同条件下的启动流程。
场景1: 开发过程,独立供电
条件 |
状态 |
---|---|
UserID 分区是否锁定 |
否 |
USB0 是否连接到 PC |
否 |
AiBurnID 工具是否在等待状态 |
/ |
场景2: 开发过程,USB 连接电脑供电
条件 |
状态 |
---|---|
UserID 分区是否锁定 |
否 |
USB0 是否连接到 PC |
是 |
AiBurnID 工具是否在等待状态 |
否 |
场景3: 量产过程,烧录 UserID
条件 |
状态 |
---|---|
UserID 分区是否锁定 |
否 |
USB0 是否连接到 PC |
是 |
AiBurnID 工具是否在等待状态 |
是 |
场景4: 量产完成,UserID 锁定
条件 |
状态 |
---|---|
UserID 分区是否锁定 |
是 |
USB0 是否连接到 PC |
/ |
AiBurnID 工具是否在等待状态 |
/ |