專利名稱:一種實現(xiàn)軟件更新的方法及裝置的制作方法
技術領域:
本發(fā)明涉及軟件更新技術,尤其涉及一種實現(xiàn)軟件更新的方法及裝置。
背景技術:
在計算機的外圍設備(打印機、掃描儀等)以及需要通過計算機進行軟件更新的其它設備,如照相機以及便攜式媒體播放器(MP3、MP4等)等設備中,通常存儲有完成該設備各項功能的軟件系統(tǒng)。隨著技術的發(fā)展以及應用的需要,這些存儲在設備內部的軟件系統(tǒng)通常需要進行更新,以使設備所具有的功能更豐富,性能更完善。
目前,軟件開發(fā)商在提供更新軟件時,為了使用戶能夠獨立對設備進行軟件更新,所編制的更新軟件除了包括對原始軟件系統(tǒng)進行更新的升級軟件本身以外,還需要包括指導用戶進行更新的與用戶交互的計算機界面軟件,并需要建立該計算機界面軟件與進行更新的軟件本身的連接關系,該連接關系通?;谒接械目蛻舳藚f(xié)議。用戶在將設備與計算機連接后,使用更新軟件對設備進行軟件更新時,需要首先在計算機上運行更新軟件,并看懂所運行的更新軟件中計算機界面軟件的提示內容,根據(jù)提示內容執(zhí)行相應操作,更新軟件根據(jù)用戶操作將進行更新的升級軟件復制到設備中,設備接收到進行更新的升級軟件后,對設備中的原始軟件系統(tǒng)進行自動更新。
可見,現(xiàn)有技術中在進行設備軟件更新時,軟件開發(fā)商需要額外編制一套計算機界面軟件,并且基于私有客戶端協(xié)議的軟件實現(xiàn)困難,可維護性差。對于用戶來說,用戶還需要學會怎樣使用該計算機界面軟件,然后才能完成設備軟件的更新。因此,現(xiàn)有技術中的設備軟件更新過程不僅增加了開發(fā)成本,而且降低了用戶體驗。
發(fā)明內容
有鑒于此,本發(fā)明一方面提供一種實現(xiàn)軟件更新的方法,另一方面提供一種實現(xiàn)軟件更新的裝置,以便降低開發(fā)成本,并提高用戶體驗。
本發(fā)明所提供的實現(xiàn)軟件更新的方法,包括A、通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備;B、計算機通過所建立的外部虛擬設備,向所述設備下載進行更新的升級軟件,設備接收到進行更新的升級軟件后,完成自動更新。
其中,所述進行更新的升級軟件為按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包形成的升級軟件包。
其中,所述按照將程序代碼和程序數(shù)據(jù)分開存儲的原則進行打包為將程序代碼和程序數(shù)據(jù)分別放入不同的文件中,并將程序代碼的文件標識為讀入內存的文件。
其中,更新完成后,該方法進一步包括運行更新后的軟件時,將程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。
其中,所述外部虛擬設備包括用于表示外部虛擬設備信息的虛擬區(qū)域分配表,且虛擬區(qū)域分配表不占用實際的存儲空間,所述虛擬區(qū)域分配表用于設備在與計算機進行通信時,當計算機通過標準協(xié)議讀取設備的虛擬區(qū)域分配文件系統(tǒng)信息時,直接將虛擬區(qū)域分配表中的缺省信息提供給計算機。
其中,所述虛擬區(qū)域分配表設置在所述設備的引導系統(tǒng)BOOT內。
其中,所述虛擬區(qū)域分配表的缺省信息包括文件系統(tǒng)類型和用戶定義的存儲空間大小。
其中,所述用戶定義的存儲空間大小為根據(jù)存放升級軟件的大小確定的存儲空間大小,或設備本身實際所允許的存儲空間大小。
其中,步驟A和步驟B之間進一步包括將設備與計算機連接,在計算機中產(chǎn)生代表設備的外部虛擬設備標識;
則步驟B中所述通過外部虛擬設備,向設備下載進行更新的升級軟件具體包括用戶將進行更新的升級軟件向所顯示的外部虛擬設備標識中進行復制;計算機按照標準協(xié)議向設備中下載數(shù)據(jù),設備將來自計算機的數(shù)據(jù)中的升級軟件數(shù)據(jù)寫入設備內部的存儲空間。
較佳地,所述設備包括正常工作模式和更新模式;則所述將設備與計算機連接之前,進一步包括將設備切換到更新模式。
其中,該方法進一步包括設備對來自計算機的數(shù)據(jù)中的控制命令數(shù)據(jù)進行虛擬處理。
較佳地,所述設備將升級軟件數(shù)據(jù)寫入設備內部的存儲空間之前,進一步包括對升級軟件數(shù)據(jù)進行校驗,若校驗成功,則執(zhí)行所述將升級軟件數(shù)據(jù)寫入設備內部的存儲空間的操作;若校驗失敗,則結束更新流程較佳地,該方法進一步包括根據(jù)更新的結果,所述設備通過所述虛擬區(qū)域分配表將所述更新結果反饋給所述計算機,并在計算機中的外部虛擬設備標識內產(chǎn)生表示升級軟件更新成功與否的文件名。
其中,所述外部虛擬設備為虛擬U盤。
本發(fā)明所提供的實現(xiàn)軟件更新的裝置,包括虛擬設備處理單元和存儲單元,其中,虛擬設備處理單元,用于通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備,并通過所建立的外部虛擬設備接收進行更新的升級軟件,將所接收的升級軟件發(fā)送給存儲單元;存儲單元,用于存儲虛擬設備處理單元發(fā)送過來的所述升級軟件,完成自動更新。
其中,所述虛擬設備處理單元包括虛擬設備建立模塊和數(shù)據(jù)信息處理模塊,其中,虛擬設備建立模塊,用于通過建立虛擬區(qū)域分配表,將設備設置為計算機基于該標準協(xié)議可識別的外部虛擬設備,通過所建立的外部虛擬設備接收來自計算機的數(shù)據(jù),將所接收的計算機數(shù)據(jù)發(fā)送給數(shù)據(jù)信息處理模塊;數(shù)據(jù)信息處理模塊,用于對所接收的計算機數(shù)據(jù)進行分析,若計算機數(shù)據(jù)為升級軟件數(shù)據(jù),則將升級軟件數(shù)據(jù)發(fā)送給存儲單元;若計算機數(shù)據(jù)為控制命令數(shù)據(jù),則對該控制命令數(shù)據(jù)進行虛擬處理。
較佳地,所述數(shù)據(jù)信息處理模塊進一步用于根據(jù)所接收的升級軟件數(shù)據(jù),對升級軟件進行校驗,若校驗成功,則執(zhí)行所述將升級軟件數(shù)據(jù)發(fā)送給存儲單元的操作;若校驗失敗,則結束更新操作。
較佳地,該裝置進一步包括升級軟件運行單元,用于運行更新后的升級軟件,將升級軟件中程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。
從上述方案可以看出,本發(fā)明通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備,并通過所建立的外部虛擬設備,將進行更新的升級軟件下載到設備中,由設備接收到進行更新的升級軟件后,完成自動更新。從而使得軟件開發(fā)商無需提供計算機界面軟件,而只需把進行更新的升級軟件本身提供給用戶即可,不僅降低了開發(fā)商的成本,而且減少了因為計算機界面軟件存在bug造成的風險。并且由于用戶也無需再去學習如何使用計算機界面軟件,而只需按照普通拷貝文件的處理方式,將該升級軟件直接拖到外部虛擬設備標識中進行復制即可。因此,也提高了用戶的體驗。
此外,由于無需提供配套計算機界面軟件,從而使得在進行更新之前,無需在計算機上安裝該計算機界面程序,可使用任何一臺基于標準協(xié)議可識別該設備的計算機,完成更新操作。
并且,由于采用不占用內存的虛擬區(qū)域分配表,使得虛擬區(qū)域分配表可以設置在現(xiàn)有的BOOT內,利用BOOT作為引導系統(tǒng),而無需調用設備的主程序,使軟件更新的過程不依賴于設備的主程序,簡化了更新過程。
最后,本發(fā)明中由于將升級軟件按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,并且更新后運行時將程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。從而降低了程序代碼運行的空間,節(jié)約了成本。
圖1為本發(fā)明實現(xiàn)軟件更新方法的示例性流程圖;圖2為本發(fā)明實現(xiàn)軟件更新裝置的示例性結構圖;圖3為本發(fā)明具體實施例中實現(xiàn)軟件更新方法的流程圖;圖4為本發(fā)明具體實施例中一種升級軟件的打包示意圖;圖5為本發(fā)明具體實施例中實現(xiàn)軟件更新裝置的結構圖。
具體實施例方式
本發(fā)明的基本思想是通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備,計算機通過所建立的外部虛擬設備,向設備中下載進行更新的升級軟件,設備接收到進行更新的升級軟件后,完成自動更新。
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結合實施例和附圖,對本發(fā)明進一步詳細說明。
參見圖1,圖1為本發(fā)明實現(xiàn)軟件更新方法的示例性流程圖。如圖1所示,該流程包括如下步驟步驟101,通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備。
其中,標準協(xié)議可以是通用串行總線(USB)的MassStorage協(xié)議,則可將設備設置為虛擬U盤,也可以是其它標準協(xié)議,則可將設備設置為與其它標準協(xié)議相對應的虛擬設備。
為了將設備設置為基于標準協(xié)議可識別的外部虛擬設備,可在設備中建立用于表示外部虛擬設備信息的虛擬區(qū)域分配表,其中,虛擬區(qū)域分配表可以是虛擬化處理的FAT表,虛擬區(qū)域分配表不占用實際的存儲空間,只用于進入更新狀態(tài)時,在設備內存中加載該虛擬區(qū)域分配表,以便設備與計算機進行通信時,當計算機通過標準協(xié)議讀取設備的虛擬區(qū)域分配文件系統(tǒng)信息時,直接將虛擬區(qū)域分配表中的缺省信息提供給計算機,而缺省信息只包括一些簡單的交互信息,如存儲空間大小信息等,可無需設置真正的目錄區(qū)、文件區(qū)和數(shù)據(jù)區(qū),其數(shù)據(jù)區(qū)可被直接映射到設備的實際存儲區(qū)域中即可,成為一個虛擬數(shù)據(jù)區(qū)。當設備進入更新狀態(tài)前,虛擬區(qū)域分配表將不會被建立,更新結束后,虛擬區(qū)域分配表會從設備內存中移除。從而達到虛擬需要分配表一方面可以幫助實現(xiàn)基于標準協(xié)議進行軟件更新的過程,另一方面又不占用設備的內存空間的目的。
該虛擬區(qū)域分配表的缺省信息可包括文件系統(tǒng)類型和用戶定義的存儲空間大小。其中,文件系統(tǒng)類型包括FAT12或FAT16,用戶定義的存儲空間大小可以是根據(jù)存放升級軟件的大小確定的存儲空間大小,也可以是設備本身實際所允許的存儲空間大小。其中,虛擬區(qū)域分配表中可沒有缺省文件,也沒有缺省目錄名。
實際應用中,也可以對虛擬區(qū)域分配表中的信息進行合理更改,如還可設置一個缺省的空目錄等。
其中,當設備與計算機斷開連接以后,上述虛擬區(qū)域分配表自動刪除。
步驟102,將設備與計算機連接,在計算機中產(chǎn)生代表設備的外部虛擬設備標識。
本步驟中,將設備通過標準協(xié)議接口與計算機連接后,計算機和設備之間遵從標準協(xié)議,實現(xiàn)握手和連接,當計算機按照標準協(xié)議讀取設備的虛擬區(qū)域分配文件系統(tǒng)信息時,設備將虛擬區(qū)域分配表中的缺省信息提供給計算機,計算機根據(jù)所獲取的信息,在計算機中產(chǎn)生表示設備的外部虛擬設備標識,并且點擊該外部虛擬設備標識時,出現(xiàn)的系統(tǒng)信息包括文件系統(tǒng)類型FAT12或FAT16,固定的存儲容量,即用戶定義的存儲空間大小等。
較佳地,該設備可包括正常工作模式和更新模式,則將設備與計算機連接之前,可將設備切換至更新模式,之后將切換至更新模式的設備與計算機連接。如可設置一個更新按鍵,當該更新按鍵被按下時,設備切換至更新模式。
步驟103,向外部虛擬設備表示的設備中下載進行更新的升級軟件。
本步驟中,用戶可按照向普通設備或存儲區(qū)中拷貝文件的方式,將進行更新的升級軟件向所顯示的外部虛擬設備標識中進行復制,則計算機按照標準協(xié)議向設備中下載數(shù)據(jù),設備對所接收的來自計算機的數(shù)據(jù)進行分析,若數(shù)據(jù)為升級軟件數(shù)據(jù),則設備將升級軟件數(shù)據(jù)寫入設備內部的存儲空間中,其中可由外部虛擬設備驅動來完成數(shù)據(jù)寫入功能;若數(shù)據(jù)為控制命令數(shù)據(jù),則設備對該控制命令數(shù)據(jù)進行虛擬處理,處理過程參照標準協(xié)議進行。其中,虛擬處理可包括設備根據(jù)控制命令的指令,按照標準協(xié)議向計算機返回正常結果,但不執(zhí)行相應操作。
較佳地,設備將升級軟件數(shù)據(jù)寫入設備內部的存儲空間之前,進一步包括對所接收的進行更新的升級軟件數(shù)據(jù)進行校驗,若校驗成功,將升級軟件數(shù)據(jù)寫入設備內部的存儲空間;若校驗失敗,則結束更新流程。其中,校驗過程可按照現(xiàn)有技術中的校驗方法進行。如可根據(jù)升級軟件的長度和校驗碼等來校驗數(shù)據(jù)。
其中,進行更新的升級軟件可以是從網(wǎng)絡上下載的,也可以是從光盤等存儲介質上獲取的。
步驟104,設備接收到進行更新的升級軟件后,完成自動更新。
其中,設備將所接收的進行更新的升級軟件,存儲到系統(tǒng)指定的存儲區(qū)域中,即存儲到虛擬區(qū)域分配表的數(shù)據(jù)區(qū)所映射的設備中的實際存儲區(qū)域中,完成自動更新。具體進行更新的過程可與現(xiàn)有技術中的過程一致,此處不再贅述。
較佳地,本步驟中還可進一步包括根據(jù)更新結果,進行更新的設備通過所建立的虛擬區(qū)域分配表將更新結果反饋給所述計算機,并可在計算機中表示設備的外部虛擬設備標識內產(chǎn)生表示升級軟件更新成功與否的文件名。
其中,進行更新的設備通過所建立的虛擬區(qū)域分配表將更新結果反饋給所述計算機的過程可以是進行更新的設備根據(jù)更新結果,生成與更新結果相對應的狀態(tài)反饋文件,若更新成功,則生成表征正確的狀態(tài)反饋文件;若更新失敗,則生成表征錯誤的狀態(tài)反饋文件。并且狀態(tài)反饋文件可以字符串或數(shù)字的形式填充在虛擬區(qū)域分配表的目錄和文件名區(qū)中,計算機從虛擬區(qū)域表中讀取這些字符串或數(shù)字之后,在計算機中表示設備的外部虛擬設備標識內產(chǎn)生表示升級軟件更新成功與否的文件名。
例如若更新成功,包括步驟103中對升級軟件數(shù)據(jù)的校驗成功,且都成功寫入內部存儲空間,完成了自動更新,則可在計算機中表示設備的外部虛擬設備標識內產(chǎn)生表示升級軟件更新成功的“Success”文件名;若更新失敗,包括步驟103中對升級軟件數(shù)據(jù)的校驗失敗,則可在計算機中表示設備的外部虛擬設備標識內產(chǎn)生表示升級軟件更新失敗的“Fail”文件名。
此外,為了降低系統(tǒng)需要的運行代碼的空間(RAM),從而節(jié)省成本,可以將現(xiàn)有技術中放入代碼運行空間的程序數(shù)據(jù)放入RAM外的其它價格便宜的存儲空間中,即升級軟件運行時,可不將這部分程序數(shù)據(jù)讀入內存中,而只需將程序代碼讀入內存即可,為此,可將進行更新的升級軟件按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,如將程序代碼和程序數(shù)據(jù)分別放入不同的文件中,并將程序代碼的文件標識為讀入內存的文件。
之后,該方法可進一步包括在運行更新后的軟件時,正確識別該升級軟件的打包信息,將程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。從而降低了系統(tǒng)需要的代碼運行空間,節(jié)約了成本。
以上對本發(fā)明實施例中實現(xiàn)軟件更新的方法進行了詳細描述,下面再對本發(fā)明實施例中實現(xiàn)軟件更新的裝置進行詳細描述。
參見圖2,圖2為本發(fā)明實現(xiàn)軟件更新裝置的示例性結構圖。如圖2所示,該裝置包括虛擬設備處理單元210和存儲單元220。
其中,虛擬設備處理單元210,用于通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備,并通過所建立的外部虛擬設備接收進行更新的升級軟件,將所接收的升級軟件發(fā)送給存儲單元220。
其中,虛擬設備處理單元210中包括虛擬區(qū)域分配表,當計算機通過標準協(xié)議讀取設備的虛擬區(qū)域分配文件系統(tǒng)信息時,虛擬設備處理單元210將虛擬區(qū)域分配表中的缺省信息提供給計算機。并且在接收來自計算機的數(shù)據(jù)時,可對所接收的數(shù)據(jù)進行分析,若數(shù)據(jù)為升級軟件數(shù)據(jù),則設備將升級軟件數(shù)據(jù)發(fā)送給存儲單元220,其中可由外部虛擬設備驅動來完成數(shù)據(jù)寫入功能;若數(shù)據(jù)為控制命令數(shù)據(jù),則設備對該控制命令數(shù)據(jù)進行虛擬處理。
上述虛擬設備處理單元210可設置在引導系統(tǒng)BOOT中,這樣,升級軟件的更新過程,可不依賴于設備中系統(tǒng)的主程序,而獨立工作。
存儲單元220,用于存儲虛擬設備處理單元210發(fā)送過來的進行更新的升級軟件,完成自動更新。
其中,進行更新的過程與現(xiàn)有技術中進行更新的過程相同。
其中,虛擬設備處理單元210在具體實現(xiàn)時,可有多種實現(xiàn)形式,本實施例中只列舉其中一種。如圖2所示,本實施例中的虛擬設備處理單元210可具體包括虛擬設備建立模塊211和數(shù)據(jù)信息處理模塊212。
其中,虛擬設備建立模塊211,用于按照標準協(xié)議,通過建立虛擬區(qū)域分配表,將設備設置為計算機基于該標準協(xié)議可識別的外部虛擬設備,通過所建立的外部虛擬設備接收來自計算機的數(shù)據(jù),將所接收的計算機數(shù)據(jù)發(fā)送給數(shù)據(jù)信息處理模塊212。
數(shù)據(jù)信息處理模塊212,用于對所接收的計算機數(shù)據(jù)進行分析,若計算機數(shù)據(jù)為升級軟件數(shù)據(jù),則將升級軟件數(shù)據(jù)發(fā)送給存儲單元210;若計算機數(shù)據(jù)為控制命令數(shù)據(jù),則對該控制命令數(shù)據(jù)進行虛擬處理。
此外,數(shù)據(jù)信息處理模塊212可進一步用于根據(jù)所接收的升級軟件數(shù)據(jù),對升級軟件進行校驗,若校驗成功,則執(zhí)行所述將升級軟件數(shù)據(jù)發(fā)送給存儲單元210的操作;若校驗失敗,則結束更新操作。相應地,可根據(jù)更新結果,通過所建立的虛擬區(qū)域分配表,通知計算機在表示設備的外部虛擬設備標識內產(chǎn)生表示升級軟件更新成功與否的文件名。
其中,升級軟件可以按照與現(xiàn)有技術相同的處理方式進行打包,也可以為了降低代碼運行的空間,而按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,若升級軟件按照與現(xiàn)有技術相同的處理方式進行打包,則該裝置按照與現(xiàn)有技術相同的方式運行升級軟件,若升級軟件按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,則本實施例中的裝置還可以包括升級軟件運行單元,用于運行更新后的升級軟件,將升級軟件中程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。
下面以標準協(xié)議為USB MassStorage協(xié)議時為例,對本發(fā)明中實現(xiàn)軟件更新的方法及裝置結合具體實施例進行詳細描述。
參見圖3,圖3為本發(fā)明具體實施例中實現(xiàn)軟件更新的方法的流程圖。如圖3所示,該流程包括如下步驟步驟301,在設備中建立虛擬U盤。
本步驟中,按照U盤的標準協(xié)議,即USB MassStorage協(xié)議,將設備設置成U盤的形式,以便與計算機連接時,計算機將設備當作U盤處理。為實現(xiàn)該目的,可在設備中建立用于表示虛擬U盤信息的虛擬區(qū)域分配(FAT)表,該FAT表的缺省信息包括文件系統(tǒng)類型和用戶定義的存儲空間大小。其中,文件系統(tǒng)類型包括FAT12或FAT16,用戶定義的存儲空間大小可以是根據(jù)存放升級軟件的大小確定的存儲空間大小,也可以是設備本身實際所允許的存儲空間大小。
其中,F(xiàn)AT表不占用實際的存儲空間,只用于與計算機進行通信時,當計算機通過USB MassStorage協(xié)議讀取設備的FAT文件系統(tǒng)信息時,直接將FAT表中的缺省信息提供給計算機。其中,F(xiàn)AT表中沒有缺省文件,也沒有缺省目錄名。
實際應用中,也可以對FAT表中的信息進行合理更改,如還可設置一個缺省的空目錄等。
步驟302,將設備與計算機連接,在計算機中產(chǎn)生表示設備的U盤符。
本步驟中,將設備通過USB接口與計算機連接后,計算機和設備之間遵從USB MassStorage協(xié)議,實現(xiàn)握手和連接,當計算機按照MassStorage協(xié)議讀取設備的FAT文件系統(tǒng)信息時,設備將FAT表中的缺省信息提供給計算機,計算機根據(jù)所獲取的信息,在計算機中產(chǎn)生表示設備的U盤符,并且點擊該U盤符時,出現(xiàn)的系統(tǒng)信息包括文件系統(tǒng)類型FAT12或FAT16,固定的存儲容量,即用戶定義的存儲空間大小等。
較佳地,該設備可包括正常工作模式和更新模式,則將設備與計算機連接之前,可將設備切換至更新模式,之后將切換至更新模式的設備與計算機連接。如可設置一個更新按鍵,當該更新按鍵被按下時,設備切換至更新模式。
步驟303,將進行更新的升級軟件下載到U盤表示的設備中。
本步驟中,用戶可按照向普通U盤中拷貝文件的方式,將進行更新的升級軟件向所顯示的U盤中進行復制,則計算機按照U盤的標準協(xié)議向設備中傳輸數(shù)據(jù),設備對所接收的來自計算機的數(shù)據(jù)進行分析,若數(shù)據(jù)為升級軟件數(shù)據(jù),則設備將升級軟件數(shù)據(jù)寫入設備內部的存儲空間中,其中可由NAND驅動等閃存驅動來完成數(shù)據(jù)寫入功能,如可寫入NAND閃存中進行存儲;若數(shù)據(jù)為控制命令數(shù)據(jù),則設備對該控制命令數(shù)據(jù)進行虛擬處理,處理過程參照USB MassStorage協(xié)議進行。其中,設備根據(jù)控制命令數(shù)據(jù)的指令,向計算機返回正常結果,但不執(zhí)行相應操作。如計算機向設備發(fā)送格式化命令,設備接收到該格式化命令后,并不進行真正的格式化,而是向計算機返回格式化完成的結果等。
較佳地,設備將升級軟件數(shù)據(jù)寫入設備內部的存儲空間之前,進一步包括對所接收的進行更新的升級軟件數(shù)據(jù)進行校驗,若校驗成功,將升級軟件數(shù)據(jù)寫入設備內部的存儲空間;若校驗失敗,則結束更新流程。
其中,進行更新的升級軟件可以是從網(wǎng)絡上下載的,也可以是從光盤等存儲介質上獲取的。
步驟304,設備接收到進行更新的升級軟件后,完成自動更新。
其中,進行更新的過程可與現(xiàn)有技術中的過程一致。
較佳地,本步驟中還可進一步包括根據(jù)更新結果,可在計算機中表示設備的U盤內產(chǎn)生表示升級軟件更新成功與否的文件名。例如若更新成功,包括步驟303中對升級軟件數(shù)據(jù)的校驗成功,且都成功寫入內部存儲空間,完成了自動更新,則可在計算機中表示設備的U盤內產(chǎn)生表示升級軟件更新成功的“Success”文件名;若更新失敗,包括步驟303中對升級軟件數(shù)據(jù)的校驗失敗,則可在計算機中表示設備的U盤內產(chǎn)生表示升級軟件更新失敗的“Fail”文件名。
同樣,為了降低系統(tǒng)需要的運行代碼的空間(RAM),從而節(jié)省成本,可以將現(xiàn)有技術中放入代碼運行空間的程序數(shù)據(jù)放入RAM外的其它價格便宜的存儲空間中,即升級軟件運行時,可不將這部分程序數(shù)據(jù)讀入內存中,而只需將程序代碼讀入內存即可,為此,可將進行更新的升級軟件按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,如將程序代碼和程序數(shù)據(jù)分別放入不同的文件中,并將程序代碼的文件標識為讀入內存的文件。
例如,假設一個升級軟件共占用512比特的空間,且共包括31個文件,則打包的方式可以如圖4所示,圖4示出了一種升級軟件的打包示意圖。
圖4中左側的一列表示整個升級軟件,最上面一部分為文件信息,且指示該升級軟件共占用512比特的空間,且共包括31個文件。下面依次表示第0到第30個文件。圖4中的中間一列示出了左側一列中最上面的文件信息的詳細內容,包括16比特的包文件頭信息、16比特的SRAM代碼文件信息、16比特的DRAM代碼文件信息、16比特的開機畫面文件信息、16比特的更新畫面文件信息、16比特的樂器庫文件信息等。其中,16比特的包文件頭信息可具體如圖4中的右側一列所示包括8比特的文件標識信息、4比特的文件大小信息和4比特的校驗值信息。其中,16比特的SRAM代碼文件信息可如圖4中的右側一列所示包括4比特的文件標識、4比特的文件大小、4比特的CRC校驗值以及用于擴展的4比特的預留位。
其中,將程序代碼和程序數(shù)據(jù)分別放入不同的文件中,如SRAM代碼文件和SDRAM代碼文件均屬于程序代碼文件,其它的文件則屬于程序數(shù)據(jù)文件。之后,將程序代碼的文件標識為讀入內存的文件,即將程序代碼文件標識為讀入SRAM中,或讀入DRAM中。如下所示,列舉幾個文件標識為0x00000001表示SRAM代碼文件標識;0x00000002表示DRAM代碼文件標識;0x00000010表示圖片面文件標識;0x000000FF表示樂器庫文件標識等。
之后,該方法可進一步包括在運行更新后的軟件時,正確識別該升級軟件的打包信息,將NAND閃存中存儲的具有SRAM代碼文件標識的程序代碼文件讀入內存SRAM中,將具有DRAM代碼文件標識的程序代碼文件讀入內存DRAM中,并在運行程序代碼時,根據(jù)程序代碼的運行需求調用NAND閃存中存儲的所需程序數(shù)據(jù)。從而降低了系統(tǒng)需要的代碼運行空間,節(jié)約了成本。
其中,在從NAND中讀取文件時,為了正確找尋到相應文件,可對文件進行如下計算并按照計算結果進行查找,由于該部分的實現(xiàn),現(xiàn)有技術中已有多種實現(xiàn)方式,因此不再進行過多描述。
其中,單個文件的占用空間計算公式為FILESPACE=/*每個文件占用的NAND的空間大小*/((FILESIZE(4bytes)+NAND_PAGESIZE-1)/NAND_PAGESIZE)*NAND_PAGESIZE文件i在NAND中的起始塊和起始頁的計算公式為TOTALSPACE=/*當前文件之前所有文件占用的NAND的空間大小*/NAND_PAGESIZE(文件信息表)+∑FILESPACE(i-1)BLOCKNUM=TOTALSPACE/(NAND_PAGESIZE*NAND_PAGE_PERBLOCK)PAGENUM=(TOTALSPACE%(NAND_PAGESIZE*NAND_PAGE_PERBLOCK))/NAND_PAGESIZE以上對本發(fā)明具體實施例中實現(xiàn)軟件更新的方法進行了詳細描述,下面再對本發(fā)明具體實施例中實現(xiàn)軟件更新的裝置進行詳細描述。
參見圖5,圖5為本發(fā)明實施例中實現(xiàn)軟件更新的裝置的結構示意圖。如圖5所示,該裝置包括虛擬U盤處理單元510和存儲單元520。
其中,虛擬U盤處理單元510,用于通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬U盤,并通過所建立的虛擬U盤接收進行更新的升級軟件,將所接收的升級軟件發(fā)送給存儲單元520。
其中,虛擬U盤處理單元510中包括虛擬FAT表,當計算機通過USB的MassStorage協(xié)議讀取設備的FAT文件系統(tǒng)信息時,虛擬U盤處理單元510將FAT表中的缺省信息提供給計算機。并且在接收來自計算機的數(shù)據(jù)時,可對所接收的數(shù)據(jù)進行分析,若數(shù)據(jù)為升級軟件數(shù)據(jù),則設備將升級軟件數(shù)據(jù)發(fā)送給存儲單元520,其中可由NAND驅動等閃存驅動來完成數(shù)據(jù)寫入功能;若數(shù)據(jù)為控制命令數(shù)據(jù),則設備對該控制命令數(shù)據(jù)進行虛擬處理。
存儲單元520,用于存儲虛擬U盤處理單元510發(fā)送過來的進行更新的升級軟件,完成自動更新。其中,存儲單元520可以為NAND閃存。
其中,進行更新的過程與現(xiàn)有技術中進行更新的過程相同。
其中,虛擬U盤處理單元510在具體實現(xiàn)時,可具體包括虛擬U盤建立模塊511和數(shù)據(jù)信息處理模塊512。
其中,虛擬U盤建立模塊511,用于將設備設置為計算機基于U盤的標準協(xié)議可識別的外部虛擬U盤,通過所建立的虛擬U盤接收來自計算機的數(shù)據(jù),將所接收的計算機數(shù)據(jù)發(fā)送給數(shù)據(jù)信息處理模塊512。
數(shù)據(jù)信息處理模塊512,用于對所接收的計算機數(shù)據(jù)進行分析,若計算機數(shù)據(jù)為升級軟件數(shù)據(jù),則將升級軟件數(shù)據(jù)發(fā)送給存儲單元510;若計算機數(shù)據(jù)為控制命令數(shù)據(jù),則對該控制命令數(shù)據(jù)進行虛擬處理。
此外,數(shù)據(jù)信息處理模塊512可進一步用于根據(jù)所接收的升級軟件數(shù)據(jù),對升級軟件進行校驗,若校驗成功,則執(zhí)行所述將升級軟件數(shù)據(jù)發(fā)送給存儲單元510的操作;若校驗失敗,則結束更新操作。相應地,可根據(jù)更新結果,通知計算機在表示設備的U盤內產(chǎn)生表示升級軟件更新成功與否的文件名。
其中,升級軟件可以按照與現(xiàn)有技術相同的處理方式進行打包,也可以為了降低代碼運行的空間,而按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,若升級軟件按照與現(xiàn)有技術相同的處理方式進行打包,則該裝置按照與現(xiàn)有技術相同的方式運行升級軟件,若升級軟件按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包,則本實施例中的裝置還可以包括升級軟件運行單元,用于運行更新后的升級軟件,將升級軟件中程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用NAND閃存中存儲的程序數(shù)據(jù)。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種實現(xiàn)軟件更新的方法,其特征在于,該方法包括A、通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備;B、計算機通過所建立的外部虛擬設備,向所述設備下載進行更新的升級軟件,設備接收到進行更新的升級軟件后,完成自動更新。
2.如權利要求1所述的方法,其特征在于,所述進行更新的升級軟件為按照將程序代碼和程序數(shù)據(jù)分開存放的原則進行打包形成的升級軟件包。
3.如權利要求2所述的方法,其特征在于,所述按照將程序代碼和程序數(shù)據(jù)分開存儲的原則進行打包為將程序代碼和程序數(shù)據(jù)分別放入不同的文件中,并將程序代碼的文件標識為讀入內存的文件。
4.如權利要求3所述的方法,其特征在于,更新完成后,該方法進一步包括運行更新后的軟件時,將程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。
5.如權利要求1所述的方法,其特征在于,所述設備包括用于表示外部虛擬設備信息的虛擬區(qū)域分配表,且虛擬區(qū)域分配表不占用實際的存儲空間,所述虛擬區(qū)域分配表用于設備在與計算機進行通信時,當計算機通過標準協(xié)議讀取設備的虛擬區(qū)域分配文件系統(tǒng)信息時,直接將虛擬區(qū)域分配表中的缺省信息提供給計算機。
6.如權利要求5所述的方法,其特征在于,所述虛擬區(qū)域分配表設置在所述設備的引導系統(tǒng)BOOT內。
7.如權利要求5所述的方法,其特征在于,所述虛擬區(qū)域分配表的缺省信息包括文件系統(tǒng)類型和用戶定義的存儲空間大小。
8.如權利要求7所述的方法,其特征在于,所述用戶定義的存儲空間大小為根據(jù)存放升級軟件的大小確定的存儲空間大小,或設備本身實際所允許的存儲空間大小。
9.如權利要求1所述的方法,其特征在于,步驟A和步驟B之間進一步包括將設備與計算機連接,在計算機中產(chǎn)生代表設備的外部虛擬設備標識;則步驟B中所述通過外部虛擬設備,向設備下載進行更新的升級軟件具體包括用戶將進行更新的升級軟件向所顯示的外部虛擬設備標識中進行復制;計算機按照標準協(xié)議向設備中下載數(shù)據(jù),設備將來自計算機的數(shù)據(jù)中的升級軟件數(shù)據(jù)寫入設備內部的存儲空間。
10.如權利要求9所述的方法,其特征在于,所述設備包括正常工作模式和更新模式;則所述將設備與計算機連接之前,進一步包括將設備切換到更新模式。
11.如權利要求9所述的方法,其特征在于,該方法進一步包括設備對來自計算機的數(shù)據(jù)中的控制命令數(shù)據(jù)進行虛擬處理。
12.如權利要求9所述的方法,其特征在于,所述設備將升級軟件數(shù)據(jù)寫入設備內部的存儲空間之前,進一步包括對升級軟件數(shù)據(jù)進行校驗,若校驗成功,則執(zhí)行所述將升級軟件數(shù)據(jù)寫入設備內部的存儲空間的操作;若校驗失敗,則結束更新流程。
13.如權利要求1至12中任一項所述的方法,其特征在于,該方法進一步包括根據(jù)更新的結果,所述設備通過所述虛擬區(qū)域分配表將所述更新結果反饋給所述計算機,并在計算機中的外部虛擬設備標識內產(chǎn)生表示升級軟件更新成功與否的文件名。
14.如權利要求1至12中任一項所述的方法,其特征在于,所述外部虛擬設備為虛擬U盤。
15.一種實現(xiàn)軟件更新的裝置,其特征在于,該裝置包括虛擬設備處理單元和存儲單元,其中,虛擬設備處理單元,用于通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備,并通過所建立的外部虛擬設備接收進行更新的升級軟件,將所接收的升級軟件發(fā)送給存儲單元;存儲單元,用于存儲虛擬設備處理單元發(fā)送過來的所述升級軟件,完成自動更新。
16.如權利要求15所述的裝置,其特征在于,所述虛擬設備處理單元包括虛擬設備建立模塊和數(shù)據(jù)信息處理模塊,其中,虛擬設備建立模塊,用于通過建立虛擬區(qū)域分配表,將設備設置為計算機基于該標準協(xié)議可識別的外部虛擬設備,通過所建立的外部虛擬設備接收來自計算機的數(shù)據(jù),將所接收的計算機數(shù)據(jù)發(fā)送給數(shù)據(jù)信息處理模塊;數(shù)據(jù)信息處理模塊,用于對所接收的計算機數(shù)據(jù)進行分析,若計算機數(shù)據(jù)為升級軟件數(shù)據(jù),則將升級軟件數(shù)據(jù)發(fā)送給存儲單元;若計算機數(shù)據(jù)為控制命令數(shù)據(jù),則對該控制命令數(shù)據(jù)進行虛擬處理。
17.如權利要求16所述的裝置,其特征在于,所述數(shù)據(jù)信息處理模塊進一步用于根據(jù)所接收的升級軟件數(shù)據(jù),對升級軟件進行校驗,若校驗成功,則執(zhí)行所述將升級軟件數(shù)據(jù)發(fā)送給存儲單元的操作;若校驗失敗,則結束更新操作。
18.如權利要求15至17中任一項所述的裝置,其特征在于,該裝置進一步包括升級軟件運行單元,用于運行更新后的升級軟件,將升級軟件中程序代碼的文件讀入內存中,根據(jù)程序代碼的運行需求調用內存外存儲的程序數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種實現(xiàn)軟件更新的方法,包括通過建立虛擬區(qū)域分配表,將設備設置為計算機基于標準協(xié)議可識別的外部虛擬設備,計算機通過所建立的外部虛擬設備,向所述設備下載進行更新的升級軟件,設備接收到進行更新的升級軟件后,完成自動更新。此外,本發(fā)明還公開了一種實現(xiàn)軟件更新的裝置,包括虛擬設備處理單元和存儲單元。本發(fā)明所提供的方法及裝置,能夠降低開發(fā)成本,并提高用戶體驗。
文檔編號G06F9/445GK101030145SQ200710065299
公開日2007年9月5日 申請日期2007年4月10日 優(yōu)先權日2007年4月10日
發(fā)明者張華 , 劉勇, 譚帥 申請人:北京中星微電子有限公司