欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

嵌入式系統(tǒng)的監(jiān)控管理方法和裝置制造方法

文檔序號(hào):6626999閱讀:220來(lái)源:國(guó)知局
嵌入式系統(tǒng)的監(jiān)控管理方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種嵌入式系統(tǒng)的監(jiān)控管理方法和裝置,該方法包括:在第一定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況;根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的啟動(dòng)情況;在確定嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉第一定時(shí)器,開啟第二定時(shí)器;在第二定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況;根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的運(yùn)行情況。本發(fā)明通過(guò)兩個(gè)定時(shí)器來(lái)對(duì)嵌入式系統(tǒng)的啟動(dòng)情況和運(yùn)行情況分別進(jìn)行監(jiān)控,實(shí)現(xiàn)了對(duì)嵌入式系統(tǒng)的全程監(jiān)控,并且,在系統(tǒng)啟動(dòng)階段無(wú)需喂狗,增強(qiáng)了監(jiān)控的靈活性和可移植性。
【專利說(shuō)明】嵌入式系統(tǒng)的監(jiān)控管理方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,具體來(lái)說(shuō),涉及一種嵌入式系統(tǒng)的管理方法和裝置。

【背景技術(shù)】
[0002]嵌入式系統(tǒng)的設(shè)備在運(yùn)行過(guò)程中往往會(huì)出現(xiàn)由于某種漏洞所導(dǎo)致的系統(tǒng)運(yùn)行異常,例如在設(shè)備升級(jí)過(guò)程中突然斷電,那么設(shè)備再次上電啟動(dòng)時(shí)就會(huì)出現(xiàn)由于鏡像不完整而造成的啟動(dòng)失敗的情況;再如,對(duì)于應(yīng)用層的程序來(lái)說(shuō),由于在運(yùn)行過(guò)程中的死鎖或者其他操作原因同樣會(huì)導(dǎo)致整個(gè)系統(tǒng)的運(yùn)行異常,而這些系統(tǒng)的異常情況均需要通過(guò)借助于一種監(jiān)控芯片(例如“看門狗”)通過(guò)對(duì)系統(tǒng)的運(yùn)行狀態(tài)進(jìn)行監(jiān)控的方式來(lái)對(duì)異常的系統(tǒng)進(jìn)行復(fù)位。
[0003]而對(duì)于這種類似與“看門狗”的監(jiān)控方案目前有以下兩種技術(shù)方案,一種為使用CPU內(nèi)部自帶的“看門狗”,但是這種自帶的“看門狗”的監(jiān)控方案與“看門狗”的啟動(dòng)和初始化時(shí)間密切聯(lián)系,即,當(dāng)系統(tǒng)在看門狗初始化或者啟動(dòng)前異常,那么該方法就無(wú)法對(duì)系統(tǒng)進(jìn)行復(fù)位重啟。
[0004]而現(xiàn)有的另一種“看門狗”則是通過(guò)使用外置“看門狗”的芯片的方式來(lái)避免內(nèi)置“看門狗”所帶來(lái)的問(wèn)題,但是這種技術(shù)方案需要在系統(tǒng)一上電就必須不斷喂狗,而這就必須在Bootloader (其中,BootLoader是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行)和內(nèi)核的各個(gè)階段均添加相應(yīng)的喂狗代碼,而且在系統(tǒng)進(jìn)行程序升級(jí)或者用戶端在進(jìn)行系統(tǒng)的代碼調(diào)試時(shí),無(wú)法禁用“看門狗”,大大降低了系統(tǒng)的靈活性以及可移植性。
[0005]針對(duì)相關(guān)技術(shù)中對(duì)監(jiān)控不全面、需要全程喂狗、靈活性和可移植性差的問(wèn)題,目前尚未提出有效的解決方案。


【發(fā)明內(nèi)容】

