專利名稱:一種軟件升級方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種軟件升級方法。
背景技術(shù):
目前常用的軟件升級技術(shù)方案是利用串口 /網(wǎng)絡(luò)/0TA(0Ver The Air,空中下載) 升級新的軟件版本。現(xiàn)有常用的升級技術(shù)中第一種方案如圖1所示,是利用串口升級燒寫新版本的軟件進行升級;在此方案中,升級軟件分為兩部分
一是運行于PC (Person Computer,個人電腦)機端的串口燒寫工具,它負責傳輸升級軟件給系統(tǒng)軟件;
二是運行于系統(tǒng)軟件中的與串口燒寫工具進行交互的串口升級程序,它負責將串口燒寫工具傳輸過來的升級程序進行更新。上述第一種方案由于串口的傳輸速率較慢,在升級較大文件時花費的時間會較長且需要PC機的工具支持。現(xiàn)有常用的升級技術(shù)中第二種方案如圖2所示,是利用OTA升級燒寫新版本的軟件進行升級;在此方案中,升級軟件分為兩部分
一是碼流機播放升級流,將升級流傳送給系統(tǒng)程序。二是系統(tǒng)程序接收升級流進行解析,得到升級文件后更新軟件版本
上述第二種方案需要用升級文件制作升級碼流,且需要碼流機等設(shè)備支持,播放升級碼流進行升級,升級環(huán)境較復(fù)雜,不利于客戶自行進行軟件升級。現(xiàn)有常用的升級技術(shù)中第三種方案如圖3所示,是利用網(wǎng)絡(luò)升級燒寫新版本的軟件進行升級;在此方案中,升級軟件分為兩部分
一是PC機通過網(wǎng)絡(luò)傳輸升級文件,通常PC機上會有一個服務(wù)器負責傳輸升級文件。二是系統(tǒng)程序運行網(wǎng)絡(luò)程序通過網(wǎng)口接收升級文件,接收完升級文件后更新軟件版本。上述第二種方案需要PC機端服務(wù)器的支持升級環(huán)境較復(fù)雜,并且系統(tǒng)中網(wǎng)絡(luò)升級程序需要支持網(wǎng)絡(luò)協(xié)議,棧會使程序變大占用較多的存儲空間。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是如何快速、便捷地實現(xiàn)軟件升級。為了解決上述問題,本發(fā)明提供了一種軟件升級方法,包括
在系統(tǒng)的啟動程序或待升級軟件的引導(dǎo)程序中加入用于驅(qū)動通用串行總線USB存儲設(shè)備的第一語句、以及用于在所述USB存儲設(shè)備中查找和讀取文件的第二語句; 在所述USB存儲設(shè)備中保存所述待升級軟件的升級文件;
將該USB存儲設(shè)備物理連接到所述系統(tǒng)后,當啟動所述系統(tǒng)或重新運行所述待升級軟件時,執(zhí)行所述第一語句,建立所述USB存儲設(shè)備和所述系統(tǒng)的邏輯連接;執(zhí)行所述第二語句從所述USB存儲設(shè)備中讀取所述升級文件,對所述系統(tǒng)中的所述待升級軟件進行升級。進一步地,所述第一語句為USB存儲設(shè)備的驅(qū)動程序。進一步地,所述第二語句是只包含文件系統(tǒng)中文件的查找和讀取功能的文件系統(tǒng)解析程序。進一步地,所述系統(tǒng)啟動程序為BOOT程序,引導(dǎo)程序為Loader程序。進一步地,所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟前還包括
檢測升級的觸發(fā)條件是否有效;當有效時進行所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟。進一步地,所述觸發(fā)條件在主程序破壞或主程序需要升級到新的版本的時候有效。進一步地,所述待升級軟件為任一軟件;采用不同的USB存儲設(shè)備保存不同待升級軟件的升級文件;或用同一個USB存儲設(shè)備在不同時間保存不同待升級軟件的升級文件。進一步地,所述升級文件被命名為特定的文件名稱;在該升級文件中包括用于指示本升級文件屬于哪個軟件的標識,以及版本號。進一步地,所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟后,對所述系統(tǒng)中的所述待升級軟件進行升級的步驟前還包括
通過USB設(shè)備中文件的文件名稱來判斷是否為升級文件;
如果是升級文件,則根據(jù)升級文件中的所述標識判斷該升級文件是否屬于待升級軟
件;
如果屬于,則比較所述升級文件的版本號和所述待升級軟件的版本號,如果升級文件的版本號較高,則執(zhí)行對所述系統(tǒng)中的所述待升級軟件進行升級的步驟。本發(fā)明的技術(shù)方案通過利用普及的USB存儲設(shè)備進行軟件升級,避免了升級軟件傳送速度慢的問題以及升級的操作流程和升級環(huán)境復(fù)雜的問題,使普通用戶自己就可以進行軟件的升級和更新。
圖1是現(xiàn)有技術(shù)第一種方案的流程示意圖; 圖2是現(xiàn)有技術(shù)第二種方案的流程示意圖3是現(xiàn)有技術(shù)第三種方案的流程示意圖; 圖4是實施例一的升級方法的流程示意圖。
具體實施例方式下面將結(jié)合附圖及實施例對本發(fā)明的技術(shù)方案進行更詳細的說明。需要說明的是,如果不沖突,本發(fā)明實施例以及實施例中的各個特征可以相互結(jié)合,均在本發(fā)明的保護范圍之內(nèi)。實施例一,一種軟件升級方法,包括在系統(tǒng)的啟動程序或待升級軟件的引導(dǎo)程序中加入用于驅(qū)動USB (Universal Serial Bus,通用串行總線)存儲設(shè)備的第一語句、以及用于在所述USB存儲設(shè)備中查找和讀取文件的第二語句;
在所述USB存儲設(shè)備中保存所述待升級軟件的升級文件;
將該USB存儲設(shè)備物理連接到所述系統(tǒng)后,當啟動所述系統(tǒng)或重新運行所述待升級軟件時,執(zhí)行所述第一語句,建立所述USB存儲設(shè)備和所述系統(tǒng)的邏輯連接;
執(zhí)行所述第二語句從所述USB存儲設(shè)備中讀取所述升級文件,對所述系統(tǒng)中的所述待升級軟件進行升級。本實施例中,所述第一語句可以但不限于為USB存儲設(shè)備的驅(qū)動程序,也可以是其它執(zhí)行后能夠?qū)SB存儲設(shè)備邏輯連接到所述系統(tǒng)的語句;所述第二語句可以但不限于為文件系統(tǒng)解析程序,也可以是其它執(zhí)行后能夠在USB存儲設(shè)備中查找和讀取文件的語句。本實施例中,所述第二語句如果為文件系統(tǒng)解析程序,也并不同于現(xiàn)有普通意義上的文件系統(tǒng)解析程序;現(xiàn)有普通意義上的文件系統(tǒng)解析程序也稱為文件系統(tǒng),通常包含了文件及文件夾的創(chuàng)建、刪除、讀取等功能,所以占用的空間比較大,這樣就需要較多的存儲空間來存儲集成了文件系統(tǒng)解析程序的程序;而本實施例的第二語句則是只包含文件系統(tǒng)中文件的查找和讀取功能的文件系統(tǒng)解析程序,因此占用存儲空間較小。本實施例中,所述待升級軟件可以是任一軟件;可以采用不同的USB存儲設(shè)備保存不同待升級軟件的升級文件;也可以用同一個USB存儲設(shè)備在不同時間保存不同待升級軟件的升級文件。本實施例中,所述系統(tǒng)啟動程序可以但不限于為BOOT程序,引導(dǎo)程序可以但不限于為Loader程序。本實施例中,所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟前還可以包括
檢測升級的觸發(fā)條件是否有效;當有效時進行所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟。本實施例中,所述觸發(fā)條件在主程序破壞或主程序需要升級到新的版本的時候有效。本實施例中,所述升級文件被命名為特定的文件名稱;在該升級文件中包括用于指示本升級文件屬于哪個軟件的標識,以及版本號;
本實施例中,所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟后, 對所述系統(tǒng)中的所述待升級軟件進行升級的步驟前還可以包括 通過USB設(shè)備中文件的文件名稱來判斷是否為升級文件;
如果是升級文件,則根據(jù)升級文件中的所述標識判斷該升級文件是否屬于待升級軟
件;
如果屬于,則比較所述升級文件的版本號和所述待升級軟件的版本號,如果升級文件的版本號較高,則執(zhí)行對所述系統(tǒng)中的所述待升級軟件進行升級的步驟。本實施例中通過在BOOT或Loader中集成USB存儲設(shè)備的驅(qū)動程序和文件系統(tǒng)解析程序,通過讀取帶USB 口的外部存儲設(shè)備中的軟件升級文件來更新升級軟件版本,有效彌補了網(wǎng)絡(luò)/OTA升級方法需要較復(fù)雜的升級環(huán)境的問題,而且USB 口的傳輸速度較快,克服了串口升級速度較慢的問題。由于利用帶USB 口的存儲設(shè)備升級軟件的方法操作便捷且升級速度快,不需要復(fù)雜的升級環(huán)境,所以即使是用戶本人(非專業(yè))也可以進行升級。本實施例簡單實用,成本低廉,操作便捷,可廣泛應(yīng)用于軟件升級的方案中。下面用一個具體例子說明本實施例,該例子在BOOT中集成了 USB存儲設(shè)備的驅(qū)動程序和文件系統(tǒng)解析程序。升級的過程如圖4所示,包括以下步驟
51、系統(tǒng)啟動;
52、檢測是否物理連接了USB存儲設(shè)備;如果沒有,則啟動軟件系統(tǒng),按照正常流程執(zhí)行;如果有,則邏輯連接所述USB存儲設(shè)備和系統(tǒng)后執(zhí)行步驟S3 ;
53、檢測在所述USB存儲設(shè)備中是否有升級文件;如果有,且該升級文件屬于待升級軟件、版本比目前待升級軟件高,則執(zhí)行步驟S4 ;如果不存在待升級軟件的版本較高的升級文件,則啟動軟件系統(tǒng),按照正常流程執(zhí)行;
54、利用所述升級文件對待升級軟件進行升級;升級后重啟系統(tǒng),即返回步驟Si。當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種軟件升級方法,包括在系統(tǒng)的啟動程序或待升級軟件的引導(dǎo)程序中加入用于驅(qū)動通用串行總線USB存儲設(shè)備的第一語句、以及用于在所述USB存儲設(shè)備中查找和讀取文件的第二語句; 在所述USB存儲設(shè)備中保存所述待升級軟件的升級文件;將該USB存儲設(shè)備物理連接到所述系統(tǒng)后,當啟動所述系統(tǒng)或重新運行所述待升級軟件時,執(zhí)行所述第一語句,建立所述USB存儲設(shè)備和所述系統(tǒng)的邏輯連接;執(zhí)行所述第二語句從所述USB存儲設(shè)備中讀取所述升級文件,對所述系統(tǒng)中的所述待升級軟件進行升級。
2.如權(quán)利要求1所述的方法,其特征在于 所述第一語句為USB存儲設(shè)備的驅(qū)動程序。
3.如權(quán)利要求1所述的方法,其特征在于所述第二語句是只包含文件系統(tǒng)中文件的查找和讀取功能的文件系統(tǒng)解析程序。
4.如權(quán)利要求1所述的方法,其特征在于所述系統(tǒng)啟動程序為BOOT程序,引導(dǎo)程序為Loader程序。
5.如權(quán)利要求1所述的方法,其特征在于,所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟前還包括檢測升級的觸發(fā)條件是否有效;當有效時進行所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟。
6.如權(quán)利要求5所述的方法,其特征在于所述觸發(fā)條件在主程序破壞或主程序需要升級到新的版本的時候有效。
7.如權(quán)利要求1所述的方法,其特征在于所述待升級軟件為任一軟件;采用不同的USB存儲設(shè)備保存不同待升級軟件的升級文件;或用同一個USB存儲設(shè)備在不同時間保存不同待升級軟件的升級文件。
8.如權(quán)利要求1到7中任一項所述的方法,其特征在于所述升級文件被命名為特定的文件名稱;在該升級文件中包括用于指示本升級文件屬于哪個軟件的標識,以及版本號。
9.如權(quán)利要求8所述的方法,其特征在于,所述執(zhí)行所述第二語句從USB存儲設(shè)備中讀取所述升級文件的步驟后,對所述系統(tǒng)中的所述待升級軟件進行升級的步驟前還包括通過USB設(shè)備中文件的文件名稱來判斷是否為升級文件;如果是升級文件,則根據(jù)升級文件中的所述標識判斷該升級文件是否屬于待升級軟件;如果屬于,則比較所述升級文件的版本號和所述待升級軟件的版本號,如果升級文件的版本號較高,則執(zhí)行對所述系統(tǒng)中的所述待升級軟件進行升級的步驟。
全文摘要
本發(fā)明提供了一種軟件升級方法,包括在系統(tǒng)的啟動程序或待升級軟件的引導(dǎo)程序中加入用于驅(qū)動通用串行總線USB存儲設(shè)備的第一語句、以及用于在所述USB存儲設(shè)備中查找和讀取文件的第二語句;在所述USB存儲設(shè)備中保存所述待升級軟件的升級文件;將該USB存儲設(shè)備物理連接到所述系統(tǒng)后,當啟動所述系統(tǒng)或重新運行所述待升級軟件時,執(zhí)行所述第一語句,建立所述USB存儲設(shè)備和所述系統(tǒng)的邏輯連接;執(zhí)行所述第二語句從所述USB存儲設(shè)備中讀取所述升級文件,對所述系統(tǒng)中的所述待升級軟件進行升級。本發(fā)明能夠快速、便捷地實現(xiàn)軟件升級。
文檔編號G06F9/445GK102436386SQ201110371170
公開日2012年5月2日 申請日期2011年11月21日 優(yōu)先權(quán)日2011年11月21日
發(fā)明者孟瑞, 李登彪, 郭先概, 陳燁, 高偉 申請人:北京賽科世紀數(shù)碼科技有限公司