[發明專利]一種軟件修正性在軌維護優化方法有效
| 申請號: | 201310036432.3 | 申請日: | 2013-01-30 |
| 公開(公告)號: | CN103092760A | 公開(公告)日: | 2013-05-08 |
| 發明(設計)人: | 趙性頌;張篤周;袁軍;程莉;張輝;董曉剛;王新民;周劍敏;張俊玲;王勝剛;刑衛衛 | 申請(專利權)人: | 北京控制工程研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中國航天科技專利中心 11009 | 代理人: | 安麗 |
| 地址: | 100080 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟件 修正 維護 優化 方法 | ||
技術領域
本發明屬于星載計算機軟件在軌維護技術領域,涉及一種軟件修正性在軌維護優化方法。
背景技術
衛星固化于PROM中的程序不能滿足任務需求,需要實施多次軟件在軌維護,以進行姿態與軌道控制。
衛星姿軌控分系統AOCC應用軟件采用ANSI?C語言開發,以往采用ANSI?C語言開發的星載軟件實施在軌維護時,一般采用替換整個在軌維護函數模塊的方法。這種方法生成的目標注入代碼規模比較大,不利于地面操作;同時由于注入程序運行于SRAM中,規模越大,被單粒子打翻的風險越高;另外SRAM中程序的運行時間與PROM中程序的運行時間存在差異,影響軟件運行時序。因此,如何減少軟件在軌維護過程中程序注入的規模,是一個亟待解決的問題。
發明內容
本發明解決的技術問題是:針對現有技術的不足,對于軟件修正性在軌維護,提供了一種優化方法,實現了軟件修正性在軌維護過程中目標注入代碼規模的減少。
本發明的技術解決方案是:
一種軟件修正性在軌維護優化方法,步驟如下:
(1)確定星上軟件代碼中需要實施在軌維護函數的最后一個修改點語句;
(2)在所述新函數的最后一個修改點語句之后,進行恢復寄存器現場和修改所述新函數的返回地址的操作,將新函數的返回地址修改為所述需要實施在軌維護函數在其最后一個修改點語句之后的下一條語句的地址,之后進入步驟(3);
(3)將所述新函數與原有星上軟件代碼進行聯合編譯,之后進入步驟(4);
(4)提取聯合編譯之后的所述新函數對應的代碼并且上注到星上用于替換所述需要實施在軌維護函數。
所述新函數是在所述需要實施在軌維護函數的基礎上修改得到,在最后一個修改點語句之后的需要實施在軌維護函數的程序代碼與將要上注的替換所述需要實施在軌維護函數的新函數在最后一個修改點語句之后的程序代碼完全相同。
本發明與現有技術相比具有如下優點:
本發明可在軟件修正性在軌維護模塊生成注入代碼時,可明顯減少程序的注入量,降低注入程序被單粒子打翻的風險。
附圖說明
圖1為本發明流程圖;
圖2為在軌維護過程中窗口切換示意圖。
具體實施方式
下面結合附圖對本發明做進一步介紹。
本發明從減少修正性軟件在軌維護生成目標注入代碼的規模出發,采用復用最后一個修改點語句s之后的程序代碼的方法,實現目標注入代碼生成的同時,提高了PROM中固化程序代碼的復用率,降低了目標注入代碼的規模,優化了軟件修正性在軌維護設計。
修正性在軌維護:假設函數Origin需要實施在軌維護,維護后的函數為New。New函數只在原函數Origin的基礎上進行了修正性更改,與函數Origin有公共代碼,即New函數與Origin函數在某條程序語句s之后的程序代碼完全相同,此時的在軌維護稱為修正性在軌維護。其中程序語句s稱為Origin函數的最后一個修改點語句。
如圖1所示,本發明提供的一種軟件修正性在軌維護優化方法步驟如下:
(1)確定星上軟件代碼中需要實施在軌維護函數(原函數Origin)的最后一個修改點語句s;新函數(new)是在所述需要實施在軌維護函數的基礎上修改得到,在最后一個修改點語句s之后的需要實施在軌維護函數的程序代碼與將要上注的替換所述需要實施在軌維護函數的新函數在最后一個修改點語句s之后的程序代碼完全相同,即:比較維護后的New函數與原函數Origin代碼,假設New函數與Origin函數語句代碼,從語句s開始至函數return結束語句完全相同;而New函數與Origin函數語句s的前一條語句不同,語句s即為Origin函數的最后一個修改點語句。
(2)在所述新函數的最后一個修改點語句之后,進行恢復寄存器現場和修改所述新函數的返回地址的操作,將新函數的返回地址修改為所述需要實施在軌維護函數在其最后一個修改點語句之后的下一條語句的地址,之后進入步驟(3);
恢復寄存器現場:由于New函數可能改變Origin函數使用的寄存器值,查看Origin函數對應的匯編語句,分析s語句執行之前的寄存器保留值,并判斷相應的寄存器值是否被New函數更新。對于New函數中更新的寄存器數值,添加匯編賦值語句,恢復其保留值,并置于New函數最后一個修改點語句之后;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京控制工程研究所,未經北京控制工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310036432.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:地震中財產損失評估方法
- 下一篇:一種可消除減振油泡沫的減振器





