发明名称 一种航天器嵌入式软件在轨维护方法
摘要 一种航天器嵌入式软件在轨维护方法,首先约定在轨维护航天器嵌入式软件设计规则,并依据该规则设计原版软件;然后在功能需求变化时设计新版软件,将原版嵌入式软件机器码划分为多个机器码未改变区、机器码变化识别区,并进行判断对比后得到新版软件的机器码未改变区、机器码变化识别区、机器码增加区,进而得到新版软件的微增量机器码与软件链表维护信息,进行校验和上注,完成多版本软件的在轨维护;最后根据直接指令切换航天器执行的某一版本的软件,满足功能需求变化。本发明方法与现有技术方法相比,在轨维护受原版软件限制小,上注量小,并且在维护过程中保证总有软件可在轨正常使用,提高了在轨维护的可靠性。
申请公布号 CN104820586A 申请公布日期 2015.08.05
申请号 CN201510164376.0 申请日期 2015.04.09
申请人 北京空间机电研究所 发明人 王戬;杨明明;聂浩;朱亚杰;张鹏;常霞;史漫丽
分类号 G06F9/44(2006.01)I;G06F9/445(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 一种航天器嵌入式软件在轨维护方法,其特征在于包括如下步骤:(1)按照软件功能需求设计原版嵌入式软件,将原版嵌入式软件对应的机器码按照数据段、代码段、堆和栈的顺序依次排布,并在代码段后预留第一设定阈值长度的空间作为机器码增加区,然后将原版嵌入式软件固化落焊在航天器PROM中运行;(2)在原版嵌入式软件运行过程中,根据在轨嵌入式软件功能需求变化设计t版嵌入式软件,并比较t版嵌入式软件源代码与原版嵌入式软件源代码,得到t版嵌入式软件需要改变的源代码位置和内容,进而得到原版嵌入式软件机器码需要改变的机器码地址及长度,然后将原版嵌入式软件机器码划分为多个机器码未改变区、机器码变化识别区,并对各个机器码变化识别区对应的t版嵌入式软件的源代码进行编译得到其机器码并依次判断;所述的机器码未改变区为原版嵌入式软件机器码未改变的区域;所述的机器码变化识别区为原版嵌入式软件机器码改变的区域,t的初值为1且为正整数;(3)如果原版嵌入式软件机器码变化识别区对应的t版嵌入式软件机器码长度等于当前机器码变化识别区机器码长度,则将当前机器码变化识别区对应t版嵌入式软件机器码直接替换当前机器码变化识别区机器码;如果变化识别区对应的t版嵌入式软件机器码长度大于当前机器码变化识别区机器码长度,则将当前机器码变化识别区对应的t版嵌入式软件机器码放入当前机器码变化识别区与机器码增加区,并在当前机器码变化识别区末位置添加跳转至机器码增加区中t版嵌入式软件机器码首位置的无条件长跳转指令,在机器码增加区中t版嵌入式软件机器码末位置添加跳转至与当前机器码变化识别区末位置相邻机器码的无条件长跳转指令;如果变化识别区对应的t版嵌入式软件机器码长度小于当前机器码变化识别区机器码长度,则将变化识别区对应的t版嵌入式软件机器码放入当前变化识别区,并使用空操作指令填补使当前机器码长度等于变化识别区机器码长度;得到t版嵌入式软件源代码机器码;(4)对比原版嵌入式软件机器码、t版嵌入式软件机器码得到变化的机器码地址和长度后与步骤(2)中寻找到的需要改变的机器码地址及长度对比并判断,如果两者相同,则转入步骤(5),否则重复步骤(2)‑步骤(3);(5)根据变化的机器码地址和长度得到t版嵌入式软件对应的微增量机器码,分别获取t版嵌入式软件中各个机器码变化识别区与机器码增加区中机器码在航天器EEPROM的存放地址长度、t版嵌入式软件中各个机器码未改变区中机器码在航天器PROM中的存放地址长度并形成其对应的链节信息,并将下一链节的存放地址放入上一链节信息中,得到t版嵌入式软件中各个机器码变化识别区、机器码增加区与机器码未改变区对应的链节信息后组合得到t版嵌入式软件对应的链条,进而得到t版嵌入式软件对应的软件链表维护信息,其中,各个机器码未改变区、机器码变化识别区、机器码增加区均对应一个链节信息;所述微增量机器码为t版嵌入式软件中各个机器码变化识别区、机器码增加区中变化的机器码,其中,各个机器码变化识别区、机器码增加区均对应一段微增量机器码;所述链条开始地址为当前版本嵌入式软件中第一个链节信息的存放地址;所述软件链表维护信息包括链条开始地址、链节数、软件校验和、微增量机器码及其在航天器EEPRM中的存放地址长度、当前嵌入式软件版本号、链节信息;(6)发送上注控制字指令至航天器并控制航天器接收数据,然后对微增量机器码与软件链表维护信息以第二设定阈值长度进行分帧后得到多个数据包,依次将数据包上注至航天器EEPROM,计算每个上注完成的数据包的累加和并与其对应的校验和进行对比,如果两者相等,则该数据包上注完成,否则发送指令控制地面重复上注该数据包直至数据包的累加和与其对应的校验和相等,在所有数据包上注结束时重复发送上注控制字指令来控制航天器结束接收数据,其中,在对微增量机器码与软件链表维护信息以第二设定阈值长度进行分帧时,如果最后一帧数据长度小于设阈值,则通过填零使最后一帧数据长度为设定阈值长度,数据包包括该数据包的校验和;所述上注控制字指令包括微增量机器码与软件链表维护信息在航天器EEPROM的存放开始地址、数据长度及校验和;(7)等待下次在轨嵌入式软件功能需求变化,并监测地面发送的直接指令,当在轨嵌入式软件功能需求变化时,使t=t+1,并重复步骤(2)‑步骤(6)完成新的在轨维护,然后等待下次在轨嵌入式软件功能需求变化,并监测地面发送的直接指令,当地面发送直接指令时,转入步骤(8);(8)根据直接指令使用搬移程序搬移原版嵌入式软件机器码或k版嵌入式软件机器码并搬至航天器SRAM中,然后计算航天器SRAM中k版嵌入式软件机器码累加和并与其校验和对比,如果两者不相等,则重复步骤(8)直至两者相等,如果两者相等,则执行k版嵌入式软件,并转入步骤(7),其中,k=1,2,3,,,t。
地址 100076 北京市丰台区南大红门路1号9201信箱5分箱