專利名稱:基于usb接口的嵌入式軟件升級方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,特別涉及一種基于USB接口的嵌入式軟件升級方法及系統(tǒng)。
背景技術(shù):
嵌入式系統(tǒng)是指完全嵌入到受控器件內(nèi)部、為特定應(yīng)用而設(shè)計的專用計算機(jī)系統(tǒng),其通常與受控器件集成在一起推出,受限于器件的工作環(huán)境要求,嵌入式系統(tǒng)的體積、功耗、性能和功能通常會受到一定限制。由于嵌入式系統(tǒng)是軟硬件結(jié)合的系統(tǒng),即使不對硬件進(jìn)行改動,也能通過軟件的升級使嵌入式系統(tǒng)的性能進(jìn)一步得到提升,因此軟件升級是 嵌入式系統(tǒng)后期升級維護(hù)的一項重要內(nèi)容。隨著嵌入式系統(tǒng)內(nèi)容和服務(wù)越來越新、越來越豐富,軟件升級也變得越來越重要和頻繁,軟件升級的效率和可靠性往往成為嵌入式系統(tǒng)乃至整個受控器件的性能和可靠性的重要評估指標(biāo)?,F(xiàn)有技術(shù)中,嵌入式系統(tǒng)軟件升級的一般過程為將升級文件放在U盤上,同時在嵌入式系統(tǒng)中保存有升級管理程序,升級過程中依靠升級管理程序來完成控制。整個升級過程就是將新版本的升級文件拷貝到應(yīng)用程序的指定位置(有時拷貝的同時也覆蓋掉原低版本文件),升級成功后嵌入式系統(tǒng)重啟會自動加載新版本文件運(yùn)行。但是,發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),受體積和功能的限制,現(xiàn)有技術(shù)的嵌入式系統(tǒng)通常不具備錯誤處理能力,但其在軟件升級過程一旦發(fā)生任何錯誤均會直接導(dǎo)致嵌入式系統(tǒng)重新啟動,由于嵌入式系統(tǒng)并不對錯誤進(jìn)行修正,因而通常不會立即再次嘗試升級。在此情況下,對于不覆蓋原有文件的升級方式,原文件顯然可直接使用繼續(xù)工作,升級失敗的重啟顯得沒有必要,浪費(fèi)時間;而對于覆蓋原有文件的升級方式,由于原有文件已受損,失敗重啟只會使整個系統(tǒng)無法使用,同樣是種沒有意義的操作。此外,由于升級管理程序保存在嵌入式系統(tǒng)中,升級時僅更新功能軟件無法對管理程序進(jìn)行更新,一旦管理程序存在錯誤將導(dǎo)致整個系統(tǒng)無法進(jìn)行有效的升級,只能通過其他手段替換掉錯誤的管理程序(如借助其他設(shè)備對ROM進(jìn)行重寫)再進(jìn)行升級?;蛘弋?dāng)升級涉及到管理程序時,同樣需要先通過其他手段升級管理程序,再進(jìn)行功能軟件的升級。上述問題導(dǎo)致嵌入式系統(tǒng)的軟件升級過程復(fù)雜繁瑣、耗費(fèi)時間且極易發(fā)生錯誤。另外,對于顯示裝置極其簡單甚至是沒有顯示裝置的嵌入式器件(如機(jī)頂盒等),由于升級管理程序保存在嵌入式系統(tǒng)中,即使對升級過程中的出錯信息進(jìn)行記錄,也很難在顯示裝置上進(jìn)行詳細(xì)的顯示,依靠嵌入式系統(tǒng)本身很難分析出錯原因和迅速改正錯誤。
發(fā)明內(nèi)容
(一 )要解決的技術(shù)問題針對現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明為了解決現(xiàn)有技術(shù)中嵌入式軟件升級極易發(fā)生錯誤的問題,提出了一種基于USB接口的嵌入式軟件升級方法及系統(tǒng)。( 二 )技術(shù)方案
為了實(shí)現(xiàn)上述目的,一方面,本發(fā)明提供了一種基于USB接口的嵌入式軟件升級方法,所述方法包括步驟SI,設(shè)備開啟,啟動操作系統(tǒng),自動啟動運(yùn)行升級引導(dǎo)程序;S2,升級引導(dǎo)程序加載USB驅(qū)動,檢測USB接口是否有USB存儲器件;如沒有發(fā)現(xiàn)USB存儲器件,則執(zhí)行步驟S7 ;如發(fā)現(xiàn)有USB存儲器件,則執(zhí)行步驟S3 ;S3,進(jìn)一步掃描USB存儲器件,在USB存儲器件上查找升級管理程序;如未找到升級管理程序,則執(zhí)行步驟S7 ;如找到升級管理程序,則執(zhí)行步驟S4 ;
S4,將升級管理程序拷貝到系統(tǒng)內(nèi)存,在系統(tǒng)內(nèi)存中運(yùn)行啟動升級管理程序;如不能成功啟動升級管理程序,則向USB存儲器件輸出相應(yīng)出錯信息后執(zhí)行步驟S7 ;如成功啟動升級管理程序,則執(zhí)行步驟S5 ;S5,升級管理程序進(jìn)一步掃描USB存儲器件,查找USB存儲器件上是否有新版本的升級文件;如未在USB存儲器件上找到新版本升級文件或新版本升級文件的版本有效性存在問題,則向USB存儲器件輸出相應(yīng)出錯信息后執(zhí)行步驟S7 ;如新版本升級文件有效性無問題,則執(zhí)行步驟S6;S6,執(zhí)行升級,將新版本升級文件拷貝到系統(tǒng)閃存中的指定位置;若升級成功,則重啟設(shè)備后運(yùn)行新系統(tǒng)執(zhí)行步驟S7 ;如升級不成功,則根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后轉(zhuǎn)至步驟SI再次嘗試升級;S7,啟動其它應(yīng)用程序,使設(shè)備處于正常工作狀態(tài)。另一方面,本發(fā)明還同時提供一種基于USB接口的嵌入式軟件升級系統(tǒng),所述系統(tǒng)包括升級引導(dǎo)模塊、升級管理模塊和工作模塊,所述升級引導(dǎo)模塊包括引導(dǎo)模塊、USB檢測模塊、升級管理程序查找模塊和升級管理程序啟動模塊,所述升級管理模塊包括升級文件查找模塊和升級模塊;其中,引導(dǎo)模塊,用于在設(shè)備開啟并啟動操作系統(tǒng)后,自動啟動運(yùn)行升級引導(dǎo)程序;USB存儲器件檢測模塊,用于在升級引導(dǎo)程序加載USB驅(qū)動后,檢測USB接口是否有USB存儲器件;如沒有發(fā)現(xiàn)USB存儲器件,則啟動工作模塊;如發(fā)現(xiàn)有USB存儲器件,則啟動升級管理程序查找模塊;升級管理程序查找模塊,用于進(jìn)一步掃描USB存儲器件,在USB存儲器件上查找升級管理程序;如未找到升級管理程序,則啟動工作模塊;如找到升級管理程序,則啟動升級管理程序運(yùn)行模塊;升級管理程序啟動模塊,用于將升級管理程序拷貝到系統(tǒng)內(nèi)存,在系統(tǒng)內(nèi)存中運(yùn)行啟動升級管理程序;如不能成功啟動升級管理程序,則向USB存儲器件輸出相應(yīng)出錯信息后啟動工作模塊;如成功啟動升級管理程序,則啟動升級文件查找模塊;升級文件查找模塊,用于使升級管理程序進(jìn)一步掃描USB存儲器件,查找USB存儲器件上是否有新版本的升級文件;如未在USB存儲器件上找到新版本升級文件或新版本升級文件的版本有效性存在問題,則向USB存儲器件輸出相應(yīng)出錯信息后啟動工作模塊;如新版本升級文件有效性無問題,則啟動升級模塊;升級模塊,用于將新版本升級文件拷貝到系統(tǒng)閃存中的指定位置;若升級成功,則重啟設(shè)備后運(yùn)行新系統(tǒng)啟動工作模塊;如升級不成功,則根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后重新啟動引導(dǎo)模塊再次嘗試升級;
工作模塊,用于啟動其它應(yīng)用程序,使設(shè)備處于正常工作狀態(tài)。(三)有益效果本發(fā)明的技術(shù)方案中,將整個升級程序分為系統(tǒng)閃存中的升級引導(dǎo)程序和U盤中的升級管理程序,通過該方式,在升級管理程序存在問題導(dǎo)致升級不成功時,能夠很容易的在U盤上進(jìn)行修改升級管理程序本身。此外,由于升級引導(dǎo)程序很簡單、占用空間很小,僅用來啟動U盤上的升級管理程序,和軟件版本和升級過程沒有直接關(guān)系,因此其出錯的概率很小,也不必頻繁修改甚至完全無需修改,這樣使升級出錯的修正工作變得容易。由于本發(fā)明的操作系統(tǒng)啟動后,在升級無法正常進(jìn)行時,會直接啟動其它應(yīng)用程序進(jìn)入工作狀態(tài),可有效減少操作系統(tǒng)重啟浪費(fèi)的時間和對當(dāng)前工作造成的影響。最后,本發(fā)明中將升級過程中出現(xiàn)的任何錯誤都詳細(xì)記錄在U盤上,隨后借助PC進(jìn)行錯誤分析和修改,尤其適合機(jī)頂盒這樣的顯示裝置簡單、存儲空間有限的嵌入式系統(tǒng)的錯誤修正。
圖I為本發(fā)明的實(shí)施例中基于USB接口的嵌入式軟件升級方法的處理流程示意圖;圖2為本發(fā)明的實(shí)施例中基于USB接口的嵌入式軟件升級系統(tǒng)的模塊結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。發(fā)明提供了一種靈活、方便的基于USB接口的軟件升級方法及系統(tǒng),可以解決當(dāng)升級管理程序本身出現(xiàn)bug或升級管理程序具有局限性時無法順利實(shí)現(xiàn)USB接口的軟件升級功能的問題。本發(fā)明把可執(zhí)行升級管理程序從嵌入式系統(tǒng)軟件中獨(dú)立出來放置到USB存儲器件(如U盤等)上,并在設(shè)備的嵌入式系統(tǒng)中設(shè)置升級引導(dǎo)程序,用來將U盤上的升級管理程序拷貝到系統(tǒng)RAM并運(yùn)行,實(shí)現(xiàn)升級;并且如果由于升級管理程序本身有BUG或由于新老版本差異大而導(dǎo)致升級出錯,會自動的把相應(yīng)出錯信息輸出到U盤中,便于分析原因和修改。具體地,參見圖1,本發(fā)明的實(shí)施例中基于USB接口的嵌入式軟件升級方法包括步驟SI,設(shè)備開啟,啟動操作系統(tǒng),自動啟動運(yùn)行升級引導(dǎo)程序;S2,升級引導(dǎo)程序加載USB驅(qū)動,檢測USB接口是否有USB存儲器件(如U盤等);如沒有發(fā)現(xiàn)USB存儲器件,則執(zhí)行步驟S7 ;如發(fā)現(xiàn)有USB存儲器件,則執(zhí)行步驟S3 ;S3,進(jìn)一步掃描USB存儲器件,在USB存儲器件上查找升級管理程序;如未找到升級管理程序,則執(zhí)行步驟S7 ;如找到升級管理程序,則執(zhí)行步驟S4 ;S4,將升級管理程序拷貝到系統(tǒng)內(nèi)存(如RAM等),在系統(tǒng)內(nèi)存中運(yùn)行啟動升級管理程序;如不能成功啟動升級管理程序,則向USB存儲器件輸出相應(yīng)出錯信息后執(zhí)行步驟S7 ;如成功啟動升級管理程序,則執(zhí)行步驟S5 ;S5,升級管理程序進(jìn)一步掃描USB存儲器件,查找USB存儲器件上是否有新版本的升級文件;如未在USB存儲器件上找到新版本升級文件或新版本升級文件的版本有效性存在問題,則向USB存儲器件輸出相應(yīng)出錯信息后執(zhí)行步驟S7 ;如新版本升級文件有效性無問題,則執(zhí)行步驟S6;S6,執(zhí)行升級,將新版本升級文件拷貝到系統(tǒng)閃存中的指定位置;若升級成功,則重啟設(shè)備后運(yùn)行新系統(tǒng)執(zhí)行步驟S7 ;如升級不成功,則根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后轉(zhuǎn)至步驟SI再次嘗試升級;S7,啟動其它應(yīng)用程序,使設(shè)備處于正常工作狀態(tài)。下面結(jié)合具體的實(shí)施例對本發(fā)明的方法做進(jìn)一步的說明。以海信傳媒HIT500型 機(jī)頂盒軟件從3. 2版本升級到4. I版本為例,這兩個版本差別很大應(yīng)用軟件在3. 2版本中所在的目錄只有一個Aisr/local/app,而4. I版本由于應(yīng)用種類和數(shù)量增多,除了 Aisr/local/app目錄外,還新創(chuàng)建了一個目錄/usr/local/business用來存儲部分應(yīng)用軟件,由于目錄Aisr/local/business只是在4. I的系統(tǒng)上創(chuàng)建的,3. 2版本沒有,所以3. 2版本的升級管理程序沒有創(chuàng)建該目錄的相關(guān)操作,這樣,3. 2版本升級管理程序就不能支持從3. 2版本到4. I版本的升級,如果該升級管理程序是固化在嵌入式系統(tǒng)中的話,那它就不能完成從3. 2到4. I版本升級,只能通過其它方式來完成,比如先升級到一個過渡版本,再從過渡版本升級到4. I版本,但會使得升級過程變得更復(fù)雜,耗時長,也增加了升級過程中出問題的幾率。此外,由于機(jī)頂盒本身只有很簡單的顯示裝置,因此升級過程及出錯信息很難通過機(jī)頂盒顯示屏幕去顯示,況且有很多情況是未知的,如升級管理程序帶有BUG、新老版本差異大導(dǎo)致兼容性差等,而簡單的出錯類型提示并不足以使工作人員找到問題所在。采用本發(fā)明的方法就可以很好的解決上述問題,以下是該機(jī)頂盒軟件升級的具體操作步驟I.嵌入式系統(tǒng)中升級之前的軟件版本是3. 2,USB設(shè)備中的升級管理程序版本也是3. 2,由于3. 2版本升級管理程序沒有創(chuàng)建目錄八isr/local/business的操作,所以該版本不支持從3. 2到4. I的軟件升級。2.由于升級管理程序不是固化在嵌入式系統(tǒng)中,而是在USB設(shè)備上,這樣,可以單獨(dú)將USB設(shè)備上的3. 2版本升級管理程序進(jìn)行更新(創(chuàng)建目錄/usr/local/business等操作),更新到4. I版本,使得其支持從3. 2版本到4. I版本的軟件升級。3.將存儲4. I版本升級管理程序的USB設(shè)備插入到嵌入式系統(tǒng)中,重啟機(jī)頂盒就可以完成從3. 2到4. I的軟件升級過程了。4.如果升級過程中有問題,可以將USB設(shè)備中的升級管理程序再次更新,更新后將USB設(shè)備插入到嵌入式系統(tǒng)中,重啟系統(tǒng)重新開始升級,直到升級成功。這樣,對機(jī)頂盒來說,本發(fā)明的方法具有以下優(yōu)勢I.由于設(shè)置了升級引導(dǎo)程序,升級管理程序本身或U盤存儲的有問題,無法正常啟動升級管理程序時,系統(tǒng)會繼續(xù)執(zhí)行其它應(yīng)用程序,運(yùn)行舊版本,使機(jī)頂盒仍可以正常使用;2.在執(zhí)行升級時是訪問U盤并將其上的升級管理程序拷貝到RAM中運(yùn)行的,而不像現(xiàn)有技術(shù)那樣是從系統(tǒng)的FLASH中拷貝到RAM中運(yùn)行的,這樣一方面節(jié)約了 FLASH的存儲空間,另一方面,由于升級管理程序放置在U盤上,在升級出錯時很容易拿到PC上去分析原因和修改。本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,包括上述實(shí)施例方法的各步驟,而所述的存儲介質(zhì)可以是R0M/RAM、磁碟、光盤、存儲卡等。因此,與本發(fā)明的方法相對應(yīng)的,本發(fā)明還同時包括一種基于USB接口的嵌入式軟件升級系統(tǒng),該系統(tǒng)通常以與方法各步驟相對應(yīng)的功能模塊的形式表示;如圖2所示,所述系統(tǒng)包括升級引導(dǎo)模塊、升級管理模塊和工作模塊,所述升級引導(dǎo)模塊包括引導(dǎo)模塊、USB檢測模塊、升級管理程序查找模塊和升級管理程序啟動模塊,所述升級管理模塊包括升級文件查找模塊和升級模塊;其中,引導(dǎo)模塊,用于在設(shè)備開啟并啟動操作系統(tǒng)后,自動啟動運(yùn)行升級引導(dǎo)程序;USB存儲器件檢測模塊,用于在升級引導(dǎo)程序加載USB驅(qū)動后,檢測USB接口是否有USB存儲器件;如沒有發(fā)現(xiàn)USB存儲器件,則啟動工作模塊;如發(fā)現(xiàn)有USB存儲器件,則啟 動升級管理程序查找模塊;升級管理程序查找模塊,用于進(jìn)一步掃描USB存儲器件,在USB存儲器件上查找升級管理程序;如未找到升級管理程序,則啟動工作模塊;如找到升級管理程序,則啟動升級管理程序運(yùn)行模塊;升級管理程序啟動模塊,用于將升級管理程序拷貝到系統(tǒng)內(nèi)存,在系統(tǒng)內(nèi)存中運(yùn)行啟動升級管理程序;如不能成功啟動升級管理程序,則向USB存儲器件輸出相應(yīng)出錯信息后啟動工作模塊;如成功啟動升級管理程序,則啟動升級文件查找模塊;升級文件查找模塊,用于使升級管理程序進(jìn)一步掃描USB存儲器件,查找USB存儲器件上是否有新版本的升級文件;如未在USB存儲器件上找到新版本升級文件或新版本升級文件的版本有效性存在問題,則向USB存儲器件輸出相應(yīng)出錯信息后啟動工作模塊;如新版本升級文件有效性無問題,則啟動升級模塊;升級模塊,用于將新版本升級文件拷貝到系統(tǒng)閃存中的指定位置;若升級成功,則重啟設(shè)備后運(yùn)行新系統(tǒng)啟動工作模塊;如升級不成功,則根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后重新啟動引導(dǎo)模塊再次嘗試升級;工作模塊,用于啟動其它應(yīng)用程序,使設(shè)備處于正常工作狀態(tài)??梢钥闯觯景l(fā)明的技術(shù)方案中,將整個升級程序分為系統(tǒng)閃存中的升級引導(dǎo)程序和U盤中的升級管理程序,通過該方式,在升級管理程序存在問題導(dǎo)致升級不成功時,能夠很容易的在U盤上進(jìn)行修改升級管理程序本身。此外,由于升級引導(dǎo)程序很簡單、占用空間很小,僅用來啟動U盤上的升級管理程序,和軟件版本和升級過程沒有直接關(guān)系,因此其出錯的概率很小,也不必頻繁修改甚至完全無需修改,這樣使升級出錯的修正工作變得容易。由于本發(fā)明的操作系統(tǒng)啟動后,在升級無法正常進(jìn)行時,會直接啟動其它應(yīng)用程序進(jìn)入工作狀態(tài),可有效減少操作系統(tǒng)重啟浪費(fèi)的時間和對當(dāng)前工作造成的影響。最后,本發(fā)明中將升級過程中出現(xiàn)的任何錯誤都詳細(xì)記錄在U盤上,隨后借助PC進(jìn)行錯誤分析和修改,尤其適合機(jī)頂盒這樣的顯示裝置簡單、存儲空間有限的嵌入式系統(tǒng)的錯誤修正。以上實(shí)施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇, 本發(fā)明的發(fā)明保護(hù)范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種基于USB接ロ的嵌入式軟件升級方法,其特征在于,所述方法包括步驟 Si,設(shè)備開啟,啟動操作系統(tǒng),自動啟動運(yùn)行升級引導(dǎo)程序; S2,升級引導(dǎo)程序加載USB驅(qū)動,檢測USB接ロ是否有USB存儲器件;如沒有發(fā)現(xiàn)USB存儲器件,則執(zhí)行步驟S7 ;如發(fā)現(xiàn)有USB存儲器件,則執(zhí)行步驟S3 ; S3,進(jìn)ー步掃描USB存儲器件,在USB存儲器件上查找升級管理程序;如未找到升級管理程序,則執(zhí)行步驟S7 ;如找到升級管理程序,則執(zhí)行步驟S4 ; S4,將升級管理程序拷貝到系統(tǒng)內(nèi)存,在系統(tǒng)內(nèi)存中運(yùn)行啟動升級管理程序;如不能成功啟動升級管理程序,則向USB存儲器件輸出相應(yīng)出錯信息后執(zhí)行步驟S7 ;如成功啟動升級管理程序,則執(zhí)行步驟S5; S5,升級管理程序進(jìn)ー步掃描USB存儲器件,查找USB存儲器件上是否有新版本的升級文件;如未在USB存儲器件上找到新版本升級文件或新版本升級文件的版本有效性存在問題,則向USB存儲器件輸出相應(yīng)出錯信息后執(zhí)行步驟S7 ;如新版本升級文件有效性無問題,則執(zhí)行步驟S6 ; S6,執(zhí)行升級,將新版本升級文件拷貝到系統(tǒng)閃存中的指定位置;若升級成功,則重啟設(shè)備后運(yùn)行新系統(tǒng)執(zhí)行步驟S7 ;如升級不成功,則根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后轉(zhuǎn)至步驟SI再次嘗試升級; S7,啟動其它應(yīng)用程序,使設(shè)備處于正常工作狀態(tài)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟S5中,在向USB存儲器件輸出相應(yīng)出錯信息時,分別記錄不存在新版本升級文件的問題和新版本升級文件的版本有效性問題。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,步驟S6中,根據(jù)USB存儲器件的出錯信息,在PC機(jī)上對升級管理程序或升級文件進(jìn)行修改。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述升級引導(dǎo)程序存儲在所述設(shè)備的ROM中。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述設(shè)備為機(jī)頂盒、電視或移動終端。
6.一種基于USB接ロ的嵌入式軟件升級系統(tǒng),其特征在干,所述系統(tǒng)包括升級引導(dǎo)模塊、升級管理模塊和工作模塊,所述升級引導(dǎo)模塊包括引導(dǎo)模塊、USB檢測模塊、升級管理程序查找模塊和升級管理程序啟動模塊,所述升級管理模塊包括升級文件查找模塊和升級模塊;其中, 引導(dǎo)模塊,用于在設(shè)備開啟并啟動操作系統(tǒng)后,自動啟動運(yùn)行升級引導(dǎo)程序; USB檢測模塊,用于在升級引導(dǎo)程序加載USB驅(qū)動后,檢測USB接ロ是否有USB存儲器件;如沒有發(fā)現(xiàn)USB存儲器件,則啟動工作模塊;如發(fā)現(xiàn)有USB存儲器件,則啟動升級管理程序查找模塊; 升級管理程序查找模塊,用于進(jìn)ー步掃描USB存儲器件,在USB存儲器件上查找升級管理程序;如未找到升級管理程序,則啟動工作模塊;如找到升級管理程序,則啟動升級管理程序運(yùn)行模塊; 升級管理程序啟動模塊,用于將升級管理程序拷貝到系統(tǒng)內(nèi)存,在系統(tǒng)內(nèi)存中運(yùn)行啟動升級管理程序;如不能成功啟動升級管理程序,則向USB存儲器件輸出相應(yīng)出錯信息后啟動工作模塊;如成功啟動升級管理程序,則啟動升級文件查找模塊; 升級文件查找模塊,用于使升級管理程序進(jìn)ー步掃描USB存儲器件,查找USB存儲器件上是否有新版本的升級文件;如未在USB存儲器件上找到新版本升級文件或新版本升級文件的版本有效性存在問題,則向USB存儲器件輸出相應(yīng)出錯信息后啟動工作模塊;如新版本升級文件有效性無問題,則啟動升級模塊; 升級模塊,用于將新版本升級文件拷貝到系統(tǒng)閃存中的指定位置;若升級成功,則重啟設(shè)備后運(yùn)行新系統(tǒng)啟動工作模塊;如升級不成功,則根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后重新啟動引導(dǎo)模塊再次嘗試升級; 工作模塊,用于啟動其它應(yīng)用程序,使設(shè)備處于正常工作狀態(tài)。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,在升級文件查找模塊向USB存儲器件輸出相應(yīng)出錯信息時,分別記錄不存在新版本升級文件的問題和新版本升級文件的版本有效性問題。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)進(jìn)ー步包括錯誤修正模塊,用 于根據(jù)USB存儲器件的出錯信息,在PC機(jī)上對升級管理程序或升級文件進(jìn)行修改。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述升級引導(dǎo)程序存儲在所述設(shè)備的ROM中。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述設(shè)備為機(jī)頂盒、電視或移動終端。
全文摘要
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,提供了一種基于USB接口的嵌入式軟件升級方法及系統(tǒng)。該方法包括設(shè)備開啟后運(yùn)行升級引導(dǎo)程序,在USB存儲器件上查找升級管理程序并將升級管理程序拷貝到系統(tǒng)內(nèi)存運(yùn)行;查找USB存儲器件上的新版本的升級文件進(jìn)行升級;若任一步驟無法繼續(xù)則直接使設(shè)備處于正常工作狀態(tài),同時根據(jù)USB存儲器件的出錯信息,修改升級管理程序或升級文件后再次嘗試升級。本發(fā)明中,將整個升級程序分為系統(tǒng)閃存中的升級引導(dǎo)程序和U盤中的升級管理程序,在升級管理程序存在問題導(dǎo)致升級不成功時,能夠很容易地在U盤上進(jìn)行修改升級管理程序本身。此外在無法正常升級時直接進(jìn)入工作狀態(tài),有效減少重啟時間和對當(dāng)前工作的影響。
文檔編號G06F13/38GK102662689SQ20121006660
公開日2012年9月12日 申請日期2012年3月15日 優(yōu)先權(quán)日2012年3月15日
發(fā)明者劉立華 申請人:青島海信傳媒網(wǎng)絡(luò)技術(shù)有限公司