專利名稱:終端設(shè)備以及支持多固件加載的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種終端設(shè)備以及使該終端設(shè)備支持多固件加載的方法。
背景技術(shù):
當(dāng)前,需要在諸如筆記本、智能手機(jī)或平板電腦之類的終端設(shè)備上安裝操作系統(tǒng)來(lái)使終端設(shè)備能夠運(yùn)行多種應(yīng)用程序。在這種情況下,用 戶可能希望在終端設(shè)備上安裝多個(gè)操作系統(tǒng)來(lái)支持不同種類的應(yīng)用。然而,由于在終端設(shè)備上安裝并運(yùn)行操作系統(tǒng)需要對(duì)應(yīng)的固件的支持,而這些固件有時(shí)是相互不兼容。例如,Windows 8操作系統(tǒng)規(guī)定了必須使用UEFI固件來(lái)進(jìn)行啟動(dòng),而Android操作系統(tǒng)需要bootloader固件來(lái)進(jìn)行啟動(dòng),并且二者相互不兼容。在這種情況下,無(wú)法在同一終端設(shè)備上安裝Windows 8和Android操作系統(tǒng)。因此,希望提供一種能夠在同一設(shè)備上支持多種固件的終端設(shè)備以及多種固件的加載方法。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的上述技術(shù)問(wèn)題,根據(jù)本發(fā)明的一方面,提供一種終端設(shè)備,包括第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件以及第二固件,其中所述第一固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),所述第二固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng),所述第一固件和所述第二固件相互不兼容;處理單元,配置來(lái)加載所述第一固件或所述第二固件,其中在所述處理單元開(kāi)始加載所述第一固件并且在基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載所述第二固件;如果確定加載所述第二固件,則終止所述第一固件的加載,并且加載所述第二固件;以及如果確定不需要加載所述第二固件,則繼續(xù)加載所述第一固件的剩余部分。此外,根據(jù)本發(fā)明的另一方面,提供一種使終端設(shè)備支持多固件加載的方法,其中所述終端設(shè)備包括第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件以及第二固件,所述第一固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),所述第二固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng),并且所述第一固件和所述第二固件相互不兼容;處理單元,配置來(lái)加載所述第一固件或所述第二固件,所述方法包括在開(kāi)始加載所述第一固件并且在基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載第二固件;如果確定加載第二固件,則終止所述第一固件的加載,并且加載所述第二固件;以及如果確定不需要加載第二固件,則繼續(xù)加載所述第一固件的剩余部分。此外,根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供一種終端設(shè)備,包括第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件、第二固件以及第三固件,其中所述第一固件用于對(duì)處理單元進(jìn)行初始化,所述第二固件用于對(duì)所述終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),以及所述第三固件用于對(duì)所述終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng);處理單元,配置來(lái)在加載所述第一固件并且在基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載第二固件;如果確定加載所述第二固件,則加載所述第二固件;以及如果確定不需要加載第二固件,則加載所述第三固件。通過(guò)上述配置,即使對(duì)應(yīng)于第一操作系統(tǒng)的第一固件還是需要加載對(duì)應(yīng)于第二操作系統(tǒng)的第二固件相互不兼容,但是在終端設(shè)備的處理單元的初始化完成之后,判斷需要加載第一固件還是需要加載第二固件,并且基于判斷的結(jié)果加載第一固件或第二固件,從而可以在終端設(shè)備上安裝不兼容的多種操作系統(tǒng),并且可以切換上述多種操作系統(tǒng)。
圖I是圖解根據(jù)本發(fā)明一個(gè)實(shí)施例的終端設(shè)備的結(jié)構(gòu)的示意圖;圖2是圖解根據(jù)本發(fā)明另一個(gè)實(shí)施例的終端設(shè)備的結(jié)構(gòu)的示意圖;以及圖3是圖解根據(jù)本發(fā)明實(shí)施例的固件加載方法的流程圖。
具體實(shí)施方式
將參照附圖詳細(xì)描述根據(jù)本發(fā)明的各個(gè)實(shí)施例。這里,需要注意的是,在附圖中,將相同的附圖標(biāo)記賦予基本上具有相同或類似結(jié)構(gòu)和功能的組成部分,并且將省略關(guān)于它們的重復(fù)描述。下面,將參照?qǐng)DI描述根據(jù)本發(fā)明一個(gè)實(shí)施例的終端設(shè)備。圖I是圖解根據(jù)本發(fā)明一個(gè)實(shí)施例的終端設(shè)備的結(jié)構(gòu)的示意圖。如圖I所示,根據(jù)本實(shí)施例的終端設(shè)備包括存儲(chǔ)器11以及處理器12。存儲(chǔ)器11可以由任意的閃存實(shí)現(xiàn),并且可以存儲(chǔ)包括操作系統(tǒng)、用戶數(shù)據(jù)之類的各種數(shù)據(jù)。根據(jù)本實(shí)施例,存儲(chǔ)器11存儲(chǔ)與第一操作系統(tǒng)對(duì)應(yīng)的第一固件以及與第二操作系統(tǒng)對(duì)應(yīng)的第二固件。第一固件可以對(duì)終端設(shè)備的各個(gè)元件(如,處理器、內(nèi)存、各個(gè)接口、顯示屏幕等等)進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng)。此外,第二固件用于對(duì)終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng)。這里,第一固件和第二固件相互不兼容。也就是,不能通過(guò)第一固件加載第二操作系統(tǒng),并且不能通過(guò)第二固件加載第一操作系統(tǒng)。例如,根據(jù)本實(shí)施例,與第一操作系統(tǒng)對(duì)應(yīng)的第一固件可以是與android操作系統(tǒng)對(duì)應(yīng)的bootloader固
件,而與第二操作系統(tǒng)對(duì)應(yīng)的第二固件可以是與Windows 8操作系統(tǒng)對(duì)應(yīng)的UEFI固件或相反。這里,第一固件和第二固件不限于例舉的bootloader固件和UEFI固件,還可以是其它的相互不兼容的固件。處理器12可以由任意類型的處理單元、微處理單元等實(shí)現(xiàn),并且可以讀取存儲(chǔ)在存儲(chǔ)器11中的數(shù)據(jù)。根據(jù)本實(shí)施例,在諸如筆記本、平板電腦或智能手機(jī)之類的終端設(shè)備的啟動(dòng)過(guò)程中,響應(yīng)于啟動(dòng)命令(如,用戶按下開(kāi)機(jī)鍵或選擇重啟終端設(shè)備),處理器12首先加載第一固件或第二固件,并且利用所加載的第一固件或第二固件對(duì)自身進(jìn)行初始化,然后利用第一固件或第二固件對(duì)終端設(shè)備的各個(gè)元件進(jìn)行初始化。在處理器12對(duì)終端設(shè)備內(nèi)部的各個(gè)元件進(jìn)行初始化之后,處理單元12基于所加載的第一固件或第二固件進(jìn)行對(duì)應(yīng)的操作系統(tǒng)的啟動(dòng)。下面將詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的終端設(shè)備執(zhí)行的操作。例如,在用戶按下開(kāi)機(jī)鍵或選擇重啟終端設(shè)備之后,處理器12接收預(yù)定的開(kāi)機(jī)指令。在接收到開(kāi)機(jī)指令之后,處理器12開(kāi)始加載第一固件并且基于該第一固件完成處理器12自身的初始化。具體地,在接收到開(kāi)機(jī)指令之后,處理器12加電并復(fù)位。由于在處理器12復(fù)位之后,其通常將首先執(zhí)行存儲(chǔ)在存儲(chǔ)器11中的復(fù)位地址(第一區(qū)域)處的程序,因此在存儲(chǔ)器11是任意類型的閃存(其不需要初始化過(guò)程)的情況下,可以將第一固件存儲(chǔ)在存儲(chǔ)器11的第一區(qū)域(如,存儲(chǔ)器11復(fù)位地址開(kāi)始的預(yù)定區(qū)域)上,并且順序地在緊挨第一固件的第二區(qū)域上存儲(chǔ)第二固件。在這種情況下,由于第一固件存儲(chǔ)在第一區(qū)域,因此處理器12直接從存儲(chǔ)器11的第一區(qū)域加載第一固件并利用第一固件完成其自身的初始化。在對(duì)處理器12進(jìn)行初始化之后,處理器12可以執(zhí)行判斷功能。此時(shí),處理器12確定是否需要加載第二固件。這里,由于第一固件(如,bootloader)對(duì)應(yīng)于第一操作系統(tǒng)(如,android),而第二固件(如,UEFI)對(duì)應(yīng)于第二操作
系統(tǒng)(如,Windows 8),因此,可以基于用戶希望加載哪一個(gè)操作系統(tǒng)來(lái)確定是加載第一固件還是加載第二固件。具體地,可以配置第一固件(如,加入判斷指令),使得處理器12可以基于啟動(dòng)參數(shù)來(lái)確定是否需要加載第二固件。例如,啟動(dòng)參數(shù)可以是存儲(chǔ)在存儲(chǔ)器11中的預(yù)設(shè)的啟動(dòng)標(biāo)志。例如,終端設(shè)備的用戶可以通過(guò)第一操作系統(tǒng)或第二操作系統(tǒng)內(nèi)提供的程序修改該啟動(dòng)標(biāo)志的值。這里,例如,啟動(dòng)標(biāo)志的值為O時(shí)對(duì)應(yīng)于加載第一固件,而啟動(dòng)標(biāo)志的值為I時(shí)對(duì)應(yīng)于加載第二固件。例如,用戶在第一操作系統(tǒng)里選擇切換到第二 操作系統(tǒng),產(chǎn)生了切換命令;第一操作系統(tǒng)根據(jù)該切換命令將啟動(dòng)標(biāo)志的值設(shè)置為I ;第一操作系統(tǒng)處于非工作狀態(tài)(關(guān)閉或者休眠),終端設(shè)備啟動(dòng)在加載第一固件完成處理器的初始化后,基于該啟動(dòng)標(biāo)志的值,加載第二固件以運(yùn)行第二操作系統(tǒng)。此外,啟動(dòng)參數(shù)還可以是預(yù)設(shè)的用戶輸入。例如,可以在終端設(shè)備上設(shè)置硬件開(kāi)關(guān),并且硬件開(kāi)關(guān)的一個(gè)檔位所提供的信號(hào)對(duì)應(yīng)于加載第一固件的事件,而硬件開(kāi)關(guān)的另一個(gè)檔位所提供的信號(hào)對(duì)應(yīng)于加載第二固件的事件。在這種情況下,處理器12可以基于啟動(dòng)參數(shù)(如,啟動(dòng)標(biāo)志的值和硬件開(kāi)關(guān)的信號(hào))來(lái)確定是否需要加載第二固件。當(dāng)然也可通過(guò)終端設(shè)備上開(kāi)機(jī)按鍵的不同的觸發(fā)方式,例如,短按產(chǎn)生第一啟動(dòng)參數(shù)對(duì)應(yīng)于加載第一固件的事件,長(zhǎng)按產(chǎn)生第二啟動(dòng)參數(shù)對(duì)應(yīng)與加載第二固件的事件。如果處理器12基于啟動(dòng)參數(shù)確定需要加載所述第二固件,則處理器12終止第一固件的加載,并且開(kāi)始加載第二固件。具體地,可以配置第一固件,使得在需要加載第二固件時(shí),處理器12可以終止第一固件的加載,并且開(kāi)始加載第二固件。例如,可以在第一固件中加入跳轉(zhuǎn)指令,并基于確定結(jié)果(判斷分支)來(lái)判斷是否執(zhí)行該跳轉(zhuǎn)指令。這里,跳轉(zhuǎn)指令可以指向存儲(chǔ)在存儲(chǔ)器11中的第二區(qū)域上的第二固件。例如,在處理器12確定需要加載所述第二固件的情況下,處理器12可以執(zhí)行該跳轉(zhuǎn)指令以加載第二固件。然后,在處理單元12加載第二固件期間,處理單元12利用該第二固件進(jìn)行終端設(shè)備的其它元件的初始化,并且基于該第二固件啟動(dòng)第二操作系統(tǒng)。此外,如果處理器12基于啟動(dòng)參數(shù)確定不需要加載第二固件,則處理單元12繼續(xù)加載所述第一固件的剩余部分。具體地,如果處理器12確定不需要加載第二固件,則處理器12可以不執(zhí)行跳轉(zhuǎn)指令,從而順序地加載第一固件的剩余部分。然后,在處理單元12加載第一固件的剩余部分期間,處理單元12利用該第一固件進(jìn)行終端設(shè)備的其它元件的初始化,并且基于該第一固件啟動(dòng)第一操作系統(tǒng)。在上面描述了在處理器12首先加載第一固件并完成處理器11的初始化之后,判斷是否需要加載第二固件的情況。本發(fā)明不限于此,處理器12還可以在首先加載第二固件并完成處理器11的初始化之后,判斷是否需要加載第一固件。
在現(xiàn)有技術(shù)中,如果用于啟動(dòng)第一操作系統(tǒng)的第一固件和用于啟動(dòng)第二操作系統(tǒng)的第二固件相互不兼容,則無(wú)法通過(guò)加載第一固件來(lái)啟動(dòng)第二操作系統(tǒng),或者無(wú)法通過(guò)加載第二固件來(lái)啟動(dòng)第一操作系統(tǒng),而這通常導(dǎo)致無(wú)法在終端設(shè)備上安裝并切換第一操作系統(tǒng)和第二操作系統(tǒng)。通過(guò)上述配置,在終端設(shè)備的處理器的初始化完成之后,判斷需要加載第一固件還是需要加載第二固件,并且基于判斷的結(jié)果加載第一固件或第二固件,從而可以在終端設(shè)備上安裝不兼容的多種操作系統(tǒng)。終端設(shè)備上可以運(yùn)行多種操作系統(tǒng);并且可以切換上述多種操作系統(tǒng)。下面將描述根據(jù)本發(fā)明另一個(gè)實(shí)施例的終端設(shè)備。圖2是圖解根據(jù)本發(fā)明另一個(gè)實(shí)施例的終端設(shè)備的結(jié)構(gòu)的示意圖。如圖2所示,本實(shí)施例的終端設(shè)備進(jìn)一步包括內(nèi)存23。內(nèi)存23可以由任意類型的內(nèi)存芯片實(shí)現(xiàn),并且與存儲(chǔ)器11和處理器12連接。這里,內(nèi)存23的存取速度大于存儲(chǔ)器11的存取速度。
這里,由于根據(jù)本實(shí)施例的處理器12判斷是否需要加載第二固件的過(guò)程與之前描述的實(shí)施例類似,因此這里省略了關(guān)于上述步驟的重復(fù)描述。根據(jù)本實(shí)施例,在處理器12確定要加載第一固件或第二固件之后,處理器12利用第一固件或第二固件中的預(yù)設(shè)指令對(duì)內(nèi)存23進(jìn)行初始化,并且在內(nèi)存23的初始化完成之后,處理單元23將第一固件或第二固件從存儲(chǔ)器11復(fù)制到內(nèi)存23。然后,處理器12從內(nèi)存23繼續(xù)加載該第一固件或第二固件。這里,由于內(nèi)存23的存取速度高于存儲(chǔ)器11的存儲(chǔ)速度,因此將第一固件或第二固件寫(xiě)入內(nèi)存23,并從內(nèi)存23繼續(xù)加載第一固件或第二固件可以加快終端設(shè)備的操作系統(tǒng)的啟動(dòng)速度。此外,由于為了節(jié)省空間,有時(shí)將終端設(shè)備內(nèi)的第一固件或第二固件壓縮在存儲(chǔ)器11中,因此,將第一固件或第二固件復(fù)制到內(nèi)存23并將第一固件或第二固件解壓,不僅能夠釋放存儲(chǔ)器11的部分空間,而且不影響終端設(shè)備的啟動(dòng)速度。此外,在上面描述了基于兩種固件的加載過(guò)程,本發(fā)明不限于此,可以在終端設(shè)備中預(yù)存儲(chǔ)多種相互不兼容的固件,并且可以與上面的描述類似的方式加載多種固件之一,以啟動(dòng)與所選擇的固件對(duì)應(yīng)的操作系統(tǒng)。在上面描述了根據(jù)本發(fā)明的各個(gè)實(shí)施例,然而,本發(fā)明不限于此。例如,根據(jù)本發(fā)明實(shí)施例的終端設(shè)備的存儲(chǔ)器11還可以存儲(chǔ)第一固件、第二固件以及第三固件。這里,第一固件用于對(duì)處理器12進(jìn)行初始化,第二固件用于對(duì)終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),所述第二固件用于對(duì)終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng),并且所述第二固件和所述第三固件相互不兼容。在終端設(shè)備啟動(dòng)時(shí),處理器12首先加載第一固件并且基于該第一固件進(jìn)行處理器12的初始化。在基于第一固件進(jìn)行初始化之后,處理器12確定需要加載第二固件還是第三固件。這里,確定加載第二固件還是第三固件的過(guò)程與之前的實(shí)施例中確定加載第一固件還是第二固件的相關(guān)描述類似,這里不再贅述。這里,如果確定加載第二固件,處理器12加載所述第二固件,并且基于所加載的第二固件啟動(dòng)第一操作系統(tǒng)。此外,如果確定加載第三固件,則處理器12加載第三固件,并且基于所加載的第三固件啟動(dòng)第二操作系統(tǒng)。這里,與之前的實(shí)施例不同,將固件分為兩部分,其中第一固件僅用于使處理器12初始化,而第二固件和第三固件則分別用于對(duì)終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng)或第二操作系統(tǒng)。這里,根據(jù)本實(shí)施例的第一固件和第二固件的組合相當(dāng)于之前描述的實(shí)施例中的“第一固件”,而第一固件和第三固件的組合相當(dāng)于之前描述的實(shí)施例中的“第二固件”。此外,即使終端設(shè)備僅安裝了一個(gè)操作系統(tǒng),也可以在終端設(shè)備中的存儲(chǔ)器11中預(yù)存儲(chǔ)至少兩種固件,以支持終端設(shè)備的擴(kuò)展能力。例如,諸如Wiiidows 8之類的操作系統(tǒng)需要UEFI固件才能安裝到終端設(shè)備上。因此,在終端設(shè)備中預(yù)裝多種固件可以使具有一個(gè)操作系統(tǒng)的終端設(shè)備具有能夠支持不兼容的多種操作系統(tǒng)的能力。下面,將參照?qǐng)D3描述根據(jù)本發(fā)明實(shí)施例的固件加載方法。圖3是圖解根據(jù)本發(fā)明實(shí)施例的固件加載方法的流程圖。 如圖3所示,在步驟S301,開(kāi)始加載第一固件并且基于第一固件完成處理器的初始化。具體地,在接收到開(kāi)機(jī)指令之后,處理器12開(kāi)始加載第一固件并且基于該第一固件完成處理器12自身的初始化。在這種情況下,通常在接收到開(kāi)機(jī)指令之后,處理器12加電并復(fù)位。由于在處理器12復(fù)位之后,其通常將首先執(zhí)行存儲(chǔ)在存儲(chǔ)器11中的復(fù)位地址(第一區(qū)域)處的程序,因此在存儲(chǔ)器11是任意類型的閃存(其不需要初始化過(guò)程)的情況下,可以將第一固件存儲(chǔ)在存儲(chǔ)器11的第一區(qū)域(如,存儲(chǔ)器11復(fù)位地址開(kāi)始的預(yù)定區(qū)域)上,并且順序地在緊挨第一固件的第二區(qū)域上存儲(chǔ)第二固件。在這種情況下,由于第一固件存儲(chǔ)在第一區(qū)域,因此處理器12直接從存儲(chǔ)器11的第一區(qū)域加載第一固件并利用第一固件完成其自身的初始化。然后,在步驟S302,確定是否需要加載第二固件。具體地,處理器12確定是否需要加載第二固件。在處理器12確定是否需要加載第二固件的過(guò)程中,處理器12可以基于啟動(dòng)參數(shù)來(lái)確定是否需要加載第二固件。具體地,啟動(dòng)參數(shù)可以是存儲(chǔ)在存儲(chǔ)器11中的預(yù)設(shè)的啟動(dòng)標(biāo)志。例如,終端設(shè)備的用戶可以通過(guò)第一操作系統(tǒng)或第二操作系統(tǒng)內(nèi)提供的預(yù)定程序修改該啟動(dòng)標(biāo)志的值。這里,例如,啟動(dòng)標(biāo)志的值為O時(shí)對(duì)應(yīng)于加載第一固件,而啟動(dòng)標(biāo)志的值為I時(shí)對(duì)應(yīng)于加載第二固件。此外,啟動(dòng)參數(shù)還可以是預(yù)設(shè)的用戶輸入。例如,可以在終端設(shè)備上設(shè)置硬件開(kāi)關(guān),并且硬件開(kāi)關(guān)的一個(gè)檔位所提供的信號(hào)對(duì)應(yīng)于加載第一固件的事件,而硬件開(kāi)關(guān)的另一個(gè)檔位所提供的信號(hào)對(duì)應(yīng)于加載第二固件的事件。在這種情況下,處理器12可以利用啟動(dòng)標(biāo)志的值和硬件開(kāi)關(guān)的信號(hào)來(lái)確定是否需要加載第二固件。這里,如果處理器12基于啟動(dòng)參數(shù)確定需要加載第二固件,則前進(jìn)到步驟S303。此外,如果處理器12基于啟動(dòng)參數(shù)確定不需要加載第二固件,則前進(jìn)到步驟S304在步驟S303,如果確定加載第二固件,則終止所述第一固件的加載,并且加載所述
第二固件。具體地,如果處理器12基于啟動(dòng)參數(shù)確定需要加載第二固件,則處理器12終止第一固件的加載,并且開(kāi)始加載第二固件。例如,可以在第一固件中加入跳轉(zhuǎn)指令,并基于確定結(jié)果(判斷分支)來(lái)判斷是否執(zhí)行該跳轉(zhuǎn)指令。這里,跳轉(zhuǎn)指令可以指向存儲(chǔ)在存儲(chǔ)器11中的第二區(qū)域上的第二固件。在處理器12確定需要加載所述第二固件的情況下,處理器12可以基于確定結(jié)果執(zhí)行該跳轉(zhuǎn)指令以加載第二固件。在步驟S304,如果確定不需要加載第二固件,則繼續(xù)加載第一固件的剩余部分。
具體地,如果處理器12基于啟動(dòng)參數(shù)確定不需要加載第二固件,則處理單元12繼續(xù)加載所述第一固件的剩余部分。例如,如果確定不需要加載第二固件,則處理器12可以基于確定結(jié)果不執(zhí)行跳轉(zhuǎn)指令,從而順序地加載第一固件的剩余部分。此外,如果處理器12確定需要加載第二固件,則圖3所示的方法還可以包括步驟在加載第二固件完成之后,基于第二固件啟動(dòng)第二操作系統(tǒng)。具體地,在處理單元12加載第二固件期間,處理單元12利用該第二固件進(jìn)行終端設(shè)備的其它元件的初始化,并且基于該第二固件啟動(dòng)第二操作系統(tǒng)。類似地,如果處理器12確定不需要加載第二固件,則圖3所示的方法還可以包括步驟在加載第一固件完成之后,基于第一固件啟動(dòng)第一操作系統(tǒng)。具體地,在處理單元12加載第一固件期間,處理單元12利用該第一固件進(jìn)行終端設(shè)備的其它元件的初始化,并且基于該第一固件啟動(dòng)第一操作系統(tǒng)?!?br>
通過(guò)上述配置,即使對(duì)應(yīng)于第一操作系統(tǒng)的第一固件還是需要加載對(duì)應(yīng)于第二操作系統(tǒng)的第二固件相互不兼容,但是在終端設(shè)備的處理單元的初始化完成之后,判斷需要加載第一固件還是需要加載第二固件,并且基于判斷的結(jié)果加載第一固件或第二固件,從而可以在終端設(shè)備上安裝不兼容的多種操作系統(tǒng),并且可以切換上述多種操作系統(tǒng)。此外,根據(jù)本發(fā)明的另一個(gè)實(shí)施例,圖3所示的方法還可以進(jìn)一步包括步驟在確定加載第一固件或第二固件并初始化內(nèi)存之后,將第一固件或第二固件從存儲(chǔ)器復(fù)制到內(nèi)存;以及從內(nèi)存加載第一固件或第二固件。這里,內(nèi)存的存儲(chǔ)速度大于存儲(chǔ)器的存取速度。具體地,在處理器12確定要加載第一固件或第二固件之后,處理器12利用第一固件或第二固件中的預(yù)設(shè)指令對(duì)內(nèi)存23進(jìn)行初始化,并且在內(nèi)存23的初始化完成之后,處理單元23將第一固件或第二固件從存儲(chǔ)器11復(fù)制到內(nèi)存23。然后,處理器12從內(nèi)存23繼續(xù)加載該第一固件或第二固件。這里,由于內(nèi)存23的存取速度高于存儲(chǔ)器11的存儲(chǔ)速度,因此將第一固件或第二固件寫(xiě)入內(nèi)存23,并從內(nèi)存23繼續(xù)加載第一固件或第二固件可以加快終端設(shè)備的操作系統(tǒng)的啟動(dòng)速度。此外,由于為了節(jié)省空間,有時(shí)將終端設(shè)備內(nèi)的第一固件或第二固件壓縮在存儲(chǔ)器11中,因此,將第一固件或第二固件復(fù)制到內(nèi)存23并將第一固件或第二固件解壓,不僅能夠釋放存儲(chǔ)器11的部分空間,而且不影響終端設(shè)備的啟動(dòng)速度。在上面詳細(xì)描述了本發(fā)明的各個(gè)實(shí)施例。然而,本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的原理和精神的情況下,可對(duì)這些實(shí)施例進(jìn)行各種修改,組合或子組合,并且這樣的修改應(yīng)落入本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種終端設(shè)備,包括 第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件以及第二固件,其中所述第一固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),所述第二固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng),并且所述第一固件和所述第二固件相互不兼容; 處理單元,配置來(lái)加載所述第一固件或所述第二固件, 其中在所述處理單元開(kāi)始加載所述第一固件并且在基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載所述第二固件; 如果確定加載所述第二固件,則終止所述第一固件的加載,并且加載所述第二固件; 以及如果確定不需要加載所述第二固件,則繼續(xù)加載所述第一固件的剩余部分。
2.如權(quán)利要求I所述的終端設(shè)備,其中 所述處理單元基于啟動(dòng)參數(shù)確定是否需要加載第二固件,其中 所述啟動(dòng)參數(shù)為預(yù)設(shè)的啟動(dòng)標(biāo)志;或者 所述啟動(dòng)參數(shù)為預(yù)設(shè)的用戶輸入。
3.如權(quán)利要求2所述的終端設(shè)備,其中 所述第一固件和所述第二固件順序存儲(chǔ)在所述第一存儲(chǔ)設(shè)備的第一區(qū)域以及第二區(qū)域上;以及 如果所述處理單元基于啟動(dòng)參數(shù)確定加載第二固件,則所述處理單元從所述第二區(qū)域讀取所述第二固件。
4.如權(quán)利要求I所述的終端設(shè)備,進(jìn)一步包括 第二存儲(chǔ)單元,所述第二存儲(chǔ)單元的存取速度大于所述第一存儲(chǔ)單元的存取速度,其中在所述處理單元確定加載所述第一固件或所述第二固件并初始化所述第二存儲(chǔ)單元之后,所述處理單元將所述第一固件或所述第二固件從所述第一存儲(chǔ)單元復(fù)制到所述第二存儲(chǔ)單元,以及 所述處理單元從所述第二存儲(chǔ)單元加載所述第一固件或所述第二固件。
5.如權(quán)利要求I所述的終端設(shè)備,其中 在所述處理單元加載第一固件完成之后,所述處理單元基于所述第一固件啟動(dòng)第一操作系統(tǒng);或者 在所述處理單元加載第二固件完成之后,所述處理單元基于所述第二固件啟動(dòng)第二操作系統(tǒng)。
6.一種使終端設(shè)備支持多固件加載的方法,其中所述終端設(shè)備包括第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件以及第二固件,所述第一固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),所述第二固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng),并且所述第一固件和所述第二固件相互不兼容;處理單元,配置來(lái)加載所述第一固件或所述第二固件,所述方法包括 在開(kāi)始加載所述第一固件并且在基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載第二固件; 如果確定加載第二固件,則終止所述第一固件的加載,并且加載所述第二固件;以及 如果確定不需要加載第二固件,則繼續(xù)加載所述第一固件的剩余部分。
7.如權(quán)利要求6所述的方法,其中確定是否需要加載第二固件的步驟進(jìn)一步包括基于啟動(dòng)參數(shù)確定是否需要加載第二固件,其中, 所述啟動(dòng)參數(shù)為預(yù)設(shè)的啟動(dòng)標(biāo)志;或者 所述啟動(dòng)參數(shù)為預(yù)設(shè)的用戶輸入。
8.如權(quán)利要求7所述的方法,其中 所述第一固件和所述第二固件順序存儲(chǔ)在所述第一存儲(chǔ)設(shè)備的第一區(qū)域以及第二區(qū)域上;以及 如果基于啟動(dòng)參數(shù)確定加載第二固件,則從所述第二區(qū)域讀取所述第二固件。
9.如權(quán)利要求6所述的方法,進(jìn)一步包括 在確定加載所述第一固件或所述第二固件并初始化第二存儲(chǔ)單元之后,將所述第一固件或所述第二固件從所述第一存儲(chǔ)單元復(fù)制到所述第二存儲(chǔ)單元;以及從所述第二存儲(chǔ)單元加載所述第一固件或所述第二固件, 其中所述第二存儲(chǔ)單元的存取速度大于所述第一存儲(chǔ)單元的存取速度。
10.如權(quán)利要求6所述的方法,進(jìn)一步包括 在加載第一固件完成之后,基于所述第一固件啟動(dòng)第一操作系統(tǒng);或者 在加載第二固件完成之后,基于所述第二固件啟動(dòng)第二操作系統(tǒng);
11.一種終端設(shè)備,包括 第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件、第二固件以及第三固件,其中所述第一固件用于對(duì)處理單元進(jìn)行初始化,所述第二固件用于對(duì)所述終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),以及所述第三固件用于對(duì)所述終端設(shè)備的其它元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng); 處理單元,配置來(lái)加載所述第一固件;基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載第二固件; 如果確定加載所述第二固件,則加載所述第二固件;以及 如果確定不需要加載第二固件,則加載所述第三固件。
全文摘要
終端設(shè)備以及使終端設(shè)備支持多固件加載的方法,其中所述終端設(shè)備包括第一存儲(chǔ)單元,配置來(lái)存儲(chǔ)第一固件以及第二固件,其中所述第一固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第一操作系統(tǒng),所述第二固件用于對(duì)所述終端設(shè)備的元件進(jìn)行初始化并啟動(dòng)第二操作系統(tǒng),并且所述第一固件和所述第二固件相互不兼容;處理單元,配置來(lái)加載所述第一固件或所述第二固件,其中在所述處理單元開(kāi)始加載所述第一固件并且在基于所述第一固件完成所述處理單元的初始化之后,確定是否需要加載所述第二固件;如果確定加載所述第二固件,則終止所述第一固件的加載,并且加載所述第二固件;以及如果確定不需要加載所述第二固件,則繼續(xù)加載所述第一固件的剩余部分。
文檔編號(hào)G06F9/445GK102915246SQ20111022450
公開(kāi)日2013年2月6日 申請(qǐng)日期2011年8月5日 優(yōu)先權(quán)日2011年8月5日
發(fā)明者許靈均, 劉旭國(guó), 易賢群, 吳大明, 李凡智 申請(qǐng)人:聯(lián)想(北京)有限公司