一種嵌入式設(shè)備的固件升級方法及嵌入式系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式設(shè)備技術(shù)領(lǐng)域,特別涉及一種嵌入式設(shè)備的固件升級方法及嵌入式系統(tǒng)。
【背景技術(shù)】
[0002]嵌入式設(shè)備的構(gòu)成,是以嵌入式處理芯片為主,配合相關(guān)的支撐硬件和應(yīng)用程序,共同組成一個軟硬件于一體的可獨(dú)立工作的設(shè)備。相比于手機(jī)或者平板電腦等高智能設(shè)備,所謂的嵌入式設(shè)備往往是更為簡單的小型電子設(shè)備,不具備高智能操作系統(tǒng),但依然可以通過內(nèi)置的應(yīng)用程序來實(shí)現(xiàn)諸多實(shí)用功能。例如,心率帶/脈搏表或類似的小型可穿戴電子設(shè)備,均屬于嵌入式設(shè)備。
[0003]嵌入式設(shè)備中應(yīng)用程序的升級,需要利用系統(tǒng)中的啟動器(bootloader)觸發(fā)下載的流程,使系統(tǒng)開始下載應(yīng)用程序的固件升級包。另外在一些情況下,啟動器本身也需要下載更新,但啟動器一般保存在嵌入式芯片的閃存中,屬于系統(tǒng)的一部分,一旦在閃存中擦除系統(tǒng)即會崩潰;所以常規(guī)的系統(tǒng)難以完成自身的更新替換。
[0004]現(xiàn)有的一些嵌入式設(shè)備,選擇將啟動器保存在RAM當(dāng)中,得以避免升級啟動器時(shí)擦除閃存中的系統(tǒng)部分,導(dǎo)致系統(tǒng)崩潰的情況;使得系統(tǒng)能夠完成啟動器的更新替換。但是這種方案的缺陷在于,一旦啟動器升級過程中設(shè)備意外掉電,便會導(dǎo)致啟動器丟失,系統(tǒng)重新上電后失去啟動器,同樣會造成崩潰。也就是啟動器的升級存在巨大的風(fēng)險(xiǎn)。
[0005]另一些現(xiàn)有的嵌入式設(shè)備采用設(shè)置雙啟動器的方式。這樣即使升級過程中一個啟動器丟失,另一個備用的啟動器依然可以維持系統(tǒng)運(yùn)行,安全性比較高。不過這種方案的缺陷是,雙啟動器導(dǎo)致系統(tǒng)過于復(fù)雜,而且啟動器的升級頻率極低,設(shè)置雙啟動器使得系統(tǒng)不得不具有不必要的冗余。
[0006]可見現(xiàn)有技術(shù)的缺陷是,無法在不增加系統(tǒng)復(fù)雜程度的前提下,穩(wěn)定的實(shí)現(xiàn)啟動器升級,并且不受到掉電的影響?,F(xiàn)有技術(shù)中不存在嵌入式設(shè)備的系統(tǒng)能夠簡捷且安全的實(shí)現(xiàn)啟動器的升級。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明的目的在于提供一種嵌入式設(shè)備的固件升級方法及嵌入式系統(tǒng),通過重新構(gòu)造嵌入式系統(tǒng)的整體結(jié)構(gòu),從而簡捷且安全的實(shí)現(xiàn)啟動器的升級。
[0008]為實(shí)現(xiàn)上述目的,有如下技術(shù)方案:
[0009]一種嵌入式設(shè)備的固件升級方法,所述方法包括:
[0010]自嵌入式芯片閃存的上電起始位起劃分出觸發(fā)區(qū);將啟動器分解為觸發(fā)器和下載器,將所述觸發(fā)器保存到所述觸發(fā)區(qū)中;
[0011]從嵌入式芯片閃存中劃分出彼此獨(dú)立擦寫的下載區(qū)和應(yīng)用區(qū);將所述下載器保存至下載區(qū);將應(yīng)用程序保存至所述應(yīng)用區(qū),并在所述應(yīng)用區(qū)中保存引導(dǎo)器;
[0012]當(dāng)出現(xiàn)針對應(yīng)用區(qū)的下載指令,則觸發(fā)器觸發(fā)所述下載區(qū)中的下載器更新應(yīng)用固件;當(dāng)出現(xiàn)針對下載區(qū)的下載指令,則所述觸發(fā)器觸發(fā)所述應(yīng)用區(qū)中的引導(dǎo)器更新下載器固件。
[0013]所述從嵌入式芯片閃存中劃分出彼此獨(dú)立擦寫的下載區(qū)和應(yīng)用區(qū)具體為:
[0014]從嵌入式芯片閃存中劃分出第一區(qū)作為下載區(qū),并將所述下載區(qū)的地址范圍發(fā)送至觸發(fā)器;
[0015]從嵌入式芯片閃存中劃分出第二區(qū)作為應(yīng)用區(qū),并將所述應(yīng)用區(qū)的地址范圍發(fā)送至觸發(fā)器。
[0016]所述觸發(fā)器觸發(fā)所述下載區(qū)中的下載器更新應(yīng)用固件具體為:
[0017]觸發(fā)器從所述下載區(qū)的地址范圍中調(diào)用所述下載器,并令所述下載器根據(jù)應(yīng)用區(qū)的下載指令,進(jìn)行應(yīng)用固件的下載。
[0018]所述觸發(fā)器觸發(fā)所述應(yīng)用區(qū)中的引導(dǎo)器更新下載器固件具體為:
[0019]觸發(fā)器從所述應(yīng)用區(qū)的地址范圍中調(diào)用所述引導(dǎo)器,并令所述引導(dǎo)器根據(jù)下載區(qū)的下載指令,進(jìn)行下載器固件的下載。
[0020]所述方法還包括:
[0021]從嵌入式芯片閃存中劃分出第三區(qū)作為驅(qū)動區(qū),并將所述驅(qū)動區(qū)的地址范圍發(fā)送至觸發(fā)器;將驅(qū)動程序保存至所述驅(qū)動區(qū);
[0022]當(dāng)出現(xiàn)針對驅(qū)動區(qū)的下載指令,觸發(fā)器從所述下載區(qū)的地址范圍中調(diào)用所述下載器,并令所述下載器根據(jù)驅(qū)動區(qū)的下載指令,進(jìn)行驅(qū)動固件的下載。
[0023]一種嵌入式系統(tǒng),所述系統(tǒng)具體為:
[0024]在嵌入式芯片閃存的上電起始位起劃分出觸發(fā)區(qū);將啟動器分解為觸發(fā)器和下載器,將所述觸發(fā)器保存到所述觸發(fā)區(qū)中;從嵌入式芯片閃存中劃分出彼此獨(dú)立擦寫的下載區(qū)和應(yīng)用區(qū);將所述下載器保存至下載區(qū);將應(yīng)用程序保存至所述應(yīng)用區(qū),并在所述應(yīng)用區(qū)中保存引導(dǎo)器;
[0025]所述觸發(fā)器用于,在出現(xiàn)針對應(yīng)用區(qū)的下載指令時(shí),觸發(fā)所述下載區(qū)中的下載器更新應(yīng)用固件;或在出現(xiàn)針對下載區(qū)的下載指令時(shí),觸發(fā)所述應(yīng)用區(qū)中的引導(dǎo)器更新下載器固件。
[0026]所述系統(tǒng)還包括:
[0027]分區(qū)模塊,用于在嵌入式芯片閃存的上電起始位起劃分出觸發(fā)區(qū);從嵌入式芯片閃存中劃分出第一區(qū)作為下載區(qū),并將所述下載區(qū)的地址范圍發(fā)送至觸發(fā)器;從嵌入式芯片閃存中劃分出第二區(qū)作為應(yīng)用區(qū),并將所述應(yīng)用區(qū)的地址范圍發(fā)送至觸發(fā)器。
[0028]所述觸發(fā)器觸發(fā)所述下載區(qū)中的下載器更新應(yīng)用固件具體為:
[0029]觸發(fā)器從所述下載區(qū)的地址范圍中調(diào)用所述下載器,并令所述下載器根據(jù)應(yīng)用區(qū)的下載指令,進(jìn)行應(yīng)用固件的下載。
[0030]所述觸發(fā)器觸發(fā)所述應(yīng)用區(qū)中的引導(dǎo)器更新下載器固件具體為:
[0031]觸發(fā)器從所述應(yīng)用區(qū)的地址范圍中調(diào)用所述引導(dǎo)器,并令所述引導(dǎo)器根據(jù)下載區(qū)的下載指令,進(jìn)行下載器固件的下載。
[0032]所述分區(qū)模塊還用于:
[0033]從嵌入式芯片閃存中劃分出第三區(qū)作為驅(qū)動區(qū),并將所述驅(qū)動區(qū)的地址范圍發(fā)送至觸發(fā)器;將驅(qū)動程序保存至所述驅(qū)動區(qū);
[0034]則所述觸發(fā)器還用于,在出現(xiàn)針對驅(qū)動區(qū)的下載指令時(shí),從所述下載區(qū)的地址范圍中調(diào)用所述下載器,并令所述下載器根據(jù)驅(qū)動區(qū)的下載指令,進(jìn)行驅(qū)動固件的下載。
[0035]通過以上技術(shù)方案可知,本發(fā)明存在的有益效果是:通過重新構(gòu)建系統(tǒng),將觸發(fā)器保存在上電起始位的觸發(fā)區(qū)中,避免了系統(tǒng)崩潰的發(fā)生,并且不增加系統(tǒng)的復(fù)雜程度;獨(dú)立擦寫的下載區(qū)和應(yīng)用區(qū)能夠?qū)崿F(xiàn)相互引導(dǎo)下載更新程序,實(shí)現(xiàn)穩(wěn)定的應(yīng)用程序更新和下載器更新。
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0037]圖1為本發(fā)明實(shí)施例所述系統(tǒng)結(jié)構(gòu)示意圖;
[0038]圖2為本發(fā)明實(shí)施例所述方法流程圖。
【具體實(shí)施方式】
[0039]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]為實(shí)現(xiàn)嵌入式設(shè)備中安全穩(wěn)定的啟動器升級,防止升級過程中意外掉電導(dǎo)致系統(tǒng)崩潰,并且不額外的增加系統(tǒng)的復(fù)雜程度;本實(shí)施例中對于嵌入式系統(tǒng)的結(jié)構(gòu)進(jìn)行了重新的設(shè)計(jì)和構(gòu)造。參見圖1所示,為本發(fā)明實(shí)施例所述嵌入式系統(tǒng)的具體實(shí)施例。本實(shí)施例中所述系統(tǒng)具體結(jié)構(gòu)如以下描述:
[0041]首先,本實(shí)施例中將所述啟動器(bootloader)拆分為觸發(fā)器(boot)和下載器(loader)兩部分。所述啟動器原本用于觸發(fā)下載的流程,使系統(tǒng)開始下載應(yīng)用程序的固件升級包;而拆分后,所述觸發(fā)器將用于觸發(fā)下載流程開始,下載器則用于引導(dǎo)下載的過程。
[0042]同時(shí)本實(shí)施例中將利用劃分模塊自嵌入式芯片閃存的上電起始位起劃分出觸發(fā)區(qū),將所述觸發(fā)器保存到所述觸發(fā)區(qū)中。所述上電起始位,就是閃存重新上電后首先開始運(yùn)行的存儲位置。本實(shí)施例中從上電起始位開始,取連續(xù)的若干存儲空間作為觸發(fā)區(qū),所述觸發(fā)區(qū)的大小應(yīng)不小于觸發(fā)器的大??;并且所述觸發(fā)區(qū)獨(dú)立擦寫,這保證了觸發(fā)區(qū)中保存的觸發(fā)器不會在閃存其他內(nèi)容更新時(shí)被擦除。
[0043]因?yàn)樗鲇|發(fā)器是為系統(tǒng)運(yùn)行的起點(diǎn),系統(tǒng)運(yùn)行以及固件的升級流程均由觸發(fā)器觸發(fā)開啟,所以一旦閃存中觸發(fā)器被擦除,系統(tǒng)即會崩潰。這也是現(xiàn)有技術(shù)當(dāng)中,各種導(dǎo)致系統(tǒng)崩潰情況的主要原因所在。而且一般的啟動器升級過程當(dāng)中,主要是對啟動器中的下載器進(jìn)行升級,觸發(fā)器本身往往不發(fā)生變化。
[0044]所以本實(shí)施例中,將啟動器拆分,并且將所述觸發(fā)器獨(dú)立的保存在觸發(fā)區(qū)中,所產(chǎn)生的影響有兩個:一是將觸發(fā)器保存在一個獨(dú)立的觸發(fā)區(qū)中,保證了觸發(fā)器不被誤刪,使觸發(fā)器的安全性得到保障,不受其他任何閃存擦寫操作的影響;二是觸發(fā)區(qū)位于上電起始位,所以一旦系統(tǒng)上電,觸發(fā)器就能夠被自動執(zhí)行,無需通過其他程序來查詢觸發(fā)器的位置,使得觸發(fā)器的執(zhí)行不受到其他程序的限制。
[0045]這樣一來,無論閃存中執(zhí)行任何擦寫操作,或者發(fā)生意外掉電導(dǎo)致任何程序的丟失,觸發(fā)器始終安全的保存在觸發(fā)區(qū)中,一旦重新上電就能夠被有效執(zhí)行。本實(shí)施例中通過上述的設(shè)計(jì)規(guī)避了系統(tǒng)崩潰的風(fēng)險(xiǎn)。
[0046]然后,本實(shí)施例中還將利用劃分模塊從嵌入式芯片閃存中劃分出彼此獨(dú)立擦寫的下載區(qū)和應(yīng)用區(qū)。所述啟動器的另一部分一一下載器即保存在所述下載區(qū)中;而系統(tǒng)中的應(yīng)用程序均被早存在應(yīng)用區(qū)中。所述下載區(qū)和應(yīng)用區(qū)也是彼此獨(dú)立擦寫的。
[0047]由于下載區(qū)和應(yīng)用區(qū)存在彼此獨(dú)立擦寫的特點(diǎn),所以利用下載區(qū)中的下載器可以引導(dǎo)下載應(yīng)用區(qū)中的應(yīng)用程序,完成應(yīng)用區(qū)中內(nèi)容的擦寫與程序更新;這一點(diǎn)基本等同于現(xiàn)有技術(shù)中應(yīng)用程序固件升