一种基于文件系统的软件自动升级方法及装置与流程

文档序号:18331043发布日期:2019-08-03 12:13阅读:601来源:国知局
一种基于文件系统的软件自动升级方法及装置与流程

本发明属于机载嵌入式软件技术领域,涉及一种基于文件系统的软件自动升级方法及装置。



背景技术:

综合模块化航空电子(ima)架构被广泛应用于新一代民用与军用飞行器的设计中,随着ima的使用使航空电子系统软件更加密集、逻辑关系更加复杂、设计及验证更加困难,软件已成为影响ima系统整体性能的关键要素。

为简化机载软件设计、降低开发成本、提高可信性,并增强系统的可移植性、可扩展性及可复用性,结合arinc653软件结构模型,将软件自顶向下划分为3个功能层,即应用层、操作系统层及模块支持层,其中应用层是系统的最高层,实现各种应用功能,与具体飞机相关;低两层为平台基础软件,实现平台系统服务、管理及控制功能。

任何符合arinc653标准的分区操作系统环境下,生成的可执行文件数量比较多,尤其是分区多的情况下,使用传统的串口加载工具,逐个加载文件出错率高,升级过程复杂繁琐,可维护性差,周期长等一系列问题,尤其不利于软件的升级和维护。



技术实现要素:

发明目的:解决升级过程复杂繁琐的问题。

第一方面,提供一种基于文件系统的软件自动升级方法,包括:

针对分区操作系统环境,通过arinc615a等协议,将待升级文件和xml文件加载到目标机端文件系统中;其中,目标机端文件系统中文件按照文件类型和文件内容的不同分别进行存储;

对xml文件的解析,获取待升级文件的文件名称和固化地址,根据文件名称检查文件是否为有效的文件;

对待升级文件的内容计算固化前校验和;

判断固化地址和待升级文件的长度是否有效;

当有效时,对待升级文件进行固化;

对固化的文件的内容计算固化后校验和;

当固化前校验和与固化后校验和一致时,完成升级。

进一步的,所述判断固化地址和待升级文件的长度是否有效,包括:

检查待升级文件的固化起始地址是否为模块固化空间地址,并结合待升级文件的长度,判断待升级文件的固化结束地址是否在模块固化空间内;

其中,当固化起始地址为模块固化空间地址,且固化结束地址在模块固化空间内时,确认所述判断固化地址和待升级文件的长度有效。

进一步的,所述对待升级文件进行固化,包括:

判读待升级文件的固化起始地址是否为flash扇区首地址;

若否,则保存首地址所在扇区起始地址到固化起始地址的内容,与待升级文件拼接一起,形成本次flash写操作的负载;

若是,将待升级文件作为flash写操作的负载;

计算需要写入负载的扇区,逐个执行flash擦除操作;

将负载通过flash写接口固化到模块上。

进一步的,升级软件的文件名称和固化地址表示形式与加载端协商采用统一的格式。

第二方面,提供一种基于文件系统的软件自动升级装置,包括:

加载单元,用于针对分区操作系统环境,通过arinc615a等协议,将待升级文件和xml文件加载到目标机端文件系统中;其中,目标机端文件系统中文件按照文件类型和文件内容的不同分别进行存储;

解析单元,用于对xml文件的解析,获取待升级文件的文件名称和固化地址,根据文件名称检查文件是否为有效的文件;

第一计算单元,用于对待升级文件的内容计算固化前校验和;

判断单元,用于判断固化地址和待升级文件的长度是否有效;

固化单元,用于当有效时,对待升级文件进行固化;

第二计算单元,用于对固化的文件的内容计算固化后校验和;

其中,当固化前校验和与固化后校验和一致时,完成升级。

进一步的,所述判断单元用于:

检查待升级文件的固化起始地址是否为模块固化空间地址,并结合待升级文件的长度,判断待升级文件的固化结束地址是否在模块固化空间内;

其中,当固化起始地址为模块固化空间地址,且固化结束地址在模块固化空间内时,确认所述判断固化地址和待升级文件的长度有效。

进一步的,所述固化单元包括:

判读待升级文件的固化起始地址是否为flash扇区首地址;

若否,则保存首地址所在扇区起始地址到固化起始地址的内容,与待升级文件拼接一起,形成本次flash写操作的负载;

若是,将待升级文件作为flash写操作的负载;

计算需要写入负载的扇区,逐个执行flash擦除操作;

将负载通过flash写接口固化到模块上。

进一步的,升级软件的文件名称和固化地址表示形式与加载端协商采用统一的格式。

第三方面,提供一种计算机可读的存储介质,所述存储介质上存储有指令,所述指令被处理器执行时实现所述第一方面任一项所述方法的步骤。

有益效果:本发明为在分区操作系统环境下基于文件系统实现软件自动在线升级的功能,解决了分区操作系统环境下软件自动升级维护过程中操作复杂、维护性差等问题,该方法简单,易于实现,提高了分区操作系统软件升级过程的效率,保障软件升级的安全性和可靠性。

附图说明

