7.3. 应用示例¶
可以使用下列接口操作 efuse 区域
\ref gx_efuse_init 初始化 efuse 模块
\ref gx_efuse_exit 反初始化 efuse 模块
\ref gx_efuse_write 写 efuse 数据
\ref gx_efuse_reset efuse 复位,复位后写入数据有效
\ref gx_efuse_read 读 efuse 数据
\ref gx_efuse_get_publicid 读 efuse 数据中的 public id
\ref gx_efuse_lock 锁定对应 efuse 分区
\ref gx_efuse_get_lock 获取 efuse 分区锁定情况
\ref gx_efuse_get_version 获取 efuse 版本信息
7.3.1. 参考代码:¶
7.3.1.1. 读写 efuse¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_write(start_addr, (unsigned char *)wdata, size); //将wdata buffer中的"size"字节数据写入 efuse
gx_efuse_reset(); //reset efuse 模块,使写入数据有效
gx_efuse_read(, start_addr, (unsigned char *)rdata, size); //读取 "size" 字节 efuse 数据到 rdata buffer
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
7.3.1.2. Lock efuse 区域¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_lock(section); //lock 对应 section 分区。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
7.3.1.3. 获取 efuse 信息¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_get_publicid(&public_id); //获取 efuse 区域中的 public id 信息。
gx_efuse_get_lock(section); //获取对应 section 的 lock 情况。
gx_efuse_get_version(&version); //获取 efuse 版本信息。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
7.3.1.4. 读取芯片ID和名称¶
char chipid[CHIP_ID_LEN];
char chipname[CHIP_NAME_LEN];
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_get_chipid(&chipid); //获取 efuse 区域中的芯片ID信息。
gx_efuse_get_chipname(&chipname); //获取 efuse 区域中的芯片名称信息。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
7.3.1.5. 锁定用户区¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_lock_user(); //锁定用户区。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
7.3.1.6. 获取用户区锁定状态¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_get_user_locked(); //获取用户区锁定状态。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
7.3.1.7. 写入用户区¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_write_user_byte(addr, data); //写入用户区。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化
addr=6 时,data 最高位是 lock 位,不能写 1,否则写入失败。
7.3.1.8. 读取用户区¶
gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。
gx_efuse_read_user_byte(addr, data); //读取用户区。
gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化