嵌入式应用软件在线升级功能软件概要设计 (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): 校验并启动指定分区的代码。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