# 应用示例 可以使用下列接口操作 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 版本信息 ## 参考代码: ### 读写 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 接口时反初始化 ``` ### Lock efuse 区域 ``` gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。 gx_efuse_lock(section); //lock 对应 section 分区。 gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化 ``` ### 获取 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 接口时反初始化 ``` ### 读取芯片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 接口时反初始化 ``` ### 锁定用户区 ``` gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。 gx_efuse_lock_user(); //锁定用户区。 gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化 ``` ### 获取用户区锁定状态 ``` gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。 gx_efuse_get_user_locked(); //获取用户区锁定状态。 gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化 ``` ### 写入用户区 ``` gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。 gx_efuse_write_user_byte(addr, data); //写入用户区。 gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化 ``` :::important addr=6 时,data 最高位是 lock 位,不能写 1,否则写入失败。 ::: ### 读取用户区 ``` gx_efuse_init(); //初始化 efuse 模块,操作任何 efuse 接口之前都需要初始化。 gx_efuse_read_user_byte(addr, data); //读取用户区。 gx_efuse_exit(); //反初始化 efuse 模块,当不需要操作 efuse 接口时反初始化 ```