乐鑫技术交流
直播中

李麒铭

7年用户 1402经验值
私信 关注
[问答]

ESP32如何解除flash加密?

关闭 Flash 加密
若因某些原因意外启用了 Flash 加密,则接下来烧录明文数据时将使 ESP32 软砖(设备不断重启,并报错 flash read err, 1000)。

可通过写入 FLASH_CRYPT_CNT eFuse 再次关闭 Flash 加密(仅适用于开发模式下):

首先,前往 Project Configuration Menu,在“安全性能”目录下关闭 启用 Flash 加密启动。

退出 menuconfig 并保存最新配置。

再次运行 idf.py menuconfig 并复核是否确认已关闭该选项!如果该选项仍处于已启用状态,则引导加载程序会在启动后立即重新启用加密。

在未启用 Flash 加密的状态下,运行 idf.py flash 构建并烧录新的引导加载程序与 app。

运行 espefuse.py (components/esptool_py/esptool 中)以关闭 FLASH_CRYPT_CNT:

espefuse.py burn_efuse FLASH_CRYPT_CNT
重置 ESP32,Flash 加密应处于关闭状态,引导加载程序将正常启动。
实际的情况如下
Connecting........_____....._
Detecting chip type... ESP32
espefuse.py v3.1-dev
The efuses to burn:
  from BLOCK0
     - FLASH_CRYPT_CNT

Burning efuses:

    - 'FLASH_CRYPT_CNT' (Flash encryption mode counter) 0b0000001 -> 0b0000011

Check all blocks for burn...
idx, BLOCK_NAME,          Conclusion
[00] BLOCK0               is not empty
        (written ): 0x00000344f0000000000001320000a0000085246f289ce8a800110080
        (to write): 0x00000000000000000000000000000000000000000000000000300000
        (coding scheme = NONE)
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
实际无法解除flash加密,求教下
                        

回帖(1)

更多回帖

发帖
×
20
完善资料,
赚取积分