一種固件升級(jí)方法及嵌入式設(shè)備的制作方法
【專利摘要】本發(fā)明實(shí)施例提供一種固件升級(jí)方法及嵌入式設(shè)備,所述方法包括:預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,并從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū);當(dāng)觸發(fā)固件升級(jí),則所述升級(jí)控制程序控制嵌入式設(shè)備的近距離無線通信組件,連接到升級(jí)控制器;向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
【專利說明】一種固件升級(jí)方法及嵌入式設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種固件升級(jí)方法及嵌入式設(shè)備。
【背景技術(shù)】
[0002]嵌入式設(shè)備的構(gòu)成,是以嵌入式處理芯片為主,配合相關(guān)的支撐硬件和應(yīng)用程序,共同組成一個(gè)軟硬件于一體的可獨(dú)立工作的設(shè)備。相比于手機(jī)或者平板電腦等高智能設(shè)備,所謂的嵌入式設(shè)備往往是更為簡(jiǎn)單的小型電子設(shè)備。一般嵌入式設(shè)備不接入互聯(lián)網(wǎng),不設(shè)有…8或!111(^0等實(shí)體接口,也不具備高智能操作系統(tǒng),但依然可以通過內(nèi)置的應(yīng)用程序來實(shí)現(xiàn)諸多實(shí)用功能。例如,心率帶/脈搏表或類似的小型可穿戴電子設(shè)備,均屬于嵌入式設(shè)備。
[0003]由于所述嵌入式設(shè)備不接入互聯(lián)網(wǎng),也不具有類似于安卓系統(tǒng)之類的高智能操作系統(tǒng),所以無法通過網(wǎng)絡(luò)對(duì)應(yīng)用程序進(jìn)行固件升級(jí),或者直接通過操作系統(tǒng)進(jìn)行固件升級(jí)?,F(xiàn)階段如需對(duì)嵌入式設(shè)備進(jìn)行固件升級(jí),就必須利用專用的燒寫設(shè)備,現(xiàn)場(chǎng)進(jìn)行固件升級(jí)。例如117^設(shè)備,即是常見的燒寫設(shè)備。
[0004]在現(xiàn)有的利用燒寫設(shè)備實(shí)現(xiàn)的固件升級(jí)過程中,需要對(duì)嵌入式設(shè)備處理芯片的閃存①“別)徹底擦除,隨后再重新寫入,如此完成固件升級(jí),實(shí)現(xiàn)應(yīng)用程序的更新。在此過程中,處理芯片本身不需要任何主動(dòng)的響應(yīng),整個(gè)燒寫過程完全由燒寫設(shè)備主導(dǎo)。
[0005]現(xiàn)有的固件升級(jí)存在的缺陷在于,由燒寫設(shè)備完全主導(dǎo)整個(gè)燒寫過程,導(dǎo)致燒寫設(shè)備價(jià)格昂貴,燒寫步驟繁瑣復(fù)雜,普通用戶不能夠自行完成固件升級(jí);現(xiàn)階段固件升級(jí)的過程對(duì)于普通用戶而言極為不方便。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明的目的在于提供一種固件升級(jí)方法及嵌入式設(shè)備,利用智能設(shè)備通過短距離無線通信向嵌入式設(shè)備傳輸固件升級(jí)包,并且使嵌入式設(shè)備的處理芯片主動(dòng)響應(yīng),自行完成固件升級(jí),使固件升級(jí)無需使用專用的燒寫設(shè)備。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明有如下技術(shù)方案:
[0008]一種固件升級(jí)方法,所述方法包括:
[0009]預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,并從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū);
[0010]當(dāng)觸發(fā)固件升級(jí),則所述升級(jí)控制程序控制嵌入式設(shè)備的近距離無線通信組件,連接到升級(jí)控制器;向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
[0011〕 所述升級(jí)控制程序包括:
[0012]啟動(dòng)器和控制狀態(tài)機(jī)。
[0013]所述觸發(fā)固件升級(jí)具體為:
[0014]啟動(dòng)器接收固件升級(jí)指令則觸發(fā)固件升級(jí);
[0015]或者,啟動(dòng)器查詢應(yīng)用區(qū)中是否保存有應(yīng)用程序,若所述應(yīng)用區(qū)中無應(yīng)用程序,貝1]觸發(fā)固件升級(jí)。
[0016]所述向升級(jí)控制器提取固件升級(jí)包具體為:
[0017]控制狀態(tài)機(jī)對(duì)所述嵌入式設(shè)備的系統(tǒng)初始化,使所述系統(tǒng)進(jìn)入空閑狀態(tài);
[0018]控制狀態(tài)機(jī)通過近距離無線通信連接接收固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
[0019]所述固件升級(jí)包包括多個(gè)升級(jí)程序塊,則所述控制狀態(tài)機(jī)接收固件升級(jí)包具體為:
[0020]所述控制狀態(tài)機(jī)逐一接收所述升級(jí)程序塊。
[0021]所述控制狀態(tài)機(jī)接收固件升級(jí)包還包括:
[0022]所述控制狀態(tài)機(jī)在接收所述固件升級(jí)包之前,接收預(yù)處理程序包;并利用所述預(yù)處理程序包進(jìn)行預(yù)處理;
[0023]所述預(yù)處理程序包包括多個(gè)預(yù)處理程序塊,則所述接收預(yù)處理程序包具體為;所述控制狀態(tài)機(jī)逐一接收所述預(yù)處理程序塊。
[0024]所述控制狀態(tài)機(jī)將所述固件升級(jí)包保存至所述應(yīng)用區(qū)還包括:
[0025]控制狀態(tài)機(jī)對(duì)所述固件升級(jí)包進(jìn)行合法性驗(yàn)證,如果驗(yàn)證成功則使所述系統(tǒng)進(jìn)入待執(zhí)行狀態(tài)。
[0026]所述方法還包括:
[0027]為每個(gè)升級(jí)程序塊設(shè)定唯一的編號(hào)。
[0028]所述控制狀態(tài)機(jī)接收所述升級(jí)程序塊還包括:
[0029]將當(dāng)前接收的升級(jí)程序塊的編號(hào)發(fā)送至所述升級(jí)控制器;
[0030]當(dāng)嵌入式設(shè)備的近距離無線通信組件與升級(jí)控制器的通信連接斷開并重新連接,則所述控制狀態(tài)機(jī)直接提取所述升級(jí)控制器獲取的編號(hào)對(duì)應(yīng)的升級(jí)程序塊。
[0031〕 所述控制狀態(tài)機(jī)接收所述升級(jí)程序塊還包括:
[0032]在所述應(yīng)用區(qū)中劃分出若干存儲(chǔ)塊,并為所述存儲(chǔ)塊設(shè)置唯一的序號(hào);建立所述存儲(chǔ)塊序號(hào)與升級(jí)程序塊編號(hào)的對(duì)應(yīng)關(guān)系;
[0033]當(dāng)接收到所述升級(jí)程序塊,則根據(jù)該升級(jí)程序塊的編號(hào),查找到序號(hào)對(duì)應(yīng)的存儲(chǔ)塊;
[0034]將所述升級(jí)程序塊保存至所述序號(hào)對(duì)應(yīng)的存儲(chǔ)塊中。
[0035]所述方法還包括:
[0036]將所述應(yīng)用區(qū)劃分為第一區(qū)間和第二區(qū)間;
[0037]將所述固件升級(jí)包保存至第一區(qū)間;
[0038]將原應(yīng)用程序保存至第二區(qū)間。
[0039]一種固嵌入式設(shè)備,所述設(shè)備包括:
[0040]系統(tǒng)控制模塊,用于預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū);
[0041]近距離無線通信組件,用于通過近距離無線通信連接到升級(jí)控制器;
[0042]升級(jí)控制程序,用于觸發(fā)固件升級(jí),向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
[0043]通過以上技術(shù)方案可知,本發(fā)明存在的有益效果是:所述嵌入式設(shè)備只需配合一個(gè)常見的作為升級(jí)控制器的智能設(shè)備便可以完成,無需專用的燒寫設(shè)備,也避免了復(fù)雜的燒寫過程,用戶可以自行完成固件升級(jí),使得嵌入式設(shè)備固件升級(jí)的方便性極大提高。
【專利附圖】
【附圖說明】
[0044]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0045]圖1為本發(fā)明實(shí)施例所述方法流程圖;
[0046]圖2為本發(fā)明另一實(shí)施例所述方法流程圖;
[0047]圖3為本發(fā)明實(shí)施例所述方法的優(yōu)選方案示意圖;
[0048]圖4為本發(fā)明實(shí)施例所述嵌入式設(shè)備結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0049]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0050]本發(fā)明中所述的對(duì)于嵌入式設(shè)備的固件升級(jí),區(qū)別于現(xiàn)有技術(shù)主要在于兩個(gè)方面:一方面利用現(xiàn)有的嵌入式設(shè)備通常具備的近距離無線通信功能,實(shí)現(xiàn)固件升級(jí)包的傳輸和接受,提供通信支持;另一方面在嵌入式設(shè)備的處理芯片中增設(shè)升級(jí)控制程序,使得所述處理芯片自行控制和完成固件升級(jí)。
[0051]具體參照?qǐng)D1所示,本發(fā)明所述固件升級(jí)方法包括以下步驟:
[0052]步驟101、預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,并從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū)。
[0053]現(xiàn)有技術(shù)中,處理芯片在固件升級(jí)過程中并不主動(dòng)響應(yīng),所以處理芯片中也就不存在控制固件升級(jí)的相關(guān)程序。而本實(shí)施例為使嵌入式設(shè)備的處理芯片自行完成固件升級(jí),于是在所述處理芯片中設(shè)置了升級(jí)控制程序,以便處理芯片本身能夠控制接收固件升級(jí)包并刷寫自身閃存。
[0054]所述升級(jí)控制程序包括啟動(dòng)器和控制狀態(tài)機(jī)。所述啟動(dòng)器即800丨10狀161',用于觸發(fā)固件升級(jí)??刂茽顟B(tài)機(jī)則用于執(zhí)行固件升級(jí),即控制固件升級(jí)包的通信接收以及保存。
[0055]所述固件升級(jí)包中保存有目標(biāo)版本的應(yīng)用程序。
[0056]另外,現(xiàn)有技術(shù)之所以未實(shí)現(xiàn)處理芯片自行完成固件升級(jí),存在的另一主要因素是,若處理芯片自行刷寫自身的閃存,就會(huì)出現(xiàn)誤刪系統(tǒng)程序以及固件升級(jí)過程中必須升級(jí)控制程序的情況,使得固件升級(jí)過程無法執(zhí)行完成,并且使得設(shè)備本身系統(tǒng)遭到破壞;所以現(xiàn)有技術(shù)中才采取了利用燒寫設(shè)備完全重寫處理芯片閃存的方式。
[0057]而在本實(shí)施例中,為避免這一情況的出現(xiàn),而將所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū)。所述升級(jí)控制程序以及設(shè)備的系統(tǒng)程序等需要避免誤刪的程序,均保存在系統(tǒng)區(qū);系統(tǒng)區(qū)內(nèi)的所有內(nèi)容在升級(jí)程序中均不得刪除或修改。而其他應(yīng)用程序?qū)⒈4嬖趹?yīng)用區(qū),應(yīng)用區(qū)的內(nèi)容可以被刪除或者修改,以便實(shí)現(xiàn)新版的應(yīng)用程序替代舊版應(yīng)用程序,即完成固件升級(jí)。
[0058]本實(shí)施例中通過設(shè)置寄存器實(shí)現(xiàn)處理芯片閃存的區(qū)域劃分。即系統(tǒng)程序及升級(jí)控制程序?qū)拈W存基地址開始連續(xù)的寫入,該寫入過程完成后,被寫入的區(qū)域即為所述系統(tǒng)區(qū)。在將閃存的下一個(gè)未被寫入的存儲(chǔ)單元地址保存到寄存器中,該未被寫入的存儲(chǔ)單元的地址即作為應(yīng)用區(qū)基地址。該存儲(chǔ)單元及其之后的所有存儲(chǔ)區(qū)域便是所述應(yīng)用區(qū)。
[0059]步驟102、當(dāng)觸發(fā)固件升級(jí),則所述升級(jí)控制程序控制嵌入式設(shè)備的近距離無線通信組件,連接到升級(jí)控制器;向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
[0060]當(dāng)升級(jí)控制程序中的啟動(dòng)器觸發(fā)固件升級(jí)過程,則嵌入式設(shè)備通過自身的近距離無線通信組件與升級(jí)控制器建立通信連接,并且通過近距離無線通信接收固件升級(jí)包。
[0061]所述近距離無線通信組件,在嵌入式設(shè)備當(dāng)中通常為藍(lán)牙芯片。而前述已知,嵌入式設(shè)備一般沒有硬件接口,也不接入網(wǎng)絡(luò),所以選擇近距離無線通信組件實(shí)現(xiàn)通信,完成固件升級(jí)包的接收。
[0062]所述升級(jí)控制器需要同樣具備近距離無線通信的功能,而且可以通過硬件接口或者網(wǎng)絡(luò)下載所述固件升級(jí)包以傳輸?shù)角度胧皆O(shè)備。實(shí)際上,所述升級(jí)控制器可以是?0、平板電腦、手機(jī)或者其他任何具備上述功能的智能設(shè)備。
[0063]當(dāng)嵌入式設(shè)備與升級(jí)控制器建立通信連接之后,即可以從所述升級(jí)控制器中提取所述固件升級(jí)包,并且將固件升級(jí)包保存至應(yīng)用區(qū)當(dāng)中,最終以固件升級(jí)包中的應(yīng)用程序代替需要升級(jí)的舊應(yīng)用程序,即完成了固件升級(jí)過程。
[0064]通過以上技術(shù)方案可知,本實(shí)施例所述方法存在的有益效果是:所述嵌入式設(shè)備只需配合一個(gè)常見的作為升級(jí)控制器的智能設(shè)備便可以完成,無需專用的燒寫設(shè)備,也避免了復(fù)雜的燒寫過程,用戶可以自行完成固件升級(jí),使得嵌入式設(shè)備固件升級(jí)的方便性極大提聞。
[0065]參見圖2所示,為本發(fā)明所述方法的另一個(gè)具體實(shí)施例。本實(shí)施例中,將對(duì)所述升級(jí)控制程序在固件升級(jí)過程中的控制流程進(jìn)行更加具體的公開。為便于敘述,本實(shí)施例中所述方法將建立在一下應(yīng)用場(chǎng)景之下:具有藍(lán)牙通信功能的嵌入式設(shè)備心率帶,當(dāng)前保存的應(yīng)用程序“心率測(cè)試”版本為1.0,現(xiàn)需要通過固件升級(jí)將應(yīng)用程序“心率測(cè)試”的版本升級(jí)為2.0。在此基礎(chǔ)上,本實(shí)施例中所述方法包括以下步驟:
[0066]步驟201、預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,并從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū);所述升級(jí)控制程序包括啟動(dòng)器和控制狀態(tài)機(jī)。
[0067]本實(shí)施例中,所述升級(jí)控制程序保存在所述系統(tǒng)區(qū)當(dāng)中,而所述應(yīng)用程序“心率測(cè)試” 1.0則保存在所述應(yīng)用區(qū)中。
[0068]步驟202、啟動(dòng)器接收固件升級(jí)指令則觸發(fā)固件升級(jí);或者,啟動(dòng)器查詢應(yīng)用區(qū)中是否保存有應(yīng)用程序,若所述應(yīng)用區(qū)中無應(yīng)用程序,則觸發(fā)固件升級(jí)。
[0069]啟動(dòng)器觸發(fā)固件升級(jí)需滿足兩個(gè)特定條件中任意一個(gè)。
[0070]通過人為對(duì)啟動(dòng)器生成固件升級(jí)指令,以觸發(fā)固件升級(jí)。
[0071]或者如果應(yīng)用區(qū)中無應(yīng)用程序,也就意味著此時(shí)嵌入式設(shè)備無法給用戶提供任何功能,此時(shí)觸發(fā)固件升級(jí),將應(yīng)用程序保存到應(yīng)用區(qū)中進(jìn)而執(zhí)行。
[0072]本實(shí)施例中應(yīng)用區(qū)中已經(jīng)保存有應(yīng)用程序“心率測(cè)試”1.0,所以將以通過啟動(dòng)器接收固件升級(jí)指令的方式觸發(fā)固件升級(jí)。
[0073]步驟203、控制狀態(tài)機(jī)控制嵌入式設(shè)備的近距離無線通信組件,連接到升級(jí)控制器。
[0074]本實(shí)施例中,當(dāng)固件升級(jí)被觸發(fā),則嵌入式設(shè)備立刻通過藍(lán)牙與升級(jí)控制器建立通信連接,以作為固件升級(jí)包傳輸?shù)耐ㄐ磐ǖ?。所述升?jí)控制器中預(yù)先保存有固件升級(jí)包。本實(shí)施例中所述固件升級(jí)包中包括應(yīng)用程序“心率測(cè)試”2.0。
[0075]步驟204、控制狀態(tài)機(jī)對(duì)所述嵌入式設(shè)備的系統(tǒng)初始化,使所述系統(tǒng)進(jìn)入空閑狀態(tài)。
[0076]控制狀態(tài)機(jī)對(duì)所述嵌入式設(shè)備的系統(tǒng)初始化,包括停止正在執(zhí)行的應(yīng)用程序,釋放處理芯片閃存等處理;使處理芯片和閃存均處于空閑,以備執(zhí)行后續(xù)的固件傳輸和升級(jí)。
[0077]本步驟是固件升級(jí)包實(shí)際進(jìn)行傳輸之前的準(zhǔn)備步驟。
[0078]步驟205、所述控制狀態(tài)機(jī)接收預(yù)處理程序包;并利用所述預(yù)處理程序包進(jìn)行預(yù)處理。
[0079]在一些情況下,升級(jí)控制器中處理保存有固件升級(jí)包之外,還保存有預(yù)處理程序包。而當(dāng)升級(jí)控制器中保存有預(yù)處理程序包,則控制狀態(tài)機(jī)將在接收固件升級(jí)包之前接收預(yù)處理程序包,并且利用所述預(yù)處理程序包中的程序?qū)Υ?jí)的應(yīng)用程序(本實(shí)施例中即應(yīng)用程序“心率測(cè)試” 1.0)進(jìn)行預(yù)處理。
[0080]所述預(yù)處理包括,針對(duì)所述固件升級(jí)包的體積在閃存中預(yù)留一定的存儲(chǔ)空間。
[0081]需要說明的是,本實(shí)施例當(dāng)中由于受到藍(lán)牙通信功耗及傳輸效率的限制,導(dǎo)致所述預(yù)處理程序包并不能夠一次性的被傳輸,而是需要將預(yù)處理程序包劃分為多個(gè)預(yù)處理程序塊,所述控制狀態(tài)機(jī)將逐一接收所述預(yù)處理程序塊。
[0082]不過,所述預(yù)處理的過程并非是必要過程。
[0083]步驟206、控制狀態(tài)機(jī)通過近距離無線通信連接接收固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
[0084]同理,本實(shí)施例當(dāng)中由于受到藍(lán)牙通信功耗及傳輸效率的限制,導(dǎo)致所述固件升級(jí)包并不能夠一次性的被傳輸,而是需要將固件升級(jí)包劃分為多個(gè)升級(jí)程序塊,所述控制狀態(tài)機(jī)將逐一接收所述升級(jí)程序塊。
[0085]步驟207、控制狀態(tài)機(jī)對(duì)所述固件升級(jí)包進(jìn)行合法性驗(yàn)證,如果驗(yàn)證成功則使所述系統(tǒng)進(jìn)入待執(zhí)行狀態(tài)。
[0086]當(dāng)固件升級(jí)包被保存至應(yīng)用區(qū),即意味著處理芯片的閃存中已經(jīng)存有了應(yīng)用程序“心率測(cè)試”2丨0版本的程序。在此之后,還需要對(duì)該固件升級(jí)包進(jìn)行合法性驗(yàn)證,若驗(yàn)證成功,則說明本次升級(jí)完成。系統(tǒng)將進(jìn)入待執(zhí)行狀態(tài),也就是說此時(shí)應(yīng)用程序“心率測(cè)試” 2.0即可被執(zhí)行,也就是被用戶使用。
[0087]通過以上技術(shù)方案可知,本實(shí)施例存在的有益效果是:對(duì)于固件升級(jí)包的傳輸方式進(jìn)行了更進(jìn)一步的公開,使得整體技術(shù)方案更加完整,公開更加充分。
[0088]在圖2所示實(shí)施例的基礎(chǔ)之上,本發(fā)明還可以結(jié)合一下的優(yōu)選技術(shù)方案,參照?qǐng)D3所示:
[0089]步驟301、為每個(gè)升級(jí)程序塊設(shè)定唯一的編號(hào)。
[0090]由于一個(gè)固件升級(jí)包可劃分為多個(gè)升級(jí)程序塊,所以可為每個(gè)升級(jí)程序塊設(shè)定一個(gè)唯一的編號(hào)?;谏?jí)程序塊的編號(hào),可以實(shí)現(xiàn)斷點(diǎn)續(xù)傳以及亂序整理的優(yōu)選功能,具體參見后續(xù)闡述。
[0091]步驟302、將當(dāng)前接收的升級(jí)程序塊的編號(hào)發(fā)送至所述升級(jí)控制器;當(dāng)嵌入式設(shè)備的近距離無線通信組件與升級(jí)控制器的通信連接斷開并重新連接,則所述控制狀態(tài)機(jī)直接提取所述升級(jí)控制器獲取的編號(hào)對(duì)應(yīng)的升級(jí)程序塊。
[0092]在本步驟中描述了本發(fā)明所述固件升級(jí)方法的斷線續(xù)傳功能。也就是利用升級(jí)程序塊的編號(hào),保證各個(gè)升級(jí)程序塊有序的傳輸;并且在開始傳輸一個(gè)升級(jí)程序塊時(shí),將該升級(jí)程序塊的編號(hào)發(fā)送至所述升級(jí)控制器。
[0093]如果在傳輸某個(gè)升級(jí)程序塊的過程中,通信連接中斷而后續(xù)又重新恢復(fù),則升級(jí)控制器根據(jù)先前獲悉的該升級(jí)程序塊的編號(hào),重新找到該升級(jí)程序塊并繼續(xù)傳輸給嵌入式設(shè)備,隨后陸續(xù)將順序在該升級(jí)程序塊之后的其他升級(jí)程序塊一并進(jìn)行傳輸。
[0094]由此所述固件升級(jí)方法具備了斷點(diǎn)續(xù)傳的功能,即能夠從上次傳輸中斷處繼續(xù)傳輸,無需在通信斷開后重新進(jìn)行整個(gè)固件升級(jí)包的傳輸。
[0095]步驟303、在所述應(yīng)用區(qū)中劃分出若干存儲(chǔ)塊,并為所述存儲(chǔ)塊設(shè)置唯一的序號(hào);建立所述存儲(chǔ)塊序號(hào)與升級(jí)程序塊編號(hào)的對(duì)應(yīng)關(guān)系;當(dāng)接收到所述升級(jí)程序塊,則根據(jù)該升級(jí)程序塊的編號(hào),查找到序號(hào)對(duì)應(yīng)的存儲(chǔ)塊;將所述升級(jí)程序塊保存至所述序號(hào)對(duì)應(yīng)的存儲(chǔ)塊中。
[0096]在本步驟中描述了本發(fā)明所述固件升級(jí)方法的亂序整理功能。理論上來說,多個(gè)升級(jí)程序塊將按照順序傳輸?shù)浇o嵌入式設(shè)備并同樣按照順序保存至閃存當(dāng)中。但不排除在一些情況下,會(huì)出現(xiàn)順序錯(cuò)亂或者某些升級(jí)程序塊丟失的情況。而如果升級(jí)程序塊沒有按照順序連續(xù)的保存到閃存中,則無法還原成完整的固件升級(jí)包。
[0097]所以,對(duì)此提出的解決方案是,應(yīng)用區(qū)中劃分出若干存儲(chǔ)塊,并為所述存儲(chǔ)塊設(shè)置唯一的序號(hào);建立所述存儲(chǔ)塊序號(hào)與升級(jí)程序塊編號(hào)的對(duì)應(yīng)關(guān)系。一般來說,存儲(chǔ)塊的數(shù)量將不少于升級(jí)程序塊的數(shù)量。
[0098]當(dāng)一個(gè)升級(jí)程序塊傳輸完成之后,即保存在對(duì)應(yīng)的存儲(chǔ)塊當(dāng)中,這樣即使傳輸順序錯(cuò)亂,保存后的升級(jí)程序塊依然滿足固有的順序。而如果有個(gè)別升級(jí)程序塊丟失,通過上述對(duì)應(yīng)關(guān)系也能夠輕易的獲悉丟失的升級(jí)程序塊的編號(hào)。進(jìn)而控制狀態(tài)機(jī)只需向升級(jí)控制器針對(duì)性的提取丟失的升級(jí)程序塊即可,無需重新傳輸所有的升級(jí)程序塊。
[0099]同理,按照步驟301?步驟303中描述的方法,也可以對(duì)預(yù)處理程序塊進(jìn)行相應(yīng)的處理。二者原理上沒有區(qū)別,在此不作重復(fù)的敘述。
[0100]步驟304、將所述應(yīng)用區(qū)劃分為第一區(qū)間和第二區(qū)間;將所述固件升級(jí)包保存至第一區(qū)間;將原應(yīng)用程序保存至第二區(qū)間。
[0101]本步驟中為防止固件升級(jí)一旦失敗,卻導(dǎo)致原應(yīng)用程序丟失無法使用的情況,所以將應(yīng)用區(qū)劃分為第一區(qū)間和第二區(qū)間。固件升級(jí)包保存至至第一區(qū)間,原應(yīng)用程序保存至第二區(qū)間。如果固件升級(jí)成功,則刪除第二區(qū)間中的原應(yīng)用程序釋放空間;若固件升級(jí)失敗,則第二區(qū)間中的原應(yīng)用程序依然可以運(yùn)行,不妨礙用戶的正常使用。本步驟中描述了所述固件升級(jí)的失敗恢復(fù)功能。
[0102]通過以上優(yōu)選技術(shù)方案進(jìn)一步實(shí)現(xiàn)的有益效果是:通過為升級(jí)程序塊設(shè)定編號(hào),實(shí)現(xiàn)了斷點(diǎn)續(xù)傳和亂序整理的功能;通過對(duì)應(yīng)用區(qū)進(jìn)行區(qū)間劃分,實(shí)現(xiàn)了失敗恢復(fù)功能。
[0103]參照?qǐng)D4所示,為本發(fā)明所述嵌入式設(shè)備的具體實(shí)施例。本實(shí)施例中所述的嵌入式設(shè)備,將以前述實(shí)施例中所述方法進(jìn)行固件升級(jí),其技術(shù)方案本質(zhì)上與前述實(shí)施例一致,所以前述實(shí)施例中相應(yīng)的描述同樣適用于本實(shí)施例當(dāng)中。本實(shí)施例中,所述嵌入式設(shè)備包括:
[0104]系統(tǒng)控制模塊,用于預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū);
[0105]近距離無線通信組件,用于通過近距離無線通信連接到升級(jí)控制器;
[0106]升級(jí)控制程序,用于觸發(fā)固件升級(jí),向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
[0107]通過以上技術(shù)方案可知,本實(shí)施例存在的有益效果是:所述嵌入式設(shè)備只需配合一個(gè)常見的作為升級(jí)控制器的智能設(shè)備便可以完成,無需專用的燒寫設(shè)備,也避免了復(fù)雜的燒寫過程,用戶可以自行完成固件升級(jí),使得嵌入式設(shè)備固件升級(jí)的方便性極大提高。
[0108]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種固件升級(jí)方法,其特征在于,所述方法包括: 預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,并從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū); 當(dāng)觸發(fā)固件升級(jí),則所述升級(jí)控制程序控制嵌入式設(shè)備的近距離無線通信組件,連接到升級(jí)控制器;向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述升級(jí)控制程序包括: 啟動(dòng)器和控制狀態(tài)機(jī)。
3.根據(jù)權(quán)利要求2所述方法,其特征在于,所述觸發(fā)固件升級(jí)具體為: 啟動(dòng)器接收固件升級(jí)指令則觸發(fā)固件升級(jí); 或者,啟動(dòng)器查詢應(yīng)用區(qū)中是否保存有應(yīng)用程序,若所述應(yīng)用區(qū)中無應(yīng)用程序,則觸發(fā)固件升級(jí)。
4.根據(jù)權(quán)利要求2所述方法,其特征在于,所述向升級(jí)控制器提取固件升級(jí)包具體為: 控制狀態(tài)機(jī)對(duì)所述嵌入式設(shè)備的系統(tǒng)初始化,使所述系統(tǒng)進(jìn)入空閑狀態(tài); 控制狀態(tài)機(jī)通過近距離無線通信連接接收固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
5.根據(jù)權(quán)利要求4所述方法,其特征在于,所述固件升級(jí)包包括多個(gè)升級(jí)程序塊,則所述控制狀態(tài)機(jī)接收固件升級(jí)包具體為: 所述控制狀態(tài)機(jī)逐一接收所述升級(jí)程序塊。
6.根據(jù)權(quán)利要求5所述方法,其特征在于,所述控制狀態(tài)機(jī)接收固件升級(jí)包還包括: 所述控制狀態(tài)機(jī)在接收所述固件升級(jí)包之前,接收預(yù)處理程序包;并利用所述預(yù)處理程序包進(jìn)行預(yù)處理; 所述預(yù)處理程序包包括多個(gè)預(yù)處理程序塊,則所述接收預(yù)處理程序包具體為;所述控制狀態(tài)機(jī)逐一接收所述預(yù)處理程序塊。
7.根據(jù)權(quán)利要求5所述方法,其特征在于,所述控制狀態(tài)機(jī)將所述固件升級(jí)包保存至所述應(yīng)用區(qū)還包括: 控制狀態(tài)機(jī)對(duì)所述固件升級(jí)包進(jìn)行合法性驗(yàn)證,如果驗(yàn)證成功則使所述系統(tǒng)進(jìn)入待執(zhí)行狀態(tài)。
8.根據(jù)權(quán)利要求5?7任意一項(xiàng)所述方法,其特征在于,所述方法還包括: 為每個(gè)升級(jí)程序塊設(shè)定唯一的編號(hào)。
9.根據(jù)權(quán)利要求8所述方法,其特征在于,所述控制狀態(tài)機(jī)接收所述升級(jí)程序塊還包括: 將當(dāng)前接收的升級(jí)程序塊的編號(hào)發(fā)送至所述升級(jí)控制器; 當(dāng)嵌入式設(shè)備的近距離無線通信組件與升級(jí)控制器的通信連接斷開并重新連接,則所述控制狀態(tài)機(jī)直接提取所述升級(jí)控制器獲取的編號(hào)對(duì)應(yīng)的升級(jí)程序塊。
10.根據(jù)權(quán)利要求8所述方法,其特征在于,所述控制狀態(tài)機(jī)接收所述升級(jí)程序塊還包括: 在所述應(yīng)用區(qū)中劃分出若干存儲(chǔ)塊,并為所述存儲(chǔ)塊設(shè)置唯一的序號(hào);建立所述存儲(chǔ)塊序號(hào)與升級(jí)程序塊編號(hào)的對(duì)應(yīng)關(guān)系; 當(dāng)接收到所述升級(jí)程序塊,則根據(jù)該升級(jí)程序塊的編號(hào),查找到序號(hào)對(duì)應(yīng)的存儲(chǔ)塊; 將所述升級(jí)程序塊保存至所述序號(hào)對(duì)應(yīng)的存儲(chǔ)塊中。
11.根據(jù)權(quán)利要求1?7任意一項(xiàng)所述方法,其特征在于,所述方法還包括: 將所述應(yīng)用區(qū)劃分為第一區(qū)間和第二區(qū)間; 將所述固件升級(jí)包保存至第一區(qū)間; 將原應(yīng)用程序保存至第二區(qū)間。
12.—種固嵌入式設(shè)備,其特征在于,所述設(shè)備包括: 系統(tǒng)控制模塊,用于預(yù)先在嵌入式設(shè)備的處理芯片中設(shè)置升級(jí)控制程序,從所述處理芯片的閃存劃分出系統(tǒng)區(qū)和應(yīng)用區(qū),將所述升級(jí)控制程序保存至所述系統(tǒng)區(qū); 近距離無線通信組件,用于通過近距離無線通信連接到升級(jí)控制器; 升級(jí)控制程序,用于觸發(fā)固件升級(jí),向所述升級(jí)控制器提取固件升級(jí)包;并將所述固件升級(jí)包保存至所述應(yīng)用區(qū)。
【文檔編號(hào)】G06F9/445GK104331312SQ201410682568
【公開日】2015年2月4日 申請(qǐng)日期:2014年11月24日 優(yōu)先權(quán)日:2014年11月24日
【發(fā)明者】葉飛, 李永春, 李強(qiáng), 單日強(qiáng), 盧朝霞 申請(qǐng)人:東軟熙康健康科技有限公司