嵌入式应用软件在线升级功能软件概要设计 (Software Architecture Design, SAD)
一、系统架构概述
系统分为三个主要模块:分区管理、升级管理、启动管理。
可以插入框图
1.1 分区管理模块
- 负责Flash分区的划分和管理。
- 提供分区读写接口,并确保数据的完整性。
1.2 升级管理模块
- 处理在线升级的逻辑,包括接收新代码、校验数据完整性并将其写入分区B。
- 提供回滚机制,支持在升级失败时恢复到出厂代码。
1.3 启动管理模块
- 负责设备启动时的代码选择逻辑。
- 校验分区B中代码的完整性,决定是否使用升级代码。
二、数据流
可以插入框图
2.1 启动过程:
- 系统启动 -> 启动管理模块选择分区 -> 校验代码 -> 选择执行分区A或分区B的代码。
2.2 升级过程:
- 接收新代码 -> 升级管理模块校验并写入分区B -> 更新状态日志。
三、接口设计
3.1 分区管理接口
read_partition(partition_id, buffer, size): 读取分区数据。 write_partition(partition_id, buffer, size): 写入分区数据。 verify_partition(partition_id): 校验分区数据的完整性。
3.2 升级管理接口
download_update(data, size): 接收更新数据。 apply_update(): 应用更新,将数据写入分区B。 rollback_to_factory(): 回滚到出厂代码。
3.3 启动管理接口
select_partition(): 选择启动分区。 verify_and_start(partition_id): 校验并启动指定分区的代码。