專利名稱:終端固件的升級方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,并且特別地,涉及一種終端固件的升級 方法和裝置。
背景技術(shù):
通常,無線纟冬端是手才幾、無線市i舌、無線modem或無線網(wǎng)卡 等設(shè)備的統(tǒng)稱。最近,人們提出了可以對存放在無線終端內(nèi)部閃存 存儲器(flash )上的固件進(jìn)行遠(yuǎn)程無線升級的固件空中下載(fireware overtheair, FOTA)解決方案,利用這種技術(shù),可以自動#1測并改 善無線終端的缺陷,并對固件在無線狀態(tài)下進(jìn)行升級,因此,該技 術(shù)也得到了各家移動通信公司和終端制造企業(yè)的廣泛釆用。理流^E圖。如圖l所示,包^r如下步驟步驟(11 ),從升級服務(wù)器上下載升級軟件包(delta package), 將其保存在設(shè)備閃存中,系統(tǒng)進(jìn)程檢測到升級標(biāo)志置位,效驗delta 文件,開始升級過程;步驟(12),將delta升級文件包拷貝至內(nèi)存,如果此時升級被 中斷,設(shè)備重啟后,升級過程將重新開始;步驟(13),利用delta文件,在ram中創(chuàng)建新固件的數(shù)據(jù)塊 (block);步驟(14),擦除flash中相應(yīng)的位置,將生成的block拷貝至 該處,進(jìn)行升級,并備份block;(15),重復(fù)以上(13)和(14)兩步,直至整個升i^的完成 后,重新引導(dǎo)系統(tǒng),升級結(jié)束??梢钥闯?,F(xiàn)OTA升級需要對設(shè)備閃存進(jìn)行重新擦寫,然而, 隨著終端產(chǎn)品的功能更加豐富,石更件的成本不斷下降,無線終端產(chǎn) 品上使用的閃存(flash)存儲器的容量正在成幾何級增長,在三四 年前, 一般設(shè)備上最大使用4M閃存,而現(xiàn)在64M的閃存已經(jīng)成為 了基本的配置。隨著閃存容量的快速增加,使得FOTA升級花費(fèi)在 擦寫flash上的時間越來越長。冗長的升級時間使得用戶體驗非常不 好,這也已經(jīng)逐漸變成了制約FOTA固件升級方式廣泛應(yīng)用的一個 瓶頸。然而,目前尚未才是出能夠縮短4察除所占時間的4支術(shù)方案。 發(fā)明內(nèi)容考慮到上述問題而提出本發(fā)明,為此,本發(fā)明的主要驀地在于 才是供一種終端固件的升級方案,以解決相關(guān)才支術(shù)中固件升級過程中 閃存存儲器擦除時間長的問題。根據(jù)本發(fā)明的實施例,提供了 一種終端固件的升級方法。該方法包括刪除閃存的一個閃存扇區(qū)中的待更新數(shù)據(jù)塊,將在執(zhí)行刪除之前,進(jìn)一步包括獲取升級包,并根據(jù)獲取的升 級包在內(nèi)存扇區(qū)中創(chuàng)建升級包的數(shù)據(jù)塊;確定內(nèi)存中的內(nèi)存扇區(qū)與 閃存中存儲待升級凄t據(jù)塊的閃存扇區(qū)的對應(yīng)關(guān)系。其中,在閃存中存在刪除待更新的凄t據(jù)塊后未寫入數(shù)據(jù)塊的閃 存扇區(qū)的情況下,對閃存的指定標(biāo)識進(jìn)行置位,以表示閃存中存在 能夠執(zhí)行寫入的閃存扇區(qū)。此外,定期才企查標(biāo)識,在標(biāo)識凈皮置4立的情況下,在閃存中查找 能夠?qū)懭肫鄑據(jù)塊的閃存扇區(qū),并沖丸行寫入。除此之外,在內(nèi)存中升級包的數(shù)據(jù)塊均寫入到閃存中后,確定 升級結(jié)束。根據(jù)本發(fā)明的另 一 實施例,提供了 一種終端固件的升級裝置。該裝置包括固件數(shù)據(jù)塊寫入閃存模塊,用于將內(nèi)存中與閃存 的閃存扇區(qū)對應(yīng)的內(nèi)存扇區(qū)中的數(shù)據(jù)塊寫入閃存扇區(qū);同步閃存擦 除模塊,用于刪除閃存扇區(qū)中的待更新數(shù)據(jù)塊,并且在固件數(shù)據(jù)塊數(shù)據(jù)塊。該裝置可以進(jìn)一步包括升級處理才莫塊,用于獲耳又升級包,并 根據(jù)獲取的升級包在內(nèi)存扇區(qū)中創(chuàng)建升級包的數(shù)據(jù)塊;確定模塊,的》于應(yīng)關(guān)系。此外,該裝置可進(jìn)一步包括置位才莫塊,用于在閃存中存在刪 除待更新的數(shù)據(jù)塊后未寫入數(shù)據(jù)塊的扇區(qū)的情況下,對閃存的指定 標(biāo)識進(jìn)行置位,表示閃存中存在能夠執(zhí)行寫入的扇區(qū)。此外,固件#!:據(jù)塊寫入閃存才莫塊在標(biāo)識#:置位的情況下,在閃 存中查找能夠?qū)懭霐?shù)據(jù)塊的扇區(qū),并執(zhí)行寫入。通過本發(fā)明的上述纟支術(shù)方案,能夠在不增加石更件成本以及不進(jìn) 行硬件改進(jìn)的前提下,有效提高固件升級的速度,從而提高了用戶 體驗。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附 圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。附田;tf B日附圖用來才是供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部 分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中
圖1是根據(jù)相關(guān)技術(shù)的無線終端固件升級的流程圖;圖2是根據(jù)本發(fā)明方法實施例的終端固件的升級方法的流程圖;圖3是根據(jù)本發(fā)明裝置實施例的終端固件的升級裝置的框圖;以及圖4是根據(jù)本發(fā)明裝置實施例的終端固件的升級裝置在進(jìn)行固 件升級時的處理示意圖。頁具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此 處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本 發(fā)明。本發(fā)明的實施例,才是供了一種終端固件的升級方法。該方法包括刪除閃存的一個閃存扇區(qū)中的待更新數(shù)據(jù)塊,將 內(nèi)存中與閃存扇區(qū)對應(yīng)的內(nèi)存扇區(qū)中的數(shù)據(jù)塊寫入閃存扇區(qū),并且,在執(zhí)行刪除之前,該方法可進(jìn)一步包括獲取升級包,并根據(jù) 獲取的升級包在內(nèi)存扇區(qū)中創(chuàng)建升級包的數(shù)據(jù)塊;確定內(nèi)存中的內(nèi)幼粉扭地"CT在離[3T站^點(diǎn)關(guān)系。其中,在閃存中存在刪除待更新的數(shù)據(jù)塊后未寫入數(shù)據(jù)塊的閃 存扇區(qū)的情況下,對閃存的指定標(biāo)識進(jìn)行置位,以表示閃存中存在 能夠執(zhí)行寫入的閃存扇區(qū)。此外,定期斥全查標(biāo)識,在標(biāo)識^皮置位的情況下,在閃存中查找 能夠?qū)懭肫鄑據(jù)塊的閃存扇區(qū),并執(zhí)行寫入。除此之外,在內(nèi)存中升級包的數(shù)據(jù)塊均寫入到閃存中后,確定 升級結(jié)束。圖2是有關(guān)本發(fā)明中的無線終端固件升級方法的處理過程流程 圖。如圖2所示,包4舌如下步-驟步驟(21),從升級服務(wù)器上下載升級軟件包,將其保存在設(shè)備 閃存中,系統(tǒng)進(jìn)程檢測到升級標(biāo)志置位,效驗delta文件內(nèi)容,開始 升級過程;步驟(22),將delta升級軟件包拷貝至內(nèi)存,如果此時升級被 中斷,設(shè)備重啟后,升級過程將重新開始;步驟(23),利用delta文件,在ram中創(chuàng)建新固件的數(shù)據(jù)塊, 優(yōu)選地,可以以block為單位(具體block的大小決定于實際閃存的 扇區(qū)尺寸),在mm中創(chuàng)建新固件的一個數(shù)據(jù)塊,并計算需要升級的 數(shù)據(jù)在閃存存儲器中對應(yīng)的block (扇區(qū))地址;步驟(24 ),在后臺執(zhí)行需要升級的閃存block (扇區(qū))的擦除 操作,每當(dāng)有一個可用扇區(qū)準(zhǔn)備好后就置標(biāo)志,通知升級主執(zhí)行模 塊;步驟(25 ),升級主執(zhí)行模塊檢測到已有可用閃存存儲器扇區(qū)存 在標(biāo)志后,將生成的新固件的數(shù)據(jù)塊拷貝至flash中相應(yīng)的位置,開 始寫準(zhǔn)備好的flash扇區(qū),如果沒有準(zhǔn)備好的扇區(qū),則等待,同時后 臺執(zhí)行模塊計算需要升級的下 一 塊數(shù)據(jù)在閃存存儲器中對應(yīng)的 block (扇區(qū))地址,開始對下一個需要升級的閃存扇區(qū)執(zhí)行纟察除4喿作;步驟(26),重復(fù)以上步驟(23)、步驟(24)、和步驟(25) 三步,直至整個升級完成后,重新引導(dǎo)系統(tǒng),升級結(jié)束。裝置實施例在本實施例中,提供了一種終端固件的升級裝置。如圖3所示,才艮據(jù)本實施例的終端固件的升級裝置包括固件 數(shù)據(jù)塊寫入閃存沖莫塊302,用于將內(nèi)存中與閃存的閃存扇區(qū)對應(yīng)的 內(nèi)存扇區(qū)中的數(shù)據(jù)塊寫入閃存扇區(qū);同步閃存擦除模塊304,用于 刪除閃存扇區(qū)中的待更新數(shù)據(jù)塊,并且在固件數(shù)據(jù)塊寫入閃存模塊該裝置可以進(jìn)一步包括升級處理才莫塊,用于獲取升級包,并 才艮據(jù)獲耳又的升級包在內(nèi)存扇區(qū)中創(chuàng)建升級包的數(shù)據(jù)塊;確定才莫塊,的對應(yīng)關(guān)系。其中,在實際進(jìn)行構(gòu)造時,固件數(shù)據(jù)塊寫入閃存才莫塊和同步閃 存擦除才莫塊可以包括在升級處理才莫塊中。此外,該裝置可進(jìn)一步包括置位才莫塊,用于在閃存中存在刪 除待更新的數(shù)據(jù)塊后未寫入數(shù)據(jù)塊的扇區(qū)的情況下,對閃存的指定 標(biāo)識進(jìn)行置位,表示閃存中存在能夠執(zhí)行寫入的扇區(qū)。此外,固件數(shù)據(jù)塊寫入閃存才莫塊在標(biāo)識-故置位的情況下,在閃 存中查找能夠?qū)懭霐?shù)據(jù)塊的扇區(qū),并執(zhí)行寫入。圖4示出了才艮據(jù)本實施例的裝置在進(jìn)4亍固件升級時的處理過程 示意圖。如圖4所示,升級過程涉及的模塊如下固件升級庫欠件包(delta)文件401,包含生成新固件凄t據(jù)塊所 需的所有必要信息;升級處理模塊402,用來利用delta包在主內(nèi)部存儲器(RAM) 中生成新固件的凝:據(jù)塊;固件block塊寫入flash模塊403,用于將ram里新生成的婆t據(jù) 塊寫入flash中對應(yīng)區(qū)i或,完成新固件凄t據(jù)的覆蓋升級;同步flash擦除模塊404,用于在一個flash扇區(qū)寫入數(shù)據(jù)的同 時執(zhí)行下一個flash扇區(qū)的擦除操作,改串行操作為并行操作,提高 升級速度。新生成的target固件數(shù)據(jù)塊405;如圖4示出了在進(jìn)行升級時上述的所涉及到的才莫塊的處理過 程。下面將進(jìn)一步結(jié)合圖3,對該過程進(jìn)行描述。當(dāng)運(yùn)營商的升級力良務(wù)器向用戶無線終端傳送了基于FOTA解決 方案的升級用軟件包401 ( Delta Package )時,^^該升級包保存到終 端設(shè)備的閃存存儲器中(步驟(1 )和步驟(2 ))。然后,在到了特定時刻(一般為操作系統(tǒng)重新引導(dǎo))之后,利 用相應(yīng)的升級工具軟件包402,對需要升級的閃存扇區(qū),在ram里 生成包含新固件內(nèi)容的對應(yīng)數(shù)據(jù)塊405 (步驟(3))。之后,從delta升級包401中得到需要升級的閃存扇區(qū)起始地址, 啟動一個并行操作404,專門用來執(zhí)行最為耗時的對閃存扇區(qū)的擦 除工作,并在每產(chǎn)生一個可用扇區(qū)之后,置〗立相應(yīng)標(biāo)志,通知升級 主執(zhí)行沖莫塊已經(jīng)有空白扇區(qū)可以寫入新固件的數(shù)據(jù)塊了 (步驟 (4))。同時,升級主執(zhí)行才莫塊不斷4侖詢地;險測可用閃存存儲器扇區(qū)存 在標(biāo)志是否置位,如果待寫入的閃存存儲器扇區(qū)已經(jīng)準(zhǔn)備好,則開 始對相應(yīng)扇區(qū)寫入新固件的一個數(shù)據(jù)塊403,每寫完一個扇區(qū),主 執(zhí)行模塊都需要判斷下一個待升級扇區(qū)406是否已經(jīng)擦除完畢,條 件滿足則繼續(xù)升級,不滿足則等待(步驟(5))。通過循環(huán)進(jìn)4亍以上過考呈,則可充分利用閃存存4諸器可以并4亍4喿 作的特性,有效縮短固件升級過程中最為耗時的閃存擦寫操作所占 用的時間,從而顯著4是高固件升級速度。最后,當(dāng)所有需要升級的扇區(qū)都更新完畢后,閃存上舊的固件 已經(jīng)被逐個扇區(qū)的替換為新的固件版本,此時則可重新引導(dǎo)系統(tǒng),開始使用新的固件(步驟(6))。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明不4又可以應(yīng)用于多種無線 通信終端的空中固件升級中,還可以在各種使用大容量閃存存儲器 作為固件存儲介質(zhì)的設(shè)備固件升級中使用。綜上所述,借助于本發(fā)明的技術(shù)方案,利用閃存的并行讀寫特 性實現(xiàn)的固件升級,能夠在不增加硬件成本以及不進(jìn)行硬件改進(jìn)的 前提下,有效提高固件升級的速度,從而提高了用戶體驗。以上所述^f又為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明, 對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種終端固件的升級方法,其特征在于,包括刪除閃存的一個閃存扇區(qū)中的待更新數(shù)據(jù)塊,將內(nèi)存中與所述閃存扇區(qū)對應(yīng)的內(nèi)存扇區(qū)中的數(shù)據(jù)塊寫入所述閃存扇區(qū),并且,在進(jìn)行寫入的同時刪除所述閃存中其它閃存扇區(qū)中的待更新數(shù)據(jù)塊。
2. 一艮據(jù)權(quán)利要求1所述方法,其特征在于,在刪除所述數(shù)據(jù)塊之 前,進(jìn)一步包括獲取升級包,并根據(jù)獲取的所述升級包在所述內(nèi)存扇區(qū)中 創(chuàng)建所述升級包的^t據(jù)塊;確定所述內(nèi)存中的內(nèi)存扇區(qū)與所述閃存中存儲待升級數(shù) 據(jù)塊的閃存扇區(qū)的對應(yīng)關(guān)系。
3. 根據(jù)權(quán)利要求1所述方法,其特征在于,在所述閃存中存在刪 除待更新的數(shù)據(jù)塊后未寫入數(shù)據(jù)塊的閃存扇區(qū)的情況下,對所 述閃存的指定標(biāo)識進(jìn)行置位,以表示所述閃存中存在能夠執(zhí)行 寫入的閃存扇區(qū)。
4. 根據(jù)權(quán)利要求3所述方法,其特征在于,定期檢查所述標(biāo)識, 在所述標(biāo)識-陂置位的情況下,在所述閃存中查找所述能夠?qū)懭?凄t據(jù)塊的閃存扇區(qū),并寺丸行寫入。
5. 根據(jù)權(quán)利要求1所述方法,其特征在于,在所述內(nèi)存中所述升 級包的教:據(jù)塊均寫入到所述閃存中后,確定升級結(jié)束。
6. —種終端固件的升級裝置,其特征在于,包括固件數(shù)據(jù)塊寫入閃存模塊,用于將內(nèi)存中與閃存的閃存扇 區(qū)對應(yīng)的內(nèi)存扇區(qū)中的婆:據(jù)塊寫入所述閃存扇區(qū);同步閃存擦除模塊,用于刪除所述閃存扇區(qū)中的待更新數(shù) 據(jù)塊,并且在所述固件凄t據(jù)塊寫入閃存才莫塊進(jìn)行寫入的同時刪 除所述閃存中其它閃存扇區(qū)中的待更新數(shù)據(jù)塊。
7. 根據(jù)權(quán)利要求6所述裝置,其特征在于,進(jìn)一步包括升級處理模塊,用于獲取升級包,并根據(jù)獲取的所述升級 包在所述內(nèi)存扇區(qū)中創(chuàng)建所述升級包的數(shù)據(jù)塊;確定^t塊,用于確定所述內(nèi)存中的內(nèi)存扇區(qū)與所述閃存中 存儲待升級凝:據(jù)塊的閃存扇區(qū)的對應(yīng)關(guān)系。
8. 根據(jù)權(quán)利要求6所述裝置,其特征在于,進(jìn)一步包括置位模塊,用于在所述閃存中存在刪除待更新的數(shù)據(jù)塊后 未寫入數(shù)據(jù)塊的扇區(qū)的情況下,對所述閃存的指定標(biāo)識進(jìn)4亍置 位,表示所述閃存中存在能夠執(zhí)行寫入的扇區(qū)。
9. 根據(jù)權(quán)利要求8所述裝置,其特征在于,所述固件數(shù)據(jù)塊寫入 閃存才莫塊在所述標(biāo)識:故置位的情況下,在所述閃存中查找所述 能夠?qū)懭霐?shù)據(jù)塊的扇區(qū),并執(zhí)行寫入。
全文摘要
本發(fā)明公開了一種終端固件的升級方法,包括刪除閃存的一個閃存扇區(qū)中的待更新數(shù)據(jù)塊,將內(nèi)存中與閃存扇區(qū)對應(yīng)的內(nèi)存扇區(qū)中的數(shù)據(jù)塊寫入閃存扇區(qū),并且,在進(jìn)行寫入的同時刪除閃存中其它閃存扇區(qū)中的待更新數(shù)據(jù)塊。此外,本發(fā)明還公開了一種終端固件的升級裝置。通過使用本發(fā)明,能夠在不增加硬件成本以及不進(jìn)行硬件改進(jìn)的前提下,有效提高固件升級的速度,從而提高了用戶體驗。
文檔編號G06F9/445GK101256497SQ200810084528
公開日2008年9月3日 申請日期2008年3月25日 優(yōu)先權(quán)日2008年3月25日
發(fā)明者昕 楊 申請人:中興通訊股份有限公司