專利名稱:嵌入式系統(tǒng)喂狗的方法、裝置及單板的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種嵌入式系統(tǒng)喂狗的方法、裝置及單板。
背景技術(shù):
看門狗是一種防止程 序跑飛,陷入死循環(huán)的技術(shù),廣泛應(yīng)用于嵌入式系統(tǒng)中,其在系統(tǒng)自動復(fù)位方面有著不可替代的作用。嵌入式系統(tǒng)在上電開機(jī)后,需要先后經(jīng)歷引導(dǎo)(Boot loader)程序運(yùn)行、內(nèi)核(Kernel)程序運(yùn)行以及應(yīng)用程序運(yùn)行幾個(gè)階段。在此期間當(dāng)系統(tǒng)沒有按時(shí)喂狗時(shí),看門狗電路對系統(tǒng)進(jìn)行復(fù)位,系統(tǒng)重新運(yùn)行相應(yīng)開機(jī)程序。目前,主要通過三種方式對看門狗電路進(jìn)行喂狗1)硬件喂狗2)軟件喂狗3)軟硬件結(jié)合喂狗。具體的,I)硬件喂狗通過一個(gè)包含計(jì)數(shù)器的物化電路板,定時(shí)向嵌入式系統(tǒng)輸入高/低電平,從而達(dá)到定時(shí)喂狗防止系統(tǒng)復(fù)位的目的。2)軟件喂狗通過在運(yùn)行的程序中設(shè)置定時(shí)喂狗規(guī)則,從而達(dá)到定時(shí)喂狗防止系統(tǒng)復(fù)位的目的。3)軟硬件結(jié)合喂狗在系統(tǒng)引導(dǎo)程序啟動階段使用硬件喂狗,在內(nèi)核正常運(yùn)行之后使用軟件喂狗?,F(xiàn)有涉及軟件喂狗的喂狗方式,需要建立線程執(zhí)行喂狗動作,高頻率的喂狗動作會增加中央處理器(Central Processing Unit,簡稱CPU)的負(fù)載,耗費(fèi)線程資源。當(dāng)CPU負(fù)載過大時(shí),會延時(shí)建立喂狗的線程,容易丟失喂狗動作,導(dǎo)致系統(tǒng)誤復(fù)位。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種嵌入式系統(tǒng)喂狗的方法、裝置及單板,能夠降低CPU的負(fù)載,節(jié)省線程資源,同時(shí)解決由于CPU負(fù)載過高導(dǎo)致的系統(tǒng)誤復(fù)位的問題。一方面,本發(fā)明實(shí)施例提供了一種嵌入式系統(tǒng)喂狗的方法,包括判斷是否到達(dá)使能喂狗時(shí)刻值;當(dāng)?shù)竭_(dá)所述使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息。另一方面,本發(fā)明實(shí)施例還提供了一種嵌入式系統(tǒng)喂狗的方法,包括接收中央處理器發(fā)送的喂狗使能消息;根據(jù)所述喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號。另一方面,本發(fā)明實(shí)施例提供了一種中央處理器,包括處理器,用于判斷是否到達(dá)使能喂狗時(shí)刻值;發(fā)送器,用于當(dāng)所述處理器判斷到達(dá)所述使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息;另一方面,本發(fā)明實(shí)施例還提供了一種喂狗裝置,包括接收器,用于接收中央處理器發(fā)送的喂狗使能消息;發(fā)送器,用于根據(jù)所述接收器接收的所述喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號。
另一方面,本發(fā)明實(shí)施例提供了一種嵌入式系統(tǒng)喂狗的單板,包括中央處理器和喂狗裝置,所述中央處理器和所述喂狗裝置之間具有數(shù)據(jù)交互能力。本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的方法、裝置及單板,能夠由中央處理器定時(shí)向喂狗裝置發(fā)送喂狗使能信息,在每次發(fā)送喂狗使能信息后由喂狗裝置完成多次喂狗動作。與現(xiàn)有技術(shù)中由中央處理器完成喂狗動作相比,能夠?qū)⒏哳l率的喂狗動作轉(zhuǎn)移給喂狗裝置處理,可以減少中央處理器的資源開銷,避免由于中央處理器負(fù)載過高導(dǎo)致的喂狗動作丟失的問題。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例中嵌入式系統(tǒng)喂狗的方法的流程圖;圖2為本發(fā)明實(shí)施例中另一個(gè)嵌入式系統(tǒng)喂狗的方法的流程圖;圖3為本發(fā)明實(shí)施例中嵌入式系統(tǒng)喂狗的示意圖;圖4為本發(fā)明實(shí)施例中另一個(gè)嵌入式系統(tǒng)喂狗的示意圖;圖5為本發(fā)明實(shí)施例中再一個(gè)嵌入式系統(tǒng)喂狗的方法的流程圖;圖6為本發(fā)明實(shí)施例中又一個(gè)嵌入式系統(tǒng)喂狗的方法的流程圖;圖7為本發(fā)明實(shí)施例中中央處理器的結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例中另一個(gè)中央處理器的結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例中再一個(gè)中央處理器的結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例中喂狗裝置的結(jié)構(gòu)示意圖;圖11為本發(fā)明實(shí)施例中另一個(gè)喂狗裝置的結(jié)構(gòu)示意圖;圖12為本發(fā)明實(shí)施例中嵌入式系統(tǒng)喂狗的單板的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供了一種嵌入式系統(tǒng)喂狗的方法,如圖I所示,所述方法包括如下步驟101、判斷是否到達(dá)使能喂狗時(shí)刻值。所述使能喂狗時(shí)刻值具有周期性,在每次到達(dá)使能喂狗時(shí)刻值時(shí),中央處理器向喂狗裝置發(fā)送喂狗使能消息。102、當(dāng)?shù)竭_(dá)使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息。喂狗裝置根據(jù)該喂狗使能消息,在接收到該喂狗使能消息到接收到下一次喂狗使能消息期間,向中央處理器多次發(fā)送喂狗信號。本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的方法,能夠由中央處理器定時(shí)向喂狗裝置發(fā)送喂狗使能信息,在每次發(fā)送喂狗使能信息后由喂狗裝置完成多次喂狗動作。與現(xiàn)有技術(shù)中由中央處理器完成喂狗動作相比,能夠?qū)⒏哳l率的喂狗動作轉(zhuǎn)移給喂狗裝置處理,可以節(jié)省中央處理器的線程資源,避免由于中央處理器負(fù)載過高導(dǎo)致的喂狗動作丟失的問題。進(jìn)一 步的,本發(fā)明實(shí)施例還提供了一種嵌入式系統(tǒng)喂狗的方法,所述方法是對圖I所示方法的進(jìn)一步擴(kuò)展,如圖2所示,所述方法包括如下步驟201、設(shè)置喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值。所述喂狗持續(xù)時(shí)間大于所述喂狗時(shí)長。例如可以設(shè)置喂狗持續(xù)時(shí)間為IOOOs (秒)、喂狗時(shí)長為200s,從初始喂狗時(shí)刻起,每間隔195s的時(shí)刻值為使能喂狗時(shí)刻值。所述喂狗持續(xù)時(shí)間為嵌入式系統(tǒng)從上電開機(jī)時(shí)刻到應(yīng)用程序穩(wěn)定運(yùn)行時(shí)刻之間的時(shí)長,實(shí)際應(yīng)用中,喂狗持續(xù)時(shí)間應(yīng)稍長于該時(shí)長。需要說明的是,所述喂狗持續(xù)時(shí)間和所述喂狗時(shí)長是相對時(shí)間段,所述使能喂狗時(shí)刻值是絕對時(shí)間點(diǎn)。所述使能喂狗時(shí)刻值可以以中央處理器中的時(shí)鐘為時(shí)序進(jìn)行設(shè)置,本發(fā)明實(shí)施例對此不做限制。202、判斷是否到達(dá)使能喂狗時(shí)刻值。203、當(dāng)?shù)竭_(dá)使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息。所述喂狗使能消息為喂狗指示或者喂狗時(shí)長消息。當(dāng)喂狗使能消息為喂狗指示時(shí),喂狗裝置在接收到喂狗使能消息后,在預(yù)設(shè)的喂狗時(shí)長內(nèi)向中央處理器發(fā)送喂狗信號,當(dāng)喂狗使能消息為喂狗時(shí)長消息時(shí),喂狗裝置在接收到喂狗使能消息后,在喂狗時(shí)長消息中的喂狗時(shí)長內(nèi)向中央處理器發(fā)送喂狗信號,此時(shí)可以不以預(yù)設(shè)的喂狗時(shí)長為準(zhǔn)。具體的,如圖3所示,在系統(tǒng)上電開機(jī)時(shí)到達(dá)第一次使能喂狗時(shí)刻值(Os),此時(shí)向喂狗裝置發(fā)送喂狗使能消息,該信息中喂狗時(shí)長為200s。當(dāng)?shù)竭_(dá)第二次使能喂狗時(shí)刻值(195s)時(shí),再次向喂狗裝置發(fā)送喂狗時(shí)長消息(200s),該信息用于指示喂狗裝置在第200s到第400s之間繼續(xù)向中央處理器發(fā)送喂狗信號。當(dāng)?shù)竭_(dá)第三次使能喂狗時(shí)刻值(390s)時(shí),第三次向喂狗裝置發(fā)送喂狗時(shí)長消息(200s),該信息用于指示喂狗裝置在第400s到第600s之間繼續(xù)向中央處理器發(fā)送喂狗信號,以此類推之。喂狗裝置在喂狗時(shí)長內(nèi)按照預(yù)設(shè)的喂狗間隔(或稱為喂狗頻率)向中央處理器發(fā)送喂狗信號。如果喂狗間隔為50ms(毫秒),則在一個(gè)喂狗時(shí)長內(nèi)喂狗裝置發(fā)送4000次喂狗信號。在現(xiàn)有技術(shù)中,軟件喂狗的方式是通過建立線程(包內(nèi)核線程和應(yīng)用線程)進(jìn)行喂狗,發(fā)送一次喂狗信號需要建立一個(gè)喂狗線程。在圖3所示的事例中在一段喂狗持續(xù)時(shí)間內(nèi)(1000s),需要建立20000次喂狗線程。而本發(fā)明實(shí)施例中,在一段喂狗持續(xù)時(shí)間內(nèi)只需為發(fā)送5次喂狗使能消息建立5次線程,而將發(fā)送喂狗信號的動作轉(zhuǎn)移給了喂狗裝置執(zhí)行。由于喂狗裝置獨(dú)立于中央處理器,所以其發(fā)送喂狗信號不會增加中央處理器的負(fù)載。相對于現(xiàn)有技術(shù)而言,本發(fā)明實(shí)施例可以減少19995次線程的建立,能夠大大減小中央處理器的負(fù)載,節(jié)省線程資源。此外,當(dāng)中央處理器的負(fù)載過大時(shí),會延遲建立喂狗線程,當(dāng)延遲的時(shí)間超過一個(gè)喂狗間隔時(shí),就會發(fā)生喂狗動作遺漏的情況,從而導(dǎo)致中央處理器對系統(tǒng)進(jìn)行錯(cuò)誤復(fù)位。由于本發(fā)明實(shí)施例能夠減小中央處理器的負(fù)載,所以還可以避免由于中央處理器負(fù)載過大導(dǎo)致的喂狗動作丟失的問題??蛇x的,在發(fā)送喂狗使能消息之前,還可以判斷喂狗持續(xù)時(shí)間是否結(jié)束,當(dāng)喂狗持續(xù)時(shí)間結(jié)束時(shí),停止向喂狗裝置發(fā)送喂狗使能消息。喂狗裝置在完成最后一個(gè)喂狗時(shí)長內(nèi)的喂狗動作后,不再發(fā)送喂狗信號。進(jìn)一步的,可以在每次向喂狗裝置發(fā)送喂狗時(shí)長之前,可以設(shè)置該喂狗時(shí)長,即在同一喂狗持續(xù)時(shí)間內(nèi)的多個(gè)喂狗時(shí)長可以不相同。本發(fā)明實(shí)施例是以從系統(tǒng)上電開機(jī)到應(yīng)用程序穩(wěn)定運(yùn)行為喂狗持續(xù)時(shí)間進(jìn)行說明的,此外還可以將嵌入式系統(tǒng)上電開機(jī)開始之后的時(shí)間劃分為多個(gè)階段,根據(jù)每個(gè)階段 的運(yùn)行特點(diǎn)設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值。例如,可以順序劃分為如下多個(gè)階段引導(dǎo)(boot)啟動階段、boot運(yùn)行階段、boot調(diào)試階段、內(nèi)核(kernel)引導(dǎo)階段、內(nèi)核工作階段、應(yīng)用啟動階段以及應(yīng)用運(yùn)行階段。所述根據(jù)每個(gè)階段的運(yùn)行特點(diǎn)設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值可以是根據(jù)每個(gè)階段的運(yùn)行時(shí)間設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值。其中,喂狗持續(xù)時(shí)間應(yīng)稍長于該階段的運(yùn)行時(shí)間,喂狗時(shí)長應(yīng)小于對應(yīng)的喂狗持續(xù)時(shí)間。各個(gè)階段喂狗的實(shí)現(xiàn)方式可以參照圖2所示的實(shí)現(xiàn)方式,并結(jié)合各階段的時(shí)長特點(diǎn)進(jìn)行實(shí)現(xiàn),本發(fā)明實(shí)施例對此不再一一贅述。進(jìn)一步的,在應(yīng)用運(yùn)行階段,還可以接收應(yīng)用程序發(fā)送的高級喂狗使能消息并根據(jù)該高級喂狗使能消息向喂狗裝置發(fā)送喂狗使能消息,從而實(shí)現(xiàn)喂狗裝置監(jiān)視內(nèi)核線程、內(nèi)核線程監(jiān)視應(yīng)用程序線程的目的。所述高級喂狗使能消息可以為喂狗指示或喂狗時(shí)長,當(dāng)接收到高級喂狗使能消息后,向喂狗裝置發(fā)送喂狗使能消息,該喂狗使能消息與圖2中所述的喂狗使能消息以及后續(xù)實(shí)現(xiàn)方式相同,此處不再贅述。再進(jìn)一步的,在應(yīng)用運(yùn)行階段,喂狗信號還可以由應(yīng)用程序直接發(fā)送給內(nèi)核,由此保證內(nèi)核監(jiān)視應(yīng)用程序的正常運(yùn)行。更進(jìn)一步的,在應(yīng)用程序處理階段(包括應(yīng)用程序啟動階段和應(yīng)用程序運(yùn)行階段),如果到達(dá)接收喂狗信號時(shí)刻卻未接收到喂狗信號,則在對系統(tǒng)進(jìn)行復(fù)位時(shí),可以復(fù)位到應(yīng)用程序啟動階段,由此可以節(jié)省從運(yùn)行上電開機(jī)到內(nèi)核工作階段之間多個(gè)運(yùn)行階段重復(fù)運(yùn)行的時(shí)間和資源。在本發(fā)明實(shí)施例的一個(gè)應(yīng)用場景中,針對系統(tǒng)不同階段的運(yùn)行特點(diǎn),采用了軟硬件相結(jié)合的方式進(jìn)行喂狗,具體的,如圖4所示l)boot啟動階段該階段是指系統(tǒng)上電后,中央處理器內(nèi)部固化的代碼自動加載flash中boot映像的過程。該階段的特點(diǎn)是執(zhí)行時(shí)間較短且執(zhí)行時(shí)長基本固定(即flash讀操作的時(shí)間)。根據(jù)該階段的特點(diǎn),采用硬件喂狗的方式,即喂狗裝置發(fā)送喂狗信號,喂狗持續(xù)時(shí)間稍大于boot啟動時(shí)間,當(dāng)中央處理器未在接收時(shí)刻接收到喂狗信號時(shí),對系統(tǒng)重新上電復(fù)位。2)boot運(yùn)行階段該階段是指boot映像加載后啟動運(yùn)行的時(shí)間段。在該階段boot程序已經(jīng)正常運(yùn)行,特別是中斷服務(wù)函數(shù)已經(jīng)可以正常使用。根據(jù)該階段的特點(diǎn),采用軟件喂狗的方式,即boot程序按照預(yù)定的定時(shí)間隔向中央處理器發(fā)送中斷服務(wù)函數(shù)(相當(dāng)于喂狗信號),由此實(shí)現(xiàn)監(jiān)視boot程序的運(yùn)行情況,當(dāng)boot運(yùn)行異常時(shí)對系統(tǒng)重新上電復(fù)位。
3)boot調(diào)試階段該階段是指boot程序進(jìn)入調(diào)試模式,其特點(diǎn)與boot運(yùn)行階段相同,故喂狗方式也采用boot運(yùn)行階段的喂狗方式,此處不再贅述。4)內(nèi)核引導(dǎo)階段該階段是指boot程序?qū)?nèi)核映像拷貝到內(nèi)存,以及內(nèi)核映像開始運(yùn)行到內(nèi)核各項(xiàng)服務(wù)沒有初始化之間的過程。該階段中boot程序逐步退出運(yùn)行,而內(nèi)核也沒有完全運(yùn)行起來,結(jié)合其特點(diǎn),采用圖2所述的軟硬件結(jié)合的方式喂狗,同時(shí),確保喂狗持續(xù)時(shí)間大于內(nèi)核加載與啟動的時(shí)間之和。由此實(shí)現(xiàn)監(jiān)視內(nèi)核運(yùn)行情況,當(dāng)該階段出現(xiàn)異常時(shí),對系統(tǒng)重新上電復(fù)位。5)內(nèi)核工作階段內(nèi)核正常運(yùn)行后至應(yīng)用程序啟動之間的過程。該過程中內(nèi)核中各項(xiàng)服務(wù)可以正常使用。該階段的喂狗方式與圖2所示的喂狗方式相同,此處不再贅述。 6)應(yīng)用程序啟動階段該階段是指內(nèi)核正常運(yùn)行后至啟動應(yīng)用程序的過程。應(yīng)用程序啟動過程中需要做大量的監(jiān)測工作以及初始化工作,耗時(shí)較長。該階段的喂狗方式為硬件喂狗,即喂狗裝置按照預(yù)設(shè)的喂狗持續(xù)時(shí)間、喂狗間隔發(fā)送喂狗信號。7)應(yīng)用程序運(yùn)行階段應(yīng)用程序運(yùn)行階段是指應(yīng)用程序正常運(yùn)行后的階段。該階段中,應(yīng)用程序會啟動一個(gè)線程專門負(fù)責(zé)看門狗事務(wù)處理,該線程主要負(fù)責(zé)向內(nèi)核發(fā)送高級喂狗使能消息,并由內(nèi)核根據(jù)該高級喂狗使能消息向喂狗裝置發(fā)送喂狗使能消息,此后的實(shí)現(xiàn)方式與圖2所示的實(shí)現(xiàn)方式相同。該喂狗方式可以實(shí)現(xiàn)喂狗裝置監(jiān)視內(nèi)核線程,內(nèi)核線程監(jiān)視應(yīng)用程序線程的作用。當(dāng)應(yīng)用程序出現(xiàn)異常時(shí),復(fù)位對象為應(yīng)用程序本身,即復(fù)位到應(yīng)用程序啟動階段重新運(yùn)行。圖4所示的喂狗方式,能夠?qū)⑾到y(tǒng)上電后的階段劃分為多個(gè)子階段,根據(jù)每個(gè)子階段的特點(diǎn),采取不同的喂狗方式。在節(jié)省了線程資源的同時(shí),能夠更加正確的監(jiān)視系統(tǒng)運(yùn)行情況。此外,圖4所示的喂狗方式能夠監(jiān)視系統(tǒng)啟動的所有階段,系統(tǒng)在任何一個(gè)階段僵死均可以被發(fā)現(xiàn)并復(fù)位。進(jìn)一步的,還可以將嵌入式系統(tǒng)上電開機(jī)后的階段劃分為更加精細(xì)的子階段是,并針對每個(gè)階段的特點(diǎn)進(jìn)行喂狗,本發(fā)明實(shí)施例對此不做限制。需要說明的是,本發(fā)明實(shí)施例中所述內(nèi)核可以等同理解為中央處理器,但中央處理器不應(yīng)被等同理解為內(nèi)核,這是由于在boot處理階段,內(nèi)核還未開始運(yùn)行,此時(shí)接收喂狗信號以及復(fù)位系統(tǒng)的執(zhí)行主體表述為中央處理器。本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的方法,可以減少內(nèi)核和應(yīng)用程序的線程,降低線程資源的消耗,從而達(dá)到減小中央處理器負(fù)載的目的。同時(shí),由于喂狗使能消息來自于內(nèi)核或應(yīng)用程序,所以與硬件喂狗的方式相比,軟硬件結(jié)合的喂狗方式能夠更加準(zhǔn)確的監(jiān)視程序運(yùn)行的異常。此外,本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的方法,還可以將系統(tǒng)復(fù)位到應(yīng)用程序處理階段之前,由此節(jié)省當(dāng)應(yīng)用程序異常時(shí)重新運(yùn)行boot和內(nèi)核處理階段所消耗的時(shí)間和線程資源。本發(fā)明實(shí)施例中的嵌入式系統(tǒng)包括但不僅限于基板管理控制器(BaseboardManagement Controller,簡稱BMC)系統(tǒng),本發(fā)明實(shí)施例對此不做限制。本發(fā)明實(shí)施例提供了一種嵌入式系統(tǒng)喂狗的方法,如圖5所示,所述方法包括如下步驟501、接收中央處理器發(fā)送的喂狗使能消息。在喂狗持續(xù)時(shí)間內(nèi),多次接收喂狗使能消息。
502、根據(jù)喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。當(dāng)接收到喂狗使能消息后,在預(yù)設(shè)的喂狗時(shí)長內(nèi),根據(jù)預(yù)設(shè)的喂狗間隔向中央處理器多次發(fā)送喂狗信號。
當(dāng)喂狗使能消息中含有喂狗時(shí)長消息時(shí),在該喂狗時(shí)長內(nèi),根據(jù)預(yù)設(shè)的喂狗間隔向中央處理器多次發(fā)送喂狗信號。本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的方法,能夠定時(shí)接收喂狗使能信息,在接收到喂狗使能信息后完成多次喂狗動作。與現(xiàn)有技術(shù)中由中央處理器完成喂狗動作相比,將高頻率的喂狗動作轉(zhuǎn)移給喂狗裝置處理,可以節(jié)省中央處理器的線程資源,避免由于中央處理器負(fù)載過高導(dǎo)致的喂狗動作丟失的問題。進(jìn)一步的,本發(fā)明實(shí)施例還提供了一種是嵌入式系統(tǒng)喂狗的方法,所述方法是對圖5所示方法的進(jìn)一步擴(kuò)展,如圖6所示,所述方法包括如下步驟601、設(shè)置喂狗持續(xù)時(shí)間以及喂狗間隔。所述喂狗持續(xù)時(shí)間可以設(shè)置為1000s,所述喂狗間隔可以設(shè)置為50ms。進(jìn)一步的,還可以根據(jù)嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。所述階段可以順序?yàn)橐龑?dǎo)(boot)啟動階段、boot運(yùn)行階段、boot調(diào)試階段、內(nèi)核(kernel)引導(dǎo)階段、內(nèi)核工作階段、應(yīng)用啟動階段以及應(yīng)用運(yùn)行階段。所述根據(jù)每個(gè)階段的運(yùn)行特點(diǎn)設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間以及喂狗間隔可以是根據(jù)每個(gè)階段的運(yùn)行時(shí)間設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。其中,喂狗持續(xù)時(shí)間應(yīng)稍長于階段的運(yùn)行時(shí)間。602、接收中央處理器發(fā)送的喂狗使能消息。在喂狗持續(xù)時(shí)間內(nèi),可以多次接收中央處理器發(fā)送的喂狗使能消息。603、根據(jù)喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。當(dāng)喂狗使能消息為喂狗指示時(shí),根據(jù)喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。當(dāng)喂狗使能消息為喂狗時(shí)長消息時(shí),根據(jù)喂狗使能消息中預(yù)設(shè)的喂狗時(shí)長消息以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。具體的,仍如圖3所示,在系統(tǒng)上電開機(jī)時(shí)到達(dá)第一次使能喂狗時(shí)刻值(Os),此時(shí)接收喂狗使能消息,該消息中喂狗時(shí)長為200s。當(dāng)?shù)竭_(dá)第二次使能喂狗時(shí)刻值(195s)時(shí),再次接收喂狗使能消息,該信息用于指示喂狗裝置在第200s到第400s之間繼續(xù)向中央處理器發(fā)送喂狗信號。當(dāng)?shù)竭_(dá)第三次使能喂狗時(shí)刻值(390s)時(shí),第三次接收喂狗使能消息,該信息用于指示喂狗裝置在第400s到第600s之間繼續(xù)向中央處理器發(fā)送喂狗信號,以此類推之。喂狗裝置在喂狗時(shí)長內(nèi)按照預(yù)設(shè)的喂狗間隔(或稱為喂狗頻率)向中央處理器發(fā)送喂狗信號。如果喂狗間隔為50ms,則在一個(gè)喂狗時(shí)長內(nèi)喂狗裝置發(fā)送4000次喂狗信號。在現(xiàn)有技術(shù)中,軟件喂狗的方式是通過建立線程(包內(nèi)核線程和應(yīng)用線程)進(jìn)行喂狗,發(fā)送一次喂狗信號需要建立一個(gè)喂狗線程。在圖3所示的事例中在一段喂狗持續(xù)時(shí)間內(nèi)(1000s),需要建立20000次喂狗線程。而本發(fā)明實(shí)施例中,在一段喂狗持續(xù)時(shí)間內(nèi)只需為發(fā)送5次喂狗使能消息建立5次線程,而將發(fā)送喂狗信號的動作轉(zhuǎn)移給了喂狗裝置執(zhí)行。由于喂狗裝置獨(dú)立于中央處理器,所以其發(fā)送喂狗信號不會增加中央處理器的負(fù)載。相對于現(xiàn)有技術(shù)而言,本發(fā)明實(shí)施例可以減少19995次線程的建立,能夠大大減小中央處理器的負(fù)載,節(jié)省線程資源。此外,當(dāng)中央處理器的負(fù)載過大時(shí),會延遲建立喂狗線程,當(dāng)延遲的時(shí)間超過一個(gè)喂狗間隔時(shí),就會發(fā)生喂狗遺漏的情況,從而導(dǎo)致中央處理器對系統(tǒng)進(jìn)行錯(cuò)誤復(fù)位。由于本發(fā)明實(shí)施例能夠減小中央處理器的負(fù)載,所以還可以避免由于中央處理器負(fù)載過大導(dǎo)致的喂狗信號丟失的問題。在本發(fā)明實(shí)施例的一個(gè)應(yīng)用場景中,從嵌入式系統(tǒng)上電開機(jī)起劃分為引導(dǎo)(boot)啟動階段、boot運(yùn)行階段、boot調(diào)試階段、內(nèi)核(kernel)引導(dǎo)階段、內(nèi)核工作階段、應(yīng)用啟動階段以及應(yīng)用運(yùn)行階段。可以針對嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)進(jìn)行喂狗,其實(shí)現(xiàn)方式可以參考圖6所示的實(shí)現(xiàn)方式并結(jié)合各階段的特點(diǎn)進(jìn)行實(shí)現(xiàn),本發(fā)明實(shí)施例對此不再贅述。在本發(fā)明實(shí)施例的另一個(gè)應(yīng)用場景中,針對系統(tǒng)不同階段的運(yùn)行特點(diǎn),采用了軟硬件相結(jié)合的方式進(jìn)行喂狗,具體的,與圖4所示的實(shí)現(xiàn)方式相同,此處一并不再贅述。進(jìn)一步的,當(dāng)喂狗持續(xù)時(shí)間結(jié)束時(shí),停止發(fā)送喂狗信號。當(dāng)喂狗持續(xù)時(shí)間未結(jié)束時(shí),如果喂狗時(shí)長結(jié)束并且沒有再次接收到喂狗使能消息時(shí),同樣停止向發(fā)送喂狗信號。此外還可以手動停止喂狗動作,在本發(fā)明實(shí)施例的一個(gè)應(yīng)用場景中,當(dāng)對某一個(gè)階段進(jìn)行軟件喂狗時(shí),需要關(guān)閉上一個(gè)階段的喂狗裝置,由此避免當(dāng)系統(tǒng)僵死時(shí),雖然軟件喂狗動作停止,但上喂狗裝置仍然進(jìn)行喂狗導(dǎo)致的無法復(fù)位系統(tǒng)的問題。本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的方法,可以減少內(nèi)核和應(yīng)用程序的線程,降低線程資源的消耗,從而達(dá)到減小中央處理器負(fù)載的目的。同時(shí),由于喂狗使能消息來自于內(nèi)核或應(yīng)用程序,所以與硬件喂狗的方式相比,軟硬件結(jié)合的喂狗方式能夠更加準(zhǔn)確的監(jiān)視程序運(yùn)行的異常。本發(fā)明實(shí)施例中的嵌入式系統(tǒng)包括但不僅限于BMC系統(tǒng),本發(fā)明實(shí)施例對此不做限制。參考圖2所示方法實(shí)施例的實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種中央處理器,如圖7所示,用以實(shí)現(xiàn)圖2所示的方法實(shí)施例,所述中央處理器包括處理器71、發(fā)送器72以及接收器73,其中,所述處理器71,用于判斷是否到達(dá)使能喂狗時(shí)刻值。所述使能喂狗時(shí)刻值具有周期性,在每次到達(dá)使能喂狗時(shí)刻值時(shí),所述發(fā)送器72向喂狗裝置發(fā)送喂狗使能消息。所述發(fā)送器72,用于當(dāng)所述處理器71判斷到達(dá)使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息。喂狗裝置根據(jù)該喂狗使能消息,在接收到該喂狗使能消息到接收到下一次喂狗使能消息期間,向中央處理器多次發(fā)送喂狗信號。所述接收器73,用于接收喂狗信號。進(jìn)一步的,如圖8所示,所述發(fā)送器72包括第一發(fā)送單元81,用于向喂狗裝置發(fā)送喂狗指示。第二發(fā)送單元82,用于向喂狗裝置發(fā)送喂狗時(shí)長消息。所述喂狗使能消息為喂狗指示或者喂狗時(shí)長消息。當(dāng)喂狗使能消息為喂狗指示、時(shí),喂狗裝置在預(yù)設(shè)的喂狗時(shí)長內(nèi)向中央處理器發(fā)送喂狗信號,當(dāng)喂狗使能消息為喂狗時(shí)長消息時(shí),喂狗裝置在喂狗時(shí)長消息中的喂狗時(shí)長內(nèi)向中央處理器發(fā)送喂狗信號,此時(shí)可以不以預(yù)設(shè)的喂狗時(shí)長為準(zhǔn)。進(jìn)一步的,所述處理器71還用于判斷喂狗持續(xù)時(shí)間是否結(jié)束。當(dāng)所述處理器71判斷喂狗持續(xù)時(shí)間結(jié)束時(shí),所述發(fā)送器72還用于停止向喂狗裝置發(fā)送喂狗使能消息。在發(fā)送喂狗使能消息之前,還可以判斷喂狗持續(xù)時(shí)間是否結(jié)束,當(dāng)喂狗持續(xù)時(shí)間結(jié)束時(shí),停止向喂狗裝置發(fā)送喂狗使能消息。喂狗裝置在完成最后一個(gè)喂狗時(shí)長內(nèi)的喂狗動作后,不再發(fā)送喂狗信號。進(jìn)一步的,如圖9所示,所述中央處理器還包括配置器91,用于根據(jù)嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值,其中喂狗持續(xù)時(shí)間大于喂狗時(shí)長。所述喂狗持續(xù)時(shí)間大于所述喂狗時(shí)長。例如可以設(shè)置喂狗持續(xù)時(shí)間為IOOOs (秒)、喂狗時(shí)長為200s,從開始喂狗時(shí)刻起,每間隔195s的時(shí)刻值為使能喂狗時(shí)刻值。所述喂狗持續(xù)時(shí)間為嵌入式系統(tǒng)從上電開機(jī)時(shí)刻到應(yīng)用程序穩(wěn)定運(yùn)行時(shí)刻之間的時(shí)長,實(shí)際應(yīng)用中,喂狗持續(xù)時(shí)間應(yīng)稍長于該時(shí)長。需要說明的是,所述喂狗持續(xù)時(shí)間和所述喂狗時(shí)長是相對時(shí)間段,所述使能喂狗時(shí)刻值是絕對時(shí)間點(diǎn)。所述使能喂狗時(shí)刻值可以以中央處理器中的時(shí)鐘為時(shí)序進(jìn)行設(shè)置,本發(fā)明實(shí)施例對此不做限制。進(jìn)一步的,所述接收器73還用于接收應(yīng)用線程發(fā)送的高級喂狗使能消息。所述發(fā)送器72還用于根據(jù)所述接收器73接收的高級喂狗使能消息向喂狗裝置發(fā)送喂狗使能消息。在應(yīng)用運(yùn)行階段,還可以接收應(yīng)用程序發(fā)送的高級喂狗使能消息并根據(jù)該高級喂狗使能消息向喂狗裝置發(fā)送喂狗使能消息,從而實(shí)現(xiàn)喂狗裝置監(jiān)視內(nèi)核線程、內(nèi)核線程監(jiān)視應(yīng)用程序線程的目的。所述高級喂狗使能消息可以為喂狗指示或者喂狗時(shí)長,當(dāng)接收到高級喂狗使能消息時(shí),向喂狗裝置發(fā)送喂狗使能消息。所述接收器73用于接收應(yīng)用線程發(fā)送的喂狗信號。在應(yīng)用運(yùn)行階段,還可以直接接收應(yīng)用程序發(fā)送的喂狗信號,由此保證內(nèi)核監(jiān)視應(yīng)用程序的正常運(yùn)行。進(jìn)一步的,所述處理器71還用于在應(yīng)用程序處理階段,當(dāng)所述接收器73未按照預(yù)設(shè)喂狗間隔接收到喂狗信號時(shí),將所述嵌入式系統(tǒng)復(fù)位到應(yīng)用程序啟動階段。在應(yīng)用程序處理階段(包括應(yīng)用程序啟動階段和應(yīng)用程序運(yùn)行階段),當(dāng)?shù)竭_(dá)接收喂狗信號時(shí)刻時(shí),如果未接收到喂狗信號,在對系統(tǒng)進(jìn)行復(fù)位時(shí),可以復(fù)位到應(yīng)用程序啟動階段,由此可以節(jié)省從上電開機(jī)到內(nèi)核工作階段之間,多個(gè)運(yùn)行階段重復(fù)運(yùn)行的時(shí)間和資源。
本發(fā)明實(shí)施例提供的中央處理器,可以減少內(nèi)核和應(yīng)用程序的線程,降低線程資源的消耗,從而達(dá)到減小中央處理器負(fù)載的目的。同時(shí),由于喂狗使能消息來自于內(nèi)核或應(yīng)用程序,所以與硬件喂狗的方式相比,軟硬件結(jié)合的喂狗方式能夠更加準(zhǔn)確的監(jiān)視程序運(yùn)行的異常。
此外,本發(fā)明實(shí)施例提供的中央處理器,還可以將系統(tǒng)復(fù)位到應(yīng)用程序處理階段之前,由此節(jié)省當(dāng)應(yīng)用程序異常時(shí)重新運(yùn)行boot和內(nèi)核處理階段所消耗的時(shí)間和線程資源。本發(fā)明實(shí)施例中的嵌入式系統(tǒng)包括但不僅限于BMC系統(tǒng),本發(fā)明實(shí)施例對此不做限制。參考圖6所示的方法實(shí)施 例,本發(fā)明實(shí)施例提供了一種喂狗裝置,如圖10所示,用以實(shí)現(xiàn)圖6所示的方法實(shí)施例,所述喂狗裝置包括接收器1001以及發(fā)送器1002,其中,所述接收器1001,用于接收中央處理器發(fā)送的喂狗使能消息。在喂狗持續(xù)時(shí)間內(nèi),所述接收器1001可以多次接收中央處理器發(fā)送的喂狗使能消息。所述發(fā)送器1002,用于根據(jù)所述接收器1001接收的喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。進(jìn)一步的,所述發(fā)送器1002具體用于根據(jù)喂狗使能消息以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。當(dāng)喂狗使能消息為喂狗指示時(shí),所述發(fā)送器1002根據(jù)喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。當(dāng)喂狗使能消息為喂狗時(shí)長消息時(shí),所述發(fā)送器1002根據(jù)喂狗使能消息中預(yù)設(shè)的喂狗時(shí)長消息以及預(yù)設(shè)的喂狗間隔,向中央處理器發(fā)送喂狗信號。進(jìn)一步的,如圖11所示,所述喂狗裝置還包括配置器1101,用于根據(jù)嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。所述喂狗持續(xù)時(shí)間可以設(shè)置為1000s,所述喂狗間隔可以設(shè)置為50ms。進(jìn)一步的,還可以根據(jù)嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。所述階段順序?yàn)橐龑?dǎo)(boot)啟動階段、boot運(yùn)行階段、boot調(diào)試階段、內(nèi)核(kernel)引導(dǎo)階段、內(nèi)核工作階段、應(yīng)用啟動階段以及應(yīng)用運(yùn)行階段。所述根據(jù)每個(gè)階段的運(yùn)行特點(diǎn)設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間以及喂狗間隔可以是根據(jù)每個(gè)階段的運(yùn)行時(shí)間設(shè)置相應(yīng)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。其中,喂狗持續(xù)時(shí)間應(yīng)稍長于階段的運(yùn)行時(shí)間。進(jìn)一步的,所述發(fā)送器1002還用于當(dāng)喂狗持續(xù)時(shí)間結(jié)束時(shí),停止向中央處理器發(fā)送喂狗信號;或者當(dāng)喂狗時(shí)長結(jié)束并且所述接收器1001沒有接收到中央處理器發(fā)送的喂狗使能消息時(shí),停止向中央處理器發(fā)送喂狗信號。如果喂狗持續(xù)時(shí)間已結(jié)束,則停止發(fā)送喂狗信號,如果喂狗時(shí)長結(jié)束并且沒有再次接收到喂狗使能消息時(shí),同樣停止向發(fā)送喂狗信號。本發(fā)明實(shí)施例提供的喂狗裝置,可以減少內(nèi)核和應(yīng)用程序的線程,降低線程資源的消耗,從而達(dá)到減小中央處理器負(fù)載的目的。同時(shí),由于喂狗使能消息來自于內(nèi)核或應(yīng)用程序,所以與硬件喂狗的方式相比,軟硬件結(jié)合的喂狗方式能夠更加準(zhǔn)確的監(jiān)視程序運(yùn)行的異常。本發(fā)明實(shí)施例中的嵌入式系統(tǒng)包括但不僅限于BMC系統(tǒng),本發(fā)明實(shí)施例對此不做限制。
進(jìn)一步的,參考上述圖7至圖11所述的實(shí)施例,本發(fā)明實(shí)施例提供了一種嵌入式系統(tǒng)喂狗的單板,如圖12所示,所述單板包括中央處理器1201以及喂狗裝置1202,其中,所述中央處理器1201為上述圖7至圖9中任意一幅圖所示的中央處理器,所述喂狗裝置1202為圖10或圖11所示的喂狗裝置。所述中央處理器1201和喂狗裝置1202相連,能夠進(jìn)行數(shù)據(jù)交互。本發(fā)明實(shí)施例提供的嵌入式系統(tǒng)喂狗的單板,可以減少內(nèi)核和應(yīng)用程序的線程,降低線程資源的消耗,從而達(dá)到減小中央處理器負(fù)載的目的。同時(shí),由于喂狗使能消息來自于內(nèi)核或應(yīng)用程序,所以與硬件喂狗的方式相比,軟硬件結(jié)合的喂狗方式能夠更加準(zhǔn)確的監(jiān)視程序運(yùn)行的異常。通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部 分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.ー種嵌入式系統(tǒng)喂狗的方法,其特征在于,包括 判斷是否到達(dá)使能喂狗時(shí)刻值; 當(dāng)?shù)竭_(dá)所述使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述向喂狗裝置發(fā)送喂狗使能消息,包括 向所述喂狗裝置發(fā)送喂狗指示;或者, 向所述喂狗裝置發(fā)送喂狗時(shí)長消息。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括 判斷喂狗持續(xù)時(shí)間是否結(jié)束; 當(dāng)所述喂狗持續(xù)時(shí)間結(jié)束時(shí),停止向所述喂狗裝置發(fā)送喂狗使能消息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述判斷是否到達(dá)使能喂狗時(shí)刻值之前,所述方法還包括 根據(jù)所述嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值,所述喂狗持續(xù)時(shí)間大于所述喂狗時(shí)長。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括 接收應(yīng)用線程發(fā)送的高級喂狗使能消息; 根據(jù)所述高級喂狗使能消息向所述喂狗裝置發(fā)送喂狗使能消息;或者, 接收所述應(yīng)用線程發(fā)送的喂狗信號。
6.根據(jù)權(quán)利要求I至5中任意一項(xiàng)所述的方法,其特征在于,所述方法還包括 在應(yīng)用程序處理階段,當(dāng)未按照預(yù)設(shè)喂狗間隔接收到喂狗信號吋,將所述嵌入式系統(tǒng)復(fù)位到應(yīng)用程序啟動階段。
7.ー種嵌入式系統(tǒng)喂狗的方法,其特征在于,包括 接收中央處理器發(fā)送的喂狗使能消息; 根據(jù)所述喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號。
8.根據(jù)權(quán)利要求7所述的方法,其特征在干,當(dāng)所述喂狗使能消息為喂狗時(shí)長消息吋,所述根據(jù)所述喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號,包括 根據(jù)所述喂狗使能消息以及所述預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括 根據(jù)所述嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,當(dāng)所述喂狗持續(xù)時(shí)間結(jié)束時(shí),停止向所述中央處理器發(fā)送喂狗信號;或者, 當(dāng)所述喂狗時(shí)長結(jié)束并且沒有接收到所述中央處理器發(fā)送的喂狗使能消息時(shí),停止向所述中央處理器發(fā)送喂狗信號。
11.ー種中央處理器,其特征在于,包括 處理器,用于判斷是否到達(dá)使能喂狗時(shí)刻值; 發(fā)送器,用于當(dāng)所述處理器判斷到達(dá)所述使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息; 接收器,用于接收喂狗信號。
12.根據(jù)權(quán)利要求11所述的中央處理器,其特征在于,所述發(fā)送器包括 第一發(fā)送單元,用于向所述喂狗裝置發(fā)送喂狗指示; 第二發(fā)送單元,用于向所述喂狗裝置發(fā)送喂狗時(shí)長消息。
13.根據(jù)權(quán)利要求12所述的中央處理器,其特征在于,所述處理器還用于判斷喂狗持續(xù)時(shí)間是否結(jié)束; 當(dāng)所述處理器判斷所述喂狗持續(xù)時(shí)間結(jié)束時(shí),所述發(fā)送器還用于停止向所述喂狗裝置發(fā)送喂狗使能消息。
14.根據(jù)權(quán)利要求13所述的中央處理器,其特征在于,所述中央處理器還包括 配置器,用于根據(jù)所述嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間、喂狗時(shí)長以及使能喂狗時(shí)刻值,所述喂狗持續(xù)時(shí)間大于所述喂狗時(shí)長。
15.根據(jù)權(quán)利要求14所述的中央處理器,其特征在于,所述接收器還用于接收應(yīng)用線程發(fā)送的高級喂狗使能消息; 所述發(fā)送器還用于根據(jù)所述接收器接收的所述高級喂狗使能消息向所述喂狗裝置發(fā)送喂狗使能消息; 所述接收器用于接收所述應(yīng)用線程發(fā)送的喂狗信號。
16.根據(jù)權(quán)利要求11至15中任意一項(xiàng)所述的中央處理器,其特征在于,所述處理器還用于在應(yīng)用程序處理階段,當(dāng)所述接收器未按照預(yù)設(shè)喂狗間隔接收到喂狗信號吋,將所述嵌入式系統(tǒng)復(fù)位到應(yīng)用程序啟動階段。
17.—種喂狗裝置,其特征在于,包括 接收器,用于接收中央處理器發(fā)送的喂狗使能消息; 發(fā)送器,用于根據(jù)所述接收器接收的所述喂狗使能消息、預(yù)設(shè)的喂狗時(shí)長以及預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號。
18.根據(jù)權(quán)利要求17所述的喂狗裝置,其特征在于,所述發(fā)送器具體用于根據(jù)所述喂狗使能消息以及所述預(yù)設(shè)的喂狗間隔,向所述中央處理器發(fā)送喂狗信號。
19.根據(jù)權(quán)利要求18所述的喂狗裝置,其特征在于,所述喂狗裝置還包括 配置器,用于根據(jù)所述嵌入式系統(tǒng)上電后各個(gè)運(yùn)行階段的特點(diǎn)設(shè)置對應(yīng)各個(gè)階段的喂狗持續(xù)時(shí)間以及喂狗間隔。
20.根據(jù)權(quán)利要求19所述的喂狗裝置,其特征在于,所述發(fā)送器還用于當(dāng)所述喂狗持續(xù)時(shí)間結(jié)束時(shí),停止向所述中央處理器發(fā)送喂狗信號;或者, 當(dāng)所述喂狗時(shí)長結(jié)束并且所述接收器沒有接收到所述中央處理器發(fā)送的喂狗使能消息時(shí),停止向所述中央處理器發(fā)送喂狗信號。
21.—種嵌入式系統(tǒng)喂狗的單板,其特征在于,所述單板包括如權(quán)利要求11至16中任意一項(xiàng)所述的中央處理器,以及如權(quán)利要求17至20中任意一項(xiàng)所述的喂狗裝置,其中所述中央處理器和所述喂狗裝置之間具有數(shù)據(jù)交互能力。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)喂狗的方法、裝置及單板,涉及通信技術(shù)領(lǐng)域,為降低CPU負(fù)載,節(jié)省線程資源,同時(shí)解決由于CPU負(fù)載過高導(dǎo)致的系統(tǒng)誤復(fù)位的問題而發(fā)明。所述方法包括判斷是否到達(dá)使能喂狗時(shí)刻值;當(dāng)?shù)竭_(dá)所述使能喂狗時(shí)刻值時(shí),向喂狗裝置發(fā)送喂狗使能消息。本發(fā)明主要應(yīng)用于嵌入式系統(tǒng)的異常檢測。
文檔編號G06F11/00GK102637139SQ20121010895
公開日2012年8月15日 申請日期2012年4月13日 優(yōu)先權(quán)日2012年4月13日
發(fā)明者劉洪廣, 廖義祥, 張羽 申請人:華為技術(shù)有限公司