#19099·esp-idf

ESP32-P4: 使用 mbedTLS 内存在 PSRAM 中的 TLS 会在 mspi_psram_isr_handler_wrapper 中中止 (在未对齐的 PSRAM 缓冲区上运行 AES-DMA) (IDFGH-18295)

作者: igkrEnergus创建于 2026年9月17日更新于 2026年9月17日
标签Type: BugStatus: Opened
  • 回答清单。
  • 我读了文件ESP-IDF编程指南,但问题没有在这里讨论。
  • 我已把以色列国防军分支(主机或释放机)更新到最新版本,并核实那里存在这个问题。
  • 我搜索过问题追踪器 类似的问题,没有找到类似的问题。

以色列国防军版本。

v6.1 (tag v6. 1, 承诺fff9895c82d, espressif/idf:v6.1 Docker图像).

Espressif SoC修订版.

ESP32-P4芯片修订版 v1.3 (ROM esp32p4-eco2-20240710),32 MB AP HEX PSRAM 在200 MHz,16 MB闪光

使用QQ操作系统.

窗口

你是如何构建你的项目的?

其他(请在更多信息中说明)

QQ 如果您正在使用 Windows, 请指定命令行类型 。

CMD 磁盘

QQ 开发 Kit.

自定义多氯联苯

使用电力供应。

外部 3.3V

什么是预期的行为?

启用了CONFIG MBEDTLS EXTERNAL MEM ALLOC=y'和硬件AES/SHA(默认),由esp https-server'提供TLS连接,数据正常流动。 AES-DMA和SHA-DMA驱动程序处理PSRAM中任何地方的缓冲,包括非16字节对齐的相抵. 这应当取决于`CONFIG SPIRAM ECC ENABLE'是否打开或关闭,以及是否启用了闪存加密。

什么是实际行为?

一个谈判`TLS AES 256 GCM SHA384'的TLS连接在握手时中止设备。 通常是靴子后的第一个连接,绝不晚于第三个.

中止( ) 在 0 上 PC 0x4000d863 调用

0x4000d863'解码为mspi psram isr handler wrapper' (`组件/esp psram/ system layer/esp psram mspi.c:79'),MSPI PSRAM出错中断. 处理器自己的“ MSPI PSRAM 错误” 消息和事件比特在中止前不会出现在控制台上 。

相同的固件和负载( 200 TLS 1. 3 个连接, 每个连接得到448 KB 响应):

MbedTLS内存 ^ “ CONFIG SPIRAM ECC ENABLE” ^ AES/SHA DMA驱动程序 → Cepher套件 → 结果 → |-|-|-|-. PSRAM QQ y v 6.1 已运出 QQ TLS AES 256 GCM SHA384 在第一个连接上中止 QQ QQ PSRAM # # # # # # #v 6.1 已运出 # # # TLS AES 256 GCM SHA384 # # # #在第一个连接上中止 # # # # #

QQ PSRAM y v 6.1 已运出 QQ TLS CHACHA20 POLY1305 SHA256 只 QQ 200/200 OK QQ

在内部RAM("CONFIG MBEDTLS INTRENAL MEM ALLOC=y")中带有mbedTLS内存,同一服务器运行时没有中止.

补丁行修改了efuse hal flash-centration uplied ()'中的mbedtls/port/aes/dma/esp aes dma core.c'和mbedtls/port/sha/core/sha.c'中的efuse hal flash-centration unitation-unitation () ' 四个字,因此,在`CONFIG SPIRAM ECC-ENABL'确定时,现有的16字节调整也适用。

esp crypto shared gdma.c'以max data burst size = 16'配置加密 TX 通道。 从不相通的 PSRAM 地址开始的16字节突起似乎触发了 PSRAM 控制器出错 。 在v6.1中,驱动程序仅在启用闪存加密时重新调整PSRAM缓冲. . . . . . . .

内容来源: espressif/esp-idf