用于多重啟動裝置的啟動順序的制作方法
【專利說明】用于多重啟動裝置的啟動順序
[0001]相關(guān)串請案的交叉參考
[0002]本申請案主張2013年3月14日申請的第61/784,833號美國臨時申請案的權(quán)益,所述申請案的全部內(nèi)容并入本文中。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及微控制器和微處理器,并且特定來說涉及用于多重啟動嵌入式微控制器系統(tǒng)的啟動順序。
【背景技術(shù)】
[0004]在供電或復(fù)位之后,嵌入式微控制器即必須選擇嵌入式系統(tǒng)將從其運行的含有啟動映像的啟動裝置。微控制器可支持一個以上的啟動裝置的使用。多重啟動是指在多個可用啟動裝置之間選擇的微控制器。為支持多重啟動,需要允許微控制器從可用啟動裝置組選擇所要啟動裝置的機構(gòu)。
[0005]系統(tǒng)通常利用默認啟動向量來識別含有待加載啟動映像的啟動裝置。有時稱作為復(fù)位向量的默認啟動向量為識別系統(tǒng)目前從其經(jīng)配置以運行的啟動裝置的位置的指定地址空間。在重新啟動或復(fù)位之后,CPU即存取啟動向量并且被引導(dǎo)到含有接著被加載的啟動映像的啟動裝置的位置。每一啟動映像將通常包含用于嵌入式系統(tǒng)的操作的應(yīng)用程序代碼和用于加載應(yīng)用程序代碼的啟動加載程序代碼。啟動加載程序代碼起始系統(tǒng)并且加載用于通過系統(tǒng)執(zhí)行的應(yīng)用程序代碼。在單個啟動系統(tǒng)中,由啟動向量識別唯一啟動映像。然而,在多重啟動系統(tǒng)中,出現(xiàn)關(guān)于如何調(diào)適這一啟動向量機構(gòu)以在多個可用啟動裝置之間選擇的問題。
[0006]支持多重啟動的一個解決方案是改變所利用的啟動向量。這可通過插入結(jié)合復(fù)位指令執(zhí)行的轉(zhuǎn)移指令完成。所述轉(zhuǎn)移指令將系統(tǒng)引導(dǎo)到選定啟動裝置的位置。另一可能性為在發(fā)出復(fù)位命令之前重新定義啟動向量的位置,使得在復(fù)位之后,系統(tǒng)即加載由這一經(jīng)重新定義啟動向量指定的啟動映像。另一可能性為通過將啟動映像放置在固定地址處并且對系統(tǒng)進行編程以直接從這一地址啟動而規(guī)避啟動向量。
[0007]這些常規(guī)方法需要在每次選擇不同啟動裝置時對系統(tǒng)的軟件進行顯著改變。舉例來說,如果啟動向量的位置改變,那么必須重新編輯啟動映像以便利用新的啟動向量。由于對啟動映像進行改變,所以用戶必須確保經(jīng)更新啟動映像根據(jù)重新映像的啟動向量配置。因為對啟動向量的位置的每一改變,所以用戶必須將這些改變傳播到所有相關(guān)啟動映像。如果啟動向量被整體規(guī)避,那么不僅必須重新編輯每一啟動映像以指向待使用的啟動代碼的地址位置,而且必須變更裝置邏輯本身以規(guī)避默認啟動向量,并且(如前文)必須重新編輯每一啟動映像以便復(fù)位到這一新的啟動代碼位置??善谕哂忻看螌x定啟動裝置進行改變時不需要重新編輯啟動映像的可配置多重啟動解決方案??蛇M一步期望能夠經(jīng)由簡單硬件配置進行多重啟動選擇。
【發(fā)明內(nèi)容】
[0008]常規(guī)雙重啟動方法需要實質(zhì)重新配置以便改變選定啟動映像并且不提供以故障自動防護(fail-safe)方式更新啟動映像的能力。因此,對允許在硬件中進行啟動確定并且提供啟動映像的順暢更新的可配置雙重啟動解決方案存在需要?,F(xiàn)有技術(shù)中的這些和其它缺點大部分通過根據(jù)本發(fā)明的實施例的系統(tǒng)和方法克服。
[0009]根據(jù)一個實施例,一種用于啟動具有第一啟動映像和第二啟動映像的多重啟動裝置的方法,其包括:確定與第一啟動映像相關(guān)聯(lián)的第一啟動序號;確定與第二啟動映像相關(guān)聯(lián)的第二啟動序號;通過比較第一序號與第二啟動序號識別選定啟動映像,其中所述比較確定第一啟動映像或第二啟動映像是否為選定啟動映像,其中選定啟動映像通過裝置硬件操作來識別;將選定啟動映像的地址映像到由默認啟動向量指定的主要啟動存儲器位置;以及從默認啟動向量啟動裝置。
[0010]其它實施例還可包含:確定第一啟動序號和確定第二啟動序號,其分別包括從與第一啟動映像相關(guān)聯(lián)的預(yù)定位置讀取第一啟動序號和從與第二啟動映像相關(guān)聯(lián)的預(yù)定位置讀取第二啟動序號。其它實施例還可包含確認已啟用裝置的多重啟動。在其它實施例中,未確定為選定啟動映像的啟動映像為次要啟動映像并且還可包含將次要啟動映像的地址映像到次要啟動存儲器位置,其中可在不影響從主要啟動存儲器位置執(zhí)行的裝置操作的情況下更新次要啟動存儲器位置的內(nèi)容。其它實施例還可包含:處理引導(dǎo)裝置從選定啟動映像調(diào)換到存儲在次要啟動存儲器位置中的啟動映像的命令;以及從選定啟動映像到存儲在次要啟動存儲器位置中的啟動映像切換裝置的執(zhí)行,其中切換在不復(fù)位裝置的情況下進行。其它實施例還可包含:設(shè)置指示裝置是否從主要啟動存儲器位置或次要啟動存儲器位置執(zhí)行的配置參數(shù)。在其它實施例中,確認啟用多重啟動包括確定第一啟動映像和第二啟動映像是否均為有效啟動映像。
【附圖說明】
[0011]所屬領(lǐng)域的技術(shù)人員通過參考附圖可更好地理解本發(fā)明并且明白其許多目的、特征以及優(yōu)點。不同圖式中使用相同參考符號指示類似或相同項。
[0012]圖1為根據(jù)實施例的示范性處理器的框圖。
[0013]圖2示意性地說明實施例的操作。
[0014]圖3為說明實施例的操作的流程圖。
[0015]圖4為說明實施例的操作的流程圖。
【具體實施方式】
[0016]參考附圖中說明和下文詳細描述的示范性和因此非限制性實施例更完全解釋本發(fā)明和其各種特征和有利細節(jié)??墒÷砸阎幊碳夹g(shù)、計算機軟件、硬件、操作平臺以及協(xié)議的描述以免在細節(jié)上不必要地模糊本發(fā)明。然而,應(yīng)理解,僅通過說明并且不通過限制給定同時指示優(yōu)選實施例的詳細描述和特定實例。所屬領(lǐng)域的技術(shù)人員從本發(fā)明將變得明白基本發(fā)明概念的精神和/或范圍中的各種替代、修改、添加和/或重新布置。
[0017]如本文中使用,術(shù)語“包括(comprise/compring)”、“包含(include/including) ”、“具有(has/having) ”,或其任何其它變化形式意在涵蓋非排他性包含。舉例來說,包括一列組件的過程、產(chǎn)品、物品或設(shè)備未必僅限于那些元件而可包含未明確列出或此類過程、過程、物品或設(shè)備固有的其它元件。此外,除非明確說明相反情形,否則“或”是指包含或而非排他或。舉例來說,條件A或B由下列中的任一者滿足:A為真(或存在)并且B為假(或不存在)、A為假(或不存在)并且B為真(或存在),以及A和B都為真(或存在)。
[0018]此外,本文中給定的任何實例或說明不應(yīng)以任何方式被視為與其一起被利用的任何術(shù)語的約束、限制或表達定義。代替性地,這些實例或說明應(yīng)被視為關(guān)于一個特定實施例描述并且僅為說明性。所屬領(lǐng)域的一般技術(shù)人員應(yīng)了解,與這些實例或說明一起被利用的任何術(shù)語涵蓋其它實施例以及可(或可不)隨其一起或在說明書的其它地方給定的其實施方案和調(diào)適,并且所有此類實施例意在被包含于所述術(shù)語的范圍中。指定此類非限制性實例和說明的語言包含(但不限于):“例如”、“在一個實施例中”等等。
[0019]如上文所述,嵌入式系統(tǒng)通常從啟動映像運行,其中啟動映像在存儲器中的位置由默認啟動向量識別。每當系統(tǒng)啟動或復(fù)位時,默認啟動向量指定待加載的啟動映像。這一默認啟動向量可位于程序存儲器中的任何預(yù)定位置處,前提是這一位置作為重新啟動或停止之后即待執(zhí)行的第一啟動指令的地址僅為CPU和啟動映像所知。在系統(tǒng)啟動或復(fù)位之后,即由默認啟動向量指定的地址識別待加載的啟動映像。然而,不同于常規(guī)系統(tǒng),實施例提供經(jīng)由可在硬件中執(zhí)行的簡單配置過程改變待加載啟動映像的能力。
[0020]如上文所述,改變默認啟動向量的位置是可能的,但需要重新編輯啟動映像中的每一者以指向這一新的啟動向量位置。代替性地,實施例提供在不需要重新編輯啟動映像或變更選定啟動映像通過其由系統(tǒng)確定的邏輯的情況下改變待使用的啟動映像的能力。換句話說,實施例利用為在系統(tǒng)的任何重新啟動或復(fù)位之后即執(zhí)行的第一指令的常規(guī)默認啟動向量。實施例提供通過重新排序可用啟動裝置切換啟動映像的能力。因此,不同啟動裝置可通過依序重新排序啟動映像被指定為選定