CN113687871B - 一种星载微处理器启动防死锁方法及装置 - Google Patents
一种星载微处理器启动防死锁方法及装置 Download PDFInfo
- Publication number
- CN113687871B CN113687871B CN202110591311.XA CN202110591311A CN113687871B CN 113687871 B CN113687871 B CN 113687871B CN 202110591311 A CN202110591311 A CN 202110591311A CN 113687871 B CN113687871 B CN 113687871B
- Authority
- CN
- China
- Prior art keywords
- program
- loaded
- version
- satellite
- starting
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000001514 detection method Methods 0.000 claims abstract description 47
- 238000012937 correction Methods 0.000 claims abstract description 37
- 238000011068 loading method Methods 0.000 claims abstract description 36
- 238000013523 data management Methods 0.000 claims abstract description 9
- 230000009191 jumping Effects 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 12
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000002265 prevention Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 18
- 238000012423 maintenance Methods 0.000 description 10
- 230000007547 defect Effects 0.000 description 7
- 239000002245 particle Substances 0.000 description 6
- LMDZBCPBFSXMTL-UHFFFAOYSA-N 1-ethyl-3-(3-dimethylaminopropyl)carbodiimide Chemical compound CCN=C=NCCCN(C)C LMDZBCPBFSXMTL-UHFFFAOYSA-N 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000036039 immunity Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003471 anti-radiation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种星载微处理器启动防死锁方法,在地面时,在卫星上选择一个星上设备,在其PROM中预存启动软件,NorFlash上预存初始程序;卫星上天后,地面通过上行遥控通道向星载数据管理设备发送版本指示指令;星载数据管理设备在1秒内向星上设备发送4次复位脉冲;星上设备的FPGA软件根据接收的复位脉冲数在与启动软件版本指示握手区写入加载程序版本的指示信息;据此以按位三取二检错纠错的方式读取并组合出一份正确的待加载程序加载到SRAM中程序运行区,并跳转PC指针到加载目标地址处启动程序运行。本发明同时提供一种星载微处理器启动防死锁装置。本发明极大程度地提高了加载的可靠性,并彻底解决了启动死锁的可能。
Description
技术领域
本发明属于星载软件加载启动领域,涉及一种星载微处理器启动防死锁方法及装置。
背景技术
航天器星载软件启动一般有两种方式:设备上电后星载软件无需加载直接在存储空间启动运行、设备上电后启动程序将星载软件从存储空间加载到RAM 区启动运行。
设备上电后星载软件无需加载直接在存储空间启动运行,这类启动方式下的星载软件功能简单,任务单一,程序规模小,所使用处理器简单、资源匮乏,代码所需的存储容量要求不高,目前单粒子免疫、抗辐照能力强的PROM(存储容量一般为8K)能满足使用要求,程序一旦烧录,不会再被改变,存储在这种PROM并在其中运行的星载软件在恶劣电磁空间环境中不会被单粒子打翻出错,运行相对稳定可靠,但是缺点是无法满足复杂任务和强大功能要求,仅适合简单任务,且不支持在线编程无法实现星载软件在轨维护及功能更新。
设备上电后启动程序将星载软件从存储空间加载到RAM区启动运行,这类通过启动软件加载运行的启动方式下的星载软件功能比较复杂,任务繁多,程序规模大,所要求的处理器也相对复杂、资源相对丰富,代码所需的存储容量较大,目前单粒子免疫、抗辐照能力强的PROM无法满足星载软件存储容量的要求,这类星载软件只能存储在存储容量比较大的EEPROM或Flash中。这种启动方式优点:星载软件可以完成复杂的任务,支持软件在轨维护更新功能,缺点是EEPROM或Flash在恶劣电磁空间环境中容易被单粒子打翻,且其抗辐照能力差,启动软件仅简单将星载软件从EEPROM或Flash中加载的 RAM中,而不采取相应的预防措施,则可能会出现加载已经被打翻软件而无法运行的情况;当在轨维护或功能更新时,因上注过程中某种原因上注程序无法运行导致死锁进而引起设备失效的可能。
专利“一种卫星星载软件的启动方法”(201710018306.3),公开了地面压缩软件对星载软件的目标码进行多重无损压缩后存储在可编程只读存储器 (PROM)中,星载计算机上电或复位后,启动程序将可编程只读存储器中存储的星载软件压缩数据解压还原至静态随机存储器(SRAM)并运行。该专利不足之处在于:目前宇航级单粒子免疫抗辐照能力强的PROM器件存储容量较小,只有8K字节,该专利只适合功能简单单一的微小型软件,对于功能强大的大中型软件则无法满足存储容量的要求。PROM无法在线编程,不支持在轨维护功能。
专利“一种支持地址重定向的星载软件动态加载方法”(201710996603.5),能够实现简单、高可靠和冗余的星载软件地址重定向加载方法。该专利不足之处在于:被加载原始数据出错时,会导致无法正常运行的故障发生,容错性差、可靠性相对较低。
专利“一种应用于星载软件在线更新的BootLoader设计方法”(201810262213.X),公开了一种应用于星载软件在线更新的BootLoader设计方法,基于Cortex-M4的微处理器,将片上FLASH分为BootLoader程序区、标志位区、用户代码区,利用外部扩展的NORFLASH和SRAM(Staitic Random-Access Memory静态随机存取存储器)来接收和存储地面站传输待更新的程序文件,并根据地面站的指令判断是否进行更新。该专利不足之处在于:仅具备在线更新及加载启动功能,容错性差。
文献“基于抗辐照龙芯的星载计算机容错启动研究”(计算机科学2016 43 (Z2))提供星载软件容错启动的方法,该启动方法将硬件冗余、检错纠错和刷新技术相结合,设计了一种以龙芯1E处理器为核心且使用FLASH存储引导程序的新型容错星载计算机结构。在对存储器进行冗余备份的基础上,采用硬件EDAC和刷新技术提高了存储器数据的可靠性,并提出了一种星载计算机高可靠容错启动方案。该方案通过利用硬件冗余资源和软件备份屏蔽了存在故障的存储芯片及出错软件,从而引导星载计算机正常启动,该方案有效地屏蔽了常见的星载计算机启动故障,提高了星载计算机的可靠性。该文献星载软件容错启动的方法不足之处在于:采用EDAC和定时刷新检错纠错,仅能实现最多 2位的检错和纠正1位错误,检错纠错能力不强;对硬件资源要求高。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提出一种星载微处理器启动防死锁方法及装置。
本发明解决技术的方案是:
一种星载微处理器启动防死锁方法,该方法的步骤包括:
(1)卫星上天之前,在地面时,在卫星上选择一个星上设备,该星上设备具有PROM、NorFlash、FPGA和星载微处理器,在该星上设备的PROM中预存启动软件,在该星上设备的NorFlash上预存初始程序;
(2)卫星上天后,地面通过上行遥控通道向星载数据管理设备发送版本指示指令;
(3)星载数据管理设备接收到版本指示指令后,在1秒内向步骤(1)选择的星上设备发送4次复位脉冲;
(4)若星上设备的FPGA软件在1秒内检测到4次或4次以上复位脉冲,则在与启动软件版本指示握手区写入使用初始版本的指示信息;若在1秒内未检测到4次或4次以上复位脉冲,则在与启动软件版本指示握手区写入自行抉择加载程序版本的指示信息;
(5)根据与启动软件版本指示握手区的加载程序版本信息确定待加载程序的源地址,读出待加载程序的大小,根据待加载程序大小和源地址,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区,并跳转PC指针到加载目标地址处启动程序运行,从而实现所选择星上设备的星载微处理器防死锁启动。
所述步骤(1)中,初始程序预存三份。
所述步骤(5)中,读出待加载程序大小的方式如下:
根据加载程序版本指示信息,确定三份待加载程序的源地址;
从三份待加载程序的源地址开始处,读出待加载程序的大小,对读出的三份大小值进行比对,若三份中至少有两份相同,则取相同值中一个作为待加载程序的大小;若三份大小值各不相同,则对三份大小值按位进行比较,取每一位两份相同值的数作为该位的值,依次类推把所有位比较完后,组合出一个正确的待加载程序大小。
所述步骤(5)中,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区的实现方式如下:
分别对三份待加载程序的源地址递增,从递增后的地址中读取三份待加载程序的第一个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
然后三份待加载程序的源地址再次递增,从递增后的地址中读取三份待加载程序的第二个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
以此类推,直到把待加载程序的数据都读出并写入到SRAM中程序运行区对应位置。
所述步骤(4)中,星上设备的FPGA在与启动软件版本指示握手区写入指示指令之前,均需要对星载微处理器及相关外设复位。
一种星载微处理器启动防死锁装置,包括复位指令检测处理模块、版本选择决策模块以及按位三取二检错纠错加载启动模块;
复位指令检测处理模块:由FPGA软件实现,接收地面遥控上来的版本指示指令,判断是否在1秒内接收到了4次以上复位脉冲,若是则在与启动软件版本指示握手区写入使用初始版本的指示信息;否则在与启动软件版本指示握手区写入自行抉择加载程序版本的指示信息;
版本选择决策模块:读取与启动软件版本指示握手区的指示信息,若为使用初始版本,则选择加载初始程序版本,否则读取新版程序存储区存储标识,若该标识设备上存有最新版本程序,则选择加载最新程序版本,否则选择加载初始程序版本。
按位三取二检错纠错加载启动模块:根据与启动软件版本指示握手区的加载程序版本信息确定待加载程序的源地址,读出待加载程序的大小,根据待加载程序大小和源地址,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区,并将PC指针跳转到程序运行区首地址。
所述按位三取二检错纠错加载启动模块的具体实现方式如下:
根据加载程序版本指示信息,确定三份待加载程序的源地址;
从三份待加载程序的源地址开始处,读出待加载程序的大小,对读出的三份大小值进行比对,若三份中至少有两份相同,则取相同值中一个作为待加载程序的大小;若三份大小值各不相同,则对三份大小值按位进行比较,取每一位两份相同值的数作为该位的值,依次类推把所有位比较完后,组合出一个正确的待加载程序大小;
分别对三份待加载程序的源地址递增,从递增后的地址中读取三份待加载程序的第一个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
然后三份待加载程序的源地址再次递增,从递增后的地址中读取三份待加载程序的第二个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
以此类推,直到把待加载程序的数据都读出并写入到SRAM中程序运行区对应位置;
然后将PC指针跳转到程序运行区首地址,启动程序运行。
复位指令检测处理模块在与启动软件版本指示握手区写入指示信息之前,均需要对星载微处理器及相关外设复位。
本发明与现有技术相比的有益效果是:
(1)本发明由于启动软件功能相对单一,软件规模小,将启动软件存储在宇航级单粒子免疫抗辐照能力强的PROM器件,保证了启动软件能不受恶劣电磁空间环境中影响正常运行。
(2)本发明地面预存初始程序。确保初始版本启动及运行正确无误,保证了设备最基本功能实现,提高了星载设备可靠性和安全性,防止星载设备故障失效的可能。
(3)本发明采用了对被加载软件按位三取二检错纠错功能,首先对整个数据字进行三取二比对,当整个数据字正确时,直接使用数据,而当比对有误时,再按位比较并纠错,既保证了对数据每一位检错纠错,组合出一份正确可正常运行的程序,又极大地提高了三取二运行效率,最大程度地提高了加载的可靠性。
(4)本发明在星载设备中至少预存1个程序版本,当星载设备中只有一个程序版本即初始版本时,自动加载运行初始版本;当星载设备中预存了2个程序版本时,采用类windows启动模式,在无人工干预的情况下默认启动最新版本,自动加载运行最新版本(类windows正常模式),不会给飞控人员增加额外负担;当发现最新版本由于某种原因无法运行时,则采用人工干预方式切换到初始版本(类windows安全模式),防止了自动反复加载启动最新版本而又无法运行的死锁故障;
(5)本发明中启动软件能够选择加载版本,支持星载软件在轨维护及更新功能,成为星载软件在轨维护及更新功能成功实现必不可少的部分。
(6)本发明将加载启动过程中产生的检错纠错结果、实际加载的程序版本传递给星载软件,然后遥测回地面,便于飞控人员掌握星载软件长期存储情况及当前运行版本。
(7)本发明中作为一种星载软件启动设计方法,被加载数据无限制,各版本星载软件存储地址、加载源地址、目标地址、握手地址、握手标识等可以重定位,故该方法可以直接应用于所有航天器设备加载启动软件上,适用范围广,具有通用性价值。
附图说明
图1为本发明一种星载微处理器启动防死锁方法数据流及模块框图;
图2为复位指令检测处理模块实现流程图;
图3为版本选择决策模块实现流程图;
图4为按位三取二检错纠错加载启动模块实现流程图。
具体实施方式
下面结合附图对本发明作进一步阐述。
本发明解决技术问题的是:为了提高加载可靠性,预防恶劣空间电磁环境长期对存储在Flash或EEPROM中的星载软件的破坏,解决由于某种原因软件无法运行而导致设备失效的情况,对现有的通用启动软件进行了改进,增加了检错纠错功能和“类windows启动”的人工干预版本切换功能,极大程度地提高了加载的可靠性,并彻底解决了启动死锁的可能。
本发明提供一种星载微处理器启动防死锁方法,该方法的步骤包括:
(1)卫星上天之前,在地面时,在卫星上选择一个星上设备,该星上设备具有PROM、NorFlash、FPGA和星载微处理器,在该星上设备的PROM中预存启动软件,在该星上设备的NorFlash上预存初始程序,初始程序预存三份;
(2)卫星上天后,地面通过上行遥控通道向星载数据管理设备发送版本指示指令;
(3)星载数据管理设备接收到版本指示指令后,在1秒内向步骤(1)选择的星上设备发送4次复位脉冲;
(4)若星上设备的FPGA在1秒内检测到4次或4次以上复位脉冲,则对星载微处理器及相关外设复位,在与启动软件版本指示握手区写入使用初始版本的指示信息;若在1秒内未检测到4次或4次以上复位脉冲,则对星载微处理器及相关外设复位,在与启动软件版本指示握手区写入自行抉择加载程序版本的指示信息;
(5)根据与启动软件版本指示握手区的加载程序版本信息确定待加载程序的源地址,读出待加载程序的大小,根据待加载程序大小和源地址,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区,并跳转PC指针到加载目标地址处启动程序运行,从而实现所选择星上设备的星载微处理器防死锁启动。
具体实现方式如下:
根据加载程序版本指示信息,确定三份待加载程序的源地址;
从三份待加载程序的源地址开始处,读出待加载程序的大小,对读出的三份大小值进行比对,若三份中至少有两份相同,则取相同值中一个作为待加载程序的大小;若三份大小值各不相同,则对三份大小值按位进行比较,取每一位两份相同值的数作为该位的值,依次类推把所有位比较完后,组合出一个正确的待加载程序大小。
分别对三份待加载程序的源地址递增,从递增后的地址中读取三份待加载程序的第一个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
然后三份待加载程序的源地址再次递增,从递增后的地址中读取三份待加载程序的第二个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
以此类推,直到把待加载程序的数据都读出并写入到SRAM中程序运行区对应位置。
如图1所示,本发明一种星载微处理器启动防死锁方法由复位指令检测处理模块1、版本选择决策模块2、按位三取二检错纠错加载启动模块3共3个模块实现。
图1中,星载数据管理设备处理模块接收地面上注的版本指示指令,然后向复位指令检测处理模块发送复位脉冲。
复位指令检测处理模块是由FPGA软件实现,接收OC型复位脉冲,判断是否在1秒内接收到了4次(含4次)以上复位指令,若是则为切换运行程序到初始版本的人工干预指令,FPGA软件给启动软件传递加载初始版本指示信息(例如:0x55555555为加载初始版本,默认为0x0,加载版本由启动软件自行决定),否则为正常复位指令,给设备进行复位操作,FPGA软件给启动软件传递自行抉择加载程序版本的指示信息。如图2所示。
版本选择决策模块首先读取与复位指令检测处理模块约定的与启动软件版本指示握手区地址,若读数为0x55555555,则选择加载版本为初始程序,否则读取新版程序存储区存储标识,判断是否为0x000055AA,若是则设备上存有最新版本(已存储3份),则选择加载最新版本,否则选择加载初始程序版本。如图3所示。
按位三取二检错纠错加载启动模块根据版本选择决策模块选择的版本,确定被加载程序的三个区域的起始地址,读取被加载程序的大小并对其进行按位三取二判断组合出一份正确的程序大小,被加载程序的三个区域的源地址递增,然后根据程序大小,分别从三个区域的被加载程序递增后的地址读取数据,进行三取二判断,若至少有两份相同则取其一份,若三份各不相同,则对读取的数据进行按位三取二组合,最后结果取组合后的数据,将组合后的数据存储在 SRAM程序运行区起始地址,加载目标地址递增,依次规律根据被加载长度将整个程序读取完,将组合后的数据全部加载到SRAM运行区,并将PC指针跳转到程序运行区首地址。如图4所示。
表1所示为初始程序存储格式。“长度”字段不包含长度自身,仅指程序代码的实际大小,具体见表1中的说明和示例。
表2所示为新版程序存储格式。“存储标识”字段表示该区域是否存储了新版程序;“长度”字段不包含长度自身,仅指程序代码的实际大小,具体见表1中的说明和示例。
表1初始程序存储格式
表2新版程序存储格式
本发明一种微处理器启动防死锁方法兼顾了通用的启动软件加载星载软件启动运行的优点,同时又增加了检错纠错和防死锁功能,解决了加载后无法运行甚至导致设备失效的问题,极大地提高了加载启动的可靠性。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (4)
1.一种星载微处理器启动防死锁方法,其特征在于该方法的步骤包括:
(1)卫星上天之前,在地面时,在卫星上选择一个星上设备,该星上设备具有PROM、NorFlash、FPGA和星载微处理器,在该星上设备的PROM中预存启动软件,在该星上设备的NorFlash上预存初始程序;
(2)卫星上天后,地面通过上行遥控通道向星载数据管理设备发送版本指示指令;
(3)星载数据管理设备接收到版本指示指令后,在1秒内向步骤(1)选择的星上设备发送4次复位脉冲;
(4)若星上设备的FPGA软件在1秒内检测到4次或4次以上复位脉冲,则在与启动软件版本指示握手区写入使用初始版本的指示信息;若在1秒内未检测到4次或4次以上复位脉冲,则在与启动软件版本指示握手区写入自行抉择加载程序版本的指示信息;
(5)根据与启动软件版本指示握手区的加载程序版本信息确定待加载程序的源地址,读出待加载程序的大小,根据待加载程序大小和源地址,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区,并跳转PC指针到加载目标地址处启动程序运行,从而实现所选择星上设备的星载微处理器防死锁启动;
所述步骤(1)中,初始程序预存三份;
所述步骤(5)中,读出待加载程序大小的方式如下:
根据加载程序版本指示信息,确定三份待加载程序的源地址;
从三份待加载程序的源地址开始处,读出待加载程序的大小,对读出的三份大小值进行比对,若三份中至少有两份相同,则取相同值中一个作为待加载程序的大小;若三份大小值各不相同,则对三份大小值按位进行比较,取每一位两份相同值的数作为该位的值,依次类推把所有位比较完后,组合出一个正确的待加载程序大小;
所述步骤(5)中,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区的实现方式如下:
分别对三份待加载程序的源地址递增,从递增后的地址中读取三份待加载程序的第一个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
然后三份待加载程序的源地址再次递增,从递增后的地址中读取三份待加载程序的第二个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
以此类推,直到把待加载程序的数据都读出并写入到SRAM中程序运行区对应位置。
2.根据权利要求1所述的一种星载微处理器启动防死锁方法,其特征在于,所述步骤(4)中,星上设备的FPGA在与启动软件版本指示握手区写入指示指令之前,均需要对星载微处理器及相关外设复位。
3.一种星载微处理器启动防死锁装置,其特征在于:包括复位指令检测处理模块(1)、版本选择决策模块(2)以及按位三取二检错纠错加载启动模块(3);
复位指令检测处理模块(1):由FPGA软件实现,接收地面遥控上来的版本指示指令,判断是否在1秒内接收到了4次以上复位脉冲,若是则在与启动软件版本指示握手区写入使用初始版本的指示信息;否则在与启动软件版本指示握手区写入自行抉择加载程序版本的指示信息;
版本选择决策模块(2):读取与启动软件版本指示握手区的指示信息,若为使用初始版本,则选择加载初始程序版本,否则读取新版程序存储区存储标识,若标识设备上存有最新版本程序,则选择加载最新程序版本,否则选择加载初始程序版本;
按位三取二检错纠错加载启动模块(3):根据与启动软件版本指示握手区的加载程序版本信息确定待加载程序的源地址,读出待加载程序的大小,根据待加载程序大小和源地址,以按位三取二检错纠错的方式组合出一份正确的待加载程序加载到SRAM中程序运行区,并将PC指针跳转到程序运行区首地址;
初始程序预存三份;
所述按位三取二检错纠错加载启动模块(3)的具体实现方式如下:
根据加载程序版本指示信息,确定三份待加载程序的源地址;
从三份待加载程序的源地址开始处,读出待加载程序的大小,对读出的三份大小值进行比对,若三份中至少有两份相同,则取相同值中一个作为待加载程序的大小;若三份大小值各不相同,则对三份大小值按位进行比较,取每一位两份相同值的数作为该位的值,依次类推把所有位比较完后,组合出一个正确的待加载程序大小;
分别对三份待加载程序的源地址递增,从递增后的地址中读取三份待加载程序的第一个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
然后三份待加载程序的源地址再次递增,从递增后的地址中读取三份待加载程序的第二个数据,对读出的3个数据以按位三取二检错纠错的方式组合出一个正确的数据,写入到SRAM中程序运行区对应位置;
以此类推,直到把待加载程序的数据都读出并写入到SRAM中程序运行区对应位置;
然后将PC指针跳转到程序运行区首地址,启动程序运行。
4.根据权利要求3所述的一种星载微处理器启动防死锁装置,其特征在于,复位指令检测处理模块(1)在与启动软件版本指示握手区写入指示信息之前,均需要对星载微处理器及相关外设复位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110591311.XA CN113687871B (zh) | 2021-05-28 | 2021-05-28 | 一种星载微处理器启动防死锁方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110591311.XA CN113687871B (zh) | 2021-05-28 | 2021-05-28 | 一种星载微处理器启动防死锁方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113687871A CN113687871A (zh) | 2021-11-23 |
CN113687871B true CN113687871B (zh) | 2024-05-03 |
Family
ID=78576505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110591311.XA Active CN113687871B (zh) | 2021-05-28 | 2021-05-28 | 一种星载微处理器启动防死锁方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113687871B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521062A (zh) * | 2011-11-29 | 2012-06-27 | 西安空间无线电技术研究所 | 可全面在线自检测单粒子翻转的软件容错方法 |
CN103473156A (zh) * | 2013-09-24 | 2013-12-25 | 北京控制工程研究所 | 一种基于实时操作系统的星载计算机三机热备份容错方法 |
CN106648809A (zh) * | 2017-01-10 | 2017-05-10 | 上海航天控制技术研究所 | 一种卫星星载软件的启动方法 |
CN107515800A (zh) * | 2017-07-17 | 2017-12-26 | 上海卫星工程研究所 | 基于软件冗余的星载软件可靠性设计系统及方法 |
CN108446189A (zh) * | 2018-06-12 | 2018-08-24 | 中国科学院上海技术物理研究所 | 一种星载嵌入式软件容错启动系统及方法 |
CN109189500A (zh) * | 2018-08-22 | 2019-01-11 | 航天东方红卫星有限公司 | 星载计算机应用软件的下载存储与引导加载方法及系统 |
CN110780933A (zh) * | 2019-10-23 | 2020-02-11 | 中国电子科技集团公司第五十四研究所 | 一种支持在轨软件重构功能的星载多版本引导设备 |
CN111857884A (zh) * | 2020-07-24 | 2020-10-30 | 中国科学院微小卫星创新研究院 | 高可靠星载软件启动系统及方法 |
CN112486577A (zh) * | 2020-11-04 | 2021-03-12 | 北京遥测技术研究所 | 一种新型的cpu加载方法 |
-
2021
- 2021-05-28 CN CN202110591311.XA patent/CN113687871B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521062A (zh) * | 2011-11-29 | 2012-06-27 | 西安空间无线电技术研究所 | 可全面在线自检测单粒子翻转的软件容错方法 |
CN103473156A (zh) * | 2013-09-24 | 2013-12-25 | 北京控制工程研究所 | 一种基于实时操作系统的星载计算机三机热备份容错方法 |
CN106648809A (zh) * | 2017-01-10 | 2017-05-10 | 上海航天控制技术研究所 | 一种卫星星载软件的启动方法 |
CN107515800A (zh) * | 2017-07-17 | 2017-12-26 | 上海卫星工程研究所 | 基于软件冗余的星载软件可靠性设计系统及方法 |
CN108446189A (zh) * | 2018-06-12 | 2018-08-24 | 中国科学院上海技术物理研究所 | 一种星载嵌入式软件容错启动系统及方法 |
CN109189500A (zh) * | 2018-08-22 | 2019-01-11 | 航天东方红卫星有限公司 | 星载计算机应用软件的下载存储与引导加载方法及系统 |
CN110780933A (zh) * | 2019-10-23 | 2020-02-11 | 中国电子科技集团公司第五十四研究所 | 一种支持在轨软件重构功能的星载多版本引导设备 |
CN111857884A (zh) * | 2020-07-24 | 2020-10-30 | 中国科学院微小卫星创新研究院 | 高可靠星载软件启动系统及方法 |
CN112486577A (zh) * | 2020-11-04 | 2021-03-12 | 北京遥测技术研究所 | 一种新型的cpu加载方法 |
Non-Patent Citations (9)
Title |
---|
Fatemeh SalarKaleji ; Aboulfazl Dayyani.Fault detection, isolation and recovery (FDIR) in satellite onboard software.2013 6th International Conference on Recent Advances in Space Technologies (RAST).2013,329-332. * |
Li Pan ; Wang Shaojun ; Ma Ning ; Liu Datong.A fault-tolerant program memory unit for on-board computer.2017 13th IEEE International Conference on Electronic Measurement & Instruments (ICEMI).2018,325-331. * |
Reliability-oriented design of on-board satellite boot software against single event effects;Óscar R. Polo; Jonatan Sánchez, Antonio da Silva;Journal of Systems Architecture;20201028;第114卷(第2021期);1-13 * |
一种基于文件的嵌入式星载软件在轨升级方法;韦涌泉;董振辉;张红军;;单片机与嵌入式系统应用;20180501(第05期);38-41 * |
一种星载嵌入式软件容错启动系统设计;王钊;李勇;崔维鑫;雒莎;电子设计工程;20190420;第27卷(第08期);1-5 * |
一种星载计算机操作系统容错引导算法研究;辛宁;邱乐德;张立华;张宏飞;;宇航学报;20130630(第06期);82-87 * |
基于动态加载机制的星载计算机可靠性增强技术研究;于康;中国优秀硕士学位论文全文数据库 (信息科技辑);20111215(第S2期);I138-813 * |
立方体卫星星上软件在线重构技术研究;李剑锋;中国优秀硕士学位论文全文数据库(工程科技Ⅱ辑);20200615(第06期);C031-299 * |
高分七号卫星图像压缩FPGA设计与实现技术;韩宇;袁素春;张建华;郑小松;航天器工程.;20200615;第29卷(第03期);169-176 * |
Also Published As
Publication number | Publication date |
---|---|
CN113687871A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6965989B1 (en) | System and method for fast reboot of a file server | |
US7444543B2 (en) | Data control unit capable of correcting boot errors, and corresponding self-correction method | |
CN106873990B (zh) | 嵌入式系统ram损坏模式下的多分区引导方法 | |
CN103365696A (zh) | Bios镜像文件获取方法及装置 | |
CN102541690A (zh) | 一种智能卡及其恢复数据方法 | |
CN114860650A (zh) | 一种多片sram型fpga在轨配置管理装置 | |
CN106201608A (zh) | 计算机uefi固件更新方法 | |
CN105760165A (zh) | 一种mcu自我备份加载刷新的方法 | |
CN109933340A (zh) | 一种航天器eeprom基于页模式的在轨写入和自检方法 | |
CN113687871B (zh) | 一种星载微处理器启动防死锁方法及装置 | |
US11099832B2 (en) | Method for updating a bootloader of a controller of a light | |
CN112306726B (zh) | 一种抗单粒子翻转系统及方法 | |
CN105825126A (zh) | 一种文件保护方法及装置 | |
CN106980557B (zh) | 一种基于存储分区的星载软件异构备份方法 | |
CN103890713A (zh) | 用于管理处理系统内的寄存器信息的装置及方法 | |
CN112131044A (zh) | 一种卫星用计算机应急系统及其方法 | |
CN105988885B (zh) | 基于补偿回滚的操作系统故障自恢复方法 | |
CN110727544A (zh) | 一种基于工业器件的微小卫星星载计算机系统 | |
CN113867210A (zh) | 多路星载嵌入式系统软件在轨重构控制系统及控制方法 | |
CN113821240B (zh) | 固件升级方法、电子设备、存储介质及信号锁存电路 | |
CN110674046B (zh) | 提高星载嵌入式文件系统可靠性的方法 | |
CN111857884B (zh) | 高可靠星载软件启动系统及方法 | |
CN111159123B (zh) | 一种嵌入式可靠参数储存文件系统及方法 | |
US11294807B2 (en) | Delayed write failure logging | |
CN111930393A (zh) | 一种用于星载软件的在轨编程系统、方法及电路 |
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 |