所有错误描述

[English]

[CPU-206] 写 LP SRAM 时指令执行乱序导致死锁

影响版本: v0.0 v0.1

描述

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 时钟无法校准

影响版本: v0.0 v0.1

描述

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 不可用

影响版本: v0.0 v0.1

描述

ESP32-H2 芯片 ADC1 的通道 4 (ADC1_CH4) 无法正常工作。

变通方法

请使用 ADC1_CH4 之外的其他通道。

解决方案

已在芯片版本 v1.2 中修复。

[ADC-1477] SAR ADC 低四位精度缺失

影响版本: v0.0 v0.1

描述

SAR ADC 数据位的低四位缺失,造成对应位的精度缺失。

变通方法

无。

解决方案

已在芯片版本 v1.2 中修复。

[I2C-308] 在分多次读操作中,主机无法正确读取从机数据

影响版本: v0.0 v0.1

描述

如果启用了 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 自动暂停功能启用时,可能导致读出数据异常

影响版本: v0.0 v0.1

描述

启用 flash 自动暂停功能后,SPI0 总线的读取操作和 SPI1 总线的擦除、写入操作可以并发执行。软件通过 SPI1 擦除或写入 flash、且 cache 通过 SPI0 不定时读取 flash 时,如果先执行擦除或写入操作,预期的请求顺序是 擦除或写入 > 暂停或等待空闲 > 读取

实际先执行擦除或写入操作时,出现的请求顺序是 擦除或写入 > 读取,可能导致读出数据异常,程序运行出现问题。

变通方法

禁用自动暂停功能。

解决方案

已在芯片版本 v1.2 中修复。

[LEDC-253] 分辨率设置成最大时,LEDC 无法达到 100% 占空比

影响版本: v0.0 v0.1

描述

定时器选择使用最大占空分辨率时,LEDC 无法达到 100% 占空比。强制将占空比设置成 2MAX_DUTY_RES 将会影响内部占空校准。

变通方法

无变通方法。

解决方法

已在芯片版本 v1.2 中修复。

[RMT-176] RMT 启用持续发送模式时,空闲信号电平可能出错

影响版本: v0.0 v0.1

描述

在 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 模式

影响版本: v0.0 v0.1

描述

上电时,电压从 0 V 逐渐上升至 3.3 V 的过程中,如果时间超过 12 ms,芯片可能会误入 USB Download Boot 模式。

变通方法

避免上电时长超过 12 ms。

解决方案

已在芯片版本 v1.2 中修复。

[AES-11401] 涉及 CPA 攻击的安全漏洞

影响版本: v0.0 v0.1

描述

芯片的 flash 加密功能基于 XTS-AES。攻击者通过结合运用功耗分析 (CPA)、故障注入 (FI) 和缓冲区溢出等攻击手段,可以绕过 flash 加密及安全启动。

变通方法

加密密钥如果与其他设备或制造批次相同,一定不能长期使用。建议同时开启 flash 加密和安全启动功能,最大限度减少攻击者重写固件的风险。

解决方案

已在芯片版本 v1.2 中修复。芯片版本 v1.2 中引入了抗攻击伪轮函数,可有效抵抗 CPA 攻击。

[ECC-11400] 涉及时间分析攻击的安全漏洞

影响版本: v0.0 v0.1

描述

ECC 执行点乘运算时,不同乘数的计算时间存在差异,因此 ECC 外设未能以恒定时间运行,导致其易受时间分析攻击。

变通方法

在 ECC 驱动中随机化功耗特征,使其成为恒定时间。注意,使用这一方法时,必须启用安全启动模式。

ESP-IDF 已在以下版本中自动绕过该问题:

表 5 ESP-IDF 发布版本

ESP-IDF Release 分支

已发布版本

release/v5.4 及以上

v5.4

release/v5.3

v5.3.2

release/v5.2

v5.2.5

release/v5.1

v5.1.5

解决方案

已在芯片版本 v1.2 中修复。芯片版本 v1.2 中引入恒时恒功耗模式。ECC 加速器在每次进行点乘计算时均会消耗相同的时间,消耗相同的功耗。

[802.15.4-9538] RF 认证中有关发射功率的问题

影响版本: v0.0 v0.1

描述

在某些 RF 认证的特定射频信道下,旧版本芯片的发射功率存在略低于设计预期值的情况。但仍可满足认证要求。

变通方法

无变通方法。

解决方案

芯片版本 v1.2 对发射频谱边带进行了优化。 上述问题已在芯片版本 v1.2 中修复。

[PCNT-249] 无法触发步进中断

影响版本: v0.0 v0.1 v1.2

描述

如果启用了步进计数器 (step counter) 且计数达到配置的低限值或高限值时,步进中断未按预期触发。

变通方法

配置系统在计数器每增加或减少特定值 (x) 时通知应用程序。当满足此条件时,程序进入中断,读取当前计数器值,并调用用户的回调函数,将计数器值传递给调用方。

解决方案

暂无 修复计划。