所有错误描述
[CPU-206] 写 LP SRAM 时指令执行乱序导致死锁
描述
HP CPU 从 LP SRAM 取指运行时,若依次执行的两条指令 A 和 B 满足以下模式:
指令 A 是写内存指令,例如 sw/sh/sb
指令 B 是只访问指令总线的指令,例如 nop/jal/jalr/lui/auipc
指令 B 的地址未四字节对齐
则仅当 B 指令执行完后,A 指令写的数据才会真实写入内存。这种情况可能带来风险:若在 A 指令写内存之后,B 指令存在无限循环的情况,则 A 指令的写操作永远无法完成。
变通方法
遇到该问题或汇编代码出现上述模式时,
在指令 A 与无限循环间添加 fence 指令,在 ESP-IDF 中可使用 rv_utils_memory_barrier 接口。
使用 wfi 指令替代无限循环,在 ESP-IDF 中可使用 rv_utils_wait_for_intr 接口。
在编译 LP SRAM 中的程序时,禁用 RV32C(压缩)指令扩展,以避免产生非四字节对齐的指令。
解决方案
已在芯片版本 v1.2 中修复。
[CLK-6996] RC_FAST_CLK 时钟无法校准
描述
ESP32-H2 芯片 RC_FAST_CLK 时钟源的频率过于接近参考时钟 (32 MHz XTAL_CLK),导致无法校准,用户无法获取 RC_FAST_CLK 的准确时钟频率,进而对使用 RC_FAST_CLK 且对其准确时钟频率要求较高的外设产生影响。
使用 RC_FAST_CLK 的外设,详见 《ESP32-H2 技术参考手册》 > 章节 复位和时钟 [PDF]。
变通方法
使用 RC_FAST_CLK 之外的其他时钟源。
解决方案
已在芯片版本 v1.2 中修复。
[ADC-7227] SAR ADC1 通道 4 不可用
描述
ESP32-H2 芯片 ADC1 的通道 4 (ADC1_CH4) 无法正常工作。
变通方法
请使用 ADC1_CH4 之外的其他通道。
解决方案
已在芯片版本 v1.2 中修复。
[ADC-1477] SAR ADC 低四位精度缺失
描述
SAR ADC 数据位的低四位缺失,造成对应位的精度缺失。
变通方法
无。
解决方案
已在芯片版本 v1.2 中修复。
[I2C-308] 在分多次读操作中,主机无法正确读取从机数据
描述
如果启用了 I2C 从机 non-FIFO 模式且主机分多次对从机进行读操作时,主机无法正确从从机中读取正确的数据。
变通方法
配置从机的 I2C_FIFO_ADDR_CFG_EN 和 I2C_SLV_TX_AUTO_START_EN 为 1,并配置 I2C_FIFO_PRT_EN 为 0。主机则使用 RSTART -> WRITE (slave addr, fifo addr) -> RSTART -> WRITE (slave addr) -> READ (NACK) -> STOP 命令序列。使用此方法时请确保从机 TX FIFO 一直处于非空状态。
解决方案
已在芯片版本 v1.2 中修复。
[SPI-304] flash 自动暂停功能启用时,可能导致读出数据异常
描述
启用 flash 自动暂停功能后,SPI0 总线的读取操作和 SPI1 总线的擦除、写入操作可以并发执行。软件通过 SPI1 擦除或写入 flash、且 cache 通过 SPI0 不定时读取 flash 时,如果先执行擦除或写入操作,预期的请求顺序是 擦除或写入 > 暂停或等待空闲 > 读取。
实际先执行擦除或写入操作时,出现的请求顺序是 擦除或写入 > 读取,可能导致读出数据异常,程序运行出现问题。
变通方法
禁用自动暂停功能。
解决方案
已在芯片版本 v1.2 中修复。
[LEDC-253] 分辨率设置成最大时,LEDC 无法达到 100% 占空比
描述
定时器选择使用最大占空分辨率时,LEDC 无法达到 100% 占空比。强制将占空比设置成 2MAX_DUTY_RES 将会影响内部占空校准。
变通方法
无变通方法。
解决方法
已在芯片版本 v1.2 中修复。
[RMT-176] RMT 启用持续发送模式时,空闲信号电平可能出错
描述
在 ESP32-H2 的 RMT 模块中,如果启用了持续发送模式,那么预期发送通道在发送 RMT_TX_LOOP_NUM_CHn 次数据后会停止数据传输,之后空闲状态的信号电平应由结束标志中的 level 段决定。
但在实际数据传输中,停止数据传输后,通道空闲状态的信号电平并不由结束标志中的 level 段决定,而是由回卷数据携带的电平决定,最终的电平不能确定。
变通方法
建议用户置位 RMT_IDLE_OUT_EN_CHn,从而仅使用寄存器来控制空闲状态的信号电平。
从首个支持持续发送模式的 ESP-IDF 版本 (v5.1) 开始已自动绕过该问题。在这些版本的 ESP-IDF 中,空闲状态的信号电平只能由寄存器控制。
解决方案
已在芯片版本 v1.2 中修复。
[BOOT-9537] 芯片上电启动时间过长,可能会误入 USB Download Boot 模式
描述
上电时,电压从 0 V 逐渐上升至 3.3 V 的过程中,如果时间超过 12 ms,芯片可能会误入 USB Download Boot 模式。
变通方法
避免上电时长超过 12 ms。
解决方案
已在芯片版本 v1.2 中修复。
[AES-11401] 涉及 CPA 攻击的安全漏洞
描述
芯片的 flash 加密功能基于 XTS-AES。攻击者通过结合运用功耗分析 (CPA)、故障注入 (FI) 和缓冲区溢出等攻击手段,可以绕过 flash 加密及安全启动。
变通方法
加密密钥如果与其他设备或制造批次相同,一定不能长期使用。建议同时开启 flash 加密和安全启动功能,最大限度减少攻击者重写固件的风险。
解决方案
已在芯片版本 v1.2 中修复。芯片版本 v1.2 中引入了抗攻击伪轮函数,可有效抵抗 CPA 攻击。
[ECC-11400] 涉及时间分析攻击的安全漏洞
描述
ECC 执行点乘运算时,不同乘数的计算时间存在差异,因此 ECC 外设未能以恒定时间运行,导致其易受时间分析攻击。
变通方法
在 ECC 驱动中随机化功耗特征,使其成为恒定时间。注意,使用这一方法时,必须启用安全启动模式。
ESP-IDF 已在以下版本中自动绕过该问题:
ESP-IDF Release 分支 |
已发布版本 |
---|---|
release/v5.4 及以上 |
|
release/v5.3 |
|
release/v5.2 |
|
release/v5.1 |
解决方案
已在芯片版本 v1.2 中修复。芯片版本 v1.2 中引入恒时恒功耗模式。ECC 加速器在每次进行点乘计算时均会消耗相同的时间,消耗相同的功耗。
[802.15.4-9538] RF 认证中有关发射功率的问题
描述
在某些 RF 认证的特定射频信道下,旧版本芯片的发射功率存在略低于设计预期值的情况。但仍可满足认证要求。
变通方法
无变通方法。
解决方案
芯片版本 v1.2 对发射频谱边带进行了优化。 上述问题已在芯片版本 v1.2 中修复。
[PCNT-249] 无法触发步进中断
描述
如果启用了步进计数器 (step counter) 且计数达到配置的低限值或高限值时,步进中断未按预期触发。
变通方法
配置系统在计数器每增加或减少特定值 (x) 时通知应用程序。当满足此条件时,程序进入中断,读取当前计数器值,并调用用户的回调函数,将计数器值传递给调用方。
解决方案
暂无 修复计划。