配置管理是远程升级的“前置条件”这个项目的设备安装在工业现场,无法物理接触。所有的配置变更和固件升级,都必须通过无线完成。配置管理和远程升级是紧密关联的:配置管理决定设备“怎么运行”——采集周期、告警阈值、通信参数。远程升级决定设备“运行什么”——固件版本。如果配置管理做不好,远程升级会遇到问题:升级后配置丢失。新固件启动后,配置参数需要重新设置。升级后配置不兼容。新固件的配置格式变了,旧配置无法直接使用。升级过程中配置被误改。升级期间如果收到配置更新,可能导致升级失败。这篇文章要讲的,就是怎么设计一个与远程升级兼容的配置管理系统,以及怎么把前面讲的 Bootloader、A/B 分区、升级协议整合到一个完整的远程升级流程里。一、配置管理设计配置项定义typedef struct __attribute__((packed)) { // 版本信息 uint16_t config_version; // 配置格式版本 uint16_t firmware_version; // 固件版本(用于兼容性检查)
阅读完成 · 觉得有帮助?