嵌入式应用软件在线升级功能软件需求规格书 (Software Requirements Specification, SRS)
一、引言
本软件需求规格书描述了嵌入式设备应用软件的在线升级功能。此功能旨在确保设备在运行期间能够接收并更新应用软件,同时保持出厂代码作为备用,以确保设备的稳定性和安全性。
二、目标
设计一个在线升级机制,使嵌入式设备能够在安全可靠的前提下实现软件的在线升级,并在必要时回滚到出厂代码。
三、功能需求
3.1 分区管理
设备的Flash存储空间应划分为两个分区:
- 分区A:存储出厂时预装的软件(出厂代码)。
- 分区B:存储在线升级下载的软件(升级代码)。
3.2 启动逻辑
设备在启动时应检查当前是否存在升级代码:
如果分区B中有有效的升级代码,则从分区B启动。
如果分区B中没有有效的升级代码,则从分区A启动。
3.3 升级过程
设备应能够接收和存储新版本的软件到分区B中。
在写入升级代码前,应确保数据的完整性(通过校验和或CRC)。
3.4 校验机制
每次设备上电或重启时,应对当前执行的软件进行校验:
如果校验失败,设备应回滚到分区A的出厂代码并记录错误。
3.5 错误处理
如果升级过程中或启动时校验失败,设备应能够回滚到出厂代码,并记录故障原因。
3.6 日志与状态
系统应记录每次升级的状态、校验结果及当前运行的软件版本。
四、非功能需求
- 安全性:升级过程中必须确保数据的完整性,防止恶意代码注入。
- 可靠性:在升级失败或校验失败时,设备必须能够安全地回滚到出厂代码。
- 性能:升级操作应尽量避免影响设备的正常运行。