CN110083378B - 一种基于文件系统的软件自动升级方法及装置 - Google Patents

一种基于文件系统的软件自动升级方法及装置 Download PDF

Info

Publication number
CN110083378B
CN110083378B CN201910384989.3A CN201910384989A CN110083378B CN 110083378 B CN110083378 B CN 110083378B CN 201910384989 A CN201910384989 A CN 201910384989A CN 110083378 B CN110083378 B CN 110083378B
Authority
CN
China
Prior art keywords
file
address
upgraded
solidification
curing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910384989.3A
Other languages
English (en)
Other versions
CN110083378A (zh
Inventor
吴姣
吴雄洲
郝玉锴
孙志颖
千鸿哲
吴云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201910384989.3A priority Critical patent/CN110083378B/zh
Publication of CN110083378A publication Critical patent/CN110083378A/zh
Application granted granted Critical
Publication of CN110083378B publication Critical patent/CN110083378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供一种基于文件系统的软件自动升级方法及装置。该方法包括:针对分区操作系统环境,通过ARINC615A等协议,将待升级文件和XML文件加载到目标机端文件系统中;其中,目标机端文件系统中文件按照文件类型和文件内容的不同分别进行存储;对XML文件的解析,获取待升级文件的文件名称和固化地址,根据文件名称检查文件是否为有效的文件;对待升级文件的内容计算固化前校验和;判断固化地址和待升级文件的长度是否有效;当有效时,对待升级文件进行固化;对固化的文件的内容计算固化后校验和;当固化前校验和与固化后校验和一致时,完成升级。该发明解决升级过程复杂繁琐的问题。

Description

一种基于文件系统的软件自动升级方法及装置
技术领域
本发明属于机载嵌入式软件技术领域,涉及一种基于文件系统的软件自动升级方法及装置。
背景技术
综合模块化航空电子(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文件从加载端加载到目标机端的文件系统中,在目标机端实现自动在线升级的功能,解决了分区操作系统环境下软件升级维护过程中操作复杂、维护性差等问题,该方法简单,易于实现,提高了分区操作系统软件升级过程的效率和可靠性。

Claims (9)

1.一种基于文件系统的软件自动升级方法,其特征在于,应用于综合模块化航空电子IMA架构,该方法包括:
针对分区操作系统环境,通过ARINC615A协议,将待升级文件和XML文件加载到目标机端文件系统中;其中,目标机端文件系统中文件按照文件类型和文件内容的不同分别进行存储;
通过解析XML文件中的“NameRef”和“PayloadAddress”字段,获取需要加载文件的名称和固化地址,其中集成项目有两个配置文件payloadMap_rom和cfgRd,名称固定,固化地址的获取与其他文件不一样,详细如下:
payloadMap_rom的固化地址与MSL项目的ROM方式下的部署描述文件地址一致;
cfgRd的固化地址在XML中为“.configRecord"对应的PayloadAddress地址;
根据文件名称检查文件是否为有效的文件;
对待升级文件的内容计算固化前校验和;
判断固化地址和待升级文件的长度是否有效;
当有效时,对待升级文件进行固化;
对固化的文件的内容计算固化后校验和;
当固化前校验和与固化后校验和一致时,完成升级。
2.根据权利要求1所述的方法,其特征在于,所述判断固化地址和待升级文件的长度是否有效,包括:
检查待升级文件的固化起始地址是否为模块固化空间地址,并结合待升级文件的长度,判断待升级文件的固化结束地址是否在模块固化空间内;
其中,当固化起始地址为模块固化空间地址,且固化结束地址在模块固化空间内时,确认所述判断固化地址和待升级文件的长度有效。
3.根据权利要求2所述的方法,其特征在于,所述对待升级文件进行固化,包括:
判读待升级文件的固化起始地址是否为Flash扇区首地址;
若否,则保存首地址所在扇区起始地址到固化起始地址的内容,与待升级文件拼接一起,形成本次Flash写操作的负载;
若是,将待升级文件作为Flash写操作的负载;
计算需要写入负载的扇区,逐个执行Flash擦除操作;
将负载通过Flash写接口固化到模块上。
4.根据权利要求1-3任一项所述的方法,其特征在于,升级软件的文件名称和固化地址表示形式与加载端协商采用统一的格式。
5.一种基于文件系统的软件自动升级装置,其特征在于,应用于综合模块化航空电子IMA架构,该装置包括:
加载单元,用于针对分区操作系统环境,通过ARINC615A等协议,将待升级文件和XML文件加载到目标机端文件系统中;其中,目标机端文件系统中文件按照文件类型和文件内容的不同分别进行存储;
解析单元,用于通过解析XML文件中的“NameRef”和“PayloadAddress”字段,获取需要加载文件的名称和固化地址,其中集成项目有两个配置文件payloadMap_rom和cfgRd,名称固定,固化地址的获取与其他文件不一样,详细如下:payloadMap_rom的固化地址与MSL项目的ROM方式下的部署描述文件地址一致,cfgRd的固化地址在XML中为“.configRecord"对应的PayloadAddress地址;根据文件名称检查文件是否为有效的文件;
第一计算单元,用于对待升级文件的内容计算固化前校验和;
判断单元,用于判断固化地址和待升级文件的长度是否有效;
固化单元,用于当有效时,对待升级文件进行固化;
第二计算单元,用于对固化的文件的内容计算固化后校验和;
其中,当固化前校验和与固化后校验和一致时,完成升级。
6.根据权利要求5所述的装置,其特征在于,所述判断单元用于:
检查待升级文件的固化起始地址是否为模块固化空间地址,并结合待升级文件的长度,判断待升级文件的固化结束地址是否在模块固化空间内;
其中,当固化起始地址为模块固化空间地址,且固化结束地址在模块固化空间内时,确认所述判断固化地址和待升级文件的长度有效。
7.根据权利要求6所述的装置,其特征在于,所述固化单元包括:
判读待升级文件的固化起始地址是否为Flash扇区首地址;
若否,则保存首地址所在扇区起始地址到固化起始地址的内容,与待升级文件拼接一起,形成本次Flash写操作的负载;
若是,将待升级文件作为Flash写操作的负载;
计算需要写入负载的扇区,逐个执行Flash擦除操作;
将负载通过Flash写接口固化到模块上。
8.根据权利要求5-7任一项所述的装置,其特征在于,升级软件的文件名称和固化地址表示形式与加载端协商采用统一的格式。
9.一种计算机可读的存储介质,所述存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现所述权利要求1-5任一项所述方法的步骤。
CN201910384989.3A 2019-05-09 2019-05-09 一种基于文件系统的软件自动升级方法及装置 Active CN110083378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910384989.3A CN110083378B (zh) 2019-05-09 2019-05-09 一种基于文件系统的软件自动升级方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910384989.3A CN110083378B (zh) 2019-05-09 2019-05-09 一种基于文件系统的软件自动升级方法及装置

Publications (2)

Publication Number Publication Date
CN110083378A CN110083378A (zh) 2019-08-02
CN110083378B true CN110083378B (zh) 2023-08-04

Family

ID=67419569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910384989.3A Active CN110083378B (zh) 2019-05-09 2019-05-09 一种基于文件系统的软件自动升级方法及装置

Country Status (1)

Country Link
CN (1) CN110083378B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112558996B (zh) * 2020-12-24 2023-08-04 中国航空工业集团公司西安航空计算技术研究所 一种自动化固化控制方法
CN112631632B (zh) * 2020-12-30 2024-03-12 北京天融信网络安全技术有限公司 系统升级方法、框架、电子设备及可读存储介质
CN113157287B (zh) * 2021-04-30 2023-03-10 深圳市格灵精睿视觉有限公司 文件烧录方法、装置及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083817A (zh) * 2007-02-28 2007-12-05 中兴通讯股份有限公司 一种动态更换移动台字库模块的方法
CN102081537A (zh) * 2010-12-31 2011-06-01 青岛海信宽带多媒体技术有限公司 一种软件升级方法
CN102314369A (zh) * 2011-10-09 2012-01-11 杭州先锋电子技术股份有限公司 一种远程在线监控系统中设备自升级方法
CN103049290A (zh) * 2012-12-11 2013-04-17 郑州威科姆科技股份有限公司 机顶盒软件通过usb自动更新安装的方法
CN105260215A (zh) * 2015-11-04 2016-01-20 福建星海通信科技有限公司 一种u盘升级车载行车记录仪终端的方法
CN105491118A (zh) * 2015-12-29 2016-04-13 中国航空无线电电子研究所 一种航电以太网数据加载系统
WO2018176733A1 (zh) * 2017-03-30 2018-10-04 百富计算机技术(深圳)有限公司 固件升级方法、终端和计算机可读非易失性存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083817A (zh) * 2007-02-28 2007-12-05 中兴通讯股份有限公司 一种动态更换移动台字库模块的方法
CN102081537A (zh) * 2010-12-31 2011-06-01 青岛海信宽带多媒体技术有限公司 一种软件升级方法
CN102314369A (zh) * 2011-10-09 2012-01-11 杭州先锋电子技术股份有限公司 一种远程在线监控系统中设备自升级方法
CN103049290A (zh) * 2012-12-11 2013-04-17 郑州威科姆科技股份有限公司 机顶盒软件通过usb自动更新安装的方法
CN105260215A (zh) * 2015-11-04 2016-01-20 福建星海通信科技有限公司 一种u盘升级车载行车记录仪终端的方法
CN105491118A (zh) * 2015-12-29 2016-04-13 中国航空无线电电子研究所 一种航电以太网数据加载系统
WO2018176733A1 (zh) * 2017-03-30 2018-10-04 百富计算机技术(深圳)有限公司 固件升级方法、终端和计算机可读非易失性存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ARINC615A的加卸载软件设计与实现;刘芸等;《航空计算技术》;20160325(第02期);全文 *

Also Published As

Publication number Publication date
CN110083378A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
US10732963B2 (en) System and method for automatically managing updated UEFI variables
CN110083378B (zh) 一种基于文件系统的软件自动升级方法及装置
US8495351B2 (en) Preparing and preserving a system configuration during a hot upgrade
US8954805B2 (en) Computer booting method and computer system
US8719559B2 (en) Memory tagging and preservation during a hot upgrade
CN110162345B (zh) 一种应用程序访问方法、装置和存储介质
US20070061818A1 (en) Detection of devices during operating system setup
CN110716845B (zh) 一种Android系统的日志信息读取的方法
CN111258666A (zh) 计算机文件的读取方法、装置、计算机系统及存储介质
US20230266958A1 (en) Method for creating private image in public cloud and related device
US11150981B2 (en) Fast recovery from failures in a chronologically ordered log-structured key-value storage system
US8086834B2 (en) System and method for populating a dedicated system service repository for an information handling system
CN115576903B (zh) 一种文件系统构建方法、计算设备及存储介质
US20080215806A1 (en) Access control management
US20120317158A1 (en) File system location verification using a sentinel
CN115437675A (zh) 一种应用程序在线升级方法、装置、设备及介质
CN111737223B (zh) 一种文件拷贝方法、装置、设备及存储介质
CN112988192A (zh) 版本更新方法、装置、电子设备及存储介质
KR101737575B1 (ko) 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치
CN117112072B (zh) 一种跨平台虚拟机驱动替换方法、系统及存储介质
US20080141218A1 (en) Module facility for java script language
US11334419B1 (en) Information handling system fault analysis with remote remediation file system
US11836500B2 (en) Systems and methods for basic input/output system driver offline protocol
CN114443582B (zh) 一种操作系统上文件系统挂载方法、装置、设备及介质
CN114201240B (zh) 配置helm chart的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant