欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種升級BootLoader程序的方法及裝置與流程

文檔序號:11133684閱讀:315來源:國知局
一種升級BootLoader程序的方法及裝置與制造工藝

本申請涉及嵌入式系統(tǒng)設(shè)計領(lǐng)域,尤其涉及一種升級BootLoader程序的方法及裝置。



背景技術(shù):

在嵌入式技術(shù)方案中,嵌入式設(shè)備啟動后通常會先運行一段BootLoader程序,該程序可以對系統(tǒng)做最小初始化,準(zhǔn)備后續(xù)系統(tǒng)軟件的運行環(huán)境并最終引導(dǎo)系統(tǒng)軟件。

在實際的工作過程中,由于一些新特性的添加,需要對嵌入式設(shè)備的BootLoader程序進行升級,然而,如果在嵌入式設(shè)備中升級了不適配該嵌入式設(shè)備的BootLoader程序,就會導(dǎo)致該嵌入式設(shè)備宕機。



技術(shù)實現(xiàn)要素:

有鑒于此,本申請?zhí)峁┮环N升級BootLoader程序的方法及裝置,可以避免在嵌入式設(shè)備升級BootLoader程序時,因升級了不適配該嵌入式設(shè)備的BootLoader程序而導(dǎo)致該嵌入式設(shè)備宕機的問題。

為實現(xiàn)上述目的,本申請?zhí)峁┘夹g(shù)方案如下:

根據(jù)本申請的第一方面,提出了一種升級BootLoader程序的方法,應(yīng)用于嵌入式設(shè)備;所述方法包括:

當(dāng)檢測到對所述嵌入式設(shè)備中的當(dāng)前BootLoader程序的升級觸發(fā)操作時,獲取升級文件,所述升級文件中包含最新版本的BootLoader程序;

確定所述最新版本的BootLoader程序是否適配于所述嵌入式設(shè)備;

當(dāng)所述最新版本的BootLoader程序適配于所述嵌入式設(shè)備時,通過所述最新版本的BootLoader程序更新所述嵌入式設(shè)備中的當(dāng)前BootLoader程序;

當(dāng)所述最新版本的BootLoader程序不適配于所述嵌入式設(shè)備時,放棄通過所述最新版本的BootLoader程序更新所述當(dāng)前BootLoader程序的操作。

根據(jù)本申請的第二方面,提出了一種升級BootLoader程序的裝置,應(yīng)用于嵌入式設(shè)備;所述裝置包括:

獲取單元,當(dāng)檢測到對所述嵌入式設(shè)備中的當(dāng)前BootLoader程序的升級觸發(fā)操作時,獲取升級文件,所述升級文件中包含最新版本的BootLoader程序;

第一確定單元,確定所述最新版本的BootLoader程序是否適配于所述嵌入式設(shè)備;

更新單元,當(dāng)所述最新版本的BootLoader程序適配于所述嵌入式設(shè)備時,通過所述最新版本的BootLoader程序更新所述嵌入式設(shè)備中的當(dāng)前BootLoader程序;

處理單元,當(dāng)所述最新版本的BootLoader程序不適配于所述嵌入式設(shè)備時,放棄通過所述最新版本的BootLoader程序更新所述當(dāng)前BootLoader程序的操作。

由以上技術(shù)方案可見,本申請通過在嵌入式設(shè)備升級BootLoader程序時,對最新版本的BootLoader程序是否適配于該嵌入式設(shè)備進行判斷,從而保證該嵌入式設(shè)備不會出現(xiàn)因升級了錯誤的BootLoader程序?qū)е洛礄C的問題。

附圖說明

圖1是本申請一示例性實施例提供的一種升級BootLoader程序的方法的流程圖。

圖2是本申請一示例性實施例提供的打包升級文件的流程圖。

圖3是本申請一示例性實施例提供的升級文件的結(jié)構(gòu)示意圖。

圖4是本申請一示例性實施例提供的另一種升級BootLoader程序的方法的流程圖。

圖5是本申請一示例性實施例提供的一種電子設(shè)備的結(jié)構(gòu)示意圖。

圖6是本申請一示例性實施例提供的一種升級BootLoader程序的裝置的框圖。

具體實施方式

這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。

在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。

應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。

圖1是本申請一示例性實施例示出的一種升級BootLoader程序的方法的流程圖,如圖1所示,該方法可以包括以下步驟:

步驟101,當(dāng)檢測到對所述嵌入式設(shè)備中的當(dāng)前BootLoader程序的升級觸發(fā)操作時,獲取升級文件,所述升級文件中包含最新版本的BootLoader程序。

步驟102,確定所述最新版本的BootLoader程序是否適配于所述嵌入式設(shè)備。

在本實施例中,所述升級文件中包含所述最新版本的BootLoader程序的第一類型標(biāo)識,因此,當(dāng)所述當(dāng)前BootLoader程序的第二類型標(biāo)識與所述第一類型標(biāo)識一致時,確定所述最新版本的BootLoader程序適配于所述嵌入式設(shè)備;當(dāng)所述當(dāng)前BootLoader程序的第二類型標(biāo)識與所述第一類型標(biāo)識不一致時,確定所述最新版本的BootLoader程序不適配于所述嵌入式設(shè)備。其中,所述第二類型標(biāo)識與所述嵌入式設(shè)備的處理器架構(gòu)相對應(yīng)。

步驟103A,當(dāng)所述最新版本的BootLoader程序適配于所述嵌入式設(shè)備時,通過所述最新版本的BootLoader程序更新所述嵌入式設(shè)備中的當(dāng)前BootLoader程序。

步驟103B,當(dāng)所述最新版本的BootLoader程序不適配于所述嵌入式設(shè)備時,放棄通過所述最新版本的BootLoader程序更新所述當(dāng)前BootLoader程序的操作。

在本實施例中,需要確定所述最新版本的BootLoader程序是否存在數(shù)據(jù)錯誤,以確保嵌入式設(shè)備升級的BootLoader程序是正確的。當(dāng)所述最新版本的BootLoader程序不存在數(shù)據(jù)錯誤時,允許通過所述最新版本的BootLoader程序?qū)λ霎?dāng)前BootLoader程序進行更新操作;否則不允許所述更新操作。其中,通過以下方式確定所述最新版本的BootLoader程序是否存在數(shù)據(jù)錯誤:

計算所述最新版本的BootLoader程序的校驗值,以得到第一校驗值;

提取所述升級文件中包含的所述最新版本的BootLoader程序?qū)?yīng)的第二校驗值;其中,所述第二校驗值由生成所述升級文件的設(shè)備計算得到;

當(dāng)所述第一校驗值與所述第二校驗值相等時,確定所述最新版本的BootLoader程序不存在數(shù)據(jù)錯誤,否則確定所述最新版本的BootLoader程序存在數(shù)據(jù)錯誤。

由以上技術(shù)方案可見,本申請通過在嵌入式設(shè)備獲取包含最新版本的BootLoader程序的升級文件時,對該最新版本的BootLoader程序進行校驗,以確保該最新版本的BootLoader程序適配于該嵌入式設(shè)備,以及該最新版本的BootLoader程序不存在數(shù)據(jù)錯誤,從而保證升級BootLoader程序的過程順利進行。

為了便于理解,下面結(jié)合圖2-4,對本申請的技術(shù)方案進行詳細說明。請參見圖2,圖2是本申請一示例性實施例的打包升級文件的流程圖,打包升級文件的過程可以包括以下步驟:

步驟201,檢測最新版本的BootLoader程序是否存在,若存在,則轉(zhuǎn)入步驟202,否則,結(jié)束本次打包升級文件的過程。

步驟202,計算最新版本的BootLoader程序的長度,并將得到的長度填寫至文件頭部中。

步驟203,計算最新版本的BootLoader程序的校驗值,以得到第二校驗值,并將該第二校驗值填寫至文件頭部中。

在本實施例中,可以采取CRC校驗的方式來校驗最新版本的BootLoader程序,也可以采取其他校驗方式,本申請并不對此進行限制。

步驟204,獲取最新版本的BootLoader程序的第一類型標(biāo)識,并將該第一類型標(biāo)識填寫至文件頭部中。

在本實施例中,該第一類型標(biāo)識與嵌入式設(shè)備的處理器架構(gòu)相對應(yīng),針對不同類型的處理器架構(gòu),與之對應(yīng)的第一類型標(biāo)識也不同,即處理器架構(gòu)與第一類型標(biāo)識為一一對應(yīng)的關(guān)系。

步驟205,獲取結(jié)尾標(biāo)識,并將該結(jié)尾標(biāo)識填寫至文件頭部中。

步驟206,打包形成升級文件。

在本實施例中,升級文件的結(jié)構(gòu)如圖3所示,請參見圖3,本申請將最新版本的BootLoader程序和文件頭部打包成一升級文件,其中,該文件頭部包含最新版本的BootLoader程序的第二校驗值、該最新版本的BootLoader程序的第一類型標(biāo)識、該最新版本的BootLoader程序的長度以及結(jié)尾標(biāo)識。在生成最新版本的BootLoader程序(例如,由PC機生成)后,通過調(diào)用打包工具,將步驟202-步驟205得到的數(shù)據(jù)(長度、第二校驗值、第一類型標(biāo)識和結(jié)尾標(biāo)識),填寫至文件頭部中,再將文件頭部追加到該最新版本的BootLoader程序的末尾位置,形成升級文件。

圖4是本申請一示例性實施例的升級BootLoader程序的方法的流程圖。如圖4所示,該方法可以包括以下步驟:

步驟401,獲取升級文件。

在本實施例中,可以通過網(wǎng)絡(luò)或者串口將升級文件下載到嵌入式設(shè)備的內(nèi)存中。

步驟402,解析文件頭部。

在本實施例中,嵌入式設(shè)備讀取升級文件中的文件頭部,通過解析該文件頭部,進而獲取該文件頭部中包含的長度、第二校驗值、第一類型標(biāo)識。

步驟403,判斷嵌入式設(shè)備中的當(dāng)前BootLoader程序的第二類型標(biāo)識,與該第一類型標(biāo)識是否相同,若相同,則轉(zhuǎn)入步驟404,否則轉(zhuǎn)入步驟406B。

在本實施例中,通過比較該第一類型標(biāo)識與該第二類型標(biāo)識是否相同,來確定升級文件中的最新版本的BootLoader程序是否適配于該嵌入式設(shè)備,從而避免了在升級BootLoader程序時,因升級了不適配該嵌入式設(shè)備的BootLoader程序而導(dǎo)致該嵌入式設(shè)備宕機的問題。舉例而言,假定該第一類型標(biāo)識為0x1,若該第二類型標(biāo)識也為0x1,則說明該最新版本的BootLoader程序適配于該嵌入式設(shè)備;若該第二類型標(biāo)識為0x2或其他任意不為0x1的標(biāo)識,則說明該最新版本的BootLoader程序不適配于該嵌入式設(shè)備,即不能通過該最新版本的BootLoader程序更新該嵌入式設(shè)備中的當(dāng)前BootLoader程序。

步驟404,計算獲取的升級文件中最新版本的BootLoader程序的校驗值,以得到第一校驗值。

步驟405,比較該第一校驗值與文件頭部中記錄的第二校驗值是否相等,若相等,則轉(zhuǎn)入步驟406A,否則轉(zhuǎn)入步驟406B。

在本實施例中,由于在生成最新版本的BootLoader程序時,就計算得到第二校驗值,并將該第二校驗值與該最新版本的BootLoader程序綁定在一起,從而保證了該第二校驗值能夠正確反映該最新版本的BootLoader程序在傳輸和下載過程中是否存在數(shù)據(jù)錯誤,即該第二校驗值為不存在數(shù)據(jù)錯誤的BootLoader程序的校驗值。舉例而言,假定設(shè)備A生成最新版本的BootLoader程序,然后設(shè)備A將該最新版本的BootLoader程序傳輸至設(shè)備B,而設(shè)備B對接收到的BootLoader程序進行了修改(即此時設(shè)備B中的該BootLoader程序存在數(shù)據(jù)錯誤了),并針對修改后的BootLoader程序計算了校驗值。當(dāng)設(shè)備C由于某些原因,例如無法與設(shè)備A連接,或者與設(shè)備A的傳輸速度太慢,進而選擇從設(shè)備B中下載所需升級的BootLoader程序時,即便設(shè)備C在下載后利用設(shè)備B提供的校驗值進行了校驗,設(shè)備C通過設(shè)備B得到的BootLoader程序也不是正確的。而本申請通過在生成最新版本的BootLoader程序時,就將第二校驗值與該最新版本的BootLoader程序綁定在一起(即打包成升級文件),在后續(xù)的傳輸過程中,該第二校驗值始終與該最新版本的BootLoader程序綁定在一起,當(dāng)嵌入式設(shè)備利用獲取的最新版本的BootLoader程序來更新當(dāng)前BootLoader程序時,只需通過與該最新版本的BootLoader程序綁定在一起的第二校驗值,即可確定該最新版本的BootLoader程序在傳輸和下載過程中是否存在數(shù)據(jù)錯誤,從而確保升級過程順利完成。

步驟406A,通過升級文件中最新版本的BootLoader程序,更新嵌入式設(shè)備中的當(dāng)前BootLoader程序。

步驟406B,提示用戶文件不合法。

在本實施例中,在承接步驟403的情況下,由于升級文件中最新版本的BootLoader程序不適配于嵌入式設(shè)備,所以該最新版本的BootLoader程序不能用于更新當(dāng)前BootLoader程序;在承接步驟405的情況下,由于最新版本的BootLoader程序存在數(shù)據(jù)錯誤,所以該最新版本的BootLoader程序也不能用于更新當(dāng)前BootLoader程序。

嵌入式設(shè)備可以直接在顯示屏上輸出文件不合法的通知,以使用戶及時發(fā)現(xiàn)該異常狀況;或者,嵌入式設(shè)備可以通過向用戶的手機、PC等電子設(shè)備發(fā)送異常通知,以使用戶在任意場景下,均能夠及時發(fā)現(xiàn)該異常狀況;當(dāng)然,本申請并不限制該異常信息的輸出方式。

