两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種針對(duì)dsp平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法

文檔序號(hào):10654175閱讀:753來源:國知局
一種針對(duì)dsp平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法
【專利摘要】一種針對(duì)DSP平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法,主要是依據(jù)航天器上軟件設(shè)計(jì)時(shí)預(yù)先設(shè)定的鉤子函數(shù),編寫相應(yīng)的在軌維護(hù)源代碼,通過編譯鏈接文件(CMD文件)指定在軌維護(hù)注入?yún)^(qū),修改編譯生成的二進(jìn)制碼的返回地址,使在軌維護(hù)注入碼執(zhí)行完畢后能夠正確返回原在軌軟件繼續(xù)執(zhí)行。本發(fā)明方法可以避免靜態(tài)在軌維護(hù)方案中系統(tǒng)需要重新加電的問題以及動(dòng)態(tài)在軌維護(hù)方案中受限于存儲(chǔ)空間和帶寬無法進(jìn)行大規(guī)模軟件整體更替的問題,實(shí)現(xiàn)了航天器在軌DSP軟件補(bǔ)丁型的模塊級(jí)在軌維護(hù)功能。
【專利說明】
-種針對(duì)DSP平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于航天器在軌維護(hù)領(lǐng)域,設(shè)及一種針對(duì)美國德州儀器(TI)公司 TMS320C6000系列DSP平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法。
【背景技術(shù)】
[0002] 航天器軟件的在軌維護(hù)能力是保證航天器長(zhǎng)壽命不可或缺的手段,與硬件的冗余 備份相比,運(yùn)種方法更經(jīng)濟(jì)、靈活。通過軟件在軌維護(hù)來提高航天器的壽命和可靠性的方式 越來越受到重視。
[0003] DSP(數(shù)字信號(hào)處理器)在航天領(lǐng)域的應(yīng)用越來越廣泛,DSP軟件的可維護(hù)性直接影 響了系統(tǒng)的穩(wěn)定性。目前,在航天領(lǐng)域針對(duì)DSP處理器軟件的在軌維護(hù)方法,文獻(xiàn)《制導(dǎo)與引 信》2011年第32卷第4期發(fā)表的"一種星載DSP軟件的在軌編程方法"中,提到通過修改引導(dǎo) 啟動(dòng)軟件代碼的方式實(shí)現(xiàn)在軌軟件的升級(jí)。該方法設(shè)計(jì)思想可行,但前提條件是星載軟件 本身存儲(chǔ)在FLASH等可寫存儲(chǔ)器內(nèi),并且在軌維護(hù)軟件的啟動(dòng)需要系統(tǒng)重新上電加載,屬于 靜態(tài)的在軌維護(hù)方案。由于系統(tǒng)重新加電不利于系統(tǒng)控制的連續(xù)性,因此靜態(tài)的軟件在軌 維護(hù)方案在實(shí)際的航天器控制系統(tǒng)軟件設(shè)計(jì)中并不適用。而且當(dāng)前航天器軟件主要是固化 在PROM存儲(chǔ)器中,在軌時(shí)無法改寫,因此DSP軟件的在軌維護(hù)方案需要采取動(dòng)態(tài)在軌維護(hù)。
[0004] 針對(duì)DSP軟件動(dòng)態(tài)在軌維護(hù),僅在文獻(xiàn)《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》2011年第11卷 第4期發(fā)表的"DSP空間相機(jī)控制器的在軌程序注入"中有所設(shè)及,但是該文獻(xiàn)描述的DSP軟 件在軌重注方法面向的是TMS320VC33系列DSP處理器,且該方法實(shí)現(xiàn)的在軌維護(hù)屬于在軌 程序替代型,即在軌維護(hù)程序啟動(dòng)后,將完全替換掉原在軌軟件。由于一般航天器軟件的規(guī) 模比較大,在實(shí)際的在軌維護(hù)時(shí),該替代型維護(hù)方法往往受限于航天器預(yù)留的在軌注入空 間和星地之間數(shù)據(jù)上行注入帶寬,具有一定的局限性。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供了一種針對(duì)DSP平臺(tái)航天器 軟件的動(dòng)態(tài)在軌維護(hù)方法,避免靜態(tài)在軌維護(hù)方案中系統(tǒng)需要重新加電的問題W及動(dòng)態(tài)在 軌維護(hù)方案中受限于存儲(chǔ)空間和帶寬無法進(jìn)行大規(guī)模軟件整體更替的問題,實(shí)現(xiàn)了航天器 在軌DSP軟件補(bǔ)下型的模塊級(jí)在軌維護(hù)功能。
[0006] 本發(fā)明的技術(shù)解決方案是:一種針對(duì)DSP平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法,包 括如下步驟:
[0007] (1)依據(jù)在軌維護(hù)任務(wù)需求,選取距離航天器上DSP軟件所需維護(hù)的功能最近的具 有鉤子的函數(shù)作為在軌維護(hù)原函數(shù);所述的DSP為TMS320C6000系列DSP;
[000引(2)按照航天器注入?yún)^(qū)地址,修改原航天器上DSP軟件的鏈接命令文件,設(shè)定新的 段空間;
[0009] (3)在原航天器上DSP軟件的編譯環(huán)境下,根據(jù)在軌維護(hù)需求編寫相應(yīng)的在軌維護(hù) 源代碼,并通過預(yù)編譯偽指令將相應(yīng)的在軌維護(hù)源代碼指定到鏈接命令文件新增的段空 間;
[0010] (4)在原航天器上DSP軟件的編譯環(huán)境下,將原航天器上軟件源代碼與在軌維護(hù)源 代碼進(jìn)行聯(lián)合編譯,生成.out目標(biāo)文件,然后由.out目標(biāo)文件進(jìn)而生成.1 St鏈接文件,在 .1st鏈接文件中提取出在軌維護(hù)源代碼生成的指令碼片段;
[0011] (5)在所述指令碼片段中,找到函數(shù)返回的對(duì)應(yīng)匯編碼指令("B B3"),并判斷所述 的指令碼片段是對(duì)在軌維護(hù)原函數(shù)的整體替換還是部分替換,如果是采取在軌維護(hù)原函數(shù) 的整體替換方式,直接轉(zhuǎn)步驟(7);如果是采取在軌維護(hù)原函數(shù)的局部替換方式,則轉(zhuǎn)步驟 (6);
[0012] (6)梳理.1st鏈接文件中在軌維護(hù)原函數(shù)編譯生成的匯編碼指令,在被替換的匯 編碼指令中找出滿足如下條件的寄存器和堆找地址:被賦值且后面保留的匯編碼中使用該 寄存器和堆找地址,并且使用前未被賦予新值;將滿足上述條件的寄存器和堆找地址中的 值進(jìn)行變更,使其和原航天器上DSP軟件一致;
[0013] (7)在所述匯編碼指令("B B3")中,將函數(shù)返回地址寄存器B3的值修改為在軌維 護(hù)原函數(shù)中的返回目標(biāo)地址;
[0014] (8)將修改完畢的在軌維護(hù)匯編碼指令進(jìn)行編譯后,生成最終注入的在軌維護(hù)二 進(jìn)制指令碼,通過地面遙控注入到航天器注入?yún)^(qū),進(jìn)行航天器軟件的動(dòng)態(tài)在軌維護(hù)。
[0015] 本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
[0016] (1)本發(fā)明方法通過在軌動(dòng)態(tài)維護(hù)指令碼的生成,實(shí)現(xiàn)了航天器上軟件動(dòng)態(tài)替換 和還原,適應(yīng)了 PROM固化航天器軟件的應(yīng)用場(chǎng)景,避免了靜態(tài)在軌維護(hù)中系統(tǒng)重新加電的 問題;同時(shí)由于本發(fā)明方法屬于航天器在軌DSP軟件補(bǔ)下型的模塊升級(jí),在現(xiàn)有航天器預(yù)留 的在軌注入空間和星地之間數(shù)據(jù)上行注入帶寬情況下,可W靈活應(yīng)用;
[0017] (2)本發(fā)明方法通過在軌動(dòng)態(tài)維護(hù)指令碼的生成,能夠靈活指定返回的目標(biāo)地址, 既可W最大限度的利用原在軌航天器軟件,又同時(shí)減小了在軌維護(hù)指令碼規(guī)模,適應(yīng)了受 限于存儲(chǔ)器等硬件資源和上行注入帶寬約束的航天在軌DSP軟件的設(shè)計(jì);
[0018] (3)本發(fā)明方法在TMS320C6000系列DSP平臺(tái)航天器軟件在軌維護(hù)領(lǐng)域具有廣泛的 適用性。一方面該方法不局限于PROM固化航天器軟件的應(yīng)用場(chǎng)景,它同樣適用于化ASH/ 邸PR0M/MRAM等可擦寫存儲(chǔ)器類型的航天器軟件應(yīng)用場(chǎng)景;另一方面,該方法通過修改返回 目標(biāo)地址,同樣可W實(shí)現(xiàn)大規(guī)模軟件整體更替的情況。
【附圖說明】
[0019] 圖1為本發(fā)明方法的流程框圖。
【具體實(shí)施方式】
[0020] 本發(fā)明的基本思想是依據(jù)在軌維護(hù)需求,選取距離在軌軟件維護(hù)功能最近的具有 鉤子功能的函數(shù)作為在軌維護(hù)原函數(shù)。因?yàn)闉榱嗽鰪?qiáng)可維護(hù)性和可靠性,航天器軟件在設(shè) 計(jì)時(shí)會(huì)選擇一些函數(shù)預(yù)留好鉤子功能,W解決固化在PROM中的軟件的在軌維護(hù)問題。然而 并非每個(gè)函數(shù)都要預(yù)留鉤子功能,因?yàn)殂^子設(shè)置越多,系統(tǒng)開銷就越大。通常會(huì)選取頂層函 數(shù)、中斷處理函數(shù)及關(guān)鍵節(jié)點(diǎn)函數(shù)等類型的函數(shù)來預(yù)留鉤子。按照在軌維護(hù)要求,編寫好在 軌維護(hù)源代碼,利用DSP軟件編譯偽指令#9^肖111曰將編寫的在軌維護(hù)源代碼指定到注入?yún)^(qū)地 址,與原航天器上固化的軟件源代碼進(jìn)行聯(lián)合編譯,編譯完成后提取出在軌維護(hù)源代碼所 生成的指令碼片段,并修改該指令碼片段的最終返回指令,使其能夠返回到原航天器上軟 件的指定目標(biāo)地址(即航天器上軟件被替換的功能執(zhí)行完最終要跳轉(zhuǎn)的地址)繼續(xù)運(yùn)行,形 成最終的在軌維護(hù)二進(jìn)制指令碼。通過地面遙控實(shí)現(xiàn)航天器上軟件的動(dòng)態(tài)替換,并在執(zhí)行 完在軌維護(hù)指令碼后正確返回到原航天器上軟件繼續(xù)運(yùn)行的功能,運(yùn)樣就可W最大程度利 用原有的航天器上軟件,減小在軌維護(hù)注入碼上行的帶寬需求。
[0021] 如圖1所示,為本發(fā)明方法的流程框圖,主要步驟如下:
[0022] 1、依據(jù)在軌維護(hù)任務(wù)需求,選取距離航天器上軟件所需維護(hù)功能最近的具有鉤子 的函數(shù)作為在軌維護(hù)原函數(shù)。航天器軟件設(shè)計(jì)時(shí),鉤子設(shè)置越多,表明其軟件功能的可維護(hù) 性越好,但是相應(yīng)的因鉤子而帶來系統(tǒng)額外開銷越大。因此實(shí)際工程中,并非每個(gè)函數(shù)都預(yù) 留鉤子,鉤子的設(shè)置一般在可維護(hù)性和系統(tǒng)開銷之間采取折中方案,一般原則是選取頂層 函數(shù)、中斷處理函數(shù)及關(guān)鍵節(jié)點(diǎn)函數(shù)等類型的函數(shù)來預(yù)留鉤子。當(dāng)需要在軌維護(hù)時(shí),如果航 天器上軟件所需維護(hù)功能函數(shù)本身存在鉤子,則直接W該函數(shù)中的鉤子為基礎(chǔ)進(jìn)行在軌維 護(hù),否則需在該功能函數(shù)的上層函數(shù)進(jìn)行遞進(jìn)式查找,直到找到距離最接近的存在鉤子的 函數(shù),即作為在軌維護(hù)原函數(shù)。
[0023] 表1給出了在軌功能函數(shù)中鉤子的兩種實(shí)現(xiàn)示例。
[0024] 表1在軌DSP軟件功能函數(shù)中鉤子的實(shí)現(xiàn)示例
[0025]
[0026] 注:TR32_0bt 化 nc_ENA 化E、TR32JTO0KADDR、TR32J100KFLG 的功能均為從內(nèi)存固定 地址S區(qū)中讀數(shù)并進(jìn)行S取二,W增強(qiáng)可靠性;void(*prog)(void);為函數(shù)指針prog的全 局定義;ADDR_SRAM_0bt為在軌維護(hù)指令碼注入?yún)^(qū)起始地址。
[0027] 表1中描述了航天器上在軌軟件鉤子實(shí)現(xiàn)的兩種方式,運(yùn)兩種方式的基本原理是 一致的,均采用邏輯分支的執(zhí)行方式,即在軌函數(shù)根據(jù)在軌維護(hù)使能標(biāo)志來判斷執(zhí)行原在 軌功能實(shí)現(xiàn)分支或者注入的在軌維護(hù)功能實(shí)現(xiàn)分支。方式(b)是將方式(a)中在軌維護(hù)函數(shù) 指針prog的調(diào)用W新函數(shù)ObsmHook的形式進(jìn)行了封裝。方式(a)的優(yōu)點(diǎn)是能夠靈活的實(shí)現(xiàn) 在軌函數(shù)模塊的整體替換和局部替換,但是在軌維護(hù)注入指令碼的返回地址不固定,隨在 軌維護(hù)原函數(shù)的不同而不同,也隨整體、局部替換方式的不同而不同;方式(b)的優(yōu)點(diǎn)是所 有在軌維護(hù)原函數(shù)的在軌維護(hù)注入指令碼的返回地址固定,均為在軌維護(hù)鉤子函數(shù) ObsmHook的堆找釋放起始地址,但是該方式缺乏靈活性,只能實(shí)現(xiàn)在軌函數(shù)模塊的整體替 換,不能實(shí)現(xiàn)在軌函數(shù)模塊局部替換。在實(shí)際航天器軟件設(shè)計(jì)時(shí),一般采取方式(a),突出軟 件在軌維護(hù)的靈活性。
[00%] 2、按照注入?yún)^(qū)地址,修改原航天器上DSP軟件的鏈接命令文件(CMD文件),設(shè)定新 的段(section)空間,示例如表2所示。
[0029] 表2新增注入?yún)^(qū)段空間的CMD文件示例
[0030]
[0031] 表2中描述的是在原航天器上DSP軟件的鏈接命令文件(CMD文件)基礎(chǔ)上新增注入 區(qū)段空間后的文件示例。其中MEMORY和SECTIONS是CMD文件中必要的兩個(gè)偽指令,MEMORY用 來指定目標(biāo)存儲(chǔ)器配置,SECTIONS用來控制程序中段如何建立和分配。表2示例中"……"代 表省略了原航天器上DSP軟件的鏈接命令文件內(nèi)容,MEMORY結(jié)構(gòu)中"In ject_RAM: O = 013E000化,l=00002800h"表示目標(biāo)存儲(chǔ)器中的新增配置項(xiàng):起始地址為0xl3E0000(注: 0X13E0000為設(shè)定的在軌維護(hù)注入?yún)^(qū)起始地址示例),長(zhǎng)度為0x2800字節(jié)的存儲(chǔ)空間(注: 0x2800字節(jié)長(zhǎng)度根據(jù)工程實(shí)際自行設(shè)定,但是需大于在軌維護(hù)注入指令碼的所占空間); SECTIONS結(jié)構(gòu)中tempsec〉Inject_RAM"表不段名為.tempsec的段將分配到In ject_RAM指 定的存儲(chǔ)空間。
[0032] 依據(jù)在軌維護(hù)任務(wù)需求和選取的在軌維護(hù)原函數(shù),編寫在軌注入源代碼(C語言), 并在該源代碼文件中通過DSP預(yù)編譯偽指令"祁ragma C0DE_WCTI0N"或"祁ragma DATA_ SECTION"將編寫的在軌注入函數(shù)或數(shù)據(jù)指定到鏈接命令文件(CMD文件)新增的在軌維護(hù)注 入?yún)^(qū)起始地址所在的段內(nèi),如表2示例中段.tempsec。表3所示為在軌注入函數(shù)體0btFunc_ Inject通過偽指令。#pragma C0DE_SECTI0N(ObtF^mcJnjecttempsec")"將被編譯器分 配到段.tempsec的存儲(chǔ)空間。
[0033] 表3預(yù)編譯偽指令指定段空間示例
[0034]
[0(X3日]3、在DSP軟件的編譯環(huán)境CCS(Code Composer S化dio)下,對(duì)原有航天器上軟件代 碼和在軌維護(hù)代碼進(jìn)行聯(lián)合編譯,生成.out目標(biāo)文件,由.out目標(biāo)文件進(jìn)而生成.1 St鏈接 文件(可^使用撕5自帶的工具(1136^6義6,一般在0:5安裝目錄下/〔6000八旨1:〇〇13/13;[]1目錄 下)。在.1st鏈接文件中找到并提取在軌注入源代碼生成的指令碼片段。
[0036] 4、在提取的在軌注入源代碼生成的指令片段中,找到函數(shù)返回的對(duì)應(yīng)匯編碼指令 TB B3")。在TMS320C6000系列DSP軟件中,匯編碼B指令是跳轉(zhuǎn)指令,寄存器B3是函數(shù)的返 回地址寄存器,(巧B3")指令就是跳轉(zhuǎn)到B3寄存器值對(duì)應(yīng)的地址執(zhí)行。
[0037] 5、如果采取函數(shù)模塊整體替換方式,則直接轉(zhuǎn)步驟6,否則如果采取的是函數(shù)模塊 局部替換方式,即在軌注入的函數(shù)指令返回到航天器上在軌維護(hù)原函數(shù)的中間地址,則需 要梳理.1st鏈接文件中航天器上在軌維護(hù)原函數(shù)編譯生成的匯編碼指令。
[0038] 在航天器上在軌維護(hù)原函數(shù)編譯生成的匯編碼指令中,在被替換掉的匯編碼指令 中找出滿足如下條件的寄存器和堆找地址:被賦值且后面保留的匯編碼指令中使用該寄存 器和堆找地址,并且使用前未被賦予新值。滿足上述條件的寄存器和堆找地址中的值在在 軌維護(hù)注入函數(shù)指令返回前需要還原,使其和在軌注入前保持一致。
[0039] 如表4中示例所示,.1st鏈接文件中的指令格式顯示為對(duì)應(yīng)的=列:二進(jìn)制指令碼 對(duì)應(yīng)的絕對(duì)地址、二進(jìn)制指令碼及該二進(jìn)制指令碼對(duì)應(yīng)的匯編指令碼。示例中W航天器上 在軌維護(hù)原函數(shù)ObtFunc為例說明在軌函數(shù)模塊局部替換方式。根據(jù)在軌維護(hù)時(shí)原函數(shù)中 指令碼所起作用的不同,在軌維護(hù)原函數(shù)Obt化nc的指令碼可W分為如下6個(gè)指令碼塊:
[0040] a)在軌維護(hù)原函數(shù)開辟堆找指令塊:開辟在軌維護(hù)原函數(shù)Obt化nc的堆找空間,并 保存相關(guān)寄存器值的相關(guān)指令;
[0041] b)鉤子(跳轉(zhuǎn)指令)指令塊:判斷在軌維護(hù)原函數(shù)ObtFunc的在軌維護(hù)使能標(biāo)志,當(dāng) 使能時(shí),使執(zhí)行指令跳轉(zhuǎn)到相應(yīng)的在軌維護(hù)注入?yún)^(qū)起始地址開始執(zhí)行,否則繼續(xù)執(zhí)行在軌 維護(hù)原函數(shù)Obt化nc的后續(xù)指令;
[0042] C)在軌維護(hù)原函數(shù)被替換部分指令塊:在軌維護(hù)使能標(biāo)志使能時(shí),在軌維護(hù)原函 數(shù)Obt化nc指令碼中被替換掉部分的指令;
[0043] d)在軌維護(hù)原函數(shù)保留部分指令塊:在軌維護(hù)使能標(biāo)志使能時(shí),在軌維護(hù)原函數(shù) Obt化nc指令碼中位于被替換部分指令塊與函數(shù)釋放堆找指令塊之間的指令碼;
[0044] e)在軌維護(hù)原函數(shù)釋放堆找指令塊:釋放在軌維護(hù)原函數(shù)Obt化nc的堆找空間,并 還原相關(guān)寄存器值的相關(guān)指令;
[0045] f)在軌維護(hù)原函數(shù)返回語句指令塊:實(shí)現(xiàn)返回上層函數(shù)的指令碼。
[0046] 示例中W局部替換方式實(shí)現(xiàn)函數(shù)ObtFunc的在軌維護(hù),即W在軌注入函數(shù) ObtFuncJnject的指令碼替換掉函數(shù)ObtFunc中的"在軌維護(hù)原函數(shù)被替換部分指令塊", ObtFuncJnject指令執(zhí)行結(jié)束后需返回函數(shù)ObtFunc中的"在軌維護(hù)原函數(shù)保留部分指令 塊"起始地址(示例中為0x000119a0的地址)繼續(xù)執(zhí)行。由于采取局部替換的方式,梳理在軌 維護(hù)原函數(shù)ObtFunc的指令碼,其巧軌維護(hù)原函數(shù)被替換部分指令塊"中,寄存器A4、A5被 賦值,而在函數(shù)ObtFunc中的"在軌維護(hù)原函數(shù)保留部分指令塊"中,需要使用寄存器A4、A5 中的值,且使用前寄存器A4、A5未被賦予新值。因此在軌注入函數(shù)ObtFuncJnject的指令 碼,其函數(shù)返回指令碼("B.S2B3")前需要還原寄存器A4、A5中的值。參照函數(shù)ObtFunc"在軌 維護(hù)原函數(shù)被替換部分指令塊"中寄存器A4、A5的賦值指令碼,在ObtFuncJnject函數(shù)返回 指令碼("B.S2B3")前增加匯編碼指令("MVK.S1 0xffff849b,A5;MVK.Sl 0x2b9b,A4; MVKH.Sl 0x3d060000,A5;MVKH.Sl 0x86a100 00,A4")〇
[0047] 表4DSP軟件在軌維護(hù).1st文件說明示例
[004引
[0049] 6、在在軌維護(hù)函數(shù)返回指令碼("B B3")的前面,根據(jù)返回的航天器上在軌原函數(shù) 中指令碼的目標(biāo)地址,修改寄存器B3的值。如表4示例所示,采用局部替換方式,返回的在軌 維護(hù)原函數(shù)中指令碼的目標(biāo)地址為Ox 119a0,則需要在注入函數(shù)ObtFuncJn j ect的返回指 令碼TB. S2B3")前增加匯編碼TMVK Oxll9aO,B3;MVKH Oxll9aO,B3")。如果采取函數(shù)整體 替換的方式,寄存器B3的值則應(yīng)該修改為在軌維護(hù)原函數(shù)Obt化nc"在軌維護(hù)原函數(shù)釋放堆 找指令塊"的起始地址,即Oxl 1 c98。
[0050] 為實(shí)現(xiàn)在軌注入指令碼正確返回而增加匯編碼指令時(shí),要保證所增加匯編碼指令 前面的原有匯編碼指令能夠正常執(zhí)行完成,必要時(shí)可W增加延時(shí)匯編指令碼("N0P")。
[0051 ] 7.將修改完畢的在軌注入函數(shù)匯編碼指令進(jìn)行編譯后,生成最終注入的在軌維護(hù) 二進(jìn)制指令碼,通過地面遙控注入到航天器上在軌維護(hù)注入?yún)^(qū),使能相應(yīng)的在軌維護(hù)標(biāo)志 后,完成航天器軟件的動(dòng)態(tài)在軌維護(hù)。
[0052]本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
【主權(quán)項(xiàng)】
1. 一種針對(duì)DSP平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法,其特征在于包括如下步驟: (1) 依據(jù)在軌維護(hù)任務(wù)需求,選取距離航天器上DSP軟件所需維護(hù)的功能最近的具有鉤 子的函數(shù)作為在軌維護(hù)原函數(shù); (2) 按照航天器注入?yún)^(qū)地址,修改原航天器上DSP軟件的鏈接命令文件,設(shè)定新的段空 間; (3) 在原航天器上DSP軟件的編譯環(huán)境下,根據(jù)在軌維護(hù)需求編寫相應(yīng)的在軌維護(hù)源代 碼,并通過預(yù)編譯偽指令將相應(yīng)的在軌維護(hù)源代碼指定到鏈接命令文件新增的段空間; (4) 在原航天器上DSP軟件的編譯環(huán)境下,將原航天器上軟件源代碼與在軌維護(hù)源代碼 進(jìn)行聯(lián)合編譯,生成.out目標(biāo)文件,然后由.out目標(biāo)文件進(jìn)而生成.1st鏈接文件,在.1st鏈 接文件中提取出在軌維護(hù)源代碼生成的指令碼片段; (5) 在所述指令碼片段中,找到函數(shù)返回的對(duì)應(yīng)匯編碼指令("B B3"),并判斷所述的指 令碼片段是對(duì)在軌維護(hù)原函數(shù)的整體替換還是部分替換,如果是采取在軌維護(hù)原函數(shù)的整 體替換方式,直接轉(zhuǎn)步驟(7);如果是采取在軌維護(hù)原函數(shù)的局部替換方式,則轉(zhuǎn)步驟(6); (6) 梳理.1st鏈接文件中在軌維護(hù)原函數(shù)編譯生成的匯編碼指令,在被替換的匯編碼 指令中找出滿足如下條件的寄存器和堆棧地址:被賦值且后面保留的匯編碼中使用該寄存 器和堆棧地址,并且使用前未被賦予新值;將滿足上述條件的寄存器和堆棧地址中的值進(jìn) 行變更,使其和原航天器上DSP軟件一致; (7) 在所述匯編碼指令("B B3")中,將函數(shù)返回地址寄存器B3的值修改為在軌維護(hù)原 函數(shù)中的返回目標(biāo)地址; (8) 將修改完畢的在軌維護(hù)匯編碼指令進(jìn)行編譯后,生成最終注入的在軌維護(hù)二進(jìn)制 指令碼,通過地面遙控注入到航天器注入?yún)^(qū),進(jìn)行航天器軟件的動(dòng)態(tài)在軌維護(hù)。2. 根據(jù)權(quán)利要求1所述的一種針對(duì)DSP平臺(tái)航天器軟件的動(dòng)態(tài)在軌維護(hù)方法,其特征在 于:所述的DSP為TMS320C6000系列DSP。
【文檔編號(hào)】G06F9/44GK106020812SQ201610320418
【公開日】2016年10月12日
【申請(qǐng)日】2016年5月16日
【發(fā)明人】李振松, 杜建偉, 鹿瑞, 關(guān)健, 侯瑩, 王曉磊
【申請(qǐng)人】北京控制工程研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鄂尔多斯市| 崇义县| 海盐县| 神木县| 奉新县| 革吉县| 额尔古纳市| 江达县| 太康县| 永仁县| 东丽区| 石门县| 黑山县| 保山市| 关岭| 石门县| 木兰县| 滕州市| 利辛县| 慈溪市| 涪陵区| 喀什市| 龙南县| 合作市| 酉阳| 德令哈市| 正镶白旗| 枣庄市| 林芝县| 绥宁县| 蒙城县| 册亨县| 临洮县| 朝阳县| 尉氏县| 芦溪县| 太仓市| 工布江达县| 云霄县| 郯城县| 宁河县|