CN109783279B - 一种飞行参数自适应的嵌入式软件内存数据动态加载方法 - Google Patents
一种飞行参数自适应的嵌入式软件内存数据动态加载方法 Download PDFInfo
- Publication number
- CN109783279B CN109783279B CN201910034066.5A CN201910034066A CN109783279B CN 109783279 B CN109783279 B CN 109783279B CN 201910034066 A CN201910034066 A CN 201910034066A CN 109783279 B CN109783279 B CN 109783279B
- Authority
- CN
- China
- Prior art keywords
- program
- target object
- software
- flight
- benchmark
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种飞行参数自适应的嵌入式软件内存数据动态加载方法,首先在飞行器嵌入式单机的FLASH存储器上存储基准程序与多个目标对象程序,飞行器嵌入式单机上电后,将基准程序加载到RAM存储器中运行;在实际飞行过程中,基准程序接收并解析注入的飞行参数;基准程序根据飞行参数与目标对象程序的匹配关系,为注入的飞行参数选择匹配的目标对象程序;最后将匹配的目标对象程序拷贝到内部存储器中,对匹配的目标对象程序进行加载运行。应用本发明方法,在飞行过程中能够进行软件功能的切换,并实现相应内存程序的动态切换与加载运行,利用较少的硬件设备实现较多的软件功能,提高了软件的可靠性和安全性。
Description
技术领域
本发明涉及一种飞行参数自适应的嵌入式软件内存数据动态加载方法,属于航空航天嵌入式软件信息处理领域。
背景技术
航天飞行器、卫星以及火箭在飞行过程中需要通过软件实现信息采集、制导控制和姿态控制等飞行控制指令的计算以及遥测数据的发送功能,此类软件多为嵌入式软件,运行在嵌入式芯片上,可扩展性较差,且在飞行过程中无法手动进行程序的启动与关闭。因为运行环境及使用场景的特点,此类软件对软件的可靠性和安全性要求极高,要求软件运行过程中保持功能和性能的稳定性。同时,飞行器上的载荷成本较为昂贵,空间较为有限,如何利用较少的硬件设备实现较多的软件功能,并且提供软件运行过程中的容错手段,保证软件运行的可靠性,成为飞行器软件系统设计中的重要问题。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种飞行参数自适应的嵌入式软件内存数据动态加载方法,飞行过程中能够进行软件功能的切换,并实现相应内存程序的动态切换与加载运行,利用较少的硬件设备实现较多的软件功能,提高了软件的可靠性和安全性。
本发明的技术解决方案是:
一种飞行参数自适应的嵌入式软件内存数据动态加载方法,包括如下步骤:
(1)飞行器嵌入式单机的FLASH存储器上存储有基准程序与多个目标对象程序,所述目标对象程序负责实现特定的功能逻辑,基准程序实现飞行参数的接收、处理以及目标对象程序的动态加载与运行,且基准程序中事先定义了飞行参数与目标对象程序的匹配关系;
(2)飞行器嵌入式单机上电后,将基准程序加载到RAM存储器中运行;
(3)在实际飞行过程中,基准程序接收并解析注入的飞行参数;
(4)基准程序根据飞行参数与目标对象程序的匹配关系,为注入的飞行参数选择匹配的目标对象程序,判断匹配的目标对象程序是否完整和正确,如果完整且正确,则进入步骤(5),否则继续运行当前基准程序,并将判断结果反馈给地面配套软件;
(5)将匹配的目标对象程序拷贝到内部存储器中,对匹配的目标对象程序进行加载运行。
所述步骤(2)中,基准程序运行的过程如下:
(2.1)基准程序进行飞行器嵌入式单机对应硬件接口驱动程序的初始化;
(2.2)基准程序进行数据接收和解析功能的初始化;
(2.3)基准程序进行与地面配套软件交互功能的初始化;
(2.4)基准程序开始运行。
所述步骤(3)中,飞行参数的来源有以下两种:
1)在实际飞行过程中,飞行器根据传感器采集的信息解算得到飞行参数,包括飞行高度、飞行速度、攻角和侧滑角;
2)在实际飞行过程中,地面配套软件根据飞行器基准程序反馈的遥测结果确定是否需要将基准程序切换为目标对象程序,如果需要,则发送与目标对象程序匹配的飞行参数。
所述步骤(4)中,按照如下流程判断匹配的目标对象程序是否完整和正确:
(4.1)确定目标对象程序在FLASH存储器中的起始地址及长度;
(4.2)对从起始地址到结束地址中的数据进行CRC校验,根据CRC校验结果判断目标对象程序是否完整和正确。
所述步骤(4.2)中,根据CRC校验结果判断目标对象程序是否完整和正确的方式如下:
将CRC校验结果反馈至地面配套软件,由地面操作人员根据CRC校验结果判断目标对象程序是否完整和正确,如果完整且正确,地面配套软件发送确认指令,否则,地面配套软件发送切换停止指令。
所述步骤(4.2)中,根据CRC校验结果判断目标对象程序是否完整和正确的方式如下:
将CRC校验结果与FLASH存储器中预先存储的校验结果进行比对,当两者一致时,认为目标对象程序完整且正确。
步骤(5)的实现方法如下:
(7.1)基准程序从FLASH存储器找到要加载的目标对象程序存储地址,确定加载的目的RAM存储器内存地址;
(7.2)基准程序从FLASH存储器的相应存储地址拷贝数据到对应的目的RAM存储器内存地址;
(7.3)当数据拷贝完成时,由基准程序调用目标对象程序运行。
当数据拷贝完成时,在目标对象程序运行之前,需要对拷贝后的目的RAM存储器中的数据与拷贝前的FLASH存储器对应存储地址的数据进行逐字节比对与校验,当两者一致时,校验通过,由基准程序调用目标对象程序运行;否则校验不通过,由基准程序将错误结果写入指定FLASH存储器的存储地址,退出切换过程。
所述步骤(7.3)中,基准程序调用目标对象程序运行的实现方式如下:
(9.1)由基准程序关闭硬件外部中断,避免切换过程中程序发生非法跳转;
(9.2)对基准程序中的全局变量重置;
(9.3)调用目标对象程序的入口函数;
(9.4)目标对象程序进行初始化,向地面配套软件发送切换成功标志;
(9.5)目标对象程序完成初始化,打开硬件外部中断,执行预定逻辑。
所述步骤(9.2)中,所述全局变量包括飞行器计时时间和飞行器软件状态,重置时,将飞行器计时时间置为0,将飞行器软件状态置为初始状态。
本发明提供了一种飞行器嵌入式软件根据飞行过程中的飞行参数进行内存动态加载的方法,从而实现飞行过程中软件功能的切换,并实现相应内存程序的动态切换与加载运行。主要优点在于:
(1)本发明可用于实现飞行器上不同功能软件的运行状态切换,即使用一种硬件设备即可在不同飞行参数下实现多种软件功能,有效节约飞行器的设备舱空间和载荷成本,根据飞行参数实现有效功能的运行与对无用功能的有效屏蔽。
(2)通过本发明提供的内存数据加载方法,在飞行器飞行过程中发生软件部分故障时,通过监测地面软件发送的飞行参数,实现备份软件的可靠切换与自动运行,从而实现飞行过程中的软件热备份与故障冗余设计,提高飞行器软件的可靠性与安全性。
附图说明
图1为本发明流程图;
图2为基准程序运行流程图。
具体实施方式
如图1所示,本发明提出了一种飞行参数自适应的嵌入式软件内存数据动态加载方法,包括如下步骤:
(1)飞行器嵌入式单机的FLASH存储器上存储有基准程序与多个目标对象程序,所述目标对象程序负责实现特定的功能逻辑,基准程序实现飞行参数的接收、处理以及目标对象程序的动态加载与运行,且基准程序中事先定义了飞行参数与目标对象程序的匹配关系。如飞行参数a对应目标对象程序A,飞行参数b对应目标对象程序B,飞行参数c对应目标对象程序C。
(2)飞行器嵌入式单机上电后,将基准程序加载到RAM存储器中运行。
基准程序运行的过程如下:
(2.1)基准程序进行飞行器嵌入式单机对应硬件接口驱动程序的初始化;
(2.2)基准程序进行数据接收和解析功能的初始化;
(2.3)基准程序进行与地面配套软件交互功能的初始化;
(2.4)基准程序开始运行。
(3)在实际飞行过程中,基准程序接收并解析注入的飞行参数,行参数的来源有以下两种:
1)在实际飞行过程中,飞行器根据传感器采集的信息(压力、温度等)解算得到飞行参数,包括飞行高度、飞行速度、攻角和侧滑角;
2)在实际飞行过程中,地面配套软件根据飞行器基准程序反馈的遥测结果确定是否需要将基准程序切换为目标对象程序(如认为基准程序发生错误,切换的目标对象程序为当前基准程序的备份程序,或者遥测结果满足预定状态,需要进行功能切换,切换的目标对象程序为实现特定功能的预制程序),如果需要,则发送与目标对象程序匹配的飞行参数。
(4)基准程序根据飞行参数与目标对象程序的匹配关系,为注入的飞行参数选择匹配的目标对象程序,判断匹配的目标对象程序是否完整和正确,如果完整且正确,则进入步骤(5),否则继续运行当前基准程序,并将判断结果反馈给地面配套软件。
按照如下流程判断匹配的目标对象程序是否完整和正确:
(4.1)确定目标对象程序在FLASH存储器中的起始地址及长度;
(4.2)对从起始地址到结束地址中的数据进行CRC校验,根据CRC校验结果判断目标对象程序是否完整和正确。
根据CRC校验结果判断目标对象程序是否完整和正确有两种方法,一种是:
基准程序将CRC校验结果反馈至地面配套软件,由地面操作人员根据CRC校验结果判断目标对象程序是否完整和正确,如果完整且正确,地面配套软件发送确认指令,否则,地面配套软件发送切换停止指令。
另一种是:
基准程序将CRC校验结果与FLASH存储器中预先存储的校验结果进行比对,当两者一致时,认为目标对象程序完整且正确。
(5)将匹配的目标对象程序拷贝到内部存储器中,对匹配的目标对象程序进行加载运行,如图2所示,具体过程如下:
(7.1)基准程序从FLASH存储器找到要加载的目标对象程序存储地址,确定加载的目的RAM存储器内存地址;
(7.2)基准程序从FLASH存储器的相应存储地址拷贝数据到对应的目的RAM存储器内存地址;
(7.3)当数据拷贝完成时,需要对拷贝后的目的RAM存储器中的数据与拷贝前的FLASH存储器对应存储地址的数据进行逐字节比对与校验,当两者一致时,校验通过,由基准程序调用目标对象程序运行;否则校验不通过,由基准程序将错误结果写入指定FLASH存储器的存储地址,退出切换过程。
基准程序调用目标对象程序运行的实现方式如下:
(9.1)由基准程序关闭硬件外部中断,避免切换过程中程序发生非法跳转;
(9.2)对基准程序中的全局变量重置,全局变量包括飞行器计时时间和飞行器软件状态,重置时,将飞行器计时时间置为0,将飞行器软件状态置为初始状态;
(9.3)调用目标对象程序的入口函数;
(9.4)目标对象程序进行初始化,向地面配套软件发送切换成功标志;
(9.5)目标对象程序完成初始化,打开硬件外部中断,执行预定逻辑。
本发明旨在提供一种嵌入式软件领域的动态内存加载方法,该方法可以根据飞行器飞行过程中感知和接收到的飞行参数,结合预置的逻辑判断判别飞行器处于何种状态,将相应功能软件程序从FLASH存储器中加载到内部存储器中,并实现程序在内部存储器中的运行,从而改变硬件设备中运行的软件和程序,实现软件程序与功能的选用和动态加载。
通过本发明提供的方法,可实现飞行器上嵌入式软件的冗余备份,有效提高软件的可靠性,并有效提高硬件设备功能的可扩展性,该技术对于工程领域具有重要意义。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (9)
1.一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于包括如下步骤:
(1)飞行器嵌入式单机的FLASH存储器上存储有基准程序与多个目标对象程序,所述目标对象程序负责实现特定的功能逻辑,基准程序实现飞行参数的接收、处理以及目标对象程序的动态加载与运行,且基准程序中事先定义了飞行参数与目标对象程序的匹配关系;
(2)飞行器嵌入式单机上电后,将基准程序加载到RAM存储器中运行;
(3)在实际飞行过程中,基准程序接收并解析注入的飞行参数;
飞行参数的来源有以下两种:
1)在实际飞行过程中,飞行器根据传感器采集的信息解算得到飞行参数,包括飞行高度、飞行速度、攻角和侧滑角;
2)在实际飞行过程中,地面配套软件根据飞行器基准程序反馈的遥测结果确定是否需要将基准程序切换为目标对象程序,如认为基准程序发生错误,切换的目标对象程序为当前基准程序的备份程序,或者遥测结果满足预定状态,需要进行功能切换,切换的目标对象程序为实现特定功能的预制程序,如果需要,则发送与目标对象程序匹配的飞行参数;
(4)基准程序根据飞行参数与目标对象程序的匹配关系,为注入的飞行参数选择匹配的目标对象程序,判断匹配的目标对象程序是否完整和正确,如果完整且正确,则进入步骤(5),否则继续运行当前基准程序,并将判断结果反馈给地面配套软件;
(5)将匹配的目标对象程序拷贝到内部存储器中,对匹配的目标对象程序进行加载运行。
2.根据权利要求1所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:所述步骤(2)中,基准程序运行的过程如下:
(2.1)基准程序进行飞行器嵌入式单机对应硬件接口驱动程序的初始化;
(2.2)基准程序进行数据接收和解析功能的初始化;
(2.3)基准程序进行与地面配套软件交互功能的初始化;
(2.4)基准程序开始运行。
3.根据权利要求1所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:所述步骤(4)中,按照如下流程判断匹配的目标对象程序是否完整和正确:
(4.1)确定目标对象程序在FLASH存储器中的起始地址及长度;
(4.2)对从起始地址到结束地址中的数据进行CRC校验,根据CRC校验结果判断目标对象程序是否完整和正确。
4.根据权利要求3所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:所述步骤(4.2)中,根据CRC校验结果判断目标对象程序是否完整和正确的方式如下:
将CRC校验结果反馈至地面配套软件,由地面操作人员根据CRC校验结果判断目标对象程序是否完整和正确,如果完整且正确,地面配套软件发送确认指令,否则,地面配套软件发送切换停止指令。
5.根据权利要求3所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:所述步骤(4.2)中,根据CRC校验结果判断目标对象程序是否完整和正确的方式如下:
将CRC校验结果与FLASH存储器中预先存储的校验结果进行比对,当两者一致时,认为目标对象程序完整且正确。
6.根据权利要求1所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:步骤(5)的实现方法如下:
(7.1)基准程序从FLASH存储器找到要加载的目标对象程序存储地址,确定加载的目的RAM存储器内存地址;
(7.2)基准程序从FLASH存储器的相应存储地址拷贝数据到对应的目的RAM存储器内存地址;
(7.3)当数据拷贝完成时,由基准程序调用目标对象程序运行。
7.根据权利要求6所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:当数据拷贝完成时,在目标对象程序运行之前,需要对拷贝后的目的RAM存储器中的数据与拷贝前的FLASH存储器对应存储地址的数据进行逐字节比对与校验,当两者一致时,校验通过,由基准程序调用目标对象程序运行;否则校验不通过,由基准程序将错误结果写入指定FLASH存储器的存储地址,退出切换过程。
8.根据权利要求6所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:所述步骤(7.3)中,基准程序调用目标对象程序运行的实现方式如下:
(9.1)由基准程序关闭硬件外部中断,避免切换过程中程序发生非法跳转;
(9.2)对基准程序中的全局变量重置;
(9.3)调用目标对象程序的入口函数;
(9.4)目标对象程序进行初始化,向地面配套软件发送切换成功标志;
(9.5)目标对象程序完成初始化,打开硬件外部中断,执行预定逻辑。
9.根据权利要求8所述的一种飞行参数自适应的嵌入式软件内存数据动态加载方法,其特征在于:所述步骤(9.2)中,所述全局变量包括飞行器计时时间和飞行器软件状态,重置时,将飞行器计时时间置为0,将飞行器软件状态置为初始状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910034066.5A CN109783279B (zh) | 2019-01-15 | 2019-01-15 | 一种飞行参数自适应的嵌入式软件内存数据动态加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910034066.5A CN109783279B (zh) | 2019-01-15 | 2019-01-15 | 一种飞行参数自适应的嵌入式软件内存数据动态加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783279A CN109783279A (zh) | 2019-05-21 |
CN109783279B true CN109783279B (zh) | 2022-07-29 |
Family
ID=66500521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910034066.5A Active CN109783279B (zh) | 2019-01-15 | 2019-01-15 | 一种飞行参数自适应的嵌入式软件内存数据动态加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783279B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977482B2 (en) * | 2011-09-28 | 2015-03-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Method and apparatus for generating flight-optimizing trajectories |
CN102520977B (zh) * | 2011-11-22 | 2014-11-19 | 北京空间飞行器总体设计部 | 一种航天器嵌入式运行程序加快上行方法 |
CN105955299B (zh) * | 2016-06-08 | 2018-12-21 | 北京宇航系统工程研究所 | 一种可重构测控、导航、飞行控制一体化系统及重构方法 |
-
2019
- 2019-01-15 CN CN201910034066.5A patent/CN109783279B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109783279A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4049910A1 (en) | Automatic driving control system, control method and device | |
US20220315021A1 (en) | Autonomous driving control system and control method and device | |
US4890284A (en) | Backup control system (BUCS) | |
EP3249534B1 (en) | Vehicle control device | |
CN108415718B (zh) | 一种应用于星载软件在线更新的BootLoader设计方法 | |
US11392368B2 (en) | Electronic control system for updating circuit | |
JP2003517668A (ja) | クリティカル・システムのためのフェイル・セーフ・プロセスの実行、監視、および出力の制御のためのシステムおよび方法 | |
EP3301526B1 (en) | Controller, control method, and program | |
WO2014183557A1 (zh) | 一种星敏感器在轨维护方法 | |
WO2015079725A1 (ja) | プログラマブルコントローラ | |
US7716524B2 (en) | Restarting an errored object of a first class | |
CN109783279B (zh) | 一种飞行参数自适应的嵌入式软件内存数据动态加载方法 | |
WO2017123220A1 (en) | Serial bootloading of power supplies | |
JPH11514124A (ja) | オペレーティングシステムをロードする方法 | |
CN109885331A (zh) | 软件升级方法、控制方法、系统、存储介质及电子设备 | |
CN111273928B (zh) | 一种自升级的bootloader设计方法 | |
CN110422343B (zh) | 一种卫星上姿轨控计算机的在轨维护方法 | |
CN109766116B (zh) | 一种基于can通讯的多核控制组件在线引导升级方法 | |
US7711985B2 (en) | Restarting an errored object of a first class | |
CN113051007B (zh) | 星务软件快速引导装置及方法 | |
US11526137B2 (en) | Operation verification program, operation synchronization method, and error detection apparatus | |
CN111488168B (zh) | 一种基于boot二次加载的武器系统控制软件安全升级方法 | |
JP2006059382A (ja) | プログラマブルコントローラ用ユニット及びメモリ自動復旧方法 | |
CN116155965B (zh) | 一种全方向amr的多级控制方法 | |
JP2002236503A (ja) | 車両用電子制御装置 |
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 |