由以上技術(shù)方案可見,本申請將最新版本的BootLoader程序的第二校驗值和第一類型標(biāo)識記錄在文件頭部中,然后將該文件頭部與該最新版本的BootLoader程序打包為一升級文件,在升級BootLoader程序時,利用該第二校驗值來確定獲取的最新版本的BootLoader程序是否存在數(shù)據(jù)錯誤,利用該第一類型標(biāo)識來確定獲取的最新版本的BootLoader程序是否適配于嵌入式設(shè)備,一方面,保證了該嵌入式設(shè)備不會出現(xiàn)因升級了錯誤的BootLoader程序?qū)е洛礄C的問題,另一方面,整個過程無需人為操作,提升了對該嵌入式設(shè)備中當(dāng)前BootLoader程序的升級更新效率。

圖5示出了根據(jù)本申請的一示例性實施例的電子設(shè)備的示意結(jié)構(gòu)圖。請參考圖5,在硬件層面,該電子設(shè)備包括處理器502、內(nèi)部總線504、網(wǎng)絡(luò)接口506、內(nèi)存508以及非易失性存儲器510,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器502從非易失性存儲器510中讀取對應(yīng)的計算機程序到內(nèi)存502中然后運行,在邏輯層面上形成升級BootLoader程序的裝置。當(dāng)然,除了軟件實現(xiàn)方式之外,本申請并不排除其他實現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說以下處理流程的執(zhí)行主體并不限定于各個邏輯單元,也可以是硬件或邏輯器件。

請參考圖6,在軟件實施方式中,該升級BootLoader程序的裝置可以包括獲取單元601、第一確定單元602、更新單元603、處理單元604、第二確定單元605和控制單元606。其中:

獲取單元601,當(dāng)檢測到對所述嵌入式設(shè)備中的當(dāng)前BootLoader程序的升級觸發(fā)操作時,獲取升級文件,所述升級文件中包含最新版本的BootLoader程序;

第一確定單元602,確定所述最新版本的BootLoader程序是否適配于所述嵌入式設(shè)備;

更新單元603,當(dāng)所述最新版本的BootLoader程序適配于所述嵌入式設(shè)備時,通過所述最新版本的BootLoader程序更新所述嵌入式設(shè)備中的當(dāng)前BootLoader程序;

處理單元604,當(dāng)所述最新版本的BootLoader程序不適配于所述嵌入式設(shè)備時,放棄通過所述最新版本的BootLoader程序更新所述當(dāng)前BootLoader程序的操作。

可選的,所述升級文件中包含所述最新版本的BootLoader程序的第一類型標(biāo)識;所述第一確定單元602具體用于:

當(dāng)所述當(dāng)前BootLoader程序的第二類型標(biāo)識與所述第一類型標(biāo)識一致時,確定所述最新版本的BootLoader程序適配于所述嵌入式設(shè)備;

當(dāng)所述當(dāng)前BootLoader程序的第二類型標(biāo)識與所述第一類型標(biāo)識不一致時,確定所述最新版本的BootLoader程序不適配于所述嵌入式設(shè)備。

可選的,所述第二類型標(biāo)識與所述嵌入式設(shè)備的處理器架構(gòu)相對應(yīng)。

可選的,還包括:

第二確定單元605,確定所述最新版本的BootLoader程序是否存在數(shù)據(jù)錯誤;

控制單元606,當(dāng)所述最新版本的BootLoader程序不存在數(shù)據(jù)錯誤時,允許所述更新單元通過所述最新版本的BootLoader程序?qū)λ霎?dāng)前BootLoader程序進行更新操作;否則不允許所述更新操作。

可選的,所述第二確定單元具體用于:

計算所述最新版本的BootLoader程序的校驗值,以得到第一校驗值;

提取所述升級文件中包含的所述最新版本的BootLoader程序?qū)?yīng)的第二校驗值;其中,所述第二校驗值由生成所述升級文件的設(shè)備計算得到;

當(dāng)所述第一校驗值與所述第二校驗值相等時,確定所述最新版本的BootLoader程序不存在數(shù)據(jù)錯誤,否則確定所述最新版本的BootLoader程序存在數(shù)據(jù)錯誤。

上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。

對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。

以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
新绛县| 麦盖提县| 黔西县| 夹江县| 北票市| 乐业县| 延寿县| 原平市| 炉霍县| 安康市| 前郭尔| 松阳县| 德州市| 木兰县| 衡阳县| 东山县| 昌吉市| 介休市| 奉新县| 景泰县| 洛阳市| 无棣县| 崇州市| 濉溪县| 海城市| 东莞市| 三亚市| 精河县| 梁平县| 寻甸| 汶川县| 张家界市| 青川县| 遵义县| 嘉禾县| 卓资县| 含山县| 宜兴市| 塔河县| 孙吴县| 南华县|