具有存儲器區(qū)域交換機(jī)制的雙引導(dǎo)系統(tǒng)的制作方法
【專利說明】具有存儲器區(qū)域交換機(jī)制的雙引導(dǎo)系統(tǒng)
[0001]相關(guān)串請案的交叉參考
[0002]此申請案主張2013年3月14日申請的第61/780,990號美國臨時申請案的權(quán)益,所述申請案以全文引用的方式并入本文中。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及一種雙引導(dǎo)面板交換機(jī)制,特定來說,涉及一種為微控制器提供實(shí)時更新的雙引導(dǎo)面板交換機(jī)制。
【發(fā)明內(nèi)容】
[0004]根據(jù)各種實(shí)施例,提供機(jī)制以允許用戶在無需復(fù)位主機(jī)裝置的情況下切換到新的代碼圖像。因此,可消除復(fù)位主機(jī)裝置的需要且可將切換到新的代碼圖像的延時降低到幾個CPU周期(舉例來說,當(dāng)已執(zhí)行固件代碼更新時)。
[0005]根據(jù)各種實(shí)施例,此適當(dāng)配置的主機(jī)裝置可允許顧客在無需停止應(yīng)用程序的執(zhí)行的情況下重新刷新所述裝置且切換到新的代碼圖像。舉例來說,如果在例如切換模式電源供應(yīng)器(SMPS)或電動機(jī)控制器等實(shí)時約束應(yīng)用程序中采用主機(jī)裝置,那么此方法可為有益的。此方法還允許外圍設(shè)備在發(fā)生切換時繼續(xù)運(yùn)行。電動機(jī)控制應(yīng)用程序及切換模式電源供應(yīng)器(SMPS)應(yīng)用程序可尤其得益于在所述主機(jī)裝置的重新刷新期間的繼續(xù)執(zhí)行及外圍操作。
[0006]根據(jù)各種實(shí)施例,可在微控制器或處理器內(nèi)提供構(gòu)件以在無需復(fù)位且對異常時序具有最小影響的情況下在裝置內(nèi)交換作為常規(guī)指令流的部分的兩個代碼圖像且交換速度盡可能快。
[0007]根據(jù)各種實(shí)施例,針對微控制器或處理器的中央處理單元(CPU)及相關(guān)聯(lián)機(jī)制提供固有指令(舉例來說,使用助記符B00TSWP)以在無需復(fù)位所述裝置的情況下迫使代碼圖像交換。根據(jù)一些實(shí)施例,所述圖像交換可為暫時的(舉例來說,在裝置復(fù)位之后將不選擇新活動圖像且所述裝置將回復(fù)到其它圖像)。根據(jù)特定實(shí)施例,所述圖像交換可為持續(xù)的(舉例來說,在裝置復(fù)位之后將選擇新活動圖像)。
[0008]根據(jù)各種實(shí)施例,可提供具有雙引導(dǎo)能力的中央處理單元(CPU)。所述CPU可包括指令存儲器,所述指令存儲器進(jìn)一步包括可經(jīng)配置為單獨(dú)可編程的第一存儲器區(qū)域及第二存儲器區(qū)域。可將第一存儲器區(qū)域及第二存儲器區(qū)域分別指派到從中執(zhí)行指令的活動存儲器及非活動存儲器。所述CPU的指令集可包括執(zhí)行從活動存儲器區(qū)域到非活動存儲器區(qū)域的交換的專用指令,其中通過在所述活動存儲器中執(zhí)行所述專用指令之后接著在所述活動存儲器中執(zhí)行程序流改變指令來執(zhí)行所述交換,于是所述非活動存儲器成為新活動存儲器且所述活動存儲器成為新非活動存儲器且在所述新活動存儲器中繼續(xù)執(zhí)行指令。
【附圖說明】
[0009]圖1說明根據(jù)特定實(shí)施例的基于微控制器的系統(tǒng)。
[0010]圖2說明根據(jù)特定實(shí)施例的存儲器布局。
[0011]圖3說明根據(jù)特定實(shí)施例的另一存儲器布局。
[0012]圖4說明根據(jù)特定實(shí)施例的執(zhí)行存儲器交換的方法。
[0013]圖5說明根據(jù)特定實(shí)施例的用于調(diào)用存儲器交換操作的應(yīng)用程序源代碼。
[0014]圖6描述根據(jù)特定實(shí)施例的特殊功能寄存器中的狀態(tài)位。
[0015]圖7描述根據(jù)特定實(shí)施例的特殊功能寄存器中的狀態(tài)位。
[0016]圖8描述根據(jù)特定實(shí)施例的特殊功能寄存器中的控制/狀態(tài)位。
【具體實(shí)施方式】
[0017]在應(yīng)用層處執(zhí)行固件圖像的基于軟件的切換可為挑戰(zhàn)性的??稍诜浅>哂袝r效性的應(yīng)用程序中進(jìn)行此方法。
[0018]特定應(yīng)用程序(稱為“雙引導(dǎo)”)需要從一個代碼圖像(活動)執(zhí)行,同時更新/重新刷新另一代碼圖像(非活動)。一種配置允許可選擇性地激活的至少兩個分離存儲器區(qū)域(面板)。在一種“雙引導(dǎo)”配置中,對非活動面板的更新后接著是應(yīng)用程序重啟,在此期間“雙引導(dǎo)”機(jī)制將使先前更新的非活動面板變成新活動面板。接著將從新活動面板開始代碼執(zhí)行。主機(jī)裝置在檢查一序列數(shù)目(舉例來說,設(shè)定于非易失性存儲器中)之后選擇活動面板。此性質(zhì)的復(fù)位序列可需要數(shù)十毫秒的停機(jī)時間,在此期間應(yīng)用程序不執(zhí)行或至少不執(zhí)行全部功能。
[0019]存在使用新代碼重新刷新/更新應(yīng)用程序同時繼續(xù)執(zhí)行現(xiàn)有應(yīng)用程序代碼(舉例來說,雙引導(dǎo)能力)的需求。此外,尤其對于非常具有時效性的應(yīng)用程序來說,存在在沒有與裝置復(fù)位相關(guān)聯(lián)的延遲的情況下切換到經(jīng)更新代碼圖像的需求。
[0020]圖1說明根據(jù)特定實(shí)施例的基于微控制器的系統(tǒng)100。系統(tǒng)100包括微控制器101 (其進(jìn)一步包括中央處理單元(CPU) 102及存儲器103)及編程器104。系統(tǒng)100可為(舉例來說)切換模式電源供應(yīng)器(SMPS)控制器或電動機(jī)控制器。微控制器101可為(舉例來說MICROCHIP的dsPIC/PIC24系列微控制器系列內(nèi)的型號,其具有處理核心、一或多個寄存器堆、板上隨機(jī)存取存儲器(RAM)、一或多個電源管理模式、集成模擬比較器及/或模/數(shù)轉(zhuǎn)換器及針對標(biāo)準(zhǔn)輸入/輸出協(xié)議(例如通用串行總線及IEEE標(biāo)準(zhǔn)1149.1(JTAG))的芯片上控制器。存儲器103可為非易失性存儲器,例如快閃存儲器或電可擦除可編程只讀存儲器(EEPROM)。編程器104可為外部可附接計(jì)算機(jī)系統(tǒng),其提供將存儲于存儲器103中的新指令及/或數(shù)據(jù)。編程器104可經(jīng)由串聯(lián)連接(例如通用串行總線(USB)連接)連接。
[0021 ] CPU 102通過從存儲器103提取指令及/或數(shù)據(jù)且執(zhí)行這些指令來執(zhí)行存儲于存儲器103中的程序。CPU 102可為(舉例來說)精簡指令集處理器或復(fù)雜指令集處理器。由CPU102執(zhí)行的每一指令可包含操作代碼及零或多個操作數(shù)??蓪?shù)據(jù)及地址編碼到指令中或可從一或多個寄存器檢索數(shù)據(jù)及地址??蓪⒅噶畹慕Y(jié)果存儲于(舉例來說)寄存器、RAM或存儲器103。
[0022]存儲器103可為隨機(jī)存取的,意味著可在單一讀周期中讀取任何數(shù)據(jù)單元。存儲器103可為塊存取的,意味著針對數(shù)據(jù)字節(jié)的讀請求可需要數(shù)據(jù)塊(舉例來說,512字節(jié))的內(nèi)部讀取到緩沖器中。在一些實(shí)施例中,寫入到空存儲器位置可為立即的(舉例來說,在單一寫周期內(nèi))。在一些實(shí)施例中,寫入到含有數(shù)據(jù)的存儲器位置可需要在可進(jìn)行寫入之前的塊擦除。
[0023]圖2說明根據(jù)特定實(shí)施例的存儲器103的存儲器布局。在邏輯上,可將存儲器103視為兩個或兩個以上面板200及210及測試區(qū)域220。每一面板200或210可包括識別為201、202、211及212的整數(shù)數(shù)目個存儲器的連續(xù)邏輯頁。存儲器映射230說明存儲器103的邏輯頁到物理頁(舉例來說,物理頁241到246)的映射。存儲器映射230可包括未使用的物理頁250及測試頁260。微控制器101可進(jìn)一步包括地址轉(zhuǎn)換模塊270。
[0024]邏輯頁201、202、211及212分別映射到物理頁241、242、245及246且受物理頁241、242、245及246中的存儲器的支持。
[0025]當(dāng)執(zhí)行應(yīng)用程序時,微控制器101可從活動面板執(zhí)行指令(且可讀取數(shù)據(jù))。如果活動面板為面板200 (即,面板I),那么微控制器101可從邏輯頁201提取指令,導(dǎo)致從物理頁241的存儲器讀取。所提取的指令可為參考邏輯頁202中的地址的加載指令。當(dāng)微控制器101執(zhí)行加載指令時,微控制器101將從邏輯頁202讀取值,導(dǎo)致從存儲器103的物理頁242的存儲器讀取。如果活動面板為面板210 (即,面板2),那么由微控制器101從邏輯頁211的提取將導(dǎo)致從物理頁245的讀取。
[0026]在特定實(shí)施例中,存儲器103的一部分可未被使用從而導(dǎo)致一或多個未使用的物理頁250。在特定實(shí)施例中,存儲器103的一部分可含有測試指令及/或數(shù)據(jù)。此測試部分可通過映射到物理頁260的邏輯測試區(qū)域220識別。測試部分可包含用于校準(zhǔn)外圍裝置、驗(yàn)證系統(tǒng)或組件操作及調(diào)試應(yīng)用程序代碼的例程及/或數(shù)據(jù)。
[0027]在特定實(shí)施例中,地址轉(zhuǎn)換模塊27