[0006]針對(duì)相關(guān)技術(shù)中對(duì)監(jiān)控不全面、需要全程喂狗、靈活性和可移植性差的問(wèn)題,本發(fā)明提出一種嵌入式系統(tǒng)的監(jiān)控管理方法和裝置,能夠通過(guò)兩個(gè)定時(shí)器來(lái)對(duì)嵌入式系統(tǒng)的啟動(dòng)情況和運(yùn)行情況分別進(jìn)行監(jiān)控,實(shí)現(xiàn)了對(duì)嵌入式系統(tǒng)的全程監(jiān)控,并且,在系統(tǒng)啟動(dòng)階段無(wú)需喂狗,增強(qiáng)了監(jiān)控的靈活性和可移植性。
[0007]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0008]根據(jù)本發(fā)明的一個(gè)方面,提供了一種嵌入式系統(tǒng)的監(jiān)控管理方法。
[0009]該監(jiān)控管理方法包括:
[0010]在第一定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況;
[0011]根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的啟動(dòng)情況;
[0012]在確定嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉第一定時(shí)器,開啟第二定時(shí)器;
[0013]在第二定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況;
[0014]根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的運(yùn)行情況。
[0015]其中,第一定時(shí)器在嵌入式系統(tǒng)啟動(dòng)時(shí)啟動(dòng),且第一定時(shí)器的定時(shí)閾值大于嵌入式系統(tǒng)的啟動(dòng)成功時(shí)間。
[0016]優(yōu)選的,在檢測(cè)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況時(shí),可通過(guò)檢測(cè)第一計(jì)數(shù)器的數(shù)值的方式來(lái)檢測(cè),其中,第一計(jì)數(shù)器用于表示嵌入式系統(tǒng)的啟動(dòng)情況,并且,在第一計(jì)時(shí)器啟動(dòng)時(shí),第一計(jì)數(shù)器的數(shù)值被預(yù)先清零;
[0017]并且,在根據(jù)檢測(cè)結(jié)果確定第一計(jì)數(shù)器的數(shù)值不為零的情況下,可確定接收到表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令。
[0018]此外,在根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,來(lái)確定嵌入式系統(tǒng)的啟動(dòng)情況時(shí),可在接收到表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的情況下,來(lái)確定嵌入式系統(tǒng)啟動(dòng)成功。
[0019]另外,在確定嵌入式系統(tǒng)啟動(dòng)失敗的情況下,該監(jiān)控管理方法進(jìn)一步包括:
[0020]發(fā)送系統(tǒng)啟動(dòng)異常信息至所述嵌入式系統(tǒng);
[0021 ] 發(fā)送復(fù)位信號(hào)至所述嵌入式系統(tǒng);
[0022]重啟所述第一定時(shí)器。
[0023]優(yōu)選的,在檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況時(shí),可通過(guò)檢測(cè)多個(gè)第二計(jì)數(shù)器的數(shù)值的方式來(lái)檢測(cè),其中,多個(gè)第二計(jì)數(shù)器的數(shù)值與表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況一一對(duì)應(yīng),并且,在第二計(jì)時(shí)器啟動(dòng)時(shí),多個(gè)第二計(jì)數(shù)器的數(shù)值被預(yù)先清零;
[0024]并且,在根據(jù)檢測(cè)結(jié)果確定多個(gè)第二計(jì)數(shù)器中至少之一的第二計(jì)數(shù)器的數(shù)值為零的情況下,可確定沒有對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整;
[0025]在根據(jù)檢測(cè)結(jié)果確定多個(gè)第二計(jì)數(shù)器的數(shù)值均不為零的情況下,可確定對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整。
[0026]另外,在根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,來(lái)確定嵌入式系統(tǒng)的運(yùn)行情況時(shí),可在沒有對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整的情況下,來(lái)確定嵌入式系統(tǒng)運(yùn)行異常;
[0027]并在確定嵌入式系統(tǒng)運(yùn)行異常的情況下,發(fā)送復(fù)位信號(hào)和/或異常信息至嵌入式系統(tǒng)。
[0028]此外,在對(duì)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況檢測(cè)完成之后,重新啟動(dòng)所述第二定時(shí)器。
[0029]根據(jù)本發(fā)明的另一方面,提供了一種嵌入式系統(tǒng)的監(jiān)控管理裝置。
[0030]該監(jiān)控管理裝置包括:
[0031]第一檢測(cè)模塊,用于在第一定時(shí)器溢出的情況下,檢測(cè)表不嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況;
[0032]第一確定模塊,用于根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的啟動(dòng)情況;
[0033]控制模塊,用于在確定嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉第一定時(shí)器,開啟第二定時(shí)器;
[0034]第二檢測(cè)模塊,用于在第二定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況;
[0035]第二確定模塊,用于根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的運(yùn)行情況。
[0036]其中,第一定時(shí)器在嵌入式系統(tǒng)啟動(dòng)時(shí)啟動(dòng),且第一定時(shí)器的定時(shí)閾值大于嵌入式系統(tǒng)的啟動(dòng)成功時(shí)間。
[0037]本發(fā)明通過(guò)兩個(gè)定時(shí)器來(lái)對(duì)嵌入式系統(tǒng)的啟動(dòng)情況和運(yùn)行情況分別進(jìn)行監(jiān)控,實(shí)現(xiàn)了對(duì)嵌入式系統(tǒng)的全程監(jiān)控,并且,在系統(tǒng)啟動(dòng)階段無(wú)需喂狗,增強(qiáng)了監(jiān)控的靈活性和可移植性。

【專利附圖】

【附圖說(shuō)明】
[0038]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0039]圖1是根據(jù)本發(fā)明實(shí)施例的嵌入式系統(tǒng)的監(jiān)控管理方法的流程圖;
[0040]圖2是根據(jù)本發(fā)明實(shí)施例的Spartan芯片與CPU的連接示意圖;
[0041]圖3是根據(jù)本發(fā)明實(shí)施例的Spartan的監(jiān)控管理方法的流程圖;
[0042]圖4是根據(jù)本發(fā)明一具體實(shí)施例的嵌入式系統(tǒng)的監(jiān)控管理方法的流程圖;
[0043]圖5是根據(jù)本發(fā)明實(shí)施例的嵌入式系統(tǒng)的監(jiān)控管理裝置的框圖。

