一种多模式星载软件EEPROM在轨编程方法技术

技术编号:24167607 阅读:37 留言:0更新日期:2020-05-16 01:55
本发明专利技术公开了一种多模式星载软件EEPROM在轨编程方法,包含:步骤S1、主功能软件加载运行后,通过指令注数生成EEPROM编程信息表;步骤S2、EEPROM软件动态编程;步骤S3、依据EEPROM软件编程存储信息引导软件运行;步骤S4、通过单地址编程屏蔽子功能软件。本发明专利技术通过选择编程方式,可实现软件动态运行状态下的主功能软件烧写、子功能软件烧写、EEPROM局部地址修改等功能,星载软件的多种EEPROM在轨编程方法及引导运行机制,主功能软件与子功能软件共享EEPROM存储区,软件引导运行时,可判断是否搬场运行子功能软件,子功能软件不搬场时不影响主功能软件运行,可防止因主功能软件与子功能软件不兼容引起错误;且可通过单地址修复方式快速屏蔽子功能软件。

On orbit programming method of EEPROM

【技术实现步骤摘要】
一种多模式星载软件EEPROM在轨编程方法
本专利技术属于星载计算机软件在轨编程领域,特别涉及一种多模式星载软件EEPROM在轨编程方法。
技术介绍
星载计算机软件在轨编程功能作为星载计算机软件的一项重要功能,对于软件在轨功能扩展和除错具有重要意义。软件在轨编程通常包括SRAM在轨编程和EEPROM在轨编程。后者虽然可实现编程软件的掉电保持但是实现过程相对复杂,同样要实现编程后的软件还原也相对复杂。
技术实现思路
本专利技术的目的在于提供一种多模式星载软件EEPROM在轨编程方法。该方法实施过程灵活、可靠,可用于各类星载软件的在轨编程,并同样适用于其它嵌入式系统软件的在应用编程。为了实现以上目的,本专利技术通过以下技术方案实现:一种多模式星载软件EEPROM在轨编程方法,包含以下过程:步骤S1、主功能软件加载运行后,通过指令注数生成EEPROM编程信息表;编程信息表内容包括:软件编程模式(主功能软件编程、子功能软件编程)、编程份数及地址、EEPROM编程页大小、校验标识字等信息。子功能软件编程模式下需预先注入子功能软件以确保编程代码的正确性;步骤S2、EEPROM软件动态编程;编程信息表生成并确认正确后,可启动EEPROM软件编程。EEPROM编程内容由三部分组成:校验标识字+软件搬场运行首地址+软件目标码,校验标识字由8位crc校验+软件长度组成。选择主功能软件编程时,编程起始地址为该份EEPROM空间首地址,编程规模为单份EEPROM存储区空间,空闲区域填充“0”;选择子功能软件编程时,编程起始地址为该份EEPROM空间中主功能软件末存储地址向后的首个页对齐地址,编程规模为子功能代码实际大小,并预留该份EEPROM末地址用于存储主功能软件的32位crc校验字flg0;其中,本文所述的“编程规模”是指待编程代码所占的总空间;步骤S3、依据EEPROM编程存储信息引导软件运行;计算机上电或重新复位运行后,由引导软件引导运行多模冗余存储的主功能软件,根据软件校验标识字和软件搬场运行地址验证的正确性引导软件运行,并记录引导运行方式(3取2引导、单份引导等)。主功能软件运行后(子功能软件前)计算32位crc校验字flg1,并根据引导搬场模式获取相应EEPROM空间的末地址校验字flg0,若flg0与flg1相同,则引导子功能软件并验证正确性;否则不引导子功能软件;步骤S4、通过单地址编程屏蔽子功能软件;软件在轨运行期间,若子功能软件故障或需要恢复仅引导主功能软件时,可通过单地址编程修改相应EEPROM空间末地址中存储的32位校验字flg0。校验字修改后,由于软件引导过程中flg1与flg0不再相同,因此不再引导子功能软件。优选地,所述EEPROM软件编程功能可实现主功能软件编程、子功能软件编程、单地址软件编程,其中主功能软件是该EEPROM在轨编程软件的载体软件,用于实现星载软件的主要功能,子功能软件是主功能软件的“补丁”软件,用于在轨实现对主功能软件除错、功能拓展等的在轨编程软件,在轨通过远程遥控注数方式注入到SRAM中。优选地,所述EEPROM编程信息表包含以下内容:软件编程模式、编程份数及地址、EEPROM编程页大小、校验标识字等信息。软件编程模式用于选择主功能软件编程或子功能软件编程;编程份数用于选择冗余备份EEPROM空间;编程地址用于指示当前源代码起始地址及目的EEPROM地址;编程标识字包含代码校验、代码长度。优选地,所述主功能软件与子功能软件共享EEPROM存储空间,主功能软件的存储起始地址为该份EEPROM起始地址,子功能软件的存储起始地址由主功能软件存储末地址向后按页对齐,防止因页不对齐引起子功能软件编程失败。进一步地,所述步骤S3进一步包含以下过程:由引导软件实现对主功能软件的引导搬场,按照3取2->第1份->第2份->第3份的优先级顺序对软件进行搬场,搬场依据为该份EEPROM首地址的软件校验标识字、软件搬场运行首地址,并对搬场结果进行校验,校验正确则将PC跳转至主功能软件入口地址运行,否则按顺序进行下一次搬场;主功能软件运行后依据本次引导搬场模式检测相应EEPROM空间末地址存储的32位crc校验字flg0,并计算本主功能软件的32位校验字flg1,若flg0与flg1相同,则依据本次引导搬场模式引导搬场子功能软件,子功能软件搬场成功后调用SRAM编程处理模块实现子功能软件对主功能软件的除错、功能拓展等修复;flg0与flg1不同时或子功能软件搬场失败时,则只运行主功能软件。优选地,所述校验字flg0为子功能软件进行EEPROM编程时存储的主功能软件32位crc校验字,flg1为主功能软件引导子功能软件前计算的主功能软件32位crc校验字。判别flg0与flg1的一致性主要在于判别主功能软件与子功能软件的版本一致性,防止主功能软件与子功能软件不兼容。本专利技术与现有技术相比具有以下优点:1)EEPROM软件编程模式多样化,可实现主功能软件编程烧写、子功能软件编程烧写、EEPROM单地址修改,其中子功能软件主要用于对主功能软件进行错误修复、功能拓展等。2)主功能软件与子功能软件共享EEPROM存储区,可仅存储主功能软件,也可同时存储主功能软件与子功能软件,子功能软件存储地址依据主功能软件占用的EEPROM空间动态调整。3)软件引导运行时,可依据软件编程信息的正确性判断是否搬场运行子功能软件,子功能软件不搬场或搬场失败时不影响主功能软件运行。4)对子功能软件进行EEPROM编程时不破坏主功能软件的存储结构,防止因子功能软件搬场失败导致的主功能软件运行错误;同时通过主功能软件与子功能软件的版本一致性检查,防止主功能软件与子功能软件不兼容。5)可通过单地址修复方式快速屏蔽子功能软件,而无需对子功能软件空间进行擦除。附图说明图1a为EEPROM的存储空间结构示意图;图1b为EEPROM中的软件存储结构,所示“补丁”软件即子功能软件;图2为EEPROM编程主流程;图3为EEPROM编程信息生成流程;图4为单份EEPROM编程处理流程;图5为EEPROM单地址编程处理流程;图6为主功能软件引导主流程;图7为子功能软件引导主流程。具体实施方式以下结合附图,通过详细说明一个较佳的具体实施例,对本专利技术做进一步阐述。如图1a所示,本实施例的EEPROM存储空间包含:主功能软件、子功能软件(“补丁”软件)及主功能软件校验字。如图1b所示,本实施例中EEPROM存储空间配置为3MB,软件分6份存储,每份512KB,包括3份主软件(主份1软件、主份2软件、主份3软件)及3份备软件(备份1软件、备份2软件、备份3软件),主备软件交叉存储。单份EEPROM存储分配为:主功能软件标识字、主功能软件搬场地址、主功能软件、空余空间、“补丁”软件标识字、“补丁”软件搬场地址、“补丁”软件本文档来自技高网...

