專利名稱:軟件更新方法和便攜式終端設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種便攜式終端設(shè)備,更具體地涉及一種基于通過(guò)無(wú) 線通信獲取的差分?jǐn)?shù)據(jù)對(duì)存儲(chǔ)在置于便攜式終端內(nèi)的非易失性存儲(chǔ)器 中的軟件進(jìn)行更新的方法。
背景技術(shù):
目前,諸如蜂窩電話的便攜式終端被廣泛地使用。為了增加這種 便攜式終端的功能、提高其性能、糾正其故障等,有必要更新軟件, 例如存儲(chǔ)在便攜式終端的存儲(chǔ)器中的程序??梢允褂猛ㄟ^(guò)無(wú)線通信對(duì) <更攜式終端執(zhí)行軟件更新的固件空中傳輸(Firmware over-the-air FOTA)技術(shù),該技術(shù)使用用于存儲(chǔ)軟件的諸如閃存的可再寫(xiě)的非易 失性存儲(chǔ)器(例如,參見(jiàn)日本未審查的專利申請(qǐng)公開(kāi)No. 2006-309516)。隨著用于便攜式終端的軟件的功能變得越來(lái)越復(fù)雜,必要的存儲(chǔ) 器容量也增加。因此,存儲(chǔ)裝置的成本會(huì)增加,而存儲(chǔ)裝置的成本增 加又會(huì)影響產(chǎn)品的價(jià)格。為了解決上述提到的問(wèn)題,提出了一種將預(yù)先已被壓縮的軟件裝 載到存儲(chǔ)器中并在軟件被執(zhí)行時(shí)再解壓縮被壓縮的軟件的方法。根據(jù) 該方法,軟件自身的大小被減小了。因此,可以期望達(dá)到在一定程度 上減小必要的存儲(chǔ)器容量的效果。然而,由于對(duì)壓縮的軟件進(jìn)行解壓縮需要額外的時(shí)間,因此不期望減少啟動(dòng)時(shí)間的效果。諸如閃存的可再寫(xiě)的非易失性半導(dǎo)體存儲(chǔ)器被用作用于便攜式終 端的存儲(chǔ)裝置。因此,閃存用于存儲(chǔ)用于便攜式終端的程序。在從閃存進(jìn)行引導(dǎo)(booting up)的情形下,程序區(qū)中的程序臨時(shí)從閃存?zhèn)魉偷诫S機(jī)存 取存儲(chǔ)器(RAM),然后在RAM中執(zhí)行該程序。當(dāng)在閃存中存儲(chǔ)已被預(yù)先壓縮的代碼的情形下,從閃存裝栽到 RAM上的代碼的大小被減小。因此,存儲(chǔ)器的閑置空間會(huì)增加,而 增加的閑置空間可以用作存儲(chǔ)區(qū)域。然而,由于當(dāng)執(zhí)行引導(dǎo)時(shí)必需對(duì)壓縮的代碼進(jìn)行解壓縮,所以這 需要很長(zhǎng)一段時(shí)間去啟動(dòng)軟件。在通過(guò)使用FOTA更新由壓縮代碼組成的軟件的情形下,執(zhí)行 以下順序的步驟1) 解壓縮閃存中的壓縮代碼,把解壓縮的代碼傳送到RAM作 為原始代碼;2) 根據(jù)解壓縮的軟件和通過(guò)無(wú)線通信獲取的差分文件更新軟件;和3) 在便攜式終端中壓縮更新的軟件,并將經(jīng)壓縮的更新的軟件寫(xiě)回到閃存。發(fā)明內(nèi)容在上述描述的步驟中,如果在將壓縮的更新軟件寫(xiě)回到閃存中時(shí)發(fā)生斷電,不僅RAM中的壓縮的更新代碼會(huì)損壞,而且更新前的壓 縮代碼也會(huì)被損壞,由于更新前的壓縮代碼被壓縮的更新代碼所覆 寫(xiě)。因此,當(dāng)電力恢復(fù)后,不能執(zhí)行對(duì)更新前的壓縮軟件進(jìn)行解壓縮 以再繼續(xù)軟件更新。另外,由于執(zhí)行上述順序的步驟,用于更新閃存中的壓縮軟件的 軟件更新處理需要相對(duì)長(zhǎng)的時(shí)間。因此,由于在寫(xiě)回到閃存的過(guò)程中 電量耗盡,所以便攜式終端發(fā)生斷電的可能性很大。即使當(dāng)壓縮的更新軟件正被寫(xiě)入非易失性存儲(chǔ)器時(shí)便攜式終端設(shè) 備發(fā)生斷電,也希望允許便攜式終端設(shè)備在該便攜式終端的電源被恢 復(fù)后再繼續(xù)軟件更新。根據(jù)本發(fā)明的一個(gè)實(shí)施例的軟件更新方法,用于基于差分?jǐn)?shù)據(jù)通 過(guò)無(wú)線通信對(duì)作為壓縮代碼存儲(chǔ)在置于便攜式終端內(nèi)的非易失性存儲(chǔ)器中的軟件進(jìn)行更新,包括下述步驟提供具有容錯(cuò)性的文件系統(tǒng) 區(qū);在執(zhí)行軟件更新時(shí),對(duì)軟件的壓縮代碼進(jìn)行解壓縮,并將解壓縮 的代碼裝栽到隨機(jī)存取存儲(chǔ)器中;基于差分?jǐn)?shù)據(jù)對(duì)隨機(jī)存取存儲(chǔ)器中 的軟件進(jìn)行更新;壓縮更新的軟件;以及將與壓縮更新軟件的壓縮更 新部分相對(duì)應(yīng)的壓縮更新代碼序列的備份存儲(chǔ)在文件系統(tǒng)區(qū)中,然后 將與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列寫(xiě)回到 非易失性存儲(chǔ)器中。在與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列被 寫(xiě)入非易失性存儲(chǔ)器之前,壓縮更新代碼序列的備份被存儲(chǔ)到具有容 錯(cuò)性的文件系統(tǒng)區(qū)。因此,即使在執(zhí)行軟件更新時(shí)由于斷電而寫(xiě)回到 非易失性存儲(chǔ)器失敗,當(dāng)電力恢復(fù)后,存儲(chǔ)在文件系統(tǒng)區(qū)中的與壓縮 更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列也被寫(xiě)回到非易 失性存儲(chǔ)器的相應(yīng)區(qū),然后軟件更新能夠再繼續(xù)。更具體地^兌,軟件可以:陂分成多個(gè)構(gòu)件(component),該多個(gè) 構(gòu)件都可以被壓縮,多個(gè)被壓縮的構(gòu)件可以被存儲(chǔ)在非易失性存儲(chǔ)器 中。當(dāng)執(zhí)行軟件更新時(shí),軟件的所有的被壓縮的多個(gè)構(gòu)件可以被解壓 縮,并且被解壓縮的構(gòu)件可以被裝栽到隨機(jī)存取存儲(chǔ)器中?;诓罘?數(shù)據(jù),在隨機(jī)存取存儲(chǔ)器中,僅有將要被更新的構(gòu)件可以被更新。僅 有更新的構(gòu)件可以被壓縮,并且被壓縮的更新構(gòu)件可以被寫(xiě)回到非易 失性存儲(chǔ)器的相應(yīng)區(qū)。在將非易失性存儲(chǔ)器中的與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng) 的壓縮更新代碼序列備份存儲(chǔ)在文件系統(tǒng)區(qū)中時(shí),僅有被壓縮的更新 構(gòu)件可以被存儲(chǔ)在文件系統(tǒng)區(qū)中。本發(fā)明的 一個(gè)實(shí)施例也可以應(yīng)用于一種計(jì)算機(jī)程序,該計(jì)算機(jī)程序用于實(shí)現(xiàn)具有下述功能或這樣的功能的上述便攜式終端設(shè)備基于 差分?jǐn)?shù)據(jù)通過(guò)無(wú)線通信對(duì)作為壓縮代碼存儲(chǔ)在置于便攜式終端中的非 易失性存儲(chǔ)器中的軟件進(jìn)行更新。根據(jù)本發(fā)明的一個(gè)實(shí)施例,在與壓縮更新軟件的壓縮更新部分相 對(duì)應(yīng)的壓縮更新代碼序列被寫(xiě)入非易失性存儲(chǔ)器之前,壓縮更新代碼 序列的備份被存儲(chǔ)在真有容錯(cuò)性的文件系統(tǒng)區(qū)中。因此,即使在更新 數(shù)據(jù)被寫(xiě)入非易失性存儲(chǔ)器時(shí)發(fā)生斷電后,非易失性存儲(chǔ)器中的軟件 的有效性依然能被維持,而且軟件更新能夠再繼續(xù)。
圖1是示意性地示出根據(jù)本發(fā)明實(shí)施例的便攜式終端的硬件結(jié)構(gòu) 的例子的框圖;圖2示出便攜式終端通過(guò)無(wú)線通信下載軟件更新所必需的數(shù)據(jù)的 狀態(tài);圖3示意性地示出根據(jù)本發(fā)明實(shí)施例的便攜式終端的閃存中的更 新之前的軟件存儲(chǔ)區(qū);圖4示出根據(jù)本發(fā)明實(shí)施例的利用代碼壓縮進(jìn)行軟件更新的過(guò)程;圖5示出根據(jù)本發(fā)明實(shí)施例的在更新代碼序列被壓縮以及被寫(xiě)回到閃存時(shí)發(fā)生斷電的情形;圖6示出在實(shí)施例中所使用的數(shù)據(jù)表的結(jié)構(gòu)的例子;圖7示出實(shí)施例中在發(fā)生斷電時(shí),更新前的壓縮代碼通過(guò)使用文件系統(tǒng)區(qū)中的數(shù)據(jù)備份而被恢復(fù)的過(guò)程;圖8示出實(shí)施例中發(fā)生斷電后再繼續(xù)更新處理的過(guò)程;圖9是示意性地示出在本發(fā)明的實(shí)施例中啟動(dòng)便攜式終端的處理的流程圖;圖lO是示意性地示出軟件更新處理的流程圖。
具體實(shí)施方式
將參照附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行描述。圖1是示意性地示出根據(jù)本發(fā)明實(shí)施例的便攜式終端10的硬件結(jié)構(gòu)的例子的框圖。在該實(shí)施例中,描述蜂窩電話被用作便攜式終端10的例子。便攜式終端10包括控制器11、聲音處理單元12、麥克風(fēng)13、 揚(yáng)聲器14、存儲(chǔ)單元15、通信單元16、雙工器(duplexer) 17、天 線17a、操作單元18和顯示單元19。控制器11包括中央處理單元(CPU) 30,該中央處理單元包含 在用于蜂窩電話的大規(guī)模集成(LSI)電路中??刂破鱨l充當(dāng)被配置 為控制便攜式終端10的處理以及控制構(gòu)成便攜式終端10的每個(gè)單元 的數(shù)據(jù)處理單元。聲音處理單元12在控制器11的控制下,執(zhí)行用于會(huì)話、音樂(lè)播 放等的聲音處理。另外,聲音處理單元12接收來(lái)自麥克風(fēng)13的聲 音,并將聲音輸出到揚(yáng)聲器14。存儲(chǔ)單元15在其中存儲(chǔ)程序和數(shù)據(jù)。在這個(gè)實(shí)施例中,存儲(chǔ)單 元15包括諸如NAND存儲(chǔ)器的非易失性閃存20和諸如同步動(dòng)態(tài)隨 機(jī)存取存儲(chǔ)器(SDRAM)的隨機(jī)存取存儲(chǔ)器(RAM) 24。閃存20是可再寫(xiě)的非易失性存儲(chǔ)器,用于存儲(chǔ)由控制器11執(zhí)行 的程序。閃存20包括引導(dǎo)區(qū)21,用于存儲(chǔ)引導(dǎo)程序;程序區(qū)22, 用于存儲(chǔ)程序代碼;以及存儲(chǔ)區(qū)23,用于存儲(chǔ)其它必要的數(shù)據(jù)和程 序。存儲(chǔ)區(qū)23包括文件系統(tǒng)區(qū),用于存儲(chǔ)這些數(shù)據(jù)。該文件系統(tǒng)區(qū) 具有容錯(cuò)性。由于具有容錯(cuò)性,甚至當(dāng)斷電時(shí),文件系統(tǒng)區(qū)的數(shù)據(jù)也 不會(huì)被破壞。這樣的文件系統(tǒng)區(qū)用于存儲(chǔ)多種類(lèi)型的數(shù)據(jù),例如電話 薄、電子郵箱、網(wǎng)絡(luò)內(nèi)容、音樂(lè)和圖像,以及程序。當(dāng)按照引導(dǎo)程序執(zhí)行引導(dǎo)時(shí),程序區(qū)22被裝載到RAM 24中, 在RAM 24中執(zhí)行軟件例如程序。更具體地說(shuō),當(dāng)給控制器11和存 儲(chǔ)單元15供電時(shí),將閃存20的引導(dǎo)區(qū)21的內(nèi)容讀取到控制器11的 存儲(chǔ)區(qū)中,并基于控制器11的內(nèi)置邏輯執(zhí)行這些內(nèi)容。通過(guò)本發(fā)明 的實(shí)施例定義的引導(dǎo)處理被合并在程序中。依照該程序,將要被執(zhí)行的程序代碼從閃存20裝栽到RAM 24中,并在RAM 24中執(zhí)行該程 序。通信單元16在控制器11的控制下,通過(guò)無(wú)線通信且使用天線 17a來(lái)執(zhí)行與基站(未示出)之間的發(fā)送和接收。雙工器17是天線 雙工器。也就是說(shuō),在發(fā)送信號(hào)和接收信號(hào)之間共享一根天線,雙工 器17包括濾波電路,該濾波電路具有將從天線接收的接收信號(hào)發(fā)送 給接收單元和將從發(fā)送單元發(fā)送的發(fā)送信號(hào)發(fā)送給天線的功能。操作單元18包括數(shù)字鍵和多種控制鍵,操作單元18具有將從用 戶接收的指令和信息發(fā)送給控制器11的功能。顯示單元19包括顯示裝置,例如液晶顯示屏(LCD)或者有機(jī) 電致發(fā)光(EL)裝置。顯示單元19具有向用戶顯示可見(jiàn)信息例如文 本或圖像(靜止圖像或運(yùn)動(dòng)圖像)的功能?,F(xiàn)在將描述在實(shí)施例中執(zhí)行的操作。參照?qǐng)D2,使用FOTA,在必需更新軟件的情況下,軟件提供商 將更新所必需的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)例如因特網(wǎng)存儲(chǔ)在分布式服務(wù)器25 中,并且便攜式終端10通過(guò)無(wú)線通信下載更新所必需的數(shù)據(jù)。閃存 包括軟件存儲(chǔ)區(qū)和文件系統(tǒng)區(qū)。更新所必需的數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)區(qū) 中。軟件提供商將更新所必需的數(shù)據(jù)生成作為新版本和舊版本之間的 差別,并在分布式服務(wù)器25中存儲(chǔ)該所必需的數(shù)據(jù)。通過(guò)比較舊軟 件的未壓縮的原始代碼與新軟件的未壓縮的原始代碼而生成這種差分 數(shù)據(jù)。圖3示意性地示出便攜式終端10的閃存20中的更新之前的軟件 存儲(chǔ)區(qū)。在閃存20的程序區(qū)22 (參見(jiàn)圖1)中存儲(chǔ)有更新前的軟 件201,其包括多個(gè)壓縮構(gòu)件1~N;更新軟件202,其是寫(xiě)入有更新 處理的程序;以及軟件更新數(shù)據(jù)26,其是用于軟件更新的差分?jǐn)?shù) 據(jù)。軟件更新數(shù)據(jù)26并不一定是被壓縮的。另外,在閃存20的存儲(chǔ) 區(qū)23 (參見(jiàn)圖1)中,提供要由文件系統(tǒng)使用的文件系統(tǒng)區(qū)203。如 上所述,軟件更新數(shù)據(jù)26預(yù)先從分布式服務(wù)器25中下栽。圖4示出利用代碼壓縮進(jìn)行軟件更新的過(guò)程。在便攜式終端10基于從分布式服務(wù)器25獲取的軟件更新數(shù)據(jù) 26 (差分?jǐn)?shù)據(jù))更新一個(gè)舊版本的軟件的情況下,由于舊版本的軟件 被壓縮并存儲(chǔ)在閃存20中,差分?jǐn)?shù)據(jù)不能被直接使用。因此,在用 于便攜式終端的利用代碼壓縮的相關(guān)技術(shù)的FOTA的情形中,通過(guò) 壓縮構(gòu)成軟件的多個(gè)構(gòu)件中的每一個(gè)而得到的代碼被臨時(shí)解壓縮,解 壓縮的代碼被裝栽到RAM 24中并被轉(zhuǎn)換為原始未壓縮的代碼 (1)。因?yàn)樵诟萝浖r(shí)甚至沒(méi)有更新的構(gòu)件都可能被參考,所 以,所有的構(gòu)件都被解壓縮以及裝載到RAM 24中。然后,對(duì)RAM 24中的未壓縮的代碼使用差分?jǐn)?shù)據(jù)執(zhí)行軟件更新(2)。圖4的例子 示出在軟件更新中構(gòu)件l和3被更新的情形。隨后,更新的代碼被壓 縮并且壓縮的更新的代碼被寫(xiě)回到閃存20 (3)。圖5示出當(dāng)更新代碼序列在被壓縮和寫(xiě)回到閃存20中時(shí)發(fā)生斷 電的情形。在圖4所示的軟件更新處理中,假設(shè),例如,當(dāng)壓縮更新 代碼序列正被寫(xiě)回到閃存20中(2)時(shí)發(fā)生斷電(3)。在這種情況 下,更新前的壓縮代碼序列就被破壞了。作為一個(gè)結(jié)果,即使在電力 恢復(fù)后(4)重新啟動(dòng)時(shí)對(duì)壓縮代碼序列進(jìn)行解壓縮和傳送(5),解 壓縮也不能被成功地執(zhí)行。因此,在RAM中的與已破壞的構(gòu)件相對(duì) 應(yīng)的構(gòu)件變得有缺陷,更新處理不能被再繼續(xù)。正常地,便攜式終端使用電池作為電源。與靜止的裝置相比,由 于電池殘余量減少或由于終端落下等原因而使電池組脫落,所以,在 執(zhí)行處理時(shí),發(fā)生斷電的可能性很大。根據(jù)本發(fā)明的實(shí)施例,對(duì)便攜式終端使用利用代碼壓縮的FOTA 的更新處理的再繼續(xù)能夠被保證,而不管在什么時(shí)候發(fā)生斷電。圖6示出用于本實(shí)施例的數(shù)據(jù)表40的結(jié)構(gòu)的例子。數(shù)據(jù)表40定 義了各壓縮構(gòu)件的大小和各壓縮構(gòu)件存儲(chǔ)在閃存20中的位置(從開(kāi) 始?jí)K到結(jié)束塊)。數(shù)據(jù)表40預(yù)先被置于便攜式終端10的存儲(chǔ)單元 15的預(yù)定區(qū)域中。在數(shù)據(jù)表40中,對(duì)于構(gòu)成軟件程序的各個(gè)壓縮構(gòu) 件來(lái)說(shuō),閃存20中的壓縮構(gòu)件的大小、以及壓縮構(gòu)件的開(kāi)始?jí)K和結(jié)束塊都被存儲(chǔ)。在軟件被存儲(chǔ)到閃存20中時(shí),數(shù)據(jù)表40生成,并且 生成的數(shù)據(jù)表40存儲(chǔ)在存儲(chǔ)單元15中。當(dāng)軟件更新被執(zhí)行時(shí),必要 時(shí)數(shù)據(jù)表40的內(nèi)容也被更新。參照?qǐng)D7,在發(fā)生斷電的情形下,更新前的壓縮代碼通過(guò)文件系 統(tǒng)區(qū)中的備份被恢復(fù)的過(guò)程將被描述。當(dāng)執(zhí)行更新處理時(shí),閃存20中的更新前的軟件被解壓縮,解壓 縮的軟件被傳送到RAM 24 (1),如上述描述。然后,完成對(duì)RAM 24中的構(gòu)件的更新(2),與更新的構(gòu)件相對(duì)應(yīng)的壓縮代碼序列被復(fù) 制到文件系統(tǒng)區(qū)203 (3)。在復(fù)制的情況下,數(shù)據(jù)表40的值被參 考,與將要被復(fù)制的構(gòu)件相對(duì)應(yīng)的壓縮代碼序列的位置也被復(fù)制到文 件系統(tǒng)區(qū)203。因此,通過(guò)參考數(shù)據(jù)表40,僅有將要被更新的構(gòu)件能 被備份在文件系統(tǒng)區(qū)203中。隨后,與更新的構(gòu)件相對(duì)應(yīng)的壓縮代碼 序列被寫(xiě)回到閃存20中(4)。在當(dāng)正在寫(xiě)的時(shí)候發(fā)生斷電的情形下 (5),由于更新處理中斷,所以,正被寫(xiě)入到閃存20的構(gòu)件(在圖 7所示的例子中的構(gòu)件1)的數(shù)據(jù)被破壞。當(dāng)電力供應(yīng)恢復(fù)后(6),與已被復(fù)制到文件系統(tǒng)區(qū)203的更新 的構(gòu)件相對(duì)應(yīng)的壓縮代碼序列被寫(xiě)到閃存20中的合適的位置(指定 位置)(7)。因此,正進(jìn)行寫(xiě)處理的構(gòu)件被更新。在構(gòu)件被再次解 壓縮并傳送到RAM 24中的情形下,對(duì)將要被更新的下一個(gè)構(gòu)件的更 新處理能被正常地再繼續(xù)。在發(fā)生斷電后再繼續(xù)更新處理的程序?qū)⒄請(qǐng)D8描述。在構(gòu)件 1 N被解壓縮后,解壓縮的構(gòu)件1 N被再次傳送到RAM 24,軟件更 新被執(zhí)行(l)。在這種情形下,更新處理從當(dāng)最后一次發(fā)生斷電時(shí) 正進(jìn)行寫(xiě)入處理的構(gòu)件之后的將要被更新的構(gòu)件處再繼續(xù)。在本實(shí)施 例中,假設(shè)在構(gòu)件1的壓縮和寫(xiě)入被執(zhí)行后(2),當(dāng)壓縮的構(gòu)件3 正被寫(xiě)入到閃存20中時(shí)(3)再次發(fā)生斷電。在構(gòu)件3被寫(xiě)入閃存 20之前,與構(gòu)件3相對(duì)應(yīng)的壓縮代碼序列被復(fù)制到文件系統(tǒng)區(qū)203。 在與構(gòu)件3相對(duì)應(yīng)的壓縮代碼序列正被寫(xiě)入閃存20時(shí)發(fā)生斷電的情 形下,閃存20中的對(duì)應(yīng)構(gòu)件的區(qū)域被破壞。然而,在電力恢復(fù)和重新啟動(dòng)之后(4),已被備份在文件系統(tǒng)區(qū)203中的壓縮的構(gòu)件3被 讀取,并且讀取的壓縮的構(gòu)件3被寫(xiě)入到閃存20中的對(duì)應(yīng)位置 (5)。因此,實(shí)現(xiàn)對(duì)構(gòu)件3的更新完成的狀態(tài),能從將要被更新的 下一構(gòu)件處再繼續(xù)更新處理((6)和(7))。圖9示出根據(jù)本實(shí)施例的啟動(dòng)便攜式終端10的處理的流程圖。 圖9所示的處理由圖1所示的控制器ll執(zhí)行??刂破?1確定是否要執(zhí)行軟件更新(步驟Sll)。步驟Sll中 的確定是通過(guò)檢查是否設(shè)置預(yù)定的標(biāo)志來(lái)進(jìn)行,當(dāng)用于更新的差分?jǐn)?shù) 據(jù)被下載時(shí)標(biāo)志被設(shè)定。若在步驟Sll中確定不執(zhí)行軟件更新,則正 常的軟件被啟動(dòng)(步驟S13)。若在步驟Sll中確定執(zhí)行軟件更新, 則啟動(dòng)更新軟件(步驟S12)。也就是說(shuō),閃存20中的更新軟件202 被裝載到RAM 24,并且更新軟件202被執(zhí)行。若更新軟件202已經(jīng) 被壓縮,則更新軟件202的解壓縮在更新軟件202被裝載到RAM 24 之前被執(zhí)行。圖10是示意性地示出軟件更新處理的流程圖。軟件更新處理也 是通過(guò)控制器ll來(lái)執(zhí)行的??刂破?1確定是否由于斷電等原因而導(dǎo)致更新處理被中斷(步 驟S21)。如下所述,執(zhí)行步驟S21的確定。也就是^L,更新處理4皮 啟動(dòng)后,指示更新已被完成的最后構(gòu)件的信息以非易失性的方式被記 錄,因此當(dāng)啟動(dòng)更新處理時(shí)該信息能被參考。若在步驟S21中確定更新處理正被中斷,則將正進(jìn)行寫(xiě)入處理的 構(gòu)件從文件系統(tǒng)區(qū)203寫(xiě)入到閃存20的對(duì)應(yīng)區(qū)域(步驟S22)。用 于存儲(chǔ)將要被更新的構(gòu)件的非易失性存儲(chǔ)器的塊,能通過(guò)參考數(shù)據(jù)表 40被確認(rèn)。然后,將要被更新的軟件的所有的構(gòu)件都被解壓縮,并且,解壓 縮的構(gòu)件被裝載到RAM 24中(步驟S23)。接著,將要被更新的軟 件的差分?jǐn)?shù)據(jù)被裝載到RAM 24 (步驟S24 )。步驟S23和S24的處 理可以凈皮顛倒次序執(zhí)行。隨后,裝載的將要被更新的軟件在RAM 24中基于差分?jǐn)?shù)據(jù)被更新(步驟S25)。在這種情形下,已被更新的構(gòu)件從將被處理的目標(biāo) 處被排除。當(dāng)對(duì)將要被更新的所有構(gòu)件的更,都完成后,RAM 24中 的更新的軟件構(gòu)件被壓縮且壓縮的更新的軟件構(gòu)件被復(fù)制到文件系統(tǒng) (步驟S26)。然后,壓縮的軟件構(gòu)件被寫(xiě)回到閃存20的對(duì)應(yīng)區(qū)域 (步驟S27)。如有必要,數(shù)據(jù)表40被更新(步驟S28)。盡管以上描述了本發(fā)明的優(yōu)選實(shí)施例,但在不脫離本發(fā)明的實(shí)質(zhì) 和范圍的情況下對(duì)本發(fā)明可以做多種修改和變化。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)會(huì)理解,在所附權(quán)利要求或其等同形式的范 圍內(nèi),根據(jù)設(shè)計(jì)要求和其他因素,會(huì)想到多種修改、組合、子組合和 替換。
權(quán)利要求
1、一種軟件更新方法,用于基于差分?jǐn)?shù)據(jù)通過(guò)無(wú)線通信對(duì)作為壓縮代碼存儲(chǔ)在置于便攜式終端內(nèi)的非易失性存儲(chǔ)器中的軟件進(jìn)行更新,該方法包括以下步驟提供具有容錯(cuò)性的文件系統(tǒng)區(qū);在軟件更新執(zhí)行時(shí),對(duì)所述軟件的壓縮代碼進(jìn)行解壓縮,并且將已解壓縮的代碼裝載到隨機(jī)存取存儲(chǔ)器;基于所述差分?jǐn)?shù)據(jù),在所述隨機(jī)存取存儲(chǔ)器中更新所述軟件;對(duì)已更新的軟件進(jìn)行壓縮;以及將與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列的備份存儲(chǔ)在所述文件系統(tǒng)區(qū)中,然后將與所述壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列寫(xiě)回到所述非易失性存儲(chǔ)器。
2、 根據(jù)權(quán)利要求1所述的軟件更新方法,其中,在由于在執(zhí)行所述軟件更新時(shí)斷電而導(dǎo)致到所述非易失性 存儲(chǔ)器的寫(xiě)回失敗的情形下,在電力恢復(fù)后,將存儲(chǔ)在所述文件系統(tǒng) 區(qū)中的與所述壓縮更新軟件的所述壓縮更新部分相對(duì)應(yīng)的所述壓縮更 新代碼序列寫(xiě)回到所述非易失性存儲(chǔ)器的對(duì)應(yīng)區(qū)域,然后再繼續(xù)進(jìn)行 所述軟件更新。
3、 根據(jù)權(quán)利要求1或2所述的軟件更新方法,其中,將所述軟件分為多個(gè)構(gòu)件,對(duì)所述多個(gè)構(gòu)件進(jìn)行壓縮,并 且,將已壓縮的所述多個(gè)構(gòu)件存儲(chǔ)在所述非易失性存儲(chǔ)器中,其中,在執(zhí)行所述軟件更新時(shí),對(duì)所述軟件的所有的已壓縮的所 述多個(gè)構(gòu)件進(jìn)行解壓縮,并且將已解壓縮的構(gòu)件裝載到所述隨機(jī)存取 存儲(chǔ)器中,其中,基于所述差分?jǐn)?shù)據(jù),在所述隨機(jī)存取存儲(chǔ)器中僅僅更新要 被更新的構(gòu)件,以及其中,僅僅對(duì)已更新的構(gòu)件進(jìn)行壓縮,并且,將已壓縮的更新構(gòu) 件寫(xiě)回到所述非易失性存儲(chǔ)器的對(duì)應(yīng)區(qū)域。
4、根據(jù)權(quán)利要求3所述的軟件更新方法,其中,在將所述非易失性存儲(chǔ)器中的與所述壓縮更新軟件的所述系統(tǒng)區(qū)中的情形下,僅僅將所述壓縮更新構(gòu)件存儲(chǔ)在所述文件系統(tǒng)區(qū) 中。
5、 根據(jù)權(quán)利要求4所述的軟件更新方法,其中,在將所述軟件的所述壓縮代碼存儲(chǔ)于所述非易失性存儲(chǔ)器 中的情形下,生成用于定義所述壓縮構(gòu)件被存儲(chǔ)在所述非易失性存儲(chǔ) 器中的位置的數(shù)據(jù)表,并且生成的數(shù)據(jù)表以非易失性的方式被存儲(chǔ), 以及其中,在將所述壓縮更新構(gòu)件存儲(chǔ)于所述文件系統(tǒng)區(qū)中的情形 下,通過(guò)參考所述數(shù)據(jù)表確認(rèn)所述壓縮更新構(gòu)件將被存儲(chǔ)在所述非易 失性存儲(chǔ)器中的位置。
6、 一種便攜式終端設(shè)備,用于基于差分?jǐn)?shù)據(jù)通過(guò)無(wú)線通信對(duì)作 為壓縮代碼存儲(chǔ)在置于便攜式終端內(nèi)的非易失性存儲(chǔ)器中的軟件進(jìn)行 更新,該設(shè)備包括存儲(chǔ)單元,被配置為包含具有容錯(cuò)性的文件系統(tǒng)區(qū);隨機(jī)存取存儲(chǔ)器,被配置為存儲(chǔ)所述軟件;和數(shù)據(jù)處理裝置,用于在執(zhí)行軟件更新時(shí)對(duì)所述軟件的所述壓縮代 碼進(jìn)行解壓縮;將已解壓縮的代碼裝載到所述隨機(jī)存取存儲(chǔ)器中;基 于所述差分?jǐn)?shù)據(jù)在所述隨機(jī)存取存儲(chǔ)器中更新所述軟件;對(duì)已更新的 軟件進(jìn)行壓縮;將與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新 代碼序列的備份存儲(chǔ)在所述文件系統(tǒng)區(qū)中;然后將與所述壓縮更新軟易失性存儲(chǔ)器。
7、根據(jù)權(quán)利要求6所述的便攜式終端設(shè)備,其中,在由于在執(zhí)行所述軟件更新時(shí)斷電而導(dǎo)致到所述非易失性 存儲(chǔ)器的寫(xiě)回失敗的情形下,在電力恢復(fù)后,所述數(shù)據(jù)處理裝置將存 儲(chǔ)在所述文件系統(tǒng)區(qū)中的與所述壓縮更新軟件的所述壓縮更新部分相對(duì)應(yīng)的所述壓縮更新代碼序列寫(xiě)回到所述非易失性存儲(chǔ)器的對(duì)應(yīng)區(qū) 域,然后再繼續(xù)進(jìn)行所述軟件更新。
8、 根據(jù)權(quán)利要求6或7所述的便攜式終端設(shè)備,其中,將所述軟件分為多個(gè)構(gòu)件,對(duì)所述多個(gè)構(gòu)件進(jìn)行壓縮,并 且,將已壓縮的所述多個(gè)構(gòu)件存儲(chǔ)在所述非易失性存儲(chǔ)器中,其中,在執(zhí)行所述軟件更新時(shí),所述數(shù)據(jù)處理裝置對(duì)所述軟件的 所有的已壓縮的所述多個(gè)構(gòu)件進(jìn)行解壓縮,將已解壓縮的構(gòu)件裝載到 所述隨機(jī)存取存儲(chǔ)器中,基于所述差分?jǐn)?shù)據(jù),在所述隨機(jī)存取存儲(chǔ)器 中僅僅更新要被更新的構(gòu)件,僅僅對(duì)已更新的構(gòu)件進(jìn)行壓縮,并且, 將已壓縮的更新構(gòu)件寫(xiě)回到所述非易失性存儲(chǔ)器的對(duì)應(yīng)區(qū)域。
9、 根據(jù)權(quán)利要求8所述的便攜式終端設(shè)備,其中,在將所述非易失性存儲(chǔ)器中的與所述壓縮更新軟件的所述系統(tǒng)區(qū)中的情形下,所述數(shù)據(jù)處理裝置僅僅將所述壓縮更新構(gòu)件存儲(chǔ) 在所述文件系統(tǒng)區(qū)中。
10、 根據(jù)權(quán)利要求9所述的便攜式終端設(shè)備,其中,在將所述軟件的所述壓縮代碼存儲(chǔ)于所述非易失性存儲(chǔ)器 中的情形下,所述數(shù)據(jù)處理裝置生成用于定義所述壓縮構(gòu)件被存儲(chǔ)在 所述非易失性存儲(chǔ)器中的位置的數(shù)據(jù)表,并且將生成的數(shù)據(jù)表以非易 失性的方式被存儲(chǔ),以及其中,在將所述壓縮更新構(gòu)件存儲(chǔ)于所述文件系統(tǒng)區(qū)中的情形 下,所述數(shù)據(jù)處理裝置通過(guò)參考所述數(shù)據(jù)表確認(rèn)所述壓縮更新構(gòu)件將 被存儲(chǔ)在所述非易失性存儲(chǔ)器中的位置。
11、 一種便攜式終端設(shè)備,用于基于差分?jǐn)?shù)據(jù)通過(guò)無(wú)線通信對(duì)作 為壓縮代碼存儲(chǔ)在置于便攜式終端內(nèi)的非易失性存儲(chǔ)器中的軟件進(jìn)行 更新,該設(shè)備包括存儲(chǔ)單元,被配置為包含具有容錯(cuò)性的文件系統(tǒng)區(qū);隨機(jī)存取存儲(chǔ)器,被配置為存儲(chǔ)所述軟件;和數(shù)據(jù)處理單元,被配置為在執(zhí)行軟件更新時(shí)對(duì)所述軟件的所述壓縮代碼進(jìn)行解壓縮;將已解壓縮的代碼裝栽到所述隨機(jī)存取存儲(chǔ)器 中;基于所述差分?jǐn)?shù)據(jù)在所述隨機(jī)存取存儲(chǔ)器中更新所述軟件;對(duì)已 更新的軟件進(jìn)行壓縮;將與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓 縮更新代碼序列的備份存儲(chǔ)在所述文件系統(tǒng)區(qū)中;然后將與所述壓縮所述非易失性存儲(chǔ)器。
全文摘要
本發(fā)明提供一種軟件更新方法和一種便攜式終端設(shè)備。該軟件更新方法用于基于差分?jǐn)?shù)據(jù)通過(guò)無(wú)線通信對(duì)作為壓縮代碼存儲(chǔ)在置于便攜式終端內(nèi)的非易失性存儲(chǔ)器中的軟件進(jìn)行更新,包括以下步驟提供具有容錯(cuò)性的文件系統(tǒng)區(qū);在軟件更新執(zhí)行時(shí),對(duì)所述軟件的壓縮代碼進(jìn)行解壓縮,并且將已解壓縮的代碼裝載到隨機(jī)存取存儲(chǔ)器;基于所述差分?jǐn)?shù)據(jù),在所述隨機(jī)存取存儲(chǔ)器中更新所述軟件;對(duì)已更新的軟件進(jìn)行壓縮;以及將與壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列的備份存儲(chǔ)在所述文件系統(tǒng)區(qū)中,然后將與所述壓縮更新軟件的壓縮更新部分相對(duì)應(yīng)的壓縮更新代碼序列寫(xiě)回到所述非易失性存儲(chǔ)器。
文檔編號(hào)G06F9/445GK101334736SQ200810128978
公開(kāi)日2008年12月31日 申請(qǐng)日期2008年6月27日 優(yōu)先權(quán)日2007年6月28日
發(fā)明者三本松利尚, 市川知宏, 平尾康幸, 青柳勝己, 麻健治 申請(qǐng)人:索尼愛(ài)立信移動(dòng)通信日本株式會(huì)社