Zephyr 使用 mcuboot 进行固件升级指南
Zephyr 使用 mcuboot 进行固件升级的步骤如下:
- 在 Zephyr 配置文件中启用 mcuboot
在 Zephyr 配置文件中启用 mcuboot,可以通过设置 CONFIG_BOOTLOADER_MCUBOOT=y 来实现。如果需要进行签名验证,则需要设置 CONFIG_BOOTLOADER_MCUBOOT_SIGNED=y。
- 生成固件升级文件
使用 mcuboot 自带的 bootutil 工具生成固件升级文件,可以通过以下命令生成:
$ bootutil.exe -v -p sample_image.bin -s sample_image.signature.bin -d test_device.pem -c myrootca.pem -B 0x8000 upgrade.bin
其中,sample_image.bin 是要升级的固件文件,sample_image.signature.bin 是固件文件的签名文件,test_device.pem 是设备的私钥文件,myrootca.pem 是根证书文件,0x8000 是升级文件的起始地址,upgrade.bin 是生成的升级文件。
- 将固件升级文件传输到设备上
可以使用串口、以太网、蓝牙等通信方式将升级文件传输到设备上。
- 开始固件升级
在设备上运行 mcuboot 进行固件升级。可以通过以下命令启动 mcuboot:
$ mcuboot -p /dev/ttyACM0 -v -n
其中,/dev/ttyACM0 是串口设备名称,-v 选项表示启用详细信息输出,-n 选项表示不执行固件升级,只打印固件信息。
- 签名验证(可选)
如果在步骤 1 中启用了签名验证,mcuboot 会对固件文件进行签名验证。如果签名验证失败,则固件升级失败。如果签名验证成功,则继续固件升级。
- 固件升级
如果签名验证成功,mcuboot 会执行固件升级。固件升级完成后,mcuboot 会自动重启设备。
原文地址: https://www.cveoy.top/t/topic/nVTE 著作权归作者所有。请勿转载和采集!