【技术保护点】
1.一种多模式星载软件EEPROM在轨编程方法,其特征在于,包含以下步骤:/n步骤S1、主功能软件加载运行后,通过指令注数生成EEPROM编程信息表;该编程信息表内容包括:软件编程模式、编程份数、及编程地址、EEPROM编程页大小、校验标识字信息,其中,该软件编程模式用于选择主功能软件编程或子功能软件编程;/n步骤S2、EEPROM软件动态编程:编程信息表生成并确认正确后,启动EEPROM软件编程;该EEPROM软件编程内容由三部分组成:校验标识字、软件搬场运行首地址及软件目标码;/n步骤S3、依据EEPROM软件编程存储信息引导软件运行:计算机上电或重新复位运行后,由引导软件引导运行多模冗余存储的主功能软件,根据软件校验标识字和软件搬场运行地址验证的正确性引导软件运行,并记录引导运行方式;主功能软件运行后计算自身32位crc校验字flg1,并根据引导搬场模式获取相应EEPROM空间的末地址校验字flg0,若flg0与flg1相同,则引导子功能软件并验证正确性;否则不引导子功能软件;/n步骤S4、通过单地址编程屏蔽子功能软件:软件在轨运行期间,若子功能软件故障或需要恢复仅引导主功能软件时,通过单地址编程修改相应EEPROM空间末地址中存储的32位校验字flg0;校验字修改后,由于软件引导过程中flg1与flg0不再相同,因此不再引导子功能软件。/n...

