所有错误描述

[English]

[CPU] 写 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(压缩)指令扩展,以避免产生非四字节对齐的指令。

解决方案

预计将在 后续芯片版本 中修复。

[时钟] 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 之外的其他时钟源。

解决方案

预计将在 下个芯片版本 中修复。

[SAR ADC] SAR ADC1 通道 4 不可用

影响版本: v0.0 v0.1

描述

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

变通方法

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

解决方案

预计将在 下个芯片版本 中修复。