[發(fā)明專利]一種支持地址重定向的星載軟件動態(tài)加載方法在審
| 申請?zhí)枺?/td> | 201710996603.5 | 申請日: | 2017-10-19 |
| 公開(公告)號: | CN107729085A | 公開(公告)日: | 2018-02-23 |
| 發(fā)明(設計)人: | 張睿;曾連連;方峰;郭堅;李林;楊麗君;李溟;郝維寧;周東;周波;李露銘 | 申請(專利權)人: | 北京空間飛行器總體設計部 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京理工大學專利中心11120 | 代理人: | 高燕燕 |
| 地址: | 100094 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 支持 地址 定向 軟件 動態(tài) 加載 方法 | ||
技術領域
本發(fā)明涉及一種支持地址重定向的星載軟件動態(tài)加載方法,屬于航天器嵌入式軟件實現技術領域。
背景技術
對于航天器中的許多嵌入式星載計算機設備,內存(SRAM)是軟件運行的直接載體,而內存大多具有不可維修性和不可替換性。而目前許多星載計算機設備采用的處理器并沒有內存管理單元(MMU),程序經過編譯鏈接后,變量訪問時使用的內存地址均為物理地址,因此當設備內存的某個地址發(fā)生物理損壞后(重新加電后故障仍然無法恢復),軟件訪問此地址時,都會發(fā)生錯誤。發(fā)現內存故障后,地面一般采取切換備份設備工作的處理措施,即當前主份計算機后續(xù)無法正常使用。由于RAM區(qū)域性故障造成單份計算機失效對整個航天器而言無疑是很大的損失。
在現有技術中,公開號為CN106873990A的專利公開了一種嵌入式系統RAM損壞模式下的多分區(qū)引導方法,該方法將程序固存分為兩部分,一部分存放正常的啟動程序,另一部分存放輕量級啟動程序。兩部分程序運行的內存地址空間不同。當RAM故障造成正常啟動程序運行失敗時,啟動輕量級啟動程序運行。公開號為CN104461657A的專利公開了一種嵌入式系統切換啟動裝置,裝置包括處理器、切換信號生成模塊、主備份固化存儲器等。該裝置用于在固化存儲器加電時,從固化存儲器中讀取引導程序,當固化存儲器斷電時,從備份存儲器讀取引導程序。還有公開號為CN10288049A的專利公開了一種嵌入式多系統自啟動方法,其特征在于包含一個單獨設計的自啟動電路和一個定時器,系統加電后,定時器開始工作,自啟動電路輸出片選選中第一片存儲器,處理器從第一片存儲器載入引導程序,系統進行初始化,若啟動成功則關閉定時器。若在定時器到時前,自啟動電路未收到正確的狀態(tài)信號,自啟動電路輸出片選選中第二片存儲器,處理器從第二片存儲器載入引導程序,系統進行初始化。
上述方法主要存在以下問題:
(1)需要設計相應的硬件電路配合完成故障消除的操作,而在一些嵌入式系統中,需要考慮成本、功耗、體積等問題。
(2)發(fā)生故障的內存地址空間是隨機的,上述方法中主備份程序運行地址空間相同的,故障后備份程序同樣不能運行。主備程序地址空間不同的,如果故障空間與主備程序地址空間重疊,也將造成主備程序都無法運行的情況。
因此,本文提出了一種支持地址重定向的星載軟件動態(tài)加載方法,該方法結合軟件構件技術,將整個星載程序的全局屬性封裝成專用構件,通過構件實例化的過程使得原本星載軟件編譯鏈接后使用的物理地址轉變?yōu)檫壿嫷刂罚瑥亩鴮崿F動態(tài)映射,在星載軟件加載運行時完成內存健康檢查后可以跳過故障的內存地址,而不受任何影響。
發(fā)明內容
本發(fā)明提供了一種支持地址重定向的星載軟件動態(tài)加載方法,能夠實現簡單、高可靠和冗余的星載軟件地址重定向加載方法,使用軟件構件技術,利用嵌入式軟件編譯鏈接的規(guī)則,解決了內存某個地址或某區(qū)域地址的物理損壞后,程序無法正常加載運行的問題。
一種支持地址重定向的星載軟件動態(tài)加載方法,包括以下步驟:
步驟一、編寫星載軟件鏈接配置文件:定義星載軟件程序text段和data段置于ROM中,bss段置于RAM,并定義星載軟件程序運行的內存空間的地址和大小;
步驟二、內存檢測:程序啟動時從所述內存空間的起始地址開始檢測,尋找一段連續(xù)正確的、足夠程序使用的內存地址空間,并將該內存地址空間的起始地址保存在全局寄存器中;
步驟三、程序構件實例化:首先將星載軟件中所有的全局屬性即會發(fā)生變化的屬性均封裝成一個構件的屬性,該構件稱為程序構件;然后獲取所述全局寄存器中保存的起始地址,將所述程序構件映射到該起始地址上,實現程序構件的實例化;
步驟四、將實例化后的程序構件編譯鏈接形成可燒寫的二進制程序文件;
步驟五、最后將二進制程序文件燒寫至目標設備上,加電正常啟動。
本發(fā)明的有益效果:
本發(fā)明結合軟件構件技術,將整個星載程序的全局屬性封裝成專用構件,通過構件實例化的過程使得原本星載軟件編譯鏈接后使用的物理地址轉變?yōu)檫壿嫷刂罚瑥亩鴮崿F動態(tài)映射,在星載軟件加載運行時完成內存健康檢查后可以跳過故障的內存地址,而不受任何影響。
附圖說明
圖1為本發(fā)明使用地址重定向方法生成可執(zhí)行程序的原理圖。
圖2為本發(fā)明啟動時內存檢測機制流程圖。
圖3為本發(fā)明中的構件的結構圖。
圖4為本發(fā)明內存地址動態(tài)映射后的內存地址空間布局圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京空間飛行器總體設計部,未經北京空間飛行器總體設計部許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710996603.5/2.html,轉載請聲明來源鉆瓜專利網。