【技术特征摘要】
1.一种多模式星载软件EEPROM在轨编程方法,其特征在于,包含以下步骤:
步骤S1、主功能软件加载运行后,通过指令注数生成EEPROM编程信息表;该编程信息表内容包括:软件编程模式、编程份数、及编程地址、EEPROM编程页大小、校验标识字信息,其中,该软件编程模式用于选择主功能软件编程或子功能软件编程;
步骤S2、EEPROM软件动态编程:编程信息表生成并确认正确后,启动EEPROM软件编程;该EEPROM软件编程内容由三部分组成:校验标识字、软件搬场运行首地址及软件目标码;
步骤S3、依据EEPROM软件编程存储信息引导软件运行:计算机上电或重新复位运行后,由引导软件引导运行多模冗余存储的主功能软件,根据软件校验标识字和软件搬场运行地址验证的正确性引导软件运行,并记录引导运行方式;主功能软件运行后计算自身32位crc校验字flg1,并根据引导搬场模式获取相应EEPROM空间的末地址校验字flg0,若flg0与flg1相同,则引导子功能软件并验证正确性;否则不引导子功能软件;
步骤S4、通过单地址编程屏蔽子功能软件:软件在轨运行期间,若子功能软件故障或需要恢复仅引导主功能软件时,通过单地址编程修改相应EEPROM空间末地址中存储的32位校验字flg0;校验字修改后,由于软件引导过程中flg1与flg0不再相同,因此不再引导子功能软件。


2.如权利要求1所述的多模式星载软件EEPROM在轨编程方法,其特征在于,所述的编程份数用于选择冗余备份EEPROM空间;所述的编程地址用于指示当前源代码起始地址及目的EEPROM地址;所述的校验标识字包含代码校验、代码长度。


3.如权利要求1所述的多模式星载软件EEPROM在轨编程方法,其特征在于,当选择主功能软件编程时,编程起始地址为该份EEPROM空间首地址,编程规模为单份EEPROM存储区空间,空闲区域填充“0”。


4.如权利要求1所述的多模式星载软件EEPROM在轨编程方法,其特征在于,当选择子功能软件编程时,编程起始地址为该份EEPROM空间中主功能软件末存储地址向后的首个页对齐地址,编程规模为子功能代码实际大小,并预留该份EEPROM...

【专利技术属性】
技术研发人员:张国柱程颢刘赟陈浩郭雯婷
申请(专利权)人:上海航天控制技术研究所
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1