【具體實(shí)施方式】
[0044]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]根據(jù)本發(fā)明的實(shí)施例,提供了一種嵌入式系統(tǒng)的監(jiān)控管理方法。
[0046]如圖1所示,根據(jù)本發(fā)明實(shí)施例的嵌入式系統(tǒng)的監(jiān)控管理方法包括:
[0047]步驟S101,在第一定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況;
[0048]步驟S103,根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的啟動(dòng)情況;
[0049]步驟S105,在確定嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉第一定時(shí)器,開啟第二定時(shí)器;
[0050]步驟S107,在第二定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況;
[0051]步驟S109,根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的運(yùn)行情況。
[0052]通過(guò)本發(fā)明的上述方案,能夠?qū)崿F(xiàn)對(duì)嵌入式系統(tǒng)的全程監(jiān)控,并且,在系統(tǒng)啟動(dòng)階段無(wú)需喂狗,增強(qiáng)了監(jiān)控的靈活性和可移植性。
[0053]為了更好的理解本發(fā)明的上述技術(shù)方案,下面結(jié)合一具體實(shí)施例對(duì)本發(fā)明的上述技術(shù)方案進(jìn)行詳細(xì)闡述。
[0054]在本實(shí)施例中,采用了 Spartan_3AN系列的FPGA ( 一種可編程芯片)來(lái)實(shí)現(xiàn)對(duì)嵌入式系統(tǒng)的監(jiān)控管理,下面以Spartan來(lái)表示本芯片。
[0055]在通過(guò)Spartan對(duì)嵌入式操作系統(tǒng)進(jìn)行監(jiān)控時(shí),Spartan與嵌入式操作系統(tǒng)的CPU之間可通過(guò)如圖2所示的I2C總線、GP1通道、復(fù)位信號(hào)線分別進(jìn)行通信。
[0056]具體的,參照如圖3所示的Spartan內(nèi)部模塊與CPU之間的交互流程圖,其中,在Spartan的內(nèi)部模塊中包括了 I2C控制器、?;钅K、復(fù)位模塊、動(dòng)態(tài)關(guān)閉/打開或設(shè)置?;钅K,而Spartan的極大內(nèi)部模塊與CPU之間通過(guò)I2C總線、GP1通道、復(fù)位信號(hào)線分別進(jìn)行通信。
[0057]其中,在Spartan和CPU之間可通過(guò)I2C總線來(lái)建立I2C通道,在I2C通道中CPU可定期向Spartan發(fā)送預(yù)定指令(這里為心跳指令,即,Spartan可根據(jù)該預(yù)定指令(即,約定指令)來(lái)確定CPU啟動(dòng)或運(yùn)行狀態(tài)正常);
[0058]此外,Spartan和CPU之間還可通過(guò)多個(gè)GP1引腳來(lái)建立多個(gè)GP1通道,其中,各個(gè)GP1引腳的狀態(tài)與嵌入式系統(tǒng)的啟動(dòng)情況、以及每個(gè)進(jìn)程(應(yīng)用程序)的運(yùn)行狀況分別相對(duì)應(yīng),在實(shí)際應(yīng)用時(shí),Spartan可將系統(tǒng)復(fù)位重啟的原因和/或系統(tǒng)運(yùn)行過(guò)程中存在的程序異常信息以改變相應(yīng)的GP1引腳的狀態(tài)的方式將異常信息記錄并告知CPU,實(shí)現(xiàn)Spartan和CPU之間的狀態(tài)的交互。
[0059]另外,Spartan和CPU之間還可通過(guò)復(fù)位信號(hào)線建立獨(dú)立的復(fù)位通道,從而實(shí)現(xiàn)Spartan向CPU發(fā)送復(fù)位信號(hào),實(shí)現(xiàn)對(duì)CPU的復(fù)位;
[0060]從圖3中可以看出,Spartan通過(guò)I2C控制器接收來(lái)自CPU的心跳指令,并將心跳指令發(fā)送至?;钅K,而?;钅K如果沒有接收到心跳指令將向復(fù)位模塊發(fā)出復(fù)位操作的指令,而復(fù)位模塊在接收到了復(fù)位操作的指令后,將會(huì)向CPU發(fā)送復(fù)位信號(hào)和/或以改變相應(yīng)的GP1引腳的狀態(tài)的方式來(lái)將造成系統(tǒng)復(fù)位的原因告知CPU。
[0061]此外,為了使Spartan對(duì)CPU的監(jiān)控更加靈活,CPU在bootloader階段(即系統(tǒng)啟動(dòng)階段)或者系統(tǒng)啟動(dòng)后(即,系統(tǒng)運(yùn)行階段)均可以通過(guò)I2C通道向I2C控制器發(fā)送控制命令的方式來(lái)對(duì)CPU的監(jiān)控進(jìn)行靈活控制,具體的,I2C控制器可根據(jù)用戶的控制命令對(duì)Spartan中的動(dòng)態(tài)關(guān)閉/打開或設(shè)置?;钅K進(jìn)行控制,例如,當(dāng)在bootloader進(jìn)行程序升級(jí)或者用戶態(tài)進(jìn)行代碼調(diào)試時(shí),用戶通過(guò)I2C通道向Spartan發(fā)送停止監(jiān)控CPU的指令,那么I2C控制器就可以根據(jù)用戶的指令控制Spartan中的動(dòng)態(tài)關(guān)閉/打開或設(shè)置保活模塊發(fā)出關(guān)閉?;钅K的指令,從而停止對(duì)CPU的監(jiān)控,也就是說(shuō),用戶可以通過(guò)I2C通道向Spartan下發(fā)打開或關(guān)閉保活模塊的命令,還可以對(duì)?;钅K進(jìn)行自定義的配置,當(dāng)Spartan接收到相應(yīng)指令后,就可以進(jìn)行相應(yīng)的處理,實(shí)現(xiàn)本芯片看門狗功能的動(dòng)態(tài)配置,進(jìn)而增強(qiáng)了對(duì)嵌入式系統(tǒng)全程監(jiān)控的靈活性和用戶體驗(yàn)感。
[0062]其中,對(duì)于圖3所示的?;钅K(又叫看門狗模塊)的具體實(shí)現(xiàn)流程可以參照?qǐng)D4,從圖4中可以看出,在看門狗模塊中設(shè)置了兩個(gè)看門狗定時(shí)器,即第一定時(shí)器和第二定時(shí)器(這里為定時(shí)器A和定時(shí)器B),并且,兩個(gè)定時(shí)器都有定時(shí)閾值。
[0063]其中,定時(shí)器A對(duì)應(yīng)著一個(gè)計(jì)數(shù)器TA,用于接收表示嵌入式操作系統(tǒng)啟動(dòng)成功的心跳指令,當(dāng)TA接收到了心跳指令,其就會(huì)自動(dòng)加一,那么定時(shí)器A就可通過(guò)檢測(cè)計(jì)數(shù)器TA的數(shù)值來(lái)確定心跳指令的接收情況,但是,值得注意的是,在本發(fā)明的技術(shù)方案中,在CPU啟動(dòng)階段,Spartan并不進(jìn)行喂狗操作,即在CPU啟動(dòng)階段,Spartan并不接收來(lái)自CPU的心跳指令,而CPU也是在啟動(dòng)完成后才會(huì)發(fā)送表示嵌入式系統(tǒng)啟動(dòng)成功的心跳指令至Spartan,因此,本發(fā)明避免了現(xiàn)有的看門狗芯片中所存在的系統(tǒng)一上電就開始喂狗(接收心跳指令)的問(wèn)題,從而無(wú)需在系統(tǒng)的bootloader和內(nèi)核的各個(gè)階段均添加相應(yīng)的喂狗代碼的操作,提高了監(jiān)控系統(tǒng)的靈活性和可移植性。
[0064]而定時(shí)器B則對(duì)應(yīng)著多個(gè)計(jì)數(shù)器TBn (TBl、TB2…TBn),用于接收用戶態(tài)不同的進(jìn)程(應(yīng)用程序)通過(guò)I2C通道定期發(fā)送的心跳指令,用于表示不同的進(jìn)程在不同的運(yùn)行階段是否正常,從而實(shí)現(xiàn)在嵌入式系統(tǒng)運(yùn)行階段對(duì)多個(gè)運(yùn)行的應(yīng)用程序的監(jiān)控。
[0065]具體的,從圖4中可以看出,當(dāng)?;罟δ軉?dòng)后,定時(shí)器A也會(huì)被清零并在嵌入式系統(tǒng)啟動(dòng)時(shí)同步啟動(dòng),并且,為了確保CPU操作系統(tǒng)(即嵌入式系統(tǒng))能夠完全啟動(dòng),定時(shí)器A的定時(shí)閾值大于嵌入式系統(tǒng)的啟動(dòng)成功時(shí)間(這里可以稱為系統(tǒng)的正常啟動(dòng)時(shí)間)。
[0066]那么當(dāng)在定時(shí)器A溢出時(shí),Spartan就可檢測(cè)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,并根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,來(lái)確定嵌入式系統(tǒng)的啟動(dòng)情況。
[0067]其中,在檢測(cè)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況時(shí),就可通過(guò)檢測(cè)計(jì)數(shù)器TA的數(shù)值的方式來(lái)檢測(cè)(即,檢測(cè)計(jì)數(shù)器TA是否有心跳計(jì)數(shù)),具體的,由于定時(shí)器A的定時(shí)閾值(例如5min)大于系統(tǒng)正常啟動(dòng)的時(shí)間(例如3min),那么,當(dāng)定時(shí)器A溢出時(shí),如果系統(tǒng)啟動(dòng)正常,在系統(tǒng)啟動(dòng)成功后到定時(shí)器A溢出之前,計(jì)數(shù)器TA必然是能夠在2min內(nèi)接收到來(lái)自CPU的心跳指令的,即計(jì)數(shù)器TA是存在數(shù)值;而如果系統(tǒng)啟動(dòng)異常,那么,即便超過(guò)了 2min,計(jì)數(shù)器TA也是無(wú)法接收到心跳指令的,此時(shí),計(jì)數(shù)器TA必然是沒有數(shù)值的,也就是說(shuō),計(jì)數(shù)器TA可以用于表示嵌入式系統(tǒng)的啟動(dòng)情況,并且,值得注意的是,在計(jì)時(shí)器A啟動(dòng)時(shí),計(jì)數(shù)器TA的數(shù)值也會(huì)被預(yù)先清零,而這可以避免系統(tǒng)上次啟動(dòng)成功時(shí)的計(jì)數(shù)對(duì)本次的系統(tǒng)啟動(dòng)監(jiān)控產(chǎn)生干擾或影響。
[0068]那么Spartan通過(guò)檢測(cè)計(jì)數(shù)器TA的數(shù)值,在根據(jù)檢測(cè)結(jié)果確定計(jì)數(shù)器TA的數(shù)值為零的情況下,就可確定Spartan未接收到表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令(即,表示系統(tǒng)啟動(dòng)成功的心跳指令)。
[0069]那么在確定嵌入式系統(tǒng)啟動(dòng)失敗的情況下,根據(jù)本發(fā)明實(shí)施例的監(jiān)控管理方法進(jìn)一步包括:由圖3所示的復(fù)位模塊產(chǎn)生復(fù)位信號(hào)發(fā)送至嵌入式系統(tǒng)(這里為CPU);而由于此次發(fā)送的復(fù)位信號(hào)是由于系統(tǒng)啟動(dòng)異常所引起的,因此,Spartan還可發(fā)送系統(tǒng)啟動(dòng)異常信息至CPU,這里則是通過(guò)將對(duì)應(yīng)啟動(dòng)階段的GP1引腳置為高電平(其中,默認(rèn)情況下為低電平)來(lái)標(biāo)識(shí)此次系統(tǒng)重啟是由于CPU啟動(dòng)階段異常所導(dǎo)致的;并重啟定時(shí)器A,即清零啟動(dòng)定時(shí)器A,對(duì)復(fù)位的CPU繼續(xù)進(jìn)行啟動(dòng)階段的監(jiān)控。
[0070]而當(dāng)CPU正常啟動(dòng)后,CPU就可以讀取所有GP1引腳的狀態(tài)(高電平、低電平),并根據(jù)讀取到的內(nèi)容來(lái)查表,從而確定造成系統(tǒng)重啟的異常原因(而這里則是系統(tǒng)啟動(dòng)異常所導(dǎo)致的系統(tǒng)復(fù)位),并將造成系統(tǒng)復(fù)位的原因?qū)懭肴罩疚募小?br> [0071]那么當(dāng)Spartan通過(guò)檢測(cè)計(jì)數(shù)器TA的數(shù)值,在根據(jù)檢測(cè)結(jié)果確定計(jì)數(shù)器TA的數(shù)值不為零的情況下,就可確定接收到表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令(即,表示系統(tǒng)啟動(dòng)成功的心跳指令),那么就可確定CPU啟動(dòng)成功,而在確定CPU啟動(dòng)成功的情況下,就可關(guān)閉定時(shí)器A,并清零定時(shí)器B、啟動(dòng)定時(shí)器B,從而對(duì)CPU的運(yùn)行階段進(jìn)行監(jiān)控。
[0072]那么當(dāng)定時(shí)器B溢出時(shí),Spartan就可檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,并根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,來(lái)確定嵌入式系統(tǒng)的運(yùn)行情況。
[0073]其中,在檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況時(shí),就可通過(guò)檢測(cè)多個(gè)第二計(jì)數(shù)器(這里為TBn)的數(shù)值的方式來(lái)檢測(cè)(即,檢測(cè)每個(gè)計(jì)數(shù)器TB是否有心跳計(jì)數(shù)),具體的,在系統(tǒng)運(yùn)行過(guò)程中,每個(gè)運(yùn)行的應(yīng)用程序都會(huì)定期向與之對(duì)應(yīng)的計(jì)數(shù)器TB發(fā)送心跳指令,如果計(jì)數(shù)器TB接收到了心跳指令,則將數(shù)值自動(dòng)加1,也就是說(shuō),如果CPU中的進(jìn)程運(yùn)行正常,與之相對(duì)應(yīng)的計(jì)數(shù)器TB中必然是存在數(shù)值的;而如果該進(jìn)程運(yùn)行異常,那么與之相對(duì)應(yīng)的計(jì)數(shù)器TB也是無(wú)法接收到心跳指令的,也就是說(shuō),該計(jì)數(shù)器TB必然是沒有數(shù)值的,也就是說(shuō),多個(gè)計(jì)數(shù)器TB可以用于表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,并且,多個(gè)計(jì)數(shù)器TB的數(shù)值與表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況是一一對(duì)應(yīng)的,即一個(gè)計(jì)數(shù)器TB接收CPU中一種進(jìn)程的心跳指令,也就是說(shuō),一個(gè)計(jì)數(shù)器TB用于監(jiān)控CPU中與之對(duì)應(yīng)的一個(gè)進(jìn)程的運(yùn)行情況,并且計(jì)數(shù)器TB與CPU的進(jìn)程是一一對(duì)應(yīng)的,從而實(shí)現(xiàn)對(duì)嵌入式系統(tǒng)運(yùn)行的全面監(jiān)控,不漏掉任何一個(gè)進(jìn)程,但是,值得注意的是,在計(jì)時(shí)器B啟動(dòng)時(shí),每個(gè)計(jì)數(shù)器TB的數(shù)值均會(huì)被預(yù)先清零,而這可以避免系統(tǒng)上次啟動(dòng)成功時(shí)的計(jì)數(shù)對(duì)本次的系統(tǒng)啟動(dòng)監(jiān)控產(chǎn)生干擾或影響。
[0074]具體的,如圖4所示,在定時(shí)器B溢出后,Spartan會(huì)輪詢所有的計(jì)數(shù)器TB,以檢測(cè)其是否存在數(shù)值,如果其存在數(shù)值,則表明該計(jì)數(shù)器TB接收到了與之對(duì)應(yīng)的進(jìn)程的心跳指令,即該進(jìn)程運(yùn)行正常;
[0075]那么Spartan將繼續(xù)檢測(cè)下一個(gè)計(jì)數(shù)器TB的數(shù)值,而如果通過(guò)檢測(cè)發(fā)現(xiàn)該計(jì)數(shù)器TB數(shù)值為零,那么Spartan將判斷該計(jì)數(shù)器TB所對(duì)應(yīng)的進(jìn)程是否為CPU運(yùn)行過(guò)程中的關(guān)鍵進(jìn)程,而如果其為關(guān)鍵進(jìn)程,則向復(fù)位模塊發(fā)出復(fù)位操作的指令,使其產(chǎn)生復(fù)位信號(hào),并將復(fù)位信號(hào)發(fā)送至CPU,使CPU重啟,同時(shí)Spartan還可發(fā)送異常信息至CPU,這里則是通過(guò)將對(duì)應(yīng)該關(guān)鍵進(jìn)程的GP1引腳置為高電平(其中,默認(rèn)情況下為低電平)來(lái)標(biāo)識(shí)此次系統(tǒng)重啟是由于該關(guān)鍵進(jìn)程運(yùn)行異常所導(dǎo)致的,并將定時(shí)器B關(guān)閉,停止對(duì)CPU運(yùn)行階段的監(jiān)控;
[0076]而如果通過(guò)檢測(cè)發(fā)現(xiàn)數(shù)值為零的計(jì)數(shù)器TB所對(duì)應(yīng)的進(jìn)程并非是CPU的關(guān)鍵進(jìn)程,那么Spartan則無(wú)需發(fā)送復(fù)位信號(hào)至CPU,只需將對(duì)應(yīng)該進(jìn)程的GP1引腳拉高(其中,默認(rèn)情況下為低電平)來(lái)標(biāo)識(shí)在此次系統(tǒng)運(yùn)行階段該進(jìn)程出現(xiàn)異常,那么CPU就可以通過(guò)讀取GP1引腳的狀態(tài)并通過(guò)查表來(lái)確定該進(jìn)程在運(yùn)行過(guò)程中存在哪些異常,然后,CPU的主進(jìn)程就可以通過(guò)注冊(cè)GP1中斷處理函數(shù)來(lái)對(duì)該進(jìn)程進(jìn)行異常處理。
[0077]雖然,當(dāng)異常的進(jìn)程為非關(guān)鍵進(jìn)程的情況下,Spartan不會(huì)向CPU發(fā)送復(fù)位信號(hào),但是,在通過(guò)檢測(cè)確定多個(gè)計(jì)數(shù)器TB中至少有一個(gè)計(jì)數(shù)器TB的數(shù)值為零的情況下,就可確定沒有對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整;并且,在沒有對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整的情況下,就可確定嵌入式系統(tǒng)運(yùn)行異常;并在確定嵌入式系統(tǒng)運(yùn)行異常的情況下,就可發(fā)送復(fù)位信號(hào)和/或異常信息至嵌入式系統(tǒng)。
[0078]另外,在一個(gè)實(shí)施例中,在根據(jù)檢測(cè)結(jié)果確定多個(gè)第二計(jì)數(shù)器的數(shù)值均不為零的情況下,可確定對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整。
[0079]此外,在另一個(gè)實(shí)施例中,在根據(jù)表示嵌入式系統(tǒng)中多個(gè)進(jìn)程的多個(gè)預(yù)定指令的接收情況,來(lái)確定嵌入式系統(tǒng)的運(yùn)行情況時(shí),就可在對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整的情況下,來(lái)確定嵌入式系統(tǒng)運(yùn)行正常;
[0080]那么,通過(guò)以上流程Spartan對(duì)所有的計(jì)數(shù)器TB都檢測(cè)完成后,即在對(duì)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況檢測(cè)完成之后,就可重新啟動(dòng)、清零定時(shí)器B,當(dāng)然也需要將所有的計(jì)數(shù)器TB清零,從而開始下一次的計(jì)數(shù)器輪詢檢測(cè),從而監(jiān)控嵌入式系統(tǒng)中各個(gè)程序的運(yùn)行情況。
[0081]但是應(yīng)當(dāng)注意的是,在本實(shí)施例中,一個(gè)定時(shí)器B是對(duì)應(yīng)著多個(gè)計(jì)數(shù)器TB,但是在實(shí)際應(yīng)用中,也可以擴(kuò)展到多個(gè)定時(shí)器BI…Bn各自對(duì)應(yīng)著計(jì)數(shù)器TB I…TBn,本發(fā)明對(duì)此不作限定。
[0082]另外,在實(shí)際應(yīng)用中,對(duì)于看門狗模塊的啟停,用戶可以通過(guò)控制命令在系統(tǒng)啟動(dòng)或運(yùn)行的任意階段控制看門狗模塊的啟停(例如程序調(diào)試階段等),從而增強(qiáng)看門狗的靈活性;而對(duì)于定時(shí)器A的時(shí)間閾值可根據(jù)系統(tǒng)正常啟動(dòng)的時(shí)間來(lái)確定,而定時(shí)器B的定時(shí)閾值則可根據(jù)系統(tǒng)運(yùn)行過(guò)程中多個(gè)進(jìn)程的運(yùn)行狀況而靈活設(shè)定。
[0083]根據(jù)本發(fā)明的實(shí)施例,還提供了一種嵌入式系統(tǒng)的監(jiān)控管理裝置。
[0084]如圖5所示,根據(jù)本發(fā)明實(shí)施例的嵌入式系統(tǒng)的監(jiān)控管理裝置包括:
[0085]第一檢測(cè)模塊51,用于在第一定時(shí)器溢出的情況下,檢測(cè)表不嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況;
[0086]第一確定模塊52,用于根據(jù)表示嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的啟動(dòng)情況;
[0087]控制模塊53,用于在確定嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉第一定時(shí)器,開啟第二定時(shí)器;
[0088]第二檢測(cè)模塊54,用于在第二定時(shí)器溢出的情況下,檢測(cè)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況;
[0089]第二確定模塊55,用于根據(jù)表示嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定嵌入式系統(tǒng)的運(yùn)行情況。
[0090]其中,第一定時(shí)器在嵌入式系統(tǒng)啟動(dòng)時(shí)啟動(dòng),且第一定時(shí)器的定時(shí)閾值大于嵌入式系統(tǒng)的啟動(dòng)成功時(shí)間。
[0091]綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過(guò)兩個(gè)定時(shí)器來(lái)對(duì)嵌入式系統(tǒng)的啟動(dòng)階段和運(yùn)行階段分別進(jìn)行監(jiān)控,實(shí)現(xiàn)了對(duì)嵌入式系統(tǒng)的全程監(jiān)控;另外,在系統(tǒng)啟動(dòng)階段無(wú)需喂狗,只需在系統(tǒng)啟動(dòng)后,在用戶態(tài)執(zhí)行喂狗操作,增強(qiáng)了監(jiān)控系統(tǒng)的可移植性;此夕卜,在嵌入式系統(tǒng)的啟動(dòng)或運(yùn)行階段均可隨時(shí)根據(jù)用戶需要隨時(shí)關(guān)閉看門狗功能(停止接收心跳指令),提高了看門狗功能的靈活性;另外,本發(fā)明可以根據(jù)用戶需要對(duì)看門狗模塊進(jìn)行動(dòng)態(tài)配置,使看門狗模塊與嵌入式系統(tǒng)的啟動(dòng)、運(yùn)行相匹配,從而增強(qiáng)了監(jiān)控系統(tǒng)的靈活性和可塑性;此外,本發(fā)明還可通過(guò)GP1通道將系統(tǒng)重啟的原因等信息記錄下來(lái)并告知CPU,避免了當(dāng)操作系統(tǒng)掛掉時(shí)直接重啟CPU所導(dǎo)致的用戶無(wú)法得知造成系統(tǒng)重啟的原因;此外,第二定時(shí)器可以監(jiān)控系統(tǒng)運(yùn)行階段的多個(gè)進(jìn)程,如果異常的是關(guān)鍵進(jìn)程則進(jìn)行系統(tǒng)重啟,而如果僅僅是非關(guān)鍵進(jìn)程,則可向CPU發(fā)送GP1中斷信號(hào),使得對(duì)系統(tǒng)運(yùn)行階段的監(jiān)控更加靈活。
[0092]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種嵌入式系統(tǒng)的監(jiān)控管理方法,其特征在于,包括: 在第一定時(shí)器溢出的情況下,檢測(cè)表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況; 根據(jù)表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定所述嵌入式系統(tǒng)的啟動(dòng)情況; 在確定所述嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉所述第一定時(shí)器,開啟所述第二定時(shí)器; 在所述第二定時(shí)器溢出的情況下,檢測(cè)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況; 根據(jù)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定所述嵌入式系統(tǒng)的運(yùn)行情況。
2.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,所述第一定時(shí)器在所述嵌入式系統(tǒng)啟動(dòng)時(shí)啟動(dòng),且所述第一定時(shí)器的定時(shí)閾值大于所述嵌入式系統(tǒng)的啟動(dòng)成功時(shí)間。
3.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,檢測(cè)表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況包括: 檢測(cè)第一計(jì)數(shù)器的數(shù)值,其中,所述第一計(jì)數(shù)器用于表示所述嵌入式系統(tǒng)的啟動(dòng)情況,并且,在所述第一計(jì)時(shí)器啟動(dòng)時(shí),所述第一計(jì)數(shù)器的數(shù)值被預(yù)先清零; 在根據(jù)檢測(cè)結(jié)果確定所述第一計(jì)數(shù)器的數(shù)值不為零的情況下,確定接收到表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令。
4.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,根據(jù)表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定所述嵌入式系統(tǒng)的啟動(dòng)情況包括: 在接收到表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的情況下,確定所述嵌入式系統(tǒng)啟動(dòng)成功。
5.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,在確定所述嵌入式系統(tǒng)啟動(dòng)失敗的情況下,所述監(jiān)控管理方法進(jìn)一步包括: 發(fā)送系統(tǒng)啟動(dòng)異常信息至所述嵌入式系統(tǒng); 發(fā)送復(fù)位信號(hào)至所述嵌入式系統(tǒng); 重啟所述第一定時(shí)器。
6.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,檢測(cè)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況包括: 檢測(cè)多個(gè)第二計(jì)數(shù)器的數(shù)值,其中,所述多個(gè)第二計(jì)數(shù)器的數(shù)值與表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況一一對(duì)應(yīng),并且,在所述第二計(jì)時(shí)器啟動(dòng)時(shí),所述多個(gè)第二計(jì)數(shù)器的數(shù)值被預(yù)先清零; 在根據(jù)檢測(cè)結(jié)果確定所述多個(gè)第二計(jì)數(shù)器中至少之一的第二計(jì)數(shù)器的數(shù)值為零的情況下,確定沒有對(duì)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整; 在根據(jù)檢測(cè)結(jié)果確定所述多個(gè)第二計(jì)數(shù)器的數(shù)值均不為零的情況下,確定對(duì)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整。
7.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,根據(jù)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定所述嵌入式系統(tǒng)的運(yùn)行情況包括: 在沒有對(duì)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令接收完整的情況下,確定所述嵌入式系統(tǒng)運(yùn)行異常; 在確定所述嵌入式系統(tǒng)運(yùn)行異常的情況下,發(fā)送復(fù)位信號(hào)和/或異常信息至所述嵌入式系統(tǒng)。
8.根據(jù)權(quán)利要求1所述的監(jiān)控管理方法,其特征在于,在對(duì)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況檢測(cè)完成之后,重新啟動(dòng)所述第二定時(shí)器。
9.一種嵌入式系統(tǒng)的監(jiān)控管理裝置,包括: 第一檢測(cè)模塊,用于在第一定時(shí)器溢出的情況下,檢測(cè)表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況; 第一確定模塊,用于根據(jù)表示所述嵌入式系統(tǒng)啟動(dòng)成功的預(yù)定指令的接收情況,確定所述嵌入式系統(tǒng)的啟動(dòng)情況; 控制模塊,用于在確定所述嵌入式系統(tǒng)啟動(dòng)成功的情況下,關(guān)閉所述第一定時(shí)器,開啟所述第二定時(shí)器; 第二檢測(cè)模塊,用于在所述第二定時(shí)器溢出的情況下,檢測(cè)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況; 第二確定模塊,用于根據(jù)表示所述嵌入式系統(tǒng)運(yùn)行情況的多個(gè)預(yù)定指令的接收情況,確定所述嵌入式系統(tǒng)的運(yùn)行情況。
10.根據(jù)權(quán)利要求8所述的監(jiān)控管理裝置,其特征在于,所述第一定時(shí)器在所述嵌入式系統(tǒng)啟動(dòng)時(shí)啟動(dòng),且所述第一定時(shí)器的定時(shí)閾值大于所述嵌入式系統(tǒng)的啟動(dòng)成功時(shí)間。
【文檔編號(hào)】G06F11/00GK104268026SQ201410470078
【公開日】2015年1月7日 申請(qǐng)日期:2014年9月15日 優(yōu)先權(quán)日:2014年9月15日
【發(fā)明者】孫浩 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
察隅县| 临夏县| 略阳县| 舞钢市| 建湖县| 上犹县| 赣州市| 宜丰县| 塔城市| 夏邑县| 开化县| 翁源县| 秦皇岛市| 资溪县| 腾冲县| 盘锦市| 冷水江市| 宜君县| 博白县| 文化| 拜泉县| 桐梓县| 体育| 宜都市| 仪陇县| 阆中市| 新化县| 玛纳斯县| 西丰县| 昂仁县| 江孜县| 宁城县| 九江市| 孟村| 永清县| 托克逊县| 南阳市| 清徐县| 溧阳市| 甘肃省| 花垣县|