user
efuse提供用户预留空间的数据读写能力,支持按字节和按位两种操作粒度。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| uapi_efuse_user_read_buffer | 从用户预留的eFuse空间中读取多个字节到缓冲区 |
| uapi_efuse_user_write_buffer | 将缓冲区数据写入用户预留的eFuse空间 |
| uapi_efuse_user_write_bit | 向用户预留eFuse空间中的对应bit写1 |
| uapi_efuse_user_read_bit | 从用户预留的eFuse空间中读取一位 |
Functions
uapi_efuse_user_read_buffer
头文件清单
功能说明
- 从用户预留的eFuse空间中读取多个字节到缓冲区
- 读取地址基于用户预留区域的起始偏移,以字节为单位
- eFuse为一次性可编程存储器,读取操作不影响已有数据
前置条件
- 调用时序约束:eFuse模块已通过uapi_efuse_init()成功初始化
- 依赖关系:用户预留eFuse空间已配置(CUSTOMER_RSVD_EFUSE_START_BIT和CUSTOMER_RSVD_EFUSE_BIT_LEN已定义)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| offset | uint32_t | 待读取的eFuse空间在用户预留区域中的起始偏移地址,以字节为单位 | (length + offset) * 8 ≤ CUSTOMER_RSVD_EFUSE_BIT_LEN |
| buffer | uint8_t * | 保存读取数据的缓冲区 | 非NULL,长度不小于length |
| length | uint16_t | 数据的长度,以字节为单位 | (length + offset) * 8 ≤ CUSTOMER_RSVD_EFUSE_BIT_LEN |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| buffer | uint8_t * | 读取到的eFuse数据存储缓冲区 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 读取操作成功完成 |
| ERRCODE_EFUSE_NOT_INIT(0x80001391) | eFuse未初始化 | eFuse模块未初始化 |
| ERRCODE_EFUSE_INVALID_PARAM(0x80001390) | 参数无效 | 偏移地址加长度超出用户预留区域范围 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| DRIVER_SUPPORT_EFUSE | 编译参与宏 | 控制efuse.c参与编译 | n |
uapi_efuse_user_write_buffer
头文件清单
功能说明
- 从提供的缓冲区向用户预留的eFuse空间写入多个字节
- 写入地址基于用户预留区域的起始偏移,以字节为单位
- eFuse为一次性可编程存储器,已写入的bit无法从1恢复为0,仅可将0写为1
前置条件
- 调用时序约束:eFuse模块已通过uapi_efuse_init()成功初始化
- 依赖关系:用户预留eFuse空间已配置(CUSTOMER_RSVD_EFUSE_START_BIT和CUSTOMER_RSVD_EFUSE_BIT_LEN已定义)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| offset | uint32_t | 待写入的eFuse空间在用户预留区域中的起始偏移地址,以字节为单位 | (length + offset) * 8 ≤ CUSTOMER_RSVD_EFUSE_BIT_LEN |
| buffer | const uint8_t * | 包含要写入的数据的缓冲区 | 非NULL,长度不小于length |
| length | uint16_t | 数据的长度,以字节为单位 | (length + offset) * 8 ≤ CUSTOMER_RSVD_EFUSE_BIT_LEN |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 写入操作成功完成 |
| ERRCODE_EFUSE_NOT_INIT(0x80001391) | eFuse未初始化 | eFuse模块未初始化 |
| ERRCODE_EFUSE_INVALID_PARAM(0x80001390) | 参数无效 | 偏移地址加长度超出用户预留区域范围,或已写入数据与待写入数据冲突 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| DRIVER_SUPPORT_EFUSE | 编译参与宏 | 控制efuse.c参与编译 | n |
| CONFIG_EFUSE_REWRITE_PROTECTION | 特性宏 | 支持eFuse写入保护特性 | n |
uapi_efuse_user_write_bit
头文件清单
功能说明
- 向用户预留eFuse空间中的对应bit写1
- 操作基于用户预留空间的字节偏移地址和bit位置
- eFuse为一次性可编程存储器,已写入为1的bit不可重复写入
前置条件
- 调用时序约束:eFuse模块已通过uapi_efuse_init()成功初始化
- 依赖关系:用户预留eFuse空间已配置(CUSTOMER_RSVD_EFUSE_START_BIT和CUSTOMER_RSVD_EFUSE_BIT_LEN已定义)
- 依赖关系:EFUSE_BIT_OPERATION宏已定义(接口声明受条件编译控制)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| byte_offset | uint32_t | 待写入位在用户预留空间中的字节偏移地址 | byte_offset * 8 + bit_pos ≤ CUSTOMER_RSVD_EFUSE_BIT_LEN |
| bit_pos | uint8_t | 待写入位在用户预留空间中对应字节中的bit位置 | 0~7 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 写入操作成功完成 |
| ERRCODE_EFUSE_NOT_INIT(0x80001391) | eFuse未初始化 | eFuse模块未初始化 |
| ERRCODE_EFUSE_INVALID_PARAM(0x80001390) | 参数无效 | 偏移地址超出用户预留区域范围,或目标bit已为1 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| DRIVER_SUPPORT_EFUSE | 编译参与宏 | 控制efuse.c参与编译 | n |
| CONFIG_EFUSE_REWRITE_PROTECTION | 特性宏 | 支持eFuse写入保护特性 | n |
uapi_efuse_user_read_bit
头文件清单
功能说明
- 从用户预留的eFuse空间中读取一位
- 操作基于用户预留空间的字节偏移地址和bit位置
- 读取操作不影响已有数据
前置条件
- 调用时序约束:eFuse模块已通过uapi_efuse_init()成功初始化
- 依赖关系:用户预留eFuse空间已配置(CUSTOMER_RSVD_EFUSE_START_BIT和CUSTOMER_RSVD_EFUSE_BIT_LEN已定义)
- 依赖关系:EFUSE_BIT_OPERATION宏已定义(接口声明受条件编译控制)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| byte_offset | uint32_t | 待读取位在用户预留空间中的字节偏移地址 | byte_offset * 8 + bit_pos ≤ CUSTOMER_RSVD_EFUSE_BIT_LEN |
| bit_pos | uint8_t | 待读取位在用户预留空间中对应字节中的bit位置 | 0~7 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| value | uint8_t * | 读取到的bit值,0或1 |
返回值
- 返回类型:errcode_t
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x00) | 执行成功 | 读取操作成功完成 |
| ERRCODE_EFUSE_NOT_INIT(0x80001391) | eFuse未初始化 | eFuse模块未初始化 |
| ERRCODE_EFUSE_INVALID_PARAM(0x80001390) | 参数无效 | 偏移地址超出用户预留区域范围 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| DRIVER_SUPPORT_EFUSE | 编译参与宏 | 控制efuse.c参与编译 | n |
Type definitions
errcode_t
使用说明
本模块所有接口的返回值类型,表示操作执行结果。[SDK公共基础类型]