ToB企服应用市场:ToB评测及商务社交产业平台
标题:
基于 ESP32-C3 开启 Flash 加密和安全启动并举行 OTA 测试
[打印本页]
作者:
耶耶耶耶耶
时间:
2024-7-31 01:58
标题:
基于 ESP32-C3 开启 Flash 加密和安全启动并举行 OTA 测试
软件:
esp-idf v5.1.2
硬件:
ESP32-C3 board
1.
起首,预备一个明文固件 hello-world.bin
基于 esp-idf-v5.1.2\examples\get-started\hello_world 例程,使用如下指令,直接编译,获取明文固件 hello-world.bin
idf.py set-target esp32c3
idf.py build
复制代码
2.
接下来,基于 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 例程举行测试
将明文固件 hello-world.bin 放到 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 目录下
3.
使用如下指令获取 secure boot V2 key
espsecure.py generate_signing_key secure_boot_signing_key.pem --version 2
复制代码
4.
使用如下指令,通过生成的 secure_boot_signing_key.pem 文件对 明文的 hello-world.bin 举行签名,生成被签名的 SIGNED_hello_world.bin
待 OTA 的固件必须被雷同 Secure Boot Key 举行签名
espsecure.py sign_data --version 2 --keyfile secure_boot_signing_key.pem --output SIGNED_hello_world.bin hello_world.bin
复制代码
5.
为了方便 OTA 测试,我们在当地开启一个 HTTP Server 服务器,将签名的 SIGNED_hello_world.bin 上传到 HTTP Server 中
6.
基于 esp-idf-v5.1.2\examples\system\ota\simple_ota_example 例程,开启如下软件设置
开启 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
7.
使用如下指令编译 bootloader ,并下载被签名的 bootloader.bin
idf.py bootloader
idf.py -p COM* boorloader-flash
复制代码
8.
使用如下指令,对工程举行编译,并下载编译后的固件
idf.py build
idf.py -p COM* flash monitor
复制代码
9.
查抄固件运行日志
注意:确保稳定的供电环境
固件首次运行启动后,会先查抄 secure boot 签名验证,然后实行 Flash 加密
Flash 加密完成后,会举行软件重启,然后开始运行用户固件
运行 factory 分区的固件,开启 OTA
OTA 过程会对签名的 OTA 的固件举行加密,并写入 OTA 分区。
OTA 完成,会再次软件重启,以运行 OTA 分区的固件,此时 OTA 分区的固件已经被 Flash 加密
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4