图1为本发明提供的升级文件存储结构示意图;

图2为本发明提供的软件自动升级过程示意图。

具体实施方式

本方法以国产分区操作系统和arinc615a协议为例进行技术方案的说明,国产分区操作系统是国内自主研发的基于arinc653标准的强分区实时操作系统,实现了时间和空间的隔离。采用国产分区操作系统对应用软件实现空间和时间的隔离处理,提高了航空电子系统的可靠性和可维护性;arinc615a作为一种高可靠的文件加卸载协议,具有可靠性高、正确性高等特点,适用于机载航电网络的文件传输。arinc615a协议只是将需要加载的文件存储在文件系统中,并不关心和处理后续文件的自动升级过程。本方法则是基于这样的情况下提出的提高分区操作系统下软件自动升级过程的安全性和可靠性的方法。升级文件存储结构如图1所示。

本发明的技术方案:

1.文件在文件系统中的存储方式

在国产分区操作系统下,集成项目生成的可执行文件有两类,一类是xml文件,记录各个可执行文件的地址映射映射关系;一类是可执行bin文件,为本方发中讨论的需要升级的文件。各类文件的详细说明见表1:

表1

本发明中的文件通过arinc615a协议将文件存储在模块的文件系统中,以ramdisk(a盘)为例,存储结构见图1,存储路径详细见表2。

表2

2.xml文件的解析

本方法使用的xml文件为系统自动生成的configrecord.xml,也可手动修改,解析分为以下两种情况:

依据“nameref”和“payloadaddress”两个字段在文件中进行查找,可以获取核心操作系统、分区操作系统和各分区的可执行文件名称和固化地址。

配置文件cfgrd.bin的固化信息在xml文件中,名称固定不变,在xml中对应的名称字段为name=“.configrecord",固化地址为字段后对应的payloadaddress地址。

3.文件信息地址获取

文件信息获取可分为两种。一种是xml获取,见上一步描述;一种是软件设置固定信息。

其中:配置文件payloadmap_rom.bin的名称固定不变,固化地址为msl项目的rom方式下的部署描述文件地址。

4.三重保护机制

目标机端软件升级过程中需要对模块的flash操作,如果固化地址有误,可能会破坏模块上其他的信息,如boot,pubit,其他用户程序等,或者固化的数据不正确,无法正常运行,所以在升级的过程中进行了一下三重保护,确保数据固化的安全有效。

第一重保护机制:依据系统定义,对接收到的文件名称进行比较,确保即将固化的文件为适用于本模块的有效文件;

第二重保护机制:依据固化地址和文件长度,判断固化地址空间是不是有效的用户空间,确保不会与模块上其他有效数据冲突,保证本次固化过程的安全性;

第三重保护机制:文件固化前后计算数据的校验和,确保固化的文件数据有效。

本发明提供一种基于文件系统的软件自动升级方法,该方法包括:

通过arinc615a协议将需要升级的文件和xml文件从加载端加载到目标机端的文件系统中,在目标机端完成软件的自动升级,请参阅图2,其给出了目标机端软件自动升级过程的示意图,自动升级过程的详细操作步骤如下所示;

1、通过文件打开操作打开xml文件,读取xml文件内同。

2、通过解析xml文件中的“nameref”和“payloadaddress”字段,获取需要加载文件的名称和固化地址,其中集成项目有两个配置文件payloadmap_rom和cfgrd,名称固定,固化地址的获取与其他文件不一样,详细如下:

payloadmap_rom的固化地址与msl项目的rom方式下的部署描述文件地址一致;

cfgrd的固化地址在xml中为“.configrecord"对应的payloadaddress地址;

3、根据系统定义,判断文件是不是适用于本模块的固化文件;

4、如果是,对文件逐个进行固化,操作步骤如下所示。否则,退出本次自动升级流程;

通过文件打开接口,打开文件;

通过文件读接口,获取文件内容和长度,计算文件的检验和,关闭文件;

检查文件固化起始地址是否为模块固化空间地址,并结合加载文件的长度,判断固化结束地址是否在模块固化空间内;

如果是,由于flash按照扇区进行操作,需要检查固化基址,即判读固化地址是否为flash扇区首地址,如果不是,保存首地址所在扇区起始地址到固化首地址的内容,与文件拼接一起,形成本次flash写操作的负载,否则,直接跳转至下一步;

计算需要操作的扇区,逐个执行flash擦除操作;

将文件通过flash写接口固化到模块上,

通过flash读接口,依据固化地址和文件长度读出固化内容;

计算校验和,与固化之前计算的文件校验和比较,如果不一致,退出本次自动升级流程,否则上报文件固化成功,执行下一个文件的固化操作。

5、所有文件固化成功,退出。

该方法针对分区操作系统环境下通过arinc615a等协议将需升级的文件和xml文件从加载端加载到目标机端的文件系统中,在目标机端实现自动在线升级的功能,解决了分区操作系统环境下软件升级维护过程中操作复杂、维护性差等问题,该方法简单,易于实现,提高了分区操作系统软件升级过程的效率和可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1