hello-world.bin
hello-world.bin
idf.py set-target esp32c3
idf.py build
hello-world.bin
放到 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 目录下secure boot V2 key
espsecure.py generate_signing_key secure_boot_signing_key.pem --version 2
secure_boot_signing_key.pem
文件对 明文的 hello-world.bin
进行签名,生成被签名的 SIGNED_hello_world.bin
espsecure.py sign_data --version 2 --keyfile secure_boot_signing_key.pem --output SIGNED_hello_world.bin hello_world.bin
SIGNED_hello_world.bin
上传到 HTTP Server
中开启 Flash 加密 和 安全启动模式
→ Security features
增大 partition-table
偏移地址
→ Partition Table
设置待 OTA 的 SIGNED_hello_world.bin
文件路径
→ Example Configuration
与 PC 连接相同的路由器
→ Example Connection Configuration
开启 HTTP Server OTA 的支持
→ Component config → ESP HTTPS OTA
关闭 NVS
加密
由于 开启 Flash 加密
后,默认也会使能 NVS 加密
,但我们这里没有进行 NVS 加密的相关设置,因此需要关闭 NVS 加密
的配置
→ Component config → NVS
bootloader
,并下载被签名的 bootloader.bin
idf.py bootloader
idf.py -p COM* boorloader-flash
idf.py build
idf.py -p COM* flash monitor
固件首次运行启动后,会先检查 secure boot 签名验证,然后执行 Flash 加密
Flash 加密完成后,会进行软件重启,然后开始运行用户固件
运行 factory 分区的固件,开启 OTA
OTA 完成,会再次软件重启,运行 OTA 分区的固件