1 前言
设备固件升级子系统提供必要的框架以在运行时升级基于Zephyr的应用程序的映像。 它目前由两个不同的模块组成:
boot /:引导加载程序的接口代码 img_util /:镜像管理代码
DFU子系统处理镜像管理,但不涉及将镜像发送到目标设备所需的传输或管理协议本身。有关这些协议和框架的信息,请参阅管理部分。
我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。
2 Bootloaders
2.1 MCUboot
Zephyr 直接与开源、跨RTOS的 Bootloader MCUboot 兼容。Zephyr 与 MCUboot 对接过,知道它所需的镜像格式,因此当使用 MCUboot 作为 Bootloader 时,Zephyr 的 Device Firmware Upgrade 可用。源码托管在 MCUboot GitHub Project 页面中。
为了在Zephyr中使用 MCUboot,您需要考虑以下几点:
1.您需要在设备树闪存分区中定义 MCUboot 所需的 MCUboot 分区。 2.您的应用程序的 .conf 文件需要启用 CONFIG_BOOTLOADER_MCUBOOT Kconfig 选项才能使 Zephyr 以 MCUboot 兼容方式构建。 3.您需要编译并烧写 MCUboot 到您的设备上。 4.您可能需要采取预防措施以避免大量擦除闪存,并以正确的偏移量(在引导加载程序之后) 烧写 Zephyr 应用程序映像。
有关 Zephyr 如何使用 MCUboot 的更多详细信息,请参见 MCUboot 网站上 MCUboot with Zephyr 的相关文档。