Rtc喚醒系統(tǒng)的方法及計算機的制作方法
【技術領域】
[0001]本發(fā)明屬于計算機技術領域,尤其涉及一種RTC喚醒系統(tǒng)的方法及計算機。
【背景技術】
[0002]計算機主板設計時,考慮到用戶使用的便捷性和提高效率,主板基本輸入輸出系統(tǒng)(Basic Input&Output System,簡稱B1S)提供了定時開機功能,即實時時鐘芯片(RealTime Clock,簡稱RTC)喚醒系統(tǒng)功能。該RTC喚醒系統(tǒng)的實現(xiàn)方法是由B1S提供是否啟用RTC喚醒功能的開關,并針對RTC喚醒功能的啟用或禁止,B1S運行不同的流程,執(zhí)行不同的程序。而具體的開機時間可以由用戶在B1S提供的配置界面中自行設定。比如某用戶是早上9:00鐘上班,可以在B1S中設置8:50自動開機,那么當用戶到公司時計算機已經(jīng)自動開機了,用戶可以立即投入工作,省去了到公司后再手動開機這一過程,而根據(jù)計算機配置的不同開機過程耗時通常在I分鐘到3分鐘不等。
[0003]目前業(yè)界普遍采用的RTC喚醒系統(tǒng)的方法是:計算機在開機的過程中,B1S判斷用戶是否啟用了 RTC喚醒功能,如果啟用了 RTC喚醒功能,則B1S獲取用戶設置的待喚醒時間,并把這些時間參數(shù)寫入到保存計算機基本啟動信息的存儲芯片(如CMOS芯片)中RTC喚醒的相關寄存器中,清除相應狀態(tài)寄存器,接著設置南橋和CMOS中RTC喚醒中斷使能寄存器;如果用戶禁止了 RTC喚醒功能,則B1S清除南橋和CMOS中RTC喚醒中斷使能寄存器。RTC喚醒相關程序運行完成后,B1S繼續(xù)運行開機流程,正常引導進入操作系統(tǒng)。此后,操作系統(tǒng)進入到Sx狀態(tài)后(高級配置和電源管理接口 ACPI規(guī)范中,對操作系統(tǒng)處在省電模式狀態(tài)的定義,比如休眠(S。S3)、待機(S4)、關機(S5),統(tǒng)稱為Sx),當系統(tǒng)時間到達用戶設定的喚醒時間時操作系統(tǒng)將自動開機。
[0004]然而,上述普遍采用的方法由于是在開機的過程中設置的喚醒時間,如果此后操作系統(tǒng)長時間處于開機狀態(tài),例如用戶設置的8:50執(zhí)行RTC喚醒,當操作系統(tǒng)時間到達8:50時系統(tǒng)仍處在開機狀態(tài),操作系統(tǒng)并沒有處于Sx狀態(tài),那么此時產(chǎn)生的相關中斷將導致系統(tǒng)不穩(wěn)定、正在運行的程序非正常終止等異常事件發(fā)生。
【發(fā)明內(nèi)容】
[0005]因此,為解決現(xiàn)有技術存在的技術缺陷和不足,本發(fā)明提出一種RTC喚醒系統(tǒng)的方法及計算機。
[0006]具體地,本發(fā)明實施例提出的一種RTC喚醒系統(tǒng)的方法,包括:
[0007](SI)判斷操作系統(tǒng)是否開始執(zhí)行進入省電模式狀態(tài)(Sx)的操作,所述省電模式狀態(tài)(Sx)包括休眠狀態(tài)(Sp S3)、待機狀態(tài)(S4)和關機狀態(tài)(S5)的其中之一;
[0008](S2)若所述操作系統(tǒng)開始執(zhí)行進入所述省電模式狀態(tài)(Sx)的操作,則從存儲有B1S參數(shù)的存儲器中獲取用戶設置的RTC喚醒參數(shù);
[0009](S3)根據(jù)所述RTC喚醒參數(shù)判斷是否啟動RTC喚醒系統(tǒng)功能,若是,則將所述RTC喚醒參數(shù)寫入存儲有計算機啟動信息的存儲器的相關喚醒寄存器中,并設置南橋和所述存儲器的控制寄存器以使所述操作系統(tǒng)在用戶設定的時間執(zhí)行進入正常工作狀態(tài)(S。)的操作。
[0010]在一個實施例中,所述方法還包括:
[0011](X)判斷所述操作系統(tǒng)是否開始執(zhí)行進入所述正常工作狀態(tài)(S。)的操作,若是,則設置所述南橋和所述存儲器的控制寄存器中關于RTC喚醒系統(tǒng)功能的信息以禁用所述RTC喚醒系統(tǒng)功能,并引導所述操作系統(tǒng)執(zhí)行進入所述正常工作狀態(tài)(S。)的操作。
[0012]在一個實施例中,步驟(S2)還包括:若所述操作系統(tǒng)開始執(zhí)行進入所述省電模式狀態(tài)(Sx)的操作,則判斷所述操作系統(tǒng)是否支持SMI Handler的功能;若否,則不執(zhí)行RTC喚醒系統(tǒng)功能并引導所述操作系統(tǒng)執(zhí)行進入所述省電模式(Sx)的操作。
[0013]在一個實施例中,在步驟(S3)之前,還包括:
[0014](Yl)將從存儲有B1S參數(shù)的存儲器中獲取的所述RTC喚醒參數(shù)保存在臨時內(nèi)存緩沖區(qū)內(nèi);
[0015](Y2)判斷所述RTC喚醒參數(shù)是否合法;如是,則執(zhí)行步驟(S3);若否,則引導所述操作系統(tǒng)執(zhí)行進入所述省電模式狀態(tài)(Sx)的操作。
[0016]在一個實施例中,所述RTC喚醒參數(shù)至少包括如下幾種:
[0017]用于表征是否啟用RTC喚醒系統(tǒng)功能的第一參數(shù);
[0018]用于表征RTC喚醒系統(tǒng)模式的第二參數(shù);以及
[0019]用于表征RTC喚醒時間的第三參數(shù)。
[0020]在一個實施例中,步驟(S3)包括:
[0021](S31)根據(jù)所述第一參數(shù)判斷是否啟動所述RTC喚醒系統(tǒng)功能;
[0022](S32)若是,則判斷所述第二參數(shù)和所述第三參數(shù)是否有效;
[0023](S33)在判斷結果為有效的情況下,將所述第三參數(shù)寫入所述存儲器的數(shù)據(jù)寄存器中,并設置南橋和所述存儲器的控制寄存器以使所述操作系統(tǒng)在用戶設定的時間執(zhí)行進入所述正常工作狀態(tài)(S。)的操作。
[0024]在一個實施例中,步驟(S33)進一步包括:
[0025](S331)在所述省電模式狀態(tài)(Sx)對應的SMI Handler中,清除所述存儲器的狀態(tài)寄存器中關于RTC喚醒系統(tǒng)功能的信息,并將存儲于所述臨時內(nèi)存緩沖區(qū)內(nèi)的所述第三參數(shù)寫入所述數(shù)據(jù)寄存器中,設置所述南橋和所述存儲器的控制寄存器;
[0026](S332)注冊所述省電模式狀態(tài)(Sx)對應的SMI Handler ;
[0027](S333)引導所述操作系統(tǒng)執(zhí)行進入所述省電模式狀態(tài)(Sx)的操作。
[0028]在一個實施例中,所述存儲有B1S參數(shù)的存儲器及所述存儲有計算機啟動信息的存儲器為CMOS芯片或者NVRAM。
[0029]此外,本發(fā)明另一實施例提出的一種計算機,包括顯示器和計算機主板,所述計算機主板設置有B1S,其中,所述B1S可以執(zhí)行上述實施例中任一項所述的方法。
[0030]本發(fā)明的實施例,無論用戶在B1S配置菜單中是否設置啟用RTC喚醒系統(tǒng)功能,開機過程中B1S —律禁止RTC喚醒功能;在系統(tǒng)離開S。,進入SxW態(tài)時,獲取B1S配置菜單中用戶設置的RTC喚醒相關參數(shù);判斷上述相關參數(shù)的合法性和有效性后,在Sx對應的各個SMI handler中對RTC喚醒的相關寄存器進行設置。由此,避免了在系統(tǒng)正常運行的過程中,出現(xiàn)RTC喚醒事件觸發(fā)的中斷導致系統(tǒng)異常問題,提高了系統(tǒng)的穩(wěn)定性和可靠性。
[0031]通過以下參考附圖的詳細說明,本發(fā)明的其它方面和特征變得明顯。但是應當知道,該附圖僅僅為解釋的目的設計,而不是作為本發(fā)明的范圍的限定,這是因為其應當參考附加的權利要求。還應當知道,除非另外指出,不必要依比例繪制附圖,它們僅僅力圖概念地說明此處描述的結構和流程。
【附圖說明】
[0032]下面將結合附圖,對本發(fā)明的【具體實施方式】進行詳細的說明。
[0033]圖1為本發(fā)明實施例的一種RTC喚醒系統(tǒng)的方法的流程示意圖;
[0034]圖2為本發(fā)明實施例的另一種RTC喚醒系統(tǒng)的方法的流程示意圖;
[0035]圖3為本發(fā)明實施例的一種計算機的結構示意圖。
【具體實施方式】
[0036]為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本發(fā)明的【具體實施方式】做詳細的說明。
[0037]實施例一
[0038]請參見圖1,圖1為本發(fā)明實施例的一種RTC喚醒系統(tǒng)的方法的流程示意圖。該方法可以應用于計算機的定時喚醒,由計算機主板B1S執(zhí)行,具體流程如下:
[0039](SI)判斷操作系統(tǒng)是否開始執(zhí)行進入省電模式狀態(tài)(Sx)的操作,省電模式狀態(tài)(Sx)包括休眠狀態(tài)(S。S3)、待機狀態(tài)(S4)和關機狀態(tài)(S5)的其中之一;
[0040](S2)若操作系統(tǒng)開始執(zhí)行進入省電模式狀態(tài)(Sx)的操作,則從存儲有B1S參數(shù)的存儲器中獲取用戶設置的RTC喚醒參數(shù);
[0041](S3)根據(jù)RTC喚醒參數(shù)判斷是否啟動RTC喚醒系統(tǒng)功能,若是,則將RTC喚醒參數(shù)寫入存儲有計算機啟動信息的存儲器的相關喚醒寄存器中,并設置南橋和存儲器的控制寄存器以使操作系統(tǒng)在用戶設定的時間執(zhí)行進入正常工作狀態(tài)(S。)的操作。
[0042]其中,該方法還包括:
[0043](X)判斷操作系統(tǒng)是否開始執(zhí)行進入正常工作狀態(tài)(S。)的操作,若是,則設置南橋和存儲器的控制寄存器中關于RTC喚醒系統(tǒng)功能的信息以禁用RTC喚醒系統(tǒng)功能,并引導操作系統(tǒng)執(zhí)行進入正常工作狀態(tài)(S。)的操作。
[0044]具體地,步驟(S2)還包括:若操作系統(tǒng)開始執(zhí)行進入省電模式狀態(tài)(Sx)的操作,則判斷操作系統(tǒng)是否支持SMI Handler的功能;若否,則不執(zhí)行RTC喚醒系統(tǒng)功能并引導操作系統(tǒng)執(zhí)行進入省電模式(Sx)的操作。其中,SMI Handler (System Management InterruptHandler,系統(tǒng)管理中斷句柄)是B1S中處理系統(tǒng)管理中斷的函數(shù)。
[0045]具體地,在步驟(S3)之前,還包括:
[0046](Yl)將從存儲有B1S參數(shù)的存儲器中獲取的RTC喚醒參數(shù)保存在臨時內(nèi)存緩沖區(qū)內(nèi);
[0047](Y2)判斷RTC喚醒參數(shù)是否合法;如是,則執(zhí)行步驟(S3);若否,則引導操作系統(tǒng)執(zhí)行進入省電模式狀態(tài)(Sx)的操作。
[0048]具體地,RTC喚醒參數(shù)至少包括如下幾種:
[0049]用于表征是否啟用RTC喚醒系統(tǒng)功能的第一參數(shù);
[0050]用于表征RTC喚醒系統(tǒng)模式的第二參數(shù);以及[0051 ] 用于表征RTC喚醒時間的第三參數(shù)。
[0052]具體地,步驟(S3)包括:
[0053](S31)根據(jù)第一參數(shù)判斷是否啟動RTC喚醒系統(tǒng)功能;
[0054](S32)若是,則判斷第二參數(shù)和第三參數(shù)是否有效;
[0055](S33)在判斷結果為有效的情況下,將第三參數(shù)寫入存儲器的數(shù)據(jù)寄存器中,并設置南橋和存儲器的控制寄存器以使操作系統(tǒng)在用戶設定的時間執(zhí)行進入正常工作狀態(tài)
(S0)的操作。