中,第一引導(dǎo)單元101引導(dǎo)作為第一程序的上述插件,并且第二引導(dǎo)單元102引導(dǎo)作為第二程序的上述固件。電子設(shè)備10中安裝有多個插件。從而,第一引導(dǎo)單元101順序地執(zhí)行針對這些多個插件(即,多個第一程序)的第一引導(dǎo)處理。在本說明中,術(shù)語“引導(dǎo)”是指程序被擴(kuò)展至存儲器并且變得可用的處理。
[0051]引導(dǎo)管理單元103控制第一引導(dǎo)單元101不引導(dǎo)第一程序。當(dāng)引導(dǎo)管理單元103執(zhí)行該控制時,第一引導(dǎo)單元101此后停止第一程序的引導(dǎo)。該控制此后將被稱為“引導(dǎo)停止控制”。當(dāng)?shù)谝灰龑?dǎo)處理被中斷時,如果由于在中斷期間正被引導(dǎo)的第一程序?qū)е掳l(fā)生中斷,則引導(dǎo)管理單元103隨后對該第一程序執(zhí)行引導(dǎo)停止控制。如果由于另一因素導(dǎo)致中斷發(fā)生,則引導(dǎo)管理單元103不對該第一程序執(zhí)行引導(dǎo)停止控制。
[0052]在第一示例性實施例中,如果在第一引導(dǎo)處理中斷時第二引導(dǎo)處理完成,則引導(dǎo)管理單元103對正被引導(dǎo)的第一程序執(zhí)行引導(dǎo)停止控制,而如果第二引導(dǎo)處理未完成,則引導(dǎo)管理單元103不執(zhí)行引導(dǎo)停止控制。為了確定是否對第一程序執(zhí)行引導(dǎo)停止控制,引導(dǎo)管理單元103使用被設(shè)置成指示是否引導(dǎo)第一程序的信息(此后被稱為“引導(dǎo)設(shè)定”)。引導(dǎo)管理單元103將存儲有關(guān)于引導(dǎo)設(shè)定等的信息的引導(dǎo)設(shè)定表存儲到例如存儲單元12中的非易失性存儲區(qū)中。
[0053]圖3示出存儲在引導(dǎo)設(shè)定表中的信息的實例。在引導(dǎo)設(shè)定表中,相互對應(yīng)地存儲第一程序、第一引導(dǎo)狀態(tài)、以及引導(dǎo)設(shè)定。第一程序包括兩個插件的程序名稱,即“插件A”和“插件B”。代替程序名稱,可以存儲第一程序本身,或者可以存儲路徑或文件名。換句話說,可以存儲可識別第一程序的信息。
[0054]第一引導(dǎo)狀態(tài)指示對應(yīng)的第一程序當(dāng)前是否被引導(dǎo)。當(dāng)?shù)谝怀绦蛱幱谝龑?dǎo)狀態(tài)時,第一引導(dǎo)狀態(tài)由“I”指示,并且當(dāng)?shù)谝怀绦蛱幱诜且龑?dǎo)狀態(tài)時,第一引導(dǎo)狀態(tài)由“O”指示。在本實例中,“插件A”被設(shè)置為“ I (引導(dǎo))”,并且“插件B”被設(shè)置為“O (非引導(dǎo))”。這些第一引導(dǎo)狀態(tài)通過例如第一引導(dǎo)單元101更新。如上所述,第一引導(dǎo)單元101順序地引導(dǎo)多個第一程序。在第一示例性實施例中,第一引導(dǎo)單元101根據(jù)這些第一程序在引導(dǎo)設(shè)定表中的布置順序(即,在圖3中所示的實例中,從頂部到底部)來引導(dǎo)這些第一程序。
[0055]當(dāng)?shù)谝灰龑?dǎo)單元101開始第一程序的第一引導(dǎo)處理時,第一引導(dǎo)單元101將相應(yīng)第一引導(dǎo)狀態(tài)更新為“ I (引導(dǎo))”。然后,當(dāng)?shù)谝灰龑?dǎo)處理完成時,第一引導(dǎo)單元101將第一引導(dǎo)狀態(tài)更新為“O (非引導(dǎo))”。第一引導(dǎo)單元101重復(fù)該第一引導(dǎo)狀態(tài)更新處理,直到?jīng)]有剩余的第一程序為止。當(dāng)從第一引導(dǎo)單元101接收到通知時,可以例如由引導(dǎo)管理單元103執(zhí)行第一引導(dǎo)狀態(tài)更新處理。
[0056]當(dāng)?shù)谝怀绦驅(qū)⒈灰龑?dǎo)時,引導(dǎo)設(shè)定由“I”指示,并且當(dāng)?shù)谝怀绦驅(qū)⒉槐灰龑?dǎo)時(即,當(dāng)引導(dǎo)將停止時),引導(dǎo)設(shè)定由“O”指示。引導(dǎo)管理單元103不對對應(yīng)于“ I (引導(dǎo))”的第一程序執(zhí)行引導(dǎo)停止控制,而對對應(yīng)于“0(停止)”的第一程序執(zhí)行引導(dǎo)停止控制。當(dāng)?shù)谝淮螌⒌谝怀绦虼鎯υ谝龑?dǎo)設(shè)定表中時,“ I (引導(dǎo))”被存儲為引導(dǎo)設(shè)定,并且隨后在合適的時候被改變?yōu)椤癘 (停止)”。隨后將詳細(xì)地描述該改變處理。
[0057]除了上述第一引導(dǎo)狀態(tài)之外,引導(dǎo)管理單元103將指示第二程序(即,第一示例性實施例中的固件)的引導(dǎo)狀態(tài)的第二引導(dǎo)狀態(tài)存儲到例如存儲單元12中的非易失性存儲區(qū)中。
[0058]圖4A和圖4B示出第二引導(dǎo)狀態(tài)的實例。在圖4A中,第二引導(dǎo)狀態(tài)被設(shè)置為“ I (引導(dǎo))”。在圖4B中,第二引導(dǎo)狀態(tài)被設(shè)置為“0(非引導(dǎo))”。該第二引導(dǎo)狀態(tài)例如由第二引導(dǎo)單元102更新。在該情況下,當(dāng)?shù)诙龑?dǎo)單元102開始第二引導(dǎo)處理時,第二引導(dǎo)單元102將第二引導(dǎo)狀態(tài)更新為“ I (引導(dǎo))”。然后,當(dāng)?shù)诙龑?dǎo)處理完成時,第二引導(dǎo)單元102將第二引導(dǎo)狀態(tài)更新為“0(非引導(dǎo))”。當(dāng)從第二引導(dǎo)單元102接收到通知時,可以例如由引導(dǎo)管理單元103執(zhí)行第二引導(dǎo)狀態(tài)更新處理。
[0059]圖5示出第一引導(dǎo)狀態(tài)和第二引導(dǎo)狀態(tài)的轉(zhuǎn)變的實例。在圖5中,從頂部到底部經(jīng)過的時間、以及執(zhí)行第一引導(dǎo)處理和第二引導(dǎo)處理的時段由實線的矩形指示。在第二引導(dǎo)處理開始之前,第二引導(dǎo)狀態(tài)被設(shè)置為“O”。當(dāng)電源被接通并且第二引導(dǎo)處理開始時,第二引導(dǎo)狀態(tài)變?yōu)椤?”,并且當(dāng)?shù)诙龑?dǎo)處理完成時,第二引導(dǎo)狀態(tài)變?yōu)椤癘”。用于“插件A”和“插件B”(引導(dǎo)設(shè)定均被設(shè)置為“I”)的第一引導(dǎo)處理與該第二引導(dǎo)處理同時執(zhí)行。當(dāng)針對每個第一程序的第一引導(dǎo)處理正被執(zhí)行時,相應(yīng)第一引導(dǎo)狀態(tài)被設(shè)置為“ I ”。
[0060]在圖5中所示的實例中,在第二引導(dǎo)處理完成之后的時間點tl處,針對“插件B”的第一引導(dǎo)處理被中斷,并且電源被重啟。在該情況下,由于第二引導(dǎo)處理已經(jīng)完成,可以想到中斷由第一引導(dǎo)處理引起。例如,如果被用于引導(dǎo)“插件B”的設(shè)定信息有損壞或者設(shè)定值異常,可能很難進(jìn)一步進(jìn)行第一引導(dǎo)處理,從而使得很難完成第一引導(dǎo)處理。因此,例如,第一引導(dǎo)單元101執(zhí)行電源重啟處理。響應(yīng)于來自第一引導(dǎo)單元101的請求,該電源重啟處理可以由諸如第二引導(dǎo)單元102之類的另一個單元執(zhí)行。
[0061]當(dāng)執(zhí)行這樣的電源重啟處理時,由于第一引導(dǎo)處理未完成,所以第一引導(dǎo)單元101不更新第一引導(dǎo)狀態(tài),使得即使在電源被關(guān)閉之后,“插件B”的第一引導(dǎo)狀態(tài)仍保持在“ I”。隨后,當(dāng)電源被完全重啟時,引導(dǎo)管理單元103參考所存儲的第一引導(dǎo)狀態(tài)和第二引導(dǎo)狀態(tài)。在該情況下,第一引導(dǎo)狀態(tài)和第二引導(dǎo)狀態(tài)是在第一引導(dǎo)處理中斷時的狀態(tài)(即,第一引導(dǎo)狀態(tài)是“ I ”,并且第二引導(dǎo)狀態(tài)是“O”)。
[0062]如果第一引導(dǎo)狀態(tài)是“O”并且第二引導(dǎo)狀態(tài)是“0”,由于第一引導(dǎo)處理和第二引導(dǎo)處理均完成,則引導(dǎo)管理單元103不改變第一程序的引導(dǎo)設(shè)定。在圖5中所示的實例中,這對應(yīng)于“插件A”,針對“插件A”的引導(dǎo)設(shè)定保持“ I ”不變。當(dāng)?shù)谝灰龑?dǎo)狀態(tài)是“ I ”并且第二引導(dǎo)狀態(tài)是“O”時,由于第一引導(dǎo)處理在第二引導(dǎo)處理完成之后被中斷,所以引導(dǎo)管理單元103確定中斷由第一程序?qū)е?,并且?zhí)行用于將對應(yīng)于第一引導(dǎo)狀態(tài)的引導(dǎo)設(shè)定從“ I (引導(dǎo))”改變?yōu)椤癘 (停止)”的處理。
[0063]關(guān)于該引導(dǎo)設(shè)定(包括引導(dǎo)設(shè)定不被改變的情況)的處理此后將被稱為“設(shè)定處理”。以上實例對應(yīng)于“插件B”,其引導(dǎo)設(shè)定從“1(引導(dǎo))”被改變?yōu)椤?(停止)”。而且,弓丨導(dǎo)管理單元103將第一引導(dǎo)狀態(tài)從“ I (引導(dǎo))”改變?yōu)椤癘 (非引導(dǎo))”。隨后,針對引導(dǎo)設(shè)定為“I”的“插件A”的第一引導(dǎo)處理被執(zhí)行,反之針對引導(dǎo)設(shè)定變?yōu)椤癘”的“插件B”的第一引導(dǎo)處理不被執(zhí)行。
[0064]圖6示出第一引導(dǎo)狀態(tài)和第二引導(dǎo)狀態(tài)的轉(zhuǎn)變的另一個實例。圖6中所示的實例與圖5中所示的實例的不同之處在于,在完成第二引導(dǎo)處理之前的時間點t2處,第二引導(dǎo)處理和針對“插件B”的第一引導(dǎo)處理都被中斷,并且電源被重啟。在該情況下,由于第二引導(dǎo)處理也被中斷,中斷可能不一定由第一引導(dǎo)處理導(dǎo)致,而是可以想到由第二引導(dǎo)處理或其他因素(諸如,用戶執(zhí)行用于關(guān)閉電源的操作)導(dǎo)致。在圖6中所示的實例中,“插件B”的第一引導(dǎo)狀態(tài)以及第二引導(dǎo)狀態(tài)在電源在時間點t2處被關(guān)閉之后仍然保持在“I”。
[0065]當(dāng)?shù)谝灰龑?dǎo)狀態(tài)是“I”并且第二引導(dǎo)狀態(tài)是“I”時,由于中斷可能不一定由第一引導(dǎo)處理引起,所以引導(dǎo)管理單元103不改變第一程序的引導(dǎo)設(shè)定。在圖6中所示的實例中,這對應(yīng)于“插件B”,針對“插件B”的引導(dǎo)設(shè)定保持“I”不變。從而,不像圖5中所示的實例那樣,針對引導(dǎo)設(shè)定均為“ I ”的“插件A”和“插件B”的第一引導(dǎo)處理被執(zhí)行。
[0066]在圖5和圖6中所示的實例中,當(dāng)電源被再次接通時,執(zhí)行設(shè)定處理??商鎿Q地,當(dāng)關(guān)閉電源時可以執(zhí)行設(shè)定處理。例如,由于在電源將被關(guān)閉時執(zhí)行所謂的停機(jī)處理,因此可以與停機(jī)處理一起執(zhí)行設(shè)定處理。而且,在圖5和圖6中所示的實例中,在電源被再次接通以后開始第一引導(dǎo)處理和第二引導(dǎo)處理之前執(zhí)行設(shè)定處理??商鎿Q地,例如,可以在第二引導(dǎo)處理開始之后執(zhí)行設(shè)定處理。作為進(jìn)一步選擇,緊接在每次第一引導(dǎo)處理開始之前可以針對將在該第一引導(dǎo)處理中引導(dǎo)的第一程序執(zhí)行設(shè)定處理。換句話說,可以在執(zhí)行針對該第一程序的第一引導(dǎo)處理之前執(zhí)行針對該第一程序的設(shè)定處理。
[0067]1.2.操作
[0068]圖7是關(guān)于第一引導(dǎo)處理的流程圖。在第一示例性實施例中,當(dāng)電子設(shè)備10的電源被接通時,執(zhí)行第一引導(dǎo)處理。首先,在步驟SI I中,電子設(shè)備10開始第二引導(dǎo)處理(即,用于引導(dǎo)固件的處理)。在步驟S12中,命令在第二引導(dǎo)處理過程中開始第一引導(dǎo)處理。步驟Sll和S12由第二引導(dǎo)單元102執(zhí)行。然后,在步驟S13中,電子設(shè)備10確定針對第一程序的第一個的引導(dǎo)設(shè)定是否為“ I (引導(dǎo))”。如果確定結(jié)果指示“引導(dǎo)”(是),則在步驟S14中,電子設(shè)備10執(zhí)行針對該第一程序的第一引導(dǎo)處理。
[0069]如果在步驟S13中,電子設(shè)備10確定引導(dǎo)設(shè)定不是“I” (否,即,“O (停止),,),則在步驟S15中,電子設(shè)備10執(zhí)行上述引導(dǎo)停止