[發明專利]用于嵌入式系統的差分升級方法有效
| 申請號: | 201210176729.5 | 申請日: | 2012-05-31 |
| 公開(公告)號: | CN102693145A | 公開(公告)日: | 2012-09-26 |
| 發明(設計)人: | 溫長會 | 申請(專利權)人: | 紅石陽光(北京)科技有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 北京汲智翼成知識產權代理事務所(普通合伙) 11381 | 代理人: | 陳曦;郭亞芳 |
| 地址: | 100086 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 嵌入式 系統 升級 方法 | ||
技術領域
本發明涉及一種軟件系統升級方法,尤其涉及一種用于嵌入式系統中,基于新舊軟件版本之間的差異進行選擇性的差分升級,從而減少占用系統資源的方法,屬于嵌入式系統技術領域。
背景技術
嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。智能手機、電子字典、機頂盒、高清電視、游戲機、交換機、路由器、數控設備或儀表等都是典型的嵌入式系統。
在嵌入式系統的使用過程中,軟件的日常維護和升級工作是必不可少的。如智能手機在用戶使用過程中,部分未能在軟件研發階段發現的缺陷會逐漸暴露。又如在嵌入式系統的運行期間,用戶往往會基于原有軟硬件對產品提出新功能或更高的性能要求。要解決這些問題,需要對嵌入式系統的軟件定期進行升級。
在現有的嵌入式系統中,對軟件的升級方案主要有兩種:
第一種是全覆蓋升級方案。如圖1所示,其主要特點是使用新的軟件版本的完全覆蓋老版本軟件,其缺點就是需要把新版本軟件完全下載到本地,然后把下載的升級包覆蓋到目標區域,也就說在升級的時候需要和目標區域同樣大小的存儲空間。
第二種是差分升級方案,即采用新舊軟件版本之間的差分算法得到升級包,利用該升級包實現軟件升級。該升級方案雖然使升級包變小,但是在升級過程中占用的備份空間仍然太大。另外還有一個問題是生成新版本軟件需要占用很大的內存(RAM)空間,所以存在一定的局限性,只適用于需要升級的數據量不太大的場合。例如現在常用的Android系統中采用如圖2所示的差分升級方案。
但是,對于嵌入式系統而言,其普遍存在微處理器處理能力不高、內部存儲空間(SDRAM、ROM、Flash等)有限的問題,采用上述的兩種軟件升級方案都存在明顯的弊端。
在申請號為201010176135.5的中國發明專利申請中,公開了一種嵌入式系統中對ROM程序的升級方法,包括在每個軟件函數開始位置設置一個升級調用程序模塊,且在FLASH中開辟一塊獨立的程序升級區來保存升級程序包。當需要升級軟件時,制作升級程序包并將升級程序包寫入到FLASH的程序升級區。升級調用程序模塊檢測FLASH中是否有升級程序包,若未發現所述的升級程序包,則執行ROM軟件中的原始程序,若發現所述的升級程序包,則將FLASH中的升級程序包拷貝到RAM中并執行升級程序。該技術方案既可以升級ROM保存的軟件,又可以利用更新升級程序包的方式來填補軟件漏洞以保證軟件的正常運行,還可以只針對部分函數進行升級,以減少FLASH硬件資源的浪費。
發明內容
本發明所要解決的技術問題在于提供一種用于嵌入式系統的差分升級方法。該方法基于新舊軟件版本之間的差異進行選擇性的差分升級,從而減少占用嵌入式系統的資源。
為實現上述的發明目的,本發明采用下述的技術方案:
一種用于嵌入式系統的差分升級方法,其特征在于包括如下步驟:
⑴根據備份空間大小確定每步升級的備份數據和目標數據大小;
⑵基于原始版本數據和差分數據生成新版本軟件的目標數據,寫入嵌入式系統的內存空間中;將存儲空間的部分原始版本數據復制至備份空間,作為所述備份數據;
⑶將所述目標數據寫入存儲空間的目標區域;
⑷針對存儲空間中的其它原始版本數據,重復步驟⑵~⑶,直至所有的原始版本數據被新版本軟件的目標數據替代。
其中較優地,所述步驟⑵中,在生成第N部分的差分數據時,使其依賴于原始版本數據中第N+1部分之后的數據,所述N為自然數。
其中較優地,所述步驟⑵中,在生成第N部分的差分數據時,如果原始版本數據中第N+1部分之前的數據與所述差分數據有依賴關系,則放棄該依賴關系,將所述差分數據作為全新數據處理。
其中較優地,所述步驟⑵中,將所有偏移地址a之后的新版本軟件數據所依賴的偏移地址c之前的老版本軟件數據全部進行備份,如果備份空間不足,則放棄此依賴關系;所述偏移地址a和c分別為新、老版本軟件數據中對應的偏移地址。
利用本發明所提供的差分升級方案,嵌入式系統不再需要預留較大的備份空間,該備份空間的大小可以根據嵌入式系統的存儲空間大小靈活確定;在軟件升級過程中也不用生成整個分區大小的升級包,而只需要分塊生成新版本的軟件,因此占用的內存也很小。
附圖說明
下面結合附圖和具體實施方式對本發明做進一步的詳細說明。
圖1為現有技術中,全覆蓋升級方案的實施過程示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于紅石陽光(北京)科技有限公司,未經紅石陽光(北京)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210176729.5/2.html,轉載請聲明來源鉆瓜專利網。





