esp32 开启加密固件后(开发模式) 刷入固件

1.正常刷入固件

2.使用命令将固件加密
idf.py encrypted-flash

esp-idf导入 arduino

cd components
git clone https://github.com/espressif/arduino-esp32.git arduino
cd ..
CONFIG_FREERTOS_HZ=1000  # 需要修改为这个值
idf.py reconfigure       # 刷新配置 一定要做
idf.py menuconfig
# Component config → Arduino Configuration → Enable Arduino

#include <Arduino.h>
void ArduinoTask(void *pv) {
    initArduino(); // 关键:初始化 Arduino 核心
    Serial.begin(115200);
    Start();
    while (true) {
        Loop();
        Serial.println("Arduino task running...");
        vTaskDelay(pdMS_TO_TICKS(1000));
    }
}

extern "C" void app_main(void) {
    xTaskCreatePinnedToCore(
        ArduinoTask, "ArduinoTask",
        8192, nullptr, 5, nullptr,
        1 /* core */
    );
}

esp-idf添加库

idf.py add-dependency "h2zero/esp-nimble-cpp^2.3.4"

esp-idf生成固件加密 密钥

# 生成一个加密密钥  记住要保存好,一旦遗失无法找回
espsecure.py generate_flash_encryption_key hmac_key.bin

# 将密钥烧录至eFuse中
espefuse.py --port comx burn_key hmac hmac_key.bin

esp-idf 生成安全启动证书

# 生成安全启动私钥 ECDSA 签名密钥(推荐)
espsecure.py generate_signing_key --version 2 --scheme ecdsa256 secure_boot_private_key.pem
# 使用私钥生成公钥
espsecure.py extract_public_key --keyfile secure_boot_private_key.pem --version 2 secure_boot_public_key.pem
# 使用公钥生成安全启动固件
espsecure.py digest_sbv2_public_key --keyfile secure_boot_public_key.pem --output secure_boot_public_key.bin
# 固件使用安全签名
Enable hardware Secure Boot in bootloader
    Secure Boot private signing key  # 设置私有签名证书绝对路径

# 对固件手动签名
espsecure.py sign_data --keyfile secure_boot_private_key.pem --version 2 --output bootloader_resigned.bin bootloader-unsigned.bin 

# 验证签名 使用公钥验证
espsecure.py verify_signature --version 2 --keyfile secure_boot_public_key.pem  bootloader.bin
espsecure.py verify_signature --version 2 --keyfile secure_boot_private_key.pem  bootloader.bin
espsecure.py verify_signature --version 2 --keyfile secure_boot_public_key.pem  bootloader_resigned.bin

# 注意烧录顺序
# 烧录安全启动密钥
espefuse.py --port comX  secure_boot secure_boot_public_key.bin
# 启用安全启动 eFuse
espefuse.py --port comX burn_efuse SECURE_BOOT_EN

最后修改:2026 年 01 月 15 日
如果觉得我的文章对你有用,请随意赞赏