專利名稱:一種電子設(shè)備、電子設(shè)備的啟動方法及bios升級方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子技術(shù)領(lǐng)域,具體涉及一種電子設(shè)備、電子設(shè)備的啟動方法及BIOS升級方法。
背景技術(shù):
BIOS(Basic Input/Output System,基本輸入輸出系統(tǒng))全稱是ROM-BIOS,是只讀存儲器基本輸入/輸出系統(tǒng)的簡寫,它實(shí)際是一組被固化到計(jì)算機(jī)等電子設(shè)備中,為計(jì)算機(jī)設(shè)備提供最低級最直接的硬件控制的程序,它是連通軟件程序和硬件設(shè)備之間的樞紐,通俗地說,BIOS是硬件與軟件程序之間的一個“轉(zhuǎn)換器”或者說是接口(雖然它本身也只是一個程序),負(fù)責(zé)解決硬件的即時要求,并按軟件對硬件的操作要求具體執(zhí)行。
目前計(jì)算機(jī)的BIOS芯片基本都采用了Flash ROM(閃存),可通過特定的寫入程序?qū)崿F(xiàn)BIOS的升級,升級BIOS主要有兩大目的一、獲得新功能。
升級BIOS最直接的好處就是能獲得許多新功能,比如能支持新頻率和新類型的CPU,例如以前的某些老主板通過升級BIOS支持圖拉丁核心Pentium III和Celeron,現(xiàn)在的某些主板通過升級BIOS能支持最新的Prescott核心Pentium4E CPU;突破容量限制,能直接使用大容量硬盤;獲得新的啟動方式;開啟以前被屏蔽的功能,例如英特爾的超線程技術(shù),VIA的內(nèi)存交錯技術(shù)等;識別其它新硬件等。
二、解決舊版BIOS中的漏洞BUG。
BIOS既然也是程序,就必然存在著BUG,而且現(xiàn)在硬件技術(shù)發(fā)展日新月異,隨著市場競爭的加劇,主板廠商推出產(chǎn)品的周期也越來越短,在BIOS編寫上必然也有不盡如意的地方,而這些BUG常會導(dǎo)致莫名其妙的故障,例如無故重啟,經(jīng)常死機(jī),系統(tǒng)效能低下,設(shè)備沖突,硬件設(shè)備無故“丟失”等等。
在現(xiàn)有技術(shù)中,BIOS升級方式采用直接覆蓋Flash ROM中原有BIOS程序的方法實(shí)現(xiàn)。采用這種方式如果BIOS升級過程出現(xiàn)異常(例如文件傳輸異常、FLASH讀寫異常、升級過程中掉電)、用于升級的BIOS引導(dǎo)程序本身存在缺陷,會導(dǎo)致計(jì)算機(jī)、通信裝置等電子設(shè)備將無法啟動。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例的主要目的在于提供一種電子設(shè)備、電子設(shè)備的啟動方法及BIOS升級方法,保證在BIOS升級過程中出現(xiàn)異常導(dǎo)致升級失敗的情況下,電子設(shè)備仍能安全正常啟動。
為了達(dá)到所述方法目的,本發(fā)明實(shí)施例提供了一種電子設(shè)備的啟動方法,包括A、電子設(shè)備上電時,以第一基本輸入輸出系統(tǒng)BIOS程序存儲區(qū)引導(dǎo)設(shè)備啟動,如果啟動不成功或電子設(shè)備重新上電,執(zhí)行步驟B;B、硬件邏輯電路觸發(fā)設(shè)備從所述第一BIOS程序存儲區(qū)切換到第二BIOS程序存儲區(qū),以第二BIOS程序存儲區(qū)引導(dǎo)設(shè)備啟動。
另外,本發(fā)明實(shí)施例還提供了一種基本輸入輸出系統(tǒng)BIOS升級方法,包括步驟設(shè)置兩個BIOS程序存儲區(qū),所述BIOS程序存儲區(qū)用于存儲引導(dǎo)電子設(shè)備啟動的BIOS程序,當(dāng)對所述電子設(shè)備進(jìn)行BIOS升級時,包括以下步驟a、電子設(shè)備上電,以第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,電子設(shè)備啟動成功后,將用于升級的BIOS程序加載到第二BIOS程序存儲區(qū);b、電子設(shè)備重新上電,硬件邏輯電路觸發(fā)電子設(shè)備從所述第一BIOS程序存儲區(qū)切換到所述第二BIOS程序存儲區(qū),以所述第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,如果啟動不成功,則硬件邏輯電路觸發(fā)電子設(shè)備從所述第二BIOS程序存儲區(qū)切換到所述第一BIOS程序存儲區(qū),再次以所述第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動;c、判斷當(dāng)前引導(dǎo)設(shè)備成功啟動的BIOS程序存儲區(qū)是否為所述第二BIOS程序存儲區(qū),如果是,則將所述第二BIOS程序存儲區(qū)中的BIOS程序加載到所述第一BIOS程序存儲區(qū)。
相應(yīng)地,本發(fā)明實(shí)施例還提供了一種電子設(shè)備,包括中央處理器、存儲器、開關(guān)單元、及基本輸入輸出系統(tǒng)BIOS切換單元,其中存儲器,設(shè)置有兩個BIOS程序存儲區(qū),所述BIOS存儲區(qū)存儲有用于引導(dǎo)電子設(shè)備啟動的BIOS程序;
BIOS切換單元,用于在電子設(shè)備上電或電子設(shè)備復(fù)位時,觸發(fā)電子設(shè)備從所述存儲器中的一個BIOS程序存儲區(qū)切換到從另一個BIOS程序存儲區(qū)引導(dǎo)設(shè)備啟動;開關(guān)單元,用于在電子設(shè)備開機(jī)上電或電子設(shè)備復(fù)位時,斷開所述中央處理器至所述存儲器的分區(qū)地址線,以及用于在電子設(shè)備成功啟動后,導(dǎo)通所述分區(qū)地址線。
本發(fā)明實(shí)施例的BIOS升級方法通過設(shè)置兩個BIOS程序存儲區(qū),在電子設(shè)備正常運(yùn)行時,將用于升級的BIOS程序加載到當(dāng)前用于引導(dǎo)電子設(shè)備啟動的第一BIOS程序存儲區(qū)外的第二BIOS程序存儲區(qū),當(dāng)電子設(shè)備再次上電時,通過硬件邏輯電路觸發(fā)電子設(shè)備跳轉(zhuǎn)到以所述第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,如果引導(dǎo)不成功,則再次通過硬件邏輯電路觸發(fā)電子設(shè)備跳轉(zhuǎn)到以保存有原BIOS程序的第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,從而避免了在升級過程中發(fā)生升級失敗,比如BIOS升級程序出現(xiàn)異?;蛴糜谏壍腂IOS程序本身存在的缺陷引起的失敗,對設(shè)備產(chǎn)生的潛在風(fēng)險,保證了電子設(shè)備無論BIOS升級成功還是失敗均能正常啟動,提高了BIOS升級的安全性。
圖1是本發(fā)明實(shí)施例的電子設(shè)備組成示意圖;圖2是本發(fā)明實(shí)施例的本發(fā)明實(shí)施例的一種電子設(shè)備的啟動方法的流程示意圖;圖3是本發(fā)明實(shí)施例的BIOS升級方法中的BIOS程序加載方法流程示意圖;圖4是本發(fā)明實(shí)施例的BIOS升級方法中的BIOS引導(dǎo)啟動方法流程示意圖。
具體實(shí)施例方式
為了使本發(fā)明實(shí)施例的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖并舉實(shí)施例對本發(fā)明實(shí)施例進(jìn)行進(jìn)一步詳細(xì)說明。
參考圖1,是本發(fā)明實(shí)施例的電子設(shè)備組成示意圖。本發(fā)明實(shí)施例所述的電子設(shè)備既包括了如個人計(jì)算機(jī)等通用計(jì)算機(jī)系統(tǒng),也包括了運(yùn)用嵌入式計(jì)算機(jī)系統(tǒng)等專用計(jì)算機(jī)系統(tǒng)的通信電子設(shè)備,如網(wǎng)絡(luò)接入設(shè)備、通信交換設(shè)備等。如圖所示,本發(fā)明實(shí)施例所述的電子設(shè)備主要包括中央處理器1、存儲器2、開關(guān)單元3、切換單元4以及升級控制子系統(tǒng)5。下面對各個組成部分進(jìn)行詳細(xì)說明。
中央處理器1,通過地址總線和數(shù)據(jù)總線實(shí)現(xiàn)對所述存儲器2的地址訪問和數(shù)據(jù)讀取等操作,與現(xiàn)有技術(shù)相同,在此不再贅述。
存儲器2,設(shè)置有BIOS程序存儲區(qū)A和BIOS程序存儲區(qū)B,所述BIOS程序存儲區(qū)A和BIOS程序存儲區(qū)B均用于存儲用于引導(dǎo)電子設(shè)備啟動的BIOS程序。
此處,在具體實(shí)施時所述存儲器2是掉電不丟失存儲器,一般情況為EPROM(E1ectrically Erasable Programmable ROM,電可擦除可編程ROM)或FLASH ROM(閃存),為了簡化設(shè)計(jì),一般情況下,將所述BIOS程序存儲區(qū)A和BIOS程序存儲區(qū)B從所述存儲器2的最低位開始依次設(shè)置,例如BIOS程序存儲區(qū)的預(yù)設(shè)最大空間是512K時,所述BIOS程序存儲區(qū)A的分區(qū)地址范圍為0x0至0x03FFFF,所述BIOS程序存儲區(qū)B的分區(qū)地址范圍為0x040000至0x07FFFF,此時,對應(yīng)于所述BIOS程序存儲區(qū)A,所述中央處理器1的地址總線A18的輸出為0,對應(yīng)于所述BIOS程序存儲區(qū)B,所述中央處理器1的地址總線A18的輸出為1。另外,在具體實(shí)施時,所述BIOS程序存儲區(qū)A和所述BIOS程序存儲區(qū)B的分區(qū)地址分配是可以比較靈活的,例如,可以設(shè)置所述BIOS程序存儲區(qū)A的分區(qū)地址范圍為0x0至0x7FFFF,所述BIOS程序存儲區(qū)B的分區(qū)地址范圍為0x080000至0xFFFFF,此時,對應(yīng)于所述BIOS程序存儲區(qū)A,所述中央處理器1的地址總線A19的輸出為0,對應(yīng)于所述BIOS程序存儲區(qū)B,所述中央處理器1的地址總線A19的輸出為1。
BIOS切換單元4,用于在電子設(shè)備上電或電子設(shè)備復(fù)位時,觸發(fā)電子設(shè)備從所述存儲器2中的一個BIOS程序存儲區(qū)切換到從另一個BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動。
開關(guān)單元3,用于在電子設(shè)備開機(jī)上電或電子設(shè)備復(fù)位時,斷開所述中央處理器1至所述存儲器2的分區(qū)地址線,以及用于在電子設(shè)備成功啟動后,導(dǎo)通所述分區(qū)地址線。下面對所述切換單元4和所述開關(guān)單元3進(jìn)行詳細(xì)描述。
所述BIOS切換單元4具有第一輸出接腳和第二輸出接腳,在電子設(shè)備上電重置或電子設(shè)備復(fù)位(例如電子設(shè)備啟動超時,硬件看門狗電路復(fù)位電子設(shè)備)時,所述第一輸出接腳的輸出狀態(tài)為使能信號輸出狀態(tài),所述使能信號用于控制所述開關(guān)單元3斷開所述中央處理器1至所述存儲器2的分區(qū)地址線;在電子設(shè)備成功啟動后,所述第一輸出接腳的輸出狀態(tài)為禁止使能信號輸出狀態(tài),所述禁止使能信號用于控制所述開關(guān)單元3導(dǎo)通所述中央處理器1至所述存儲器2的分區(qū)地址線;所述第二輸出接腳的輸出狀態(tài)包括兩個與所述各個BIOS程序存儲區(qū)對應(yīng)的地址輸出狀態(tài),在電子設(shè)備上電重置或電子設(shè)備復(fù)位時,觸發(fā)所述第二輸出接腳的輸出狀態(tài)由所述兩個地址輸出狀態(tài)中的一個地址輸出狀態(tài)切換到另一個地址輸出狀態(tài)。
所述分區(qū)地址線為所述中央處理器1與所述存儲器2之間多根數(shù)據(jù)總線中的一根,所述分區(qū)地址線的邏輯輸出狀態(tài)(0或1)可決定所述中央處理器1從所述存儲器2讀取的分區(qū)地址范圍。例如BIOS程序存儲區(qū)的預(yù)設(shè)最大空間是512K時,所述BIOS程序存儲區(qū)A的分區(qū)地址范圍為0x0至0x03FFFF,所述BIOS程序存儲區(qū)B的分區(qū)地址范圍為0x040000至0x07FFFF,此時,對應(yīng)于所述BIOS程序存儲區(qū)A,所述中央處理器的地址總線A18的輸出為0,對應(yīng)于所述BIOS程序存儲區(qū)B,所述中央處理器1的地址總線A18的輸出為1,所述地址總線A18即為所述分區(qū)地址線。
下面以本發(fā)明實(shí)施例的電子設(shè)備中所述存儲器2中的所述BIOS程序存儲區(qū)A和BIOS程序存儲區(qū)B從所述存儲器2的最低位開始依次設(shè)置,且所述BIOS程序存儲區(qū)的預(yù)設(shè)最大空間為512K時,對所述切換單元4、所述開關(guān)單元3、以及所述存儲器2進(jìn)行進(jìn)一步詳細(xì)說明。在具體實(shí)施例時,所述切換單元4為可編程硬件邏輯電路,如CPLD(complex programmable logic devices,復(fù)雜可編程邏輯器件),所述開關(guān)單元3為硬件邏輯電路,如244邏輯驅(qū)動電路,其主要功能等價于一可控開關(guān)電路,即其輸入與輸出端的導(dǎo)通狀態(tài)受控于使能端的輸入狀態(tài),所述切換單元4的第一輸出接腳與所述開關(guān)單元3的使能端連接。當(dāng)中央處理器2讀取所述BIOS程序存儲區(qū)A(也即在所述存儲器2的地址范圍為0x0至0x3FFFF的存儲分區(qū))時,所述中央處理器1的地址總線A18的輸出為0,當(dāng)中央處理器2讀取所述BIOS程序存儲區(qū)B(也即在所述存儲器2的地址范圍為0x040000至0x07FFFF的存儲分區(qū))時,所述中央處理器1的地址總線A18的輸出為1,在本發(fā)明實(shí)施例中,在電子設(shè)備上電至成功啟動時間段內(nèi),所述切換單元4的所述第一輸出接腳輸出使能信號控制所述開關(guān)單元3斷開所述中央處理器1至所述存儲器2的地址總線A18(當(dāng)所述開關(guān)單元的使能端為低電平導(dǎo)通,高電平斷開時,所述使能信號為高電平信號),所述切換單元4的所述第二接腳包括兩個地址輸出狀態(tài),所述第二接腳連接于所述存儲器2中的地址總線A18輸入端。當(dāng)所述第二接腳輸出為0時,所述中央處理器1從所述存儲器2中的BIOS程序存儲區(qū)A中讀取用于引導(dǎo)系統(tǒng)啟動的BIOS程序;當(dāng)所述第二接腳輸出為1時,所述中央處理器1從所述存儲器2中的BIOS程序存儲區(qū)B中讀取用于引導(dǎo)系統(tǒng)啟動的BIOS程序。當(dāng)電子設(shè)備上電重置或者電子設(shè)備發(fā)生復(fù)位(看門狗電路發(fā)出復(fù)位信號)時,觸發(fā)所述切換單元4的所述第二輸出接腳的地址輸出狀態(tài)在0和1之間進(jìn)行切換,由于所述切換單元4為可編程硬件邏輯電路,如CPLD(complex programmable logic devices,復(fù)雜可編程邏輯器件),其自身狀態(tài)的循環(huán)切換不需要軟件控制,當(dāng)所述BIOS程序存儲區(qū)A和BIOS程序存儲區(qū)B中之一不可用時(如感染病毒、升級失敗等均可能導(dǎo)致相應(yīng)的BIOS程序存儲區(qū)不能成功引導(dǎo)系統(tǒng)啟動),通過硬件復(fù)位觸發(fā)切換單元4的所述第二接腳的地址輸出狀態(tài)的切換,從而跳轉(zhuǎn)到另一BIOS程序存儲區(qū)引導(dǎo)系統(tǒng)啟動。在本發(fā)明實(shí)施例中,當(dāng)電子設(shè)備成功啟動后,為了保證電子設(shè)備正常運(yùn)行時CPU的地址總線不受干擾,所述中央處理器1通過執(zhí)行軟件程序控制所述切換單元4的所述第一接腳的輸出狀態(tài)為禁止使能信號輸出狀態(tài),通過所述禁止使能信號控制所述開關(guān)單元3導(dǎo)通所述中央處理器1至所述存儲器的地址總線A18(當(dāng)所述開關(guān)單元的使能端為低電平導(dǎo)通,高電平斷開時,所述禁止使能信號為低電平信號),相應(yīng)地,所述中央處理器1通過執(zhí)行軟件程序控制第二接腳的輸出狀態(tài)為高阻態(tài)。
在具體實(shí)施例中,所述切換單元4包括一啟動區(qū)標(biāo)志寄存器,其作用為將所述切換單元的所述第二接腳的輸出狀態(tài)保存,用于提供給軟件識別當(dāng)前啟動區(qū)。
升級控制子系統(tǒng)5,本發(fā)明實(shí)施例所述的升級控制子系統(tǒng)5主要包括第一加載單元51,用于當(dāng)對電子設(shè)備進(jìn)行BIOS升級時,將用于升級的BIOS程序加載到當(dāng)前引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)之外的另一BIOS程序存儲區(qū)。
此處,當(dāng)當(dāng)前引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)為BIOS程序存儲區(qū)A時,將用于升級的BIOS程序加載到BIOS程序存儲區(qū)B;當(dāng)當(dāng)前引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)為BIOS程序存儲區(qū)B時,將用于升級的BIOS程序加載到BIOS程序存儲區(qū)A。所述用于升級的BIOS程序可以是網(wǎng)絡(luò)在線升級檢測并下載到的BIOS程序文件。為了描述方便,后續(xù)描述將用BIOS更新區(qū)表示加載BIOS新更新程序的BIOS程序存儲區(qū)。
判斷單元52,當(dāng)電子設(shè)備重新啟動成功后,判斷重新啟動時用于引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)是否為所述另一BIOS程序存儲區(qū)并生成相應(yīng)的判斷結(jié)果。
此處,在電子設(shè)備重新啟動上電重置時,所述切換單元4的所述第二輸出接腳的地址輸出狀態(tài)發(fā)生跳轉(zhuǎn),例如,假定在電子設(shè)備重新啟動上電之前電子設(shè)備的當(dāng)前BIOS引導(dǎo)區(qū)為BIOS程序存儲區(qū)A(此時,BIOS更新區(qū)為BIOS程序存儲區(qū)B),相應(yīng)的所述切換單元4的所述第二輸出接腳的輸出為0,在電子設(shè)備上電重置時,觸發(fā)所述切換單元4的所述第二輸出接腳的輸出跳轉(zhuǎn)為1,實(shí)現(xiàn)了所述中央處理器1從BIOS程序存儲區(qū)B讀取BIOS程序引導(dǎo)電子設(shè)備啟動。
第二加載單元53,用于當(dāng)所述判斷單元的判斷結(jié)果為是時,將所述重新啟動時用于引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)中的BIOS程序加載到該BIOS程序存儲區(qū)之外的另一BIOS程序存儲區(qū)。
升級結(jié)果輸出單元54,用于在所述判斷單元判斷結(jié)果為是時,輸出BIOS升級成功提示信息,在所述判斷單元判斷結(jié)果為否時,輸出BIOS升級不成功提示信息。
參考圖2,是本發(fā)明實(shí)施例的一種啟動方法的流程示意圖。如圖所示本發(fā)明實(shí)施例所述的啟動方法主要包括以下步驟步驟s201,設(shè)置兩個BIOS程序存儲區(qū)。
此處,所述BIOS程序存儲區(qū)用于存儲引導(dǎo)電子設(shè)備啟動的BIOS程序。一般情況下,所述兩個BIOS程序存儲區(qū)設(shè)置在同一掉電不丟失存儲器中,如EPROM(Electrically Erasable Programmable ROM,電可擦除可編程ROM)或FLASH ROM(閃存)。一般情況下,將所述兩個BIOS程序存儲區(qū)從所述掉電不丟失存儲器的最低位開始依次設(shè)置,例如BIOS程序存儲區(qū)的預(yù)設(shè)最大空間是512K時,為了便于描述,將所述兩個BIOS程序存儲區(qū)命名為BIOS程序存儲區(qū)A和BIOS程序存儲區(qū)B,所述BIOS程序存儲區(qū)A的分區(qū)地址范圍為0x0至0x03FFFF,所述BIOS程序存儲區(qū)B的分區(qū)地址范圍為0x040000至0x07FFFF,此時,對應(yīng)于所述BIOS程序存儲區(qū)A,電子設(shè)備CPU的地址總線A18的輸出為0,對應(yīng)于所述BIOS程序存儲區(qū)B,電子設(shè)備CPU的地址總線A18的輸出為1。另外,在具體實(shí)施時,所述BIOS程序存儲區(qū)A和所述BIOS程序存儲區(qū)B的分區(qū)地址分配是可以比較靈活的,例如,可以設(shè)置所述BIOS程序存儲區(qū)A的分區(qū)地址范圍為0x0至0x7FFFF,所述BIOS程序存儲區(qū)B的分區(qū)地址范圍為0x080000至0xFFFFF,此時,對應(yīng)于所述BIOS程序存儲區(qū)A,電子設(shè)備CPU的地址總線A19的輸出為0,對應(yīng)于所述BIOS程序存儲區(qū)B,電子設(shè)備CPU的地址總線A19的輸出為1。
步驟s202,電子設(shè)備上電時,以第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動。
此處,當(dāng)電子設(shè)備上電時,硬件邏輯電路控制電子設(shè)備CPU從所述兩個BIOS程序存儲區(qū)中之一啟動。
步驟s203,如果啟動不成功或電子設(shè)備重新上電,則以第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動。
此處,具體實(shí)現(xiàn)時,通過硬件邏輯電路觸發(fā)電子設(shè)備從所述第一BIOS程序存儲區(qū)跳轉(zhuǎn)到以第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動。
步驟s204,電子設(shè)備成功啟動后,將所述第二BIOS程序存儲區(qū)中的BIOS程序加載到所述第一BIOS程序存儲區(qū)。
此處,由于升級失敗、病毒感染等原因均可能會導(dǎo)致本發(fā)明實(shí)施例所述的兩個BIOS程序存儲區(qū)中的一個BIOS程序存儲區(qū)不可用(也即不能引導(dǎo)電子設(shè)備正常啟動),如果在所述步驟s202中,所述第一BIOS程序存儲區(qū)不能引導(dǎo)電子設(shè)備成功啟動,啟動超時時,看門狗硬件電路將發(fā)出復(fù)位信號,通過控制硬件邏輯電路的地址輸出狀態(tài)觸發(fā)電子設(shè)備從第一BIOS程序存儲區(qū)切換到第二BIOS程序存儲區(qū),以第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動(看門狗電路的復(fù)位信號觸發(fā)硬件邏輯電路的地址輸出狀態(tài)在0和1之間進(jìn)行切換),本發(fā)明實(shí)施例所述的硬件邏輯電路的地址輸出狀態(tài)的切換是不需要通過執(zhí)行軟件實(shí)現(xiàn)控制的,從而保證在電子設(shè)備成功啟動前可切換到相應(yīng)的可用BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動(電子設(shè)備在啟動前是無法執(zhí)行軟件的)。當(dāng)電子設(shè)備從所述第二BIOS程序存儲區(qū)成功啟動后,將所述第二BIOS程序存儲區(qū)中的BIOS程序復(fù)制加載到所述第一BIOS程序存儲區(qū),從而保證電子設(shè)備以所述兩個BIOS程序存儲區(qū)中的任一個引導(dǎo)電子設(shè)備啟動。
在本發(fā)明實(shí)施例所述的啟動方法的基礎(chǔ)上,本發(fā)明實(shí)施例還提供了一種BIOS升級方法。
參考圖3,是本發(fā)明實(shí)施例的BIOS升級方法中的BIOS程序加載方法流程示意圖。如圖所示該BIOS程序加載方法主要包括以下步驟步驟s301,設(shè)置兩個BIOS程序存儲區(qū)。
此處,所述兩個BIOS程序存儲區(qū)的設(shè)置方法以及功能與所述步驟s201中相同,在此不再贅述。
步驟s302,電子設(shè)備上電時,以第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動。
此處,所述第一BIOS程序存儲區(qū)為電子設(shè)備當(dāng)前啟動引導(dǎo)區(qū),也即電子設(shè)備在上電后,在硬件邏輯電路的跳轉(zhuǎn)控制下,電子設(shè)備CPU從該BIOS程序存儲區(qū)中讀取BIOS程序引導(dǎo)電子設(shè)備啟動。在本發(fā)明實(shí)施例具體實(shí)現(xiàn)時,硬件邏輯提供啟動區(qū)標(biāo)志寄存器,用于保存電子設(shè)備當(dāng)前啟動區(qū)標(biāo)記,具體實(shí)現(xiàn)時,例如,BIOS程序存儲區(qū)A對應(yīng)的硬件邏輯的地址輸出狀態(tài)為0(對應(yīng)存儲器的分區(qū)地址為0x0至0x03FFFF),BIOS程序存儲區(qū)B對應(yīng)的硬件邏輯的地址輸出狀態(tài)為1(對應(yīng)存儲器的分區(qū)地址為0x040000至0x07FFFF),此時,硬件邏輯電路通過提供啟動區(qū)標(biāo)志寄存器將相應(yīng)的地址輸出狀態(tài)保存(0或1)。通過讀取所述啟動區(qū)標(biāo)志寄存器中的地址輸出狀態(tài),即可區(qū)分電子設(shè)備當(dāng)前啟動引導(dǎo)區(qū)和另一BIOS程序存儲區(qū)。
步驟s303,電子設(shè)備啟動成功后,將用于升級的BIOS程序加載到第二BIOS程序存儲區(qū)。
此處,所述第二BIOS存儲區(qū)為所述兩個BIOS程序存儲區(qū)中所述電子設(shè)備當(dāng)前啟動引導(dǎo)區(qū)之外的另一BIOS程序存儲區(qū)。
步驟s304,設(shè)置更新區(qū)標(biāo)識信息并將設(shè)置更新區(qū)標(biāo)識信息保存。
此處,在一具體實(shí)施例中,所述更新標(biāo)識信息包括更新標(biāo)志信息以及更新區(qū)標(biāo)記信息,所述更新標(biāo)志信息用于反映是否有對BIOS程序進(jìn)行升級更新,如在該步驟s304中設(shè)置更新標(biāo)志信息為有效,所述更新區(qū)標(biāo)記信息用于標(biāo)記被更新的BIOS程序存儲區(qū)。
通過本發(fā)明實(shí)施例的BIOS升級方法的BIOS程序加載流程,只更新了所述設(shè)置的兩個BIOS程序存儲區(qū)中的所述第二BIOS程序存儲區(qū)(也即非當(dāng)前引導(dǎo)啟動區(qū))中的BIOS程序,并且,所述第二BIOS程序存儲區(qū)中新加載的BIOS更新程序是否有效并不確定,由于BIOS程序只有在電子設(shè)備啟動時才會被調(diào)用執(zhí)行,如果電子設(shè)備能以所述第二BIOS程序存儲區(qū)引導(dǎo)啟動,則表示升級加載的BIOS程序是有效的,說明升級成功,如果電子設(shè)備不能以所述第二BIOS程序存儲區(qū)引導(dǎo)成功啟動(硬件復(fù)位,將觸發(fā)跳轉(zhuǎn)到以所述第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動),則說明升級不成功。下面通過實(shí)施例描述,對電子設(shè)備重新啟動后的BIOS引導(dǎo)啟動方法進(jìn)行詳細(xì)描述。
參考圖4,是本發(fā)明實(shí)施例的BIOS升級方法中的BIOS引導(dǎo)啟動方法流程示意圖。如圖所示該BIOS引導(dǎo)啟動方法主要包括以下步驟步驟s401,電子設(shè)備上電啟動。
步驟s402,禁止邏輯地址重定向。
此處,所述禁止邏輯地址重定向是指電子設(shè)備啟動成功后,電子設(shè)備CPU通過執(zhí)行軟件程序控制硬件邏輯電路,導(dǎo)通CPU與BIOS程序存儲器之間在電子設(shè)備啟動時被阻斷的地址線(如地址總線A18),并且硬件邏輯電路對BIOS存儲器的地址輸出狀態(tài)設(shè)置為高阻態(tài),從而保證電子設(shè)備正常運(yùn)行時,CPU對存儲器的正常地址訪問以及數(shù)據(jù)讀取等操作。
步驟s403,讀取更新標(biāo)志信息。
此處,所述更新標(biāo)志信息用于反映是否有對BIOS程序進(jìn)行升級更新。
步驟s404,判斷是否有更新,如果判斷結(jié)果為是,則執(zhí)行步驟404,否則,則結(jié)束處理。
此處,當(dāng)更新標(biāo)志信息有效時,則說明BIOS程序有更新,否則,說明BIOS程序沒有更新。
步驟s405,讀取更新區(qū)標(biāo)記信息。
此處,通過讀取更新區(qū)標(biāo)記信息,系統(tǒng)可獲知所述兩個BIOS程序存儲器中具體哪一個被升級更新。
步驟s406,判斷當(dāng)前啟動區(qū)是否為更新區(qū),如果判斷結(jié)果為是,則執(zhí)行步驟s407,否則,執(zhí)行步驟s408。
此處,由于在設(shè)電子設(shè)備上電時,硬件邏輯電路通過地址輸出狀態(tài)的切換控制BIOS啟動區(qū)的跳轉(zhuǎn),因此如果當(dāng)前啟動區(qū)(也即該次電子設(shè)備成功啟動時,用于引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū))為更新區(qū),則說明被升級更新BIOS程序的BIOS程序存儲區(qū)能成功引導(dǎo)電子設(shè)備啟動,表示升級成功;反之,如果當(dāng)前啟動區(qū)不是更新區(qū),則實(shí)際引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)仍然是存有原BIOS程序的BIOS程序存儲區(qū),說明被升級更新BIOS程序的BIOS程序存儲區(qū)能成功引導(dǎo)電子設(shè)備啟動(電子設(shè)備上電跳轉(zhuǎn)到更新區(qū)后,以更新區(qū)引導(dǎo)電子設(shè)備啟動失敗,啟動超時,看門狗復(fù)位信號復(fù)位硬件邏輯電路,觸發(fā)到以保存有原BIOS程序的BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動),表示升級失敗。
步驟s407,將當(dāng)前啟動區(qū)的中的BIOS程序復(fù)制加載到另一BIOS程序存儲區(qū)。
步驟s408,提示升級未成功。
步驟s409,設(shè)置更新標(biāo)記信息為無效。
此處,該步驟s409的目的是保證在不對電子設(shè)備BIOS升級時,電子設(shè)備的正常運(yùn)行和使用。
步驟s410,結(jié)束處理。
本發(fā)明實(shí)施例的BIOS升級方法通過設(shè)置兩個BIOS程序存儲區(qū),在電子設(shè)備正常運(yùn)行時,將用于升級的BIOS程序加載到當(dāng)前用于引導(dǎo)電子設(shè)備啟動的第一BIOS程序存儲區(qū)外的第二BIOS程序存儲區(qū),當(dāng)電子設(shè)備再次上電時,通過觸發(fā)硬件邏輯電路跳轉(zhuǎn)到以所述第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,如果引導(dǎo)不成功,則再次觸發(fā)硬件邏輯電路跳轉(zhuǎn)到以保存有原BIOS程序的第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,從而避免了在升級過程中發(fā)生升級失敗,比如BIOS升級程序出現(xiàn)異?;蛴糜谏壍腂IOS程序本身存在的缺陷引起的失敗,對設(shè)備產(chǎn)生的潛在風(fēng)險,保證了電子設(shè)備無論BIOS升級成功還是失敗均能正常啟動,提高了BIOS升級的安全性。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種電子設(shè)備的啟動方法,其特征在于,包括步驟A、電子設(shè)備上電時,以第一基本輸入輸出系統(tǒng)BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,如果啟動不成功或電子設(shè)備重新上電,執(zhí)行步驟B;B、硬件邏輯電路觸發(fā)電子設(shè)備從所述第一BIOS程序存儲區(qū)切換到第二BIOS程序存儲區(qū),以第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動。
2.如權(quán)利要求12所述的方法,其特征在于,所述步驟B進(jìn)一步包括步驟電子設(shè)備啟動成功后,將所述第二BIOS程序存儲區(qū)中的BIOS程序加載到所述第一BIOS程序存儲區(qū)。
3.一種基本輸入輸出系統(tǒng)BIOS升級方法,其特征在于,設(shè)置兩個BIOS程序存儲區(qū),所述BIOS程序存儲區(qū)用于存儲引導(dǎo)電子設(shè)備啟動的BIOS程序,當(dāng)對所述電子設(shè)備進(jìn)行BIOS升級時,包括以下步驟a、電子設(shè)備上電,以第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,電子設(shè)備啟動成功后,將用于升級的BIOS程序加載到第二BIOS程序存儲區(qū);b、電子設(shè)備重新上電,硬件邏輯電路觸發(fā)電子設(shè)備從所述第一BIOS程序存儲區(qū)切換到所述第二BIOS程序存儲區(qū),以所述第二BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動,如果啟動不成功,則硬件邏輯電路觸發(fā)電子設(shè)備從所述第二BIOS程序存儲區(qū)切換到所述第一BIOS程序存儲區(qū),再次以所述第一BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動;c、判斷當(dāng)前引導(dǎo)電子設(shè)備成功啟動的BIOS程序存儲區(qū)是否為所述第二BIOS程序存儲區(qū),如果是,則將所述第二BIOS程序存儲區(qū)中的BIOS程序加載到所述第一BIOS程序存儲區(qū)。
4.如權(quán)利要求3所述的方法,其特征在于,在所述步驟a和步驟b之間還包括步驟a1、設(shè)置更新區(qū)標(biāo)識信息并將所述更新區(qū)標(biāo)識信息保存。
5.如權(quán)利要求4所述的方法,其特征在于,所述步驟c中判斷當(dāng)前引導(dǎo)電子設(shè)備成功啟動的BIOS程序存儲區(qū)是否為所述第二BIOS程序存儲區(qū)為讀取所述更新區(qū)標(biāo)識信息,并根據(jù)所述更新區(qū)標(biāo)識信息判斷當(dāng)前引導(dǎo)電子設(shè)備成功啟動的BIOS程序存儲區(qū)是否為所述第二BIOS程序存儲區(qū)。
6.如權(quán)利要求4或5所述的方法,其特征在于,在所述步驟c之后還包括步驟d、清除更新區(qū)標(biāo)識信息。
7.一種電子設(shè)備,該電子設(shè)備包括一中央處理器,其特征在于,還包括有存儲器、開關(guān)單元、以及基本輸入輸出系統(tǒng)BIOS切換單元,其中存儲器,設(shè)置有兩個BIOS程序存儲區(qū),所述BIOS存儲區(qū)存儲有用于引導(dǎo)電子設(shè)備啟動的BIOS程序;BIOS切換單元,用于在電子設(shè)備上電或電子設(shè)備復(fù)位時,觸發(fā)電子設(shè)備從所述存儲器中的一個BIOS程序存儲區(qū)切換到從另一個BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動;開關(guān)單元,用于在電子設(shè)備開機(jī)上電或電子設(shè)備復(fù)位時,斷開所述中央處理器至所述存儲器的分區(qū)地址線,以及用于在電子設(shè)備成功啟動后,導(dǎo)通所述分區(qū)地址線。
8.如權(quán)利要求7所述的電子設(shè)備,其特征在于,所述BIOS切換單元具有第一輸出接腳和第二輸出接腳,在電子設(shè)備上電重置或電子設(shè)備復(fù)位時,所述第一輸出接腳的輸出狀態(tài)為使能信號輸出狀態(tài),所述使能信號用于控制所述開關(guān)單元斷開所述中央處理器至所述存儲器的分區(qū)地址線;在電子設(shè)備成功啟動后,所述第一輸出接腳的輸出狀態(tài)為禁止使能信號輸出狀態(tài),所述禁止使能信號用于控制所述開關(guān)單元導(dǎo)通所述中央處理器至所述存儲器的分區(qū)地址線;所述第二輸出接腳的輸出狀態(tài)包括兩個與所述各個BIOS程序存儲區(qū)對應(yīng)的地址輸出狀態(tài),在電子設(shè)備上電重置或電子設(shè)備復(fù)位時,觸發(fā)所述第二輸出接腳的輸出狀態(tài)由所述兩個地址輸出狀態(tài)中的一個地址輸出狀態(tài)切換到另一個地址輸出狀態(tài)。
9.如權(quán)利要求8所述的電子設(shè)備,其特征在于,在電子設(shè)備成功啟動后,所述切換單元的第二輸出接腳的輸出狀態(tài)為高阻態(tài)。
10.如權(quán)利要求9所述的電子設(shè)備,其特征在于,所述BIOS切換單元為可編程邏輯電路。
11.如權(quán)利要求7至10所述的電子設(shè)備,其特征在于,還包括BIOS升級控制子系統(tǒng),所述升級控制子系統(tǒng)包括第一加載單元,用于當(dāng)對電子設(shè)備進(jìn)行BIOS升級時,將用于升級的BIOS程序加載到當(dāng)前引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)之外的另一BIOS程序存儲區(qū);判斷單元,當(dāng)電子設(shè)備重新啟動成功后,判斷重新啟動時用于引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)是否為所述另一BIOS程序存儲區(qū)并生成相應(yīng)的判斷結(jié)果;第二加載單元,用于當(dāng)所述判斷單元的判斷結(jié)果為是時,將所述重新啟動時用于引導(dǎo)電子設(shè)備啟動的BIOS程序存儲區(qū)中的BIOS程序加載到該BIOS程序存儲區(qū)之外的另一BIOS程序存儲區(qū)。
12.如權(quán)利要求11所述的電子設(shè)備,其特征在于,所述升級控制子系統(tǒng)還包括升級結(jié)果輸出單元,用于在所述判斷單元判斷結(jié)果為是時,輸出BIOS升級成功提示信息,在所述判斷單元判斷結(jié)果為否時,輸出BIOS升級不成功提示信息。
全文摘要
本發(fā)明公開了一種電子設(shè)備,包括中央處理器、存儲器、開關(guān)單元、及基本輸入輸出系統(tǒng)BIOS切換單元,其中存儲器,設(shè)置有兩個BIOS程序存儲區(qū);BIOS切換單元,用于在電子設(shè)備上電或電子設(shè)備復(fù)位時,觸發(fā)電子設(shè)備從所述存儲器中的一個BIOS程序存儲區(qū)切換到從另一個BIOS程序存儲區(qū)引導(dǎo)電子設(shè)備啟動;開關(guān)單元,用于在電子設(shè)備開機(jī)上電或電子設(shè)備復(fù)位時,斷開所述中央處理器至所述存儲器的分區(qū)地址線,以及用于在電子設(shè)備成功啟動后,導(dǎo)通所述分區(qū)地址線。本發(fā)明同時還公開了一種啟動方法和BIOS升級方法。利用本發(fā)明,可實(shí)現(xiàn)無論BIOS升級成功或者失敗,電子設(shè)備均能正常啟動,保證了BIOS升級的安全性。
文檔編號G06F11/14GK101017441SQ20071002701
公開日2007年8月15日 申請日期2007年2月27日 優(yōu)先權(quán)日2007年2月27日
發(fā)明者陳貴敏, 朱金華 申請人:華為技術(shù)有限公司