国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      嵌入式系統(tǒng)中一種在線升級(jí)程序的方法

      文檔序號(hào):6634314閱讀:677來(lái)源:國(guó)知局
      嵌入式系統(tǒng)中一種在線升級(jí)程序的方法
      【專利摘要】嵌入式系統(tǒng)中常常有在線升級(jí)程序的需求。如果升級(jí)過(guò)程中發(fā)生意外導(dǎo)致升級(jí)失敗,有可能會(huì)造成嚴(yán)重后果。比如智能電網(wǎng)的電力線通信模塊中的程序如果崩潰,會(huì)造成電力系統(tǒng)的嚴(yán)重故障。本文提出一種方法,對(duì)程序的關(guān)鍵部分采用對(duì)等備份、乒乓操作,可以使程序不至于因升級(jí)失敗而崩潰,并縮短了升級(jí)的時(shí)間從而降低對(duì)系統(tǒng)的影響。
      【專利說(shuō)明】嵌入式系統(tǒng)中一種在線升級(jí)程序的方法

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及嵌入式系統(tǒng)及電力線通信領(lǐng)域,尤其適用電力線通信模塊的軟件在線升級(jí)。

      【背景技術(shù)】
      [0002]在各種嵌入式系統(tǒng)中,常常用一塊非易失性存儲(chǔ)器(常見(jiàn)的是flash)作為程序(或稱軟件)的存儲(chǔ)空間。由于版本升級(jí)(修訂錯(cuò)誤、增加功能等),這部分程序難免要在線升級(jí)。程序一般可分成兩部分:應(yīng)用功能區(qū)(本文中簡(jiǎn)稱APP區(qū))、系統(tǒng)啟動(dòng)及更新功能區(qū)(簡(jiǎn)稱ROOT)區(qū)。
      [0003]升級(jí)過(guò)程中不可避免會(huì)遇到意外而中斷,比如掉電、通信中斷等。這種情況處理不當(dāng)會(huì)導(dǎo)致系統(tǒng)功能缺失甚至崩潰,后果嚴(yán)重。比如,電力線通信模塊會(huì)用在智能電網(wǎng)的監(jiān)控網(wǎng)絡(luò)中,一旦因升級(jí)失敗而導(dǎo)致功能喪失,會(huì)導(dǎo)致電力系統(tǒng)故障乃至癱瘓。
      [0004]對(duì)于APP的升級(jí),如果中途斷掉,可以重新來(lái)過(guò)而不會(huì)有太大影響diROOT的升級(jí),需要保證中途斷掉的情況下系統(tǒng)依然能夠運(yùn)行。所以要保證ROOT的升級(jí)的健壯性,同時(shí)盡可能減少對(duì)ROOT的擦寫(xiě)時(shí)間。之所以要減少ROOT的擦寫(xiě),是因?yàn)檫@段時(shí)間內(nèi)系統(tǒng)不會(huì)對(duì)外界有響應(yīng),很可能錯(cuò)過(guò)一些重要的事件。這對(duì)運(yùn)行中的系統(tǒng),比如智能電網(wǎng),是有風(fēng)險(xiǎn)的。
      [0005]常見(jiàn)的一種做法是,采用一個(gè)主ROOT區(qū)和一個(gè)備份ROOT區(qū),每次升級(jí)要先后對(duì)二者都進(jìn)行一次操作。本文的方法目的是保證健壯性的同時(shí),進(jìn)一步減少ROOT的操作。


      【發(fā)明內(nèi)容】

      [0006]為了盡量減少ROOT升級(jí)過(guò)程中對(duì)系統(tǒng)的影響,本文提出一種方法:采用兩塊對(duì)等的ROOT區(qū),乒乓操作和使用。
      [0007]具體方法是:
      [0008]程序空間劃分為一個(gè)APP區(qū),兩個(gè)ROOT區(qū)。APP的升級(jí)采用常見(jiàn)方法即可。ROOT的升級(jí)使用采用乒乓方式。請(qǐng)參照?qǐng)D1,步驟是:(I)原初程序使用第一個(gè)ROOT(此處簡(jiǎn)稱R00T0),另一個(gè)(簡(jiǎn)稱R00T1)空閑;(2)第一次升級(jí)ROOT時(shí),R00T0不變,更新R00T1直至成功;(3)系統(tǒng)使用R00T1和APP運(yùn)行;(4)第二次升級(jí)ROOT時(shí),R00T1不變,更新R00T0直至成功;(5)系統(tǒng)使用R00T0和APP運(yùn)行;(6)此后如果再升級(jí)R00T,類(lèi)同(2)?(5)步,如此反復(fù)。
      [0009]由于ROOT區(qū)一般比較精簡(jiǎn),而現(xiàn)在非易失性存儲(chǔ)器(比如NOR flash) 一般容量比較大,所以多用一塊ROOT區(qū)造成的空間占用比較小。而它所帶來(lái)的有益效果是:(I)始終保證至少有一塊ROOT是可用的,保證了系統(tǒng)的健壯性。(2)每次升級(jí)ROOT只需對(duì)一個(gè)ROOT進(jìn)行擦寫(xiě),最大程度縮短了系統(tǒng)對(duì)外不響應(yīng)的時(shí)間;而常見(jiàn)的辦法是一個(gè)主區(qū)一個(gè)備份區(qū),每次升級(jí)都要對(duì)二者進(jìn)行擦寫(xiě),相比之下時(shí)間較長(zhǎng),操作較復(fù)雜,出錯(cuò)的概率較大。
      [0010]這里的簡(jiǎn)稱“ROOT區(qū)”泛指一般嵌入式系統(tǒng)中包含系統(tǒng)啟動(dòng)及更新的代碼,系統(tǒng)上電時(shí)從這里啟動(dòng)。

      【專利附圖】

      【附圖說(shuō)明】
      [0011]圖1為每次升級(jí)ROOT時(shí)程序空間狀態(tài)轉(zhuǎn)換;
      [0012]圖2為案例中程序正常運(yùn)行時(shí)函數(shù)調(diào)用的中繼過(guò)程;
      [0013]圖3為案例中升級(jí)ROOT時(shí)的操作流程。

      【具體實(shí)施方式】
      [0014]前期準(zhǔn)備:由于是在兩個(gè)ROOT中選擇一個(gè)使用,那么需要保證在函數(shù)調(diào)用時(shí)能夠正確命中目前所用的ROOT。這里函數(shù)調(diào)用分為三類(lèi)——APP之內(nèi)、ROOT之內(nèi)、APP與ROOT之間。前兩種不需額外考慮,第三種可以在調(diào)用與返回之間使用中繼函數(shù),使程序的跳轉(zhuǎn)地址可以正確命中所要用的ROOT。如圖2的程序劃分,系統(tǒng)上電后第一組跳轉(zhuǎn)指令會(huì)從ROOT的兩個(gè)基地址中選擇有效的那個(gè)地址,依據(jù)此地址跳轉(zhuǎn)到該ROOT。兩個(gè)基地址root0_base和rootl_base就存放于跳轉(zhuǎn)指令的后半部分,而緊接其后的是調(diào)用的中繼函數(shù)call_relay O和返回的中繼函數(shù)ret_relay O。當(dāng)運(yùn)行程序在APP與某ROOT之間調(diào)用時(shí),會(huì)經(jīng)過(guò)這兩個(gè)函數(shù)進(jìn)行跳轉(zhuǎn)地址的計(jì)算,計(jì)算中將依據(jù)rootX_baSe得到正確的跳轉(zhuǎn)地址從而命中所用ROOT。圖中箭頭線表示的是從APP調(diào)用ROOT再返回的過(guò)程;從ROOT調(diào)用APP的過(guò)程可依此類(lèi)推。
      [0015]更新某個(gè)ROOT的流程請(qǐng)參照?qǐng)D3。以運(yùn)行R00T0而更新R00T1為例。正常運(yùn)行中會(huì)遇到更新需求,于是啟動(dòng)對(duì)R00T1的更新。如遇意外而重啟,則雖然R00T1更新不成功但仍可從R00T0運(yùn)行;以后遠(yuǎn)程會(huì)繼續(xù)要求在線更新直至完成。R00T1刷新后,會(huì)在上電跳轉(zhuǎn)區(qū)的rootl_base中設(shè)置成功更新的標(biāo)志,然后把root0_base的標(biāo)志置為無(wú)效。由于最后這一階段是先置rootl_baSe有效再置lOotOjase無(wú)效,那么即使這期間發(fā)生意外斷電,二者至少會(huì)有一個(gè)是有效的,從而保證重啟后仍能正常運(yùn)行。
      [0016]以上實(shí)施方式及實(shí)施案例僅是對(duì)發(fā)明進(jìn)行說(shuō)明,然而本發(fā)明并不局限于此。對(duì)于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明思想范圍之外的各種改進(jìn)也視為本發(fā)明的保護(hù)范圍。
      【權(quán)利要求】
      1.嵌入式系統(tǒng)中一種在線升級(jí)程序的方法,其特征在于,在程序空間中分為兩類(lèi)區(qū)域一APP區(qū)和ROOT區(qū)。前者采用常規(guī)更新方式升級(jí);后者采用兩塊對(duì)等的ROOT區(qū),每次需要更新ROOT區(qū)時(shí)僅更新其中一個(gè),另一個(gè)不變,如果更新成功則使用新的ROOT區(qū),否則使用原來(lái)的ROOT區(qū),以待以后重新更新。
      2.根據(jù)權(quán)利要求1所述的在線升級(jí)程序的方法,其特征是:兩塊ROOT區(qū)是對(duì)等的,不分主從。
      3.根據(jù)權(quán)利要求1所述的在線升級(jí)程序的方法,其特征是:兩塊ROOT區(qū)在不升級(jí)的時(shí)候,一塊中的程序在運(yùn)行,另一塊的程序不運(yùn)行(空閑);在升級(jí)的時(shí)候,空閑的那個(gè)將被升級(jí)。
      4.根據(jù)權(quán)利要求1所述的在線升級(jí)程序的方法,其特征是:對(duì)每塊ROOT設(shè)置升級(jí)成功標(biāo)識(shí),程序開(kāi)始運(yùn)行(上電或重啟等)的時(shí)候,可以由此確定哪個(gè)ROOT是最新且有效的,并跳轉(zhuǎn)到該ROOT區(qū)繼續(xù)運(yùn)行。
      【文檔編號(hào)】G06F11/16GK104375863SQ201410648243
      【公開(kāi)日】2015年2月25日 申請(qǐng)日期:2014年11月17日 優(yōu)先權(quán)日:2014年11月17日
      【發(fā)明者】張毓, 弭強(qiáng) 申請(qǐng)人:張毓, 弭強(qiáng)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1