国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種星載嵌入式軟件在軌維護方法

      文檔序號:6372430閱讀:409來源:國知局
      專利名稱:一種星載嵌入式軟件在軌維護方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種星載嵌入式軟件在軌維護方法,用于對空間飛行器上的嵌入式軟件實施在軌維護。
      背景技術(shù)
      當星載嵌入式軟件在飛行過程中出現(xiàn)問題或需要增加新的功能時,需要對該軟件進行故障修復或功能升級。目前,對星載軟件的在軌維護,國內(nèi)主要方法是將修改后的軟件 直接由地面注入到嵌入式系統(tǒng)中,然后通過在軌維護程序啟動修改后的嵌入式軟件,這種方法需要注入的文件較大,傳輸時間長,需要較大的內(nèi)存來存儲上注文件,并且存在較大風險,一旦上注過程發(fā)生故障,可能會導致整個系統(tǒng)運行實效。而且目前的大多數(shù)在軌維護方法,都只能對軟件的局部功能進行在軌維護。

      發(fā)明內(nèi)容
      本發(fā)明的技術(shù)解決問題克服現(xiàn)有技術(shù)的不足,提供一種可以有效且全面地對星載嵌入式軟件進行在軌維護的方法,該方法資源耗費少,算法簡單,比較算法適用于任何芯片類型,可移植性好,有效的提高了軟件的可靠性、安全性和可維護性。本發(fā)明的技術(shù)解決方案星載嵌入式軟件在軌維護方法,其特征在于通過以下步驟實現(xiàn)(I)增量上注數(shù)據(jù)生成在確定需要對星載軟件進行在軌維護后,將更新后的星載嵌入式軟件進行編譯、鏈接,生成二進制文件,將更新后的二進制文件和在軌運行的程序?qū)亩M制文件做比較,生成增量文件;(2)增量上注數(shù)據(jù)上行注入地面將增量文件分包注入到星上存儲區(qū)中,收到一包上注包,就將上注包里的有效數(shù)據(jù)提取出來并寫入預設(shè)的增量文件的存儲區(qū),直至所有上注包收完;(3)增量上注數(shù)據(jù)重組運行將上注的增量文件與原來存在程序存儲器里的二進制文件作比較和重新組合,生成新的程序后將新程序載入內(nèi)存,并執(zhí)行新的程序,完成對嵌入式軟件的在軌維護。所述步驟(I)中生成增量文件的步驟如下(I. I)判斷更新后的二進制文件是否已經(jīng)讀完,是則跳到步驟(I. 6),否則進入下
      一步;(1.2)從更新后的二進制文件和在軌運行程序?qū)亩M制文件中依次讀出一個字節(jié);判斷讀出的兩個字節(jié)是否相同,相同則返回步驟(I. I),不同進入下一步;(I. 3)判斷在軌運行程序?qū)亩M制文件是否已經(jīng)讀完,是則表示更新后的二進制文件增加了一段數(shù)據(jù),增加的數(shù)據(jù)為更新后的二進制文件當前讀取地址開始到更新后的二進制文件尾的所有內(nèi)容,形成一個模式為“增加”的變更程序塊,并回到步驟(I. 1),否則進入下一步;
      (1.4)根據(jù)更新后的二進制文件中從讀出的當前字節(jié)開始一段數(shù)據(jù)搜索在軌運行程序?qū)亩M制文件,看是否刪除了一段數(shù)據(jù),是則形成一個模式為“刪除”的變更程序塊,并回到步驟(I. I),否則進入下一步;(I. 5)根據(jù)在軌運行程序?qū)亩M制文件中從讀出的當前字節(jié)開始一段數(shù)據(jù)搜索更新后的二進制文件,看是否增加了一段數(shù)據(jù),是則形成一個模式為“增加”的變更程序塊,并回到步驟(I. I);否則形成一個模式為“替換”的變更程序塊,并回到步驟(I. I);(I. 6)判斷在軌運行程序?qū)亩M制文件是否已經(jīng)讀完,是則結(jié)束比較,否則表示刪除了一段數(shù)據(jù),刪除的內(nèi)容為在軌運行程序?qū)亩M制文件當前讀取地址開始到在軌運行程序?qū)亩M制文件尾的所有內(nèi)容,形成一個模式為“刪除”的變更程序塊,結(jié)束比較;上述“增加”的變更程序塊的形成過程為將在軌運行程序?qū)亩M制文件的當前讀取地址寫入增量文件,并在增量文件中采用固定的標號描述程序變更模式,并將增加的數(shù)據(jù)長度及內(nèi)容寫入增量文件;上述“刪除”的變更程序塊的形成過程為將在軌運行程序?qū)亩M制文件的當前讀取地址寫入增量文件,并在增量文件中采用固定的標號描述程序變更模式,并將刪除的數(shù)據(jù)長度寫入增量文件;上述“替換”的變更程序塊的形成過程如下將在軌運行程序?qū)亩M制文件的當前讀取地址寫入增量文件,并在增量文件中采用固定的標號描述程序變更模式,并將替換字節(jié)的長度以及更新后的二進制文件中讀出的當前字節(jié)寫入增量文件。所述步驟(2)中的星上存儲區(qū)采用非易失性存儲器FLASH或EEPR0M。本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是(I).本發(fā)明采用增量上注方式本方法不需要將更新升級后的軟件目標文件全部上行傳輸,只需將發(fā)生變更的部分上行傳輸?shù)角度胧较到y(tǒng)中,支持嵌入式軟件的部分或全面升級;(2).采用增量上注數(shù)據(jù)通用自動化生成設(shè)計增量上注數(shù)據(jù)通過增量文件生成技術(shù)自動生成,增量文件生成技術(shù)比較的文件為最終寫入程序存儲器的二進制文件,比較算法與文件格式無關(guān),適用于任何嵌入式芯片;(3).采用斷電保護設(shè)計增量上注數(shù)據(jù)采用FLASH、EEPOM等非易失性存儲器存儲,即使軟件運行平臺斷電,再次加電后已上注的增量文件仍然有效;(4).采用斷點續(xù)傳設(shè)計在增量上注數(shù)據(jù)通過遙控遙測接口由地面?zhèn)鬏數(shù)斤w行器的過程中,通過在分包過程中設(shè)置上注數(shù)據(jù)包序號,能夠支持數(shù)據(jù)多次過境續(xù)傳,不要求連續(xù)注入,不受過境時間與遙控弧段的限制。(5).采用系統(tǒng)安全啟動設(shè)計增量上注數(shù)據(jù)存儲在FLASH、EEP0M等非易失性存儲器中,通過與嵌入式系統(tǒng)原有程序文件重組后直接載入內(nèi)存運行,不修改原來程序存儲器里的程序數(shù)據(jù)。如果增量上注數(shù)據(jù)注入發(fā)生故障,設(shè)備重新加斷電或軟件復位重啟后,仍然運行原有程序,保證了即使增量上注數(shù)據(jù)注入發(fā)生故障,也不會導致嵌入式系統(tǒng)徹底失效。(6).支持多次上注設(shè)計不受軟件已上注的限制,在運行上注程序的過程中,可以再次進行上注更新,無上注次數(shù)限制。(7).采用通用重組技術(shù)可移植性設(shè)計目前已針對DSP和ARM兩類主流嵌入式芯片設(shè)計了重組算法,可以很方便地移植到DSP和ARM任何型號的芯片上。


      圖I為本發(fā)明系統(tǒng)框圖;圖2為本發(fā)明舊文件相對于新文件刪除了一段數(shù)據(jù)示意圖;圖3為本發(fā)明新文件相對于舊文件增加了一段數(shù)據(jù)示意圖;圖4為本發(fā)明基于ARM的嵌入式程序重組示意圖;圖5為本發(fā)明基于ARM的嵌入式程序重組流程圖;
      圖6為本發(fā)明基于DSP的嵌入式程序重組示意圖;圖7為本發(fā)明基于DSP的嵌入式程序地址重映射流程圖;圖8為本發(fā)明基于DSP的嵌入式程序重組流程圖。
      具體實施例方式下面結(jié)合附圖對本發(fā)明做進一步詳細說明。在軌維護方法主要包括增量文件生成技術(shù)和嵌入式軟件重組技術(shù)兩個部分。增量文件生成技術(shù)用于生成增量文件;嵌入式軟件重組技術(shù)用于程序重組和加載。如圖I所示,本發(fā)明步驟如下(I)增量上注數(shù)據(jù)生成在確定需要對星載軟件進行在軌維護后,將更新后的星載嵌入式軟件進行編譯、鏈接,生成二進制文件,將更新后的二進制文件和在軌運行的程序?qū)亩M制文件做比較,生成增量文件;增量文件的生成利用的是基于文件的比對算法。用于比對的文件為編譯后的二進制文件,比對算法是基于文件的,與文件格式無關(guān)。文件比較的基本思想為首先認為在軌運行的程序所生成的二進制文件為舊文件,由地面更新后的二進制文件為新文件。然后從兩文件頭開始依次讀取一個字節(jié)做比較。如果兩字節(jié)相同,則不做任何處理,接著讀下一個字節(jié)。如果兩字節(jié)不相同,則需要判斷字節(jié)不相同的原因。字節(jié)不相同有3種情況。一種情況是舊文件相對于新文件刪除了一段數(shù)據(jù),所以當前比較的字節(jié)不相同。如圖2所示,舊文件當前讀取的字節(jié)為a,新文件當前讀取的字節(jié)為b。如果通過搜索文件,發(fā)現(xiàn)舊文件從地址k到地址ml的內(nèi)容和新文件從地址n2到地址m2的內(nèi)容完全相同,則認為舊文件相對于新文件刪除了一段數(shù)據(jù),刪除的內(nèi)容為地址nl到地址k-1的數(shù)據(jù)。n2到m2的長度可以根據(jù)具體情況設(shè)置。根據(jù)經(jīng)驗,可以設(shè)置為32或64字節(jié)。第二種情況是新文件相對于舊文件增加了一段數(shù)據(jù),所以當前比較的字節(jié)不相同。如圖3所示,舊文件當前讀取的字節(jié)為a,新文件當前讀取的字節(jié)為b。如果通過搜索文件,發(fā)現(xiàn)舊文件從地址nl到地址ml的內(nèi)容和新文件從地址k到地址m2的內(nèi)容完全相同,則認為新文件相對于舊文件增加了一段數(shù)據(jù),增加的內(nèi)容為地址n2到地址k-1的數(shù)據(jù)。第三種情況就是當字節(jié)不相同既不是因為刪除又不是因為增加時,就認為舊文件里的字節(jié)被新文件里的字節(jié)所替換。增量文件包含的就是以上三種情況所反映的信息。增量文件里的變更程序塊按照“增加”、“刪除”和“替換”三種情況劃分。在文件比對過程中,當發(fā)現(xiàn)新文件比舊文件增加了一段數(shù)據(jù)時,首先將圖3所示的舊文件當前讀取地址nl寫入增量文件,然后將Oxaa寫入增量文件,表示變更模式為“增加”,最后將增加的數(shù)據(jù)長度(k_n2)和內(nèi)容(新文件地址n2到地址k_l的內(nèi)容)寫入增量文件,這就形成了一個模式為“增加”的變更程序塊;在文件比對過程中,當發(fā)現(xiàn)舊文件比新文件刪除了一段數(shù)據(jù)時,首先將圖2所示的舊文件當前讀取地址nl寫入增量文件,然后將Oxbb寫入增量文件,表示變更模式為“刪除”,最后將刪除的數(shù)據(jù)長度(k-nl)寫入增量文件,這就形成了一個模式為“刪除”的變更程序塊;在文件比對過程中,當發(fā)現(xiàn)舊文件的字節(jié)被新文件的字節(jié)替換時,如果當前替換字節(jié)的地址與前一個替換字節(jié)的地址連續(xù),則直接將需要替換的字節(jié)寫入前一個替換字節(jié)所在的變更程序塊里,并將變更程序塊的長度加I后重新寫入增量文件;如果當前替換 字節(jié)的地址與前一個替換字節(jié)的地址不連續(xù),則重新形成一個變更程序塊,首先將舊文件里被替換字節(jié)的起始地址寫入增量文件,然后將Oxcc寫入增量文件,表示變更模式為“替換”,接著將I寫入增量文件,表示替換長度為1,最后將新文件里的替換字節(jié)寫入增量文件,這就形成了一個模式為“替換”的變更程序塊。一個變更程序塊包含一段連續(xù)的替換字節(jié),因此,如果當前替換字節(jié)的地址與前一個替換字節(jié)的地址連續(xù),則將當前替換字節(jié)與前一個替換字節(jié)合并到一個變更程序塊里;如果當前替換字節(jié)的地址與前一個替換字節(jié)的地址不連續(xù),則重新生成一個變更程序塊。比較步驟如下(I. I)判斷更新后的二進制文件是否已經(jīng)讀完,是則跳到步驟(I. 6),否則進入下
      一步;(1.2)從更新后的二進制文件和在軌運行程序?qū)亩M制文件中依次讀出一個字節(jié);判斷讀出的兩個字節(jié)是否相同,相同則返回步驟(I. I),不同進入下一步;(I. 3)判斷在軌運行程序?qū)亩M制文件是否已經(jīng)讀完,是則表示更新后的二進制文件增加了一段數(shù)據(jù),增加的數(shù)據(jù)為更新后的二進制文件當前讀取地址開始到更新后的二進制文件尾的所有內(nèi)容,形成一個模式為“增加”的變更程序塊,并回到步驟(I. 1),否則進入下一步;(I. 4)根據(jù)更新后的二進制文件,從讀出的當前字節(jié)開始的一段數(shù)據(jù)(例如32字節(jié),在具體實現(xiàn)時這個值可以根據(jù)實際情況調(diào)整)搜索在軌運行程序?qū)亩M制文件,是否和在軌運行程序?qū)亩M制文件中當前讀出字節(jié)之后的一段數(shù)據(jù)相同,判斷是否刪除了一段數(shù)據(jù),刪除則形成一個模式為“刪除”的變更程序塊,并回到步驟(I. I),否則進入下一步;(I. 5)根據(jù)在軌運行程序?qū)亩M制文件中從讀出的當前字節(jié)開始一段數(shù)據(jù)搜索更新后的二進制文件,看是否增加了一段數(shù)據(jù),是則形成一個模式為“增加”的變更程序塊,并回到步驟(I. I);否則形成一個模式為“替換”的變更程序塊,并回到步驟(I. I);(I. 6)判斷在軌運行程序?qū)亩M制文件是否已經(jīng)讀完,是則結(jié)束比較,否則表示刪除了一段數(shù)據(jù),刪除的內(nèi)容為在軌運行程序?qū)亩M制文件當前讀取地址開始到在軌運行程序?qū)亩M制文件尾的所有內(nèi)容,形成一個模式為“刪除”的變更程序塊,結(jié)束比較。增量文件格式如表I所示表I增量文件格式
      權(quán)利要求
      1.星載嵌入式軟件在軌維護方法,其特征在于通過以下步驟實現(xiàn) (1)增量上注數(shù)據(jù)生成在確定需要對星載軟件進行在軌維護后,將更新后的星載嵌入式軟件進行編譯、鏈接,生成二進制文件,將更新后的二進制文件和在軌運行的程序?qū)亩M制文件做比較,生成增量文件; (2)增量上注數(shù)據(jù)上行注入地面將增量文件分包注入到星上存儲區(qū)中,收到一包上注包,就將上注包里的有效數(shù)據(jù)提取出來并寫入預設(shè)的增量文件的存儲區(qū),直至所有上注包收完; (3)增量上注數(shù)據(jù)重組運行將上注的增量文件與原來存在程序存儲器里的二進制文件作比較和重新組合,生成新的程序后將新程序載入內(nèi)存,并執(zhí)行新的程序,完成對嵌入式軟件的在軌維護。
      2.根據(jù)權(quán)利要求I所述的星載嵌入式軟件在軌維護方法,其特征在于所述步驟(I)中生成增量文件的步驟如下 (1.1)判斷更新后的二進制文件是否已經(jīng)讀完,是則跳到步驟(I. 6),否則進入下一I K少; (I. 2)從更新后的二進制文件和在軌運行程序?qū)亩M制文件中依次讀出一個字節(jié);判斷讀出的兩個字節(jié)是否相同,相同則返回步驟(I. I),不同進入下一步; (I. 3)判斷在軌運行程序?qū)亩M制文件是否已經(jīng)讀完,是則表示更新后的二進制文件增加了一段數(shù)據(jù),增加的數(shù)據(jù)為更新后的二進制文件當前讀取地址開始到更新后的二進制文件尾的所有內(nèi)容,形成一個模式為“增加”的變更程序塊,并回到步驟(I. 1),否則進入下一步; (I. 4)根據(jù)更新后的二進制文件中從讀出的當前字節(jié)開始一段數(shù)據(jù)搜索在軌運行程序?qū)亩M制文件,看是否刪除了一段數(shù)據(jù),是則形成一個模式為“刪除”的變更程序塊,并回到步驟(1.1),否則進入下一步; (I. 5)根據(jù)在軌運行程序?qū)亩M制文件中從讀出的當前字節(jié)開始一段數(shù)據(jù)搜索更新后的二進制文件,看是否增加了一段數(shù)據(jù),是則形成一個模式為“增加”的變更程序塊,并回到步驟(I. I);否則形成一個模式為“替換”的變更程序塊,并回到步驟(I. I); (1.6)判斷在軌運行程序?qū)亩M制文件是否已經(jīng)讀完,是則結(jié)束比較,否則表示刪除了一段數(shù)據(jù),刪除的內(nèi)容為在軌運行程序?qū)亩M制文件當前讀取地址開始到在軌運行程序?qū)亩M制文件尾的所有內(nèi)容,形成一個模式為“刪除”的變更程序塊,結(jié)束比較; 上述“增加”的變更程序塊的形成過程為將在軌運行程序?qū)亩M制文件的當前讀取地址寫入增量文件,并在增量文件中采用固定的標號描述程序變更模式,并將增加的數(shù)據(jù)長度及內(nèi)容寫入增量文件; 上述“刪除”的變更程序塊的形成過程為將在軌運行程序?qū)亩M制文件的當前讀取地址寫入增量文件,并在增量文件中采用固定的標號描述程序變更模式,并將刪除的數(shù)據(jù)長度寫入增量文件; 上述“替換”的變更程序塊的形成過程如下將在軌運行程序?qū)亩M制文件的當前讀取地址寫入增量文件,并在增量文件中采用固定的標號描述程序變更模式,并將替換字節(jié)的長度以及更新后的二進制文件中讀出的當前字節(jié)寫入增量文件。
      3.根據(jù)權(quán)利要求I所述的星載嵌入式軟件在軌維護方法,其特征在于所述步驟(2)中的星上存儲區(qū)采用非易失性存儲器FLASH或EEPROM。
      全文摘要
      一種星載嵌入式軟件在軌維護方法,用于對空間飛行器上的嵌入式軟件采用增量上注方式實施在軌維護。(1)增量上注數(shù)據(jù)生成在確定需要對星載軟件進行在軌維護后,將更新后的星載嵌入式軟件進行編譯、鏈接,生成二進制文件,將更新后的二進制文件和在軌運行的程序?qū)亩M制文件做比較,生成增量文件;(2)增量上注數(shù)據(jù)上行注入地面將增量文件分包注入到星上存儲區(qū)中,收到一包上注包,就將上注包里的有效數(shù)據(jù)提取出來并寫入預設(shè)的增量文件的存儲區(qū),直至所有上注包收完;(3)增量上注數(shù)據(jù)重組運行將上注的增量文件與原來存在程序存儲器里的二進制文件作比較和重新組合,生成新的程序后將新程序載入內(nèi)存,并執(zhí)行新的程序,完成對嵌入式軟件的在軌維護。
      文檔編號G06F9/445GK102799502SQ20121022287
      公開日2012年11月28日 申請日期2012年6月28日 優(yōu)先權(quán)日2012年6月28日
      發(fā)明者李璐, 李東俊, 張建偉, 王剛, 萬祥, 鐘海波 申請人:航天恒星科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1