CN105094784B - 基于sram的间址跳转模式的在轨编程方法及装置 - Google Patents
基于sram的间址跳转模式的在轨编程方法及装置 Download PDFInfo
- Publication number
- CN105094784B CN105094784B CN201410212511.XA CN201410212511A CN105094784B CN 105094784 B CN105094784 B CN 105094784B CN 201410212511 A CN201410212511 A CN 201410212511A CN 105094784 B CN105094784 B CN 105094784B
- Authority
- CN
- China
- Prior art keywords
- module
- replaced
- board programming
- new code
- code content
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开基于SRAM的间址跳转模式的在轨编程方法及装置。该编程方法根据被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系,用跳转目标地址更新相应的被替换模块源地址以及根据跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换,所以,不需要预先设定可在轨编程的模块,对可在轨编程模块的数量没有限制。除了中断服务程序、异常处理程序外,其他所有模块都可以进行在轨编程;全部采用地址直接跳转方式,不需要在原程序设计时预留空间,且在轨编程区的规模基本上没有空间限制,只需满足所述对应关系的约束。
Description
技术领域
本发明涉及空间飞行器可靠性技术的在轨编程方法,尤其涉及基于SRAM的间址跳转模式的在轨编程方法及装置。
背景技术
GNC计算机是卫星的核心部件,其可靠性直接决定了控制系统乃至整个航天器的成败。GNC计算机在空间长时间飞行,承受恶劣的空间辐照环境,因此要求GNC计算机必须具有高可靠性和可维修性,目前对GNC计算机实施在轨编程是目前广泛采用的一种方式。
传统在轨编程模式,有的对函数地址表进行绑定,只能对预先设定的可在轨编程模块进行在轨替换;而有的采用直接覆盖模块替换方法,对原程序模块进行直接覆盖,但在设计时需要预留一定的空间,在轨编程模块规模受空间限制。
发明内容
本发明解决的问题是传统的在轨编程方法只能对预先设定的可在轨编程模块进行替换以及受到空间限制的问题。
为解决上述问题,本发明提供一种基于SRAM的间址跳转模式的在轨编程方法,该方法包括如下步骤:上注在轨编程文件:将地面生成的在轨编程文件上注至在轨编程区,其中,在轨编程文件包括地址表内容和至少一个新代码内容,地址表内容包括至少一个被替换模块地址和一个跳转目标地址,并且,被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系;执行在轨编程:根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处,重新启动程序,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换。
在进一步方案中,所述在轨编程方法还包括在上注在轨编程文件和执行在轨编程之间,对上注的在轨编程文件进行校验,通过遥测下传校验结果,在校验结果正确时,地面发送允许SRAM在轨编程的指令才执行在轨编程。
本发明还公开一种基于SRAM的间址跳转模式的在轨编程管理装置,该装置包括接收模块和处理模块,所述接收模块接收地面生成的在轨编程文件,传输变成文件至在轨编程区,其中,在轨编程文件包括地址表内容和至少一个新代码内容,地址表内容包括至少一个被替换模块地址和一个跳转目标地址,并且,被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系;所述处理模块执行在轨编程操作,该在轨编程操作包括:根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处,重新启动程序,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换。
在进一步方案中,所述处理模块包括更新模块和跳转模块,其中,所述更新模块根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处;所述跳转模块在重新启动程序后,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换。
在进一步方案中,所述管理模块还包括校验模块和发送模块,其中,所述接收模块接收来自地面的校验指令,根据校验指令对在轨编程区的在轨编程文件进行校验,传输校验结果至发送模块;所述发送模块下传校验结果;所述接收模块还接收地面在校验结果正确时发出的执行SARM在轨编程指令;所述处理模块由该执行SARM在轨编程指令而执行在轨编程操作。
与现有技术相比,本发明具有以下优点:
由于本发明被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系,且根据跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换,所以,不需要预先设定可在轨编程的模块,对可在轨编程模块的数量没有限制。除了中断服务程序、异常处理程序外,其他所有模块都可以进行在轨编程;全部采用地址直接跳转方式,不需要在原程序设计时预留空间,且在轨编程区的规模基本上没有空间限制,只需满足所述对应关系的约束。
附图说明
图1为基于SRAM的间址跳转模式的在轨编程方法的处理流程。
图2为基于SRAM的间址跳转模式的在轨编程方法的在轨编程示意图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所达成目的及功效,下面将结合实施例并配合附图予以详细说明。
请参阅图1和图2,本发明基于SRAM的间址跳转模式的在轨编程方法包括如下步骤:
S1、上注在轨编程文件:将地面生成的在轨编程文件上注至在轨编程区,其中,在轨编程文件包括地址表内容和至少一个新代码内容,地址表内容包括至少一个被替换模块地址和一个跳转目标地址,并且,被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系。该步骤详细叙述如下:
首先,对SRAM中的在轨编程区划分为跳转地址表区和程序区,跳转地址表由被替换模块源地址和跳转目标地址两部分组成,在图2中,跳转地址表示意出被替换模块源地址Add1_old、Add2_old和Addn_old,跳转目标地址示意出Add1_new、Add2_new和Addn_new。所述程序区用于存储新代码内容。所述一一对应关系比如说Add1_old、Add1_new和用于替换被替换模块1的新代码内容一一对应,也比如说Add2_old、Add2_new和用于替换被替换模块2的新代码内容一一对应,以此类推;
接着,地面发送传送指令“允许SRAM在轨编程”;地面通过连续地址注数上注在轨编程文件,包括地址表内容和至少一个新代码内容。当判断“允许SRAM在轨编程”标志为允许时,将上注的在轨编程文件填充至在轨编程的程序区。
S2、判断上注的在轨编程文件是否正确。如图1所示,上注在轨编程文件之后,启动校验算法,通过累加和或CRC校验,对上注的在轨编程文件进行校验。通过遥测下传校验结果。地面判断校验结果,在校验结果正确后,地面发送允许SRAM在轨编程指令。
S3、执行在轨编程:根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处,重新启动程序,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换。以图2为例详细说明该步骤如下:
将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处比如是将Add1_new更新至Add1_old的起始地址处,将Add2_new更新至Add2_old的起始地址处,以此类推,将Addn_new更新至Addn_old的起始地址处。这样,由于跳转目标地址、被替换模块源地址和新代码内容之间有对应关系,在上述更新之后,重启程序时,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换,具体的,根据Add1_new跳转至替换模块1(也称之为新代码内容1)而执行新代码内容1,这样,完成了对被替换模块1的替换,同样的道理,根据Add2_new跳转至替换模块2(也称之为新代码内容2)而执行新代码内容2,这样,完成了对被替换模块2的替换,以此类推,可以完成对被替换模块n的替换。
综上所述,由于本发明被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系,且根据跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换,所以,不需要预先设定可在轨编程的模块,对可在轨编程模块的数量没有限制。除了中断服务程序、异常处理程序外,其他所有模块都可以进行在轨编程;全部采用地址直接跳转方式,不需要在原程序设计时预留空间,且在轨编程区的规模基本上没有空间限制,只需满足所述对应关系的约束。
以上述在轨编程方法为基础,本发明还公开基于SRAM的间址跳转模式的在轨编程装置。该装置包括接收模块和处理模块,所述接收模块接收地面生成的在轨编程文件,传输变成文件至在轨编程区,其中,在轨编程文件包括地址表内容和至少一个新代码内容,地址表内容包括至少一个被替换模块地址和一个跳转目标地址,并且,被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系;所述处理模块执行在轨编程操作,该在轨编程操作包括:根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处,重新启动程序,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换。在进一步方案中,所述处理模块包括更新模块和跳转模块,其中,所述更新模块根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处;所述跳转模块在重新启动程序后,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换。在进一步方案中,所述管理模块还包括校验模块和发送模块,其中,所述接收模块接收来自地面的校验指令,根据校验指令对在轨编程区的在轨编程文件进行校验,传输校验结果至发送模块;所述发送模块下传校验结果;所述接收模块还接收地面在校验结果正确时发出的执行SARM在轨编程指令;所述处理模块由该执行SARM在轨编程指令而执行在轨编程操作。
上述装置的叙述参见对在轨编程方法的叙述,在此不再赘述。
Claims (2)
1.基于SRAM的间址跳转模式的在轨编程方法,其特征是:该方法包括如下步骤:上注在轨编程文件:将地面生成的在轨编程文件上注至在轨编程区,其中,在轨编程文件包括地址表内容和至少一个新代码内容,地址表内容包括至少一个被替换模块地址和一个跳转目标地址,并且,被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系;
执行在轨编程:根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处,重新启动程序,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换
所述在轨编程方法还包括在上注在轨编程文件和执行在轨编程之间,对上注的在轨编程文件进行校验,通过遥测下传校验结果,在校验结果正确时,地面发送允许SRAM在轨编程的指令才执行在轨编程。
2.基于SRAM的间址跳转模式的在轨编程管理装置,其特征是:该装置包括接收模块和处理模块,
所述接收模块接收地面生成的在轨编程文件,传输编程文件至在轨编程区,其中,在轨编程文件包括地址表内容和至少一个新代码内容,地址表内容包括至少一个被替换模块地址和一个跳转目标地址,并且,被替换模块源地址、跳转目标地址和新代码内容具有一一对应的关系;
所述处理模块执行在轨编程操作,该在轨编程操作包括:根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处,重新启动程序,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换;
所述处理模块包括更新模块和跳转模块,其中,
所述更新模块根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系将每个被替换单元的跳转目标地址更新至被替换模块的起始地址处;
所述跳转模块在重新启动程序后,根据被替换模块源地址、跳转目标地址和新代码内容之间的对应关系直接跳转至新代码内容而执行新代码内容而实现被替换模块的替换;
所述管理装置还包括校验模块和发送模块,其中,
所述接收模块接收来自地面的校验指令,根据校验指令对在轨编程区的在轨编程文件进行校验,传输校验结果至发送模块;
所述发送模块下传校验结果;
所述接收模块还接收地面在校验结果正确时发出的执行SARM在轨编程指令;
所述处理模块由该执行SARM在轨编程指令而执行在轨编程操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410212511.XA CN105094784B (zh) | 2014-05-20 | 2014-05-20 | 基于sram的间址跳转模式的在轨编程方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410212511.XA CN105094784B (zh) | 2014-05-20 | 2014-05-20 | 基于sram的间址跳转模式的在轨编程方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105094784A CN105094784A (zh) | 2015-11-25 |
CN105094784B true CN105094784B (zh) | 2019-09-17 |
Family
ID=54575322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410212511.XA Active CN105094784B (zh) | 2014-05-20 | 2014-05-20 | 基于sram的间址跳转模式的在轨编程方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105094784B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108202A (zh) * | 2016-11-23 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 一种热插拔方法和装置 |
CN110308920B (zh) * | 2019-05-31 | 2023-05-12 | 北京控制工程研究所 | 一种不影响正常运行的在轨修改星上产品软件的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916194A (zh) * | 2010-06-01 | 2010-12-15 | 浙江大学 | 一种无线传感网节点程序的部署方法 |
CN102508657A (zh) * | 2011-10-18 | 2012-06-20 | 北京空间飞行器总体设计部 | 一种航天器嵌入式软件模块维护方法 |
CN103777983A (zh) * | 2014-01-24 | 2014-05-07 | 航天东方红卫星有限公司 | 一种星载软件在轨维护及升级方法 |
-
2014
- 2014-05-20 CN CN201410212511.XA patent/CN105094784B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916194A (zh) * | 2010-06-01 | 2010-12-15 | 浙江大学 | 一种无线传感网节点程序的部署方法 |
CN102508657A (zh) * | 2011-10-18 | 2012-06-20 | 北京空间飞行器总体设计部 | 一种航天器嵌入式软件模块维护方法 |
CN103777983A (zh) * | 2014-01-24 | 2014-05-07 | 航天东方红卫星有限公司 | 一种星载软件在轨维护及升级方法 |
Non-Patent Citations (1)
Title |
---|
"一种基于向量表的在轨程序上注方法的研究";朱亚杰等;《电子设计工程》;20130630;第21卷(第11期);第141页第2.2.1-2.2.2节,第142页第4节,第143页左侧分栏,图3,图5,图6 |
Also Published As
Publication number | Publication date |
---|---|
CN105094784A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052355B (zh) | 星载载荷单元软件在轨重组方法 | |
CN107562437B (zh) | 一种基于MicroBlaze软核的FPGA在线升级的系统及方法 | |
CN108415718B (zh) | 一种应用于星载软件在线更新的BootLoader设计方法 | |
CN105955783A (zh) | 一种基于fpga控制的远程fpga逻辑代码的下载方法 | |
CN106774277B (zh) | 一种多虚拟控制器之间的数据共享方法 | |
CN106406935A (zh) | 一种蓝牙芯片ota升级的方法和蓝牙芯片 | |
US10496389B2 (en) | Field device | |
CN107957874B (zh) | 可恢复的驻留式星载软件在轨编程方法 | |
CN106933609A (zh) | Android应用程序安装包的生成方法及装置 | |
US20200174783A1 (en) | Electronic control system | |
CN104820586A (zh) | 一种航天器嵌入式软件在轨维护方法 | |
CN105094784B (zh) | 基于sram的间址跳转模式的在轨编程方法及装置 | |
CN104407878A (zh) | C6000数字信号处理器在线升级方法 | |
CN111562933A (zh) | 一种空调升级方法以及空调系统 | |
US20150220799A1 (en) | Image processing device, managing system, and managing method | |
CN110308920B (zh) | 一种不影响正常运行的在轨修改星上产品软件的方法 | |
AU2006337975B2 (en) | Method for storing a data block containing data for controlling a technical process, and control and automation apparatus | |
CN104461589A (zh) | 单片机升级方法及升级系统 | |
CN103077017B (zh) | 一种嵌入式内存复用方法 | |
CN105334448A (zh) | 芯片自动化测试系统 | |
CN104484272A (zh) | 一种可在轨调试星载电子系统及在轨调试方法 | |
CN103699016A (zh) | 全范围模拟数字化控制系统初始工况的生成方法 | |
JP7128763B2 (ja) | 電子制御装置及び制御データの設定方法 | |
JP5295001B2 (ja) | 運用管制装置 | |
KR102434126B1 (ko) | Plc 프로그램 처리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |