專利名稱:一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,特別是涉及一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法 及裝置。
背景技術(shù):
目前,在嵌入式操作系統(tǒng)中,系統(tǒng)級芯片(SOC,System On Chip)可定義為具備完 整系統(tǒng)構(gòu)架與功能的芯片,其構(gòu)架包含可執(zhí)行控制/運算或信號處理功能的處理器、記憶 體、周邊電路及系統(tǒng)IP特定邏輯電路。現(xiàn)代嵌入式SOC系統(tǒng)規(guī)模日益龐大并朝著模塊化的 趨勢發(fā)展。在嵌入式系統(tǒng)中,系統(tǒng)級芯片中還會有很多硬件加速引擎和DMA(Direct Memory Access,直接內(nèi)存訪問)模塊獨立運行于操作系統(tǒng)的CPU (Central Processing Unit,中央 處理器)之外,例如視頻編解碼引擎。SOC系統(tǒng)通常會有CPU、硬件模塊、總線等主要部分構(gòu) 成。
其中,總線(Bus)是計算機(jī)各種功能部件之間傳送信息的公共通信干線,它是由導(dǎo) 線組成的傳輸線束。總線的類型包括AHB、AXI等,其中,AHB (Advanced High-performance Bus,演進(jìn)的高性能總線)主要用于高性能模塊(如CPU、DMA和DSP等)之間的連接的總線。 而AXI (Advanced extensible Interface,演進(jìn)的可擴(kuò)展接口)是一種總線協(xié)議,該協(xié)議是 ARM 公司提出的 AMBA (Advanced Microcontroller Bus Architecture)3. O 協(xié)議中最重要 的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。在整個嵌入式系統(tǒng)中,越來越多的 硬件模塊被植入進(jìn)來用以釋放CPU的負(fù)載(off-loading)以應(yīng)對日益復(fù)雜并對系統(tǒng)性能要 求突飛猛進(jìn)的嵌入式應(yīng)用,從而軟硬件的協(xié)同工作愈發(fā)密不可分。
然而,隨著嵌入式系統(tǒng)規(guī)模的日益龐大與軟硬件工作的密不可分,系統(tǒng)的結(jié)構(gòu)也 變的越來越復(fù)雜,并且硬件加速引擎或DMA等硬件模塊會和CPU之間獨立的并發(fā)工作,就會 使硬件模塊的總線行為很難被嵌入式操作系統(tǒng)所感知,一旦發(fā)生軟件對硬件的不合理操作 便會帶來災(zāi)難性的后果。例如,軟件錯誤的配置了 DMA的目標(biāo)地址,DMA便會對錯誤的目標(biāo) 內(nèi)存地址直接操作,而當(dāng)錯誤的目標(biāo)內(nèi)存地址如果存儲著重要的數(shù)據(jù)時可能導(dǎo)致整個嵌入 式系統(tǒng)的崩潰。
因此,如何對嵌入式系統(tǒng)中的總線命令進(jìn)行監(jiān)控就成為本領(lǐng)域技術(shù)人員必須解決 的一個技術(shù)問題。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法,以 解決現(xiàn)有技術(shù)中無法對嵌入式系統(tǒng)的總線命令進(jìn)行監(jiān)控的技術(shù)問題,進(jìn)而保證嵌入式系統(tǒng) 穩(wěn)定的性能。
本發(fā)明的另一個目的是將上述構(gòu)思應(yīng)用于具體的應(yīng)用環(huán)境中,提供一種應(yīng)用于嵌 入式系統(tǒng)的總線監(jiān)控,從而保證該方法的實現(xiàn)和應(yīng)用。
為解決上述技術(shù)問題,本發(fā)明實施例提供了一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法,包括
在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則;
依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正常。
優(yōu)選的,所述依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正 常,包括
獲取所述總線監(jiān)控規(guī)則表示的硬件模塊的正常的尋址空間;
判斷所述命令涉及的操作所影響的目標(biāo)硬件地址是否在所述正常的尋址空間內(nèi)。
優(yōu)選的,在所述命令不正常的情況下,還包括
將所述不正常的命令進(jìn)行過濾。
優(yōu)選的,還包括
將硬件模塊發(fā)送的命令不正常的結(jié)果反饋給CPU。
優(yōu)選的,所述總線監(jiān)控規(guī)則預(yù)先保存在寄存器中;所述寄存器包括參考地址寄 存器、參考位選寄存器、監(jiān)測規(guī)則寄存器和監(jiān)測控制寄存器;其中,所述參考地址寄存器表 示讀寫所約束的目標(biāo)硬件地址的起始地址,參考位選寄存器表示需要監(jiān)控的讀寫操作涉及 的目標(biāo)硬件地址,監(jiān)測規(guī)則寄存器用于存儲對總線監(jiān)控的規(guī)則,監(jiān)測控制寄存器表示對如 何按照前述的規(guī)則對總線進(jìn)行監(jiān)控。優(yōu)選的,所述監(jiān)測規(guī)則寄存器包括當(dāng)前組規(guī)則條件操 作命令寄存器、當(dāng)前組規(guī)則條件取反命令寄存器、當(dāng)前組規(guī)則讀操作監(jiān)控寄存器、當(dāng)前組規(guī) 則寫操作監(jiān)控寄存器和當(dāng)前組規(guī)則使能寄存器;其中,所述當(dāng)前組規(guī)則條件操作命令寄存 器為O時表示操作命令條件為等于,所述當(dāng)前組規(guī)則條件操作命令寄存器為I時表示操作 命令條件為大于,所述當(dāng)前組規(guī)則條件操作命令寄存器為2時表示操作命令條件為小于, 所述當(dāng)前組規(guī)則條件操作命令寄存器為3時表示操作命令條件為保留;
所述當(dāng)前組規(guī)則條件取反命令寄存器為O時取反命令條件為原條件,所述當(dāng)前組 規(guī)則條件取反命令寄存器為I時取反命令條件為原條件取反;
所述當(dāng)前組規(guī)則讀操作監(jiān)控寄存器為O時表示關(guān)閉讀操作,所述當(dāng)前組規(guī)則讀操 作監(jiān)控寄存器為I時表示打開讀操作;
所述當(dāng)前組規(guī)則寫操作監(jiān)控寄存器為O時表示關(guān)閉寫操作,所述當(dāng)前組規(guī)則寫操 作監(jiān)控寄存器為I時表示打開寫操作;
所述當(dāng)前組規(guī)則使能寄存器為O時表示當(dāng)前組規(guī)則無效,所述當(dāng)前組規(guī)則使能寄 存器為I時表示當(dāng)前組規(guī)則有效。
優(yōu)選的,所述監(jiān)測控制寄存器包括規(guī)則邏輯組合關(guān)系寄存器、總線命令屏蔽寄存 器和監(jiān)控條件觸發(fā)時中斷使能寄存器;其中,所述規(guī)則邏輯組合關(guān)系寄存器為O時表示各 組規(guī)則的邏輯組合關(guān)系為與,所述規(guī)則邏輯組合關(guān)系寄存器為I時表示各組規(guī)則的邏輯組 合關(guān)系為或;
所述總線命令屏蔽寄存器為O時表示監(jiān)控條件觸發(fā)時原命令保留,所述總線命令 屏蔽寄存器為I時表示監(jiān)控條件觸發(fā)時原命令被屏蔽;
所述監(jiān)控條件觸發(fā)時中斷使能寄存器為O時表示關(guān)閉使能,所述監(jiān)控條件觸發(fā)時 中斷使能寄存器為I時表示打開使能。
優(yōu)選的,在所述命令組中的命令都正常的情況下的情況下,還包括
轉(zhuǎn)發(fā)所述硬件模塊當(dāng)前發(fā)送的命令至總線。
本發(fā)明實施例還公開了一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控裝置,包括
獲取規(guī)則模塊,用于在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則;
判斷模塊,用于依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正堂巾O
優(yōu)選的,所述判斷模塊,包括
獲取子模塊,用于獲取所述總線監(jiān)控規(guī)則表示的硬件模塊的正常的尋址空間;
判斷子模塊,用于判斷所述命令涉及的操作所影響的目標(biāo)硬件地址是否在所述正常的尋址空間內(nèi)。
優(yōu)選的,還包括
過濾模塊,用于將所述不正常的命令進(jìn)行過濾。
優(yōu)選的,還包括
結(jié)果反饋模塊,用于將所述硬件模塊發(fā)送的命令不正常結(jié)果反饋給
CPU0
優(yōu)選的,還包括
命令轉(zhuǎn)發(fā)模塊,用于轉(zhuǎn)發(fā)所述硬件模塊當(dāng)前發(fā)送的命令至總線。從上述的技術(shù)方案可以看出,通過預(yù)設(shè)總線監(jiān)控規(guī)則,而該總線監(jiān)控規(guī)則中設(shè)置了按照何種方式來判斷硬件模塊發(fā)送的命令是否正常,因此,可以在硬件模塊向總線發(fā)送命令的時候進(jìn)行監(jiān)控,這樣就不會造成硬件模塊的總線行為很難被嵌入式操作系統(tǒng)感知的結(jié)果,也不會發(fā)生軟件對硬件出現(xiàn)不合理操作時也會執(zhí)行的現(xiàn)象,而是如果硬件模塊的命令正常則可以直接將硬件模塊所有的命令發(fā)向總線完成正常傳輸,否則可以優(yōu)選的過濾此次總線命令并按預(yù)先設(shè)定的監(jiān)測反饋規(guī)則向嵌入式系統(tǒng)作出相應(yīng)的響應(yīng),因此,通過本實施例的方式可以保證整個嵌入式系統(tǒng)的穩(wěn)定性。
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明方法實施例1的流程圖 2為未進(jìn)行總線監(jiān)控的AHB總線基本時序圖3為本發(fā)明方法實施例1中步驟102的流程圖;圖4為本發(fā)明方法實施例1中進(jìn)行總線監(jiān)控時的AHB總線基本時序圖5為本發(fā)明方法實施例2的流程圖;圖6為本發(fā)明裝置實施例1的結(jié)構(gòu)示意圖;圖7為本發(fā)明裝置實施例應(yīng)用場景的結(jié)構(gòu)示意圖8為本發(fā)明裝置實施例1中判斷模塊602的結(jié)構(gòu)示意圖9為本發(fā)明裝置實施例2的結(jié)構(gòu)示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
參見圖1,示出了本發(fā)明的一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法實施例1的流程圖,可以包括以下步驟
步驟101 :在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則。
在本發(fā)明實施例中,總線以AHB總線為例,但是本領(lǐng)域技術(shù)人員也可以知道本發(fā)明實施例不僅適應(yīng)于AHB總線。其中,總線監(jiān)控規(guī)則是預(yù)先設(shè)置好的如何監(jiān)控硬件模塊發(fā)送給總線的傳輸命令的規(guī)則,可以通過總線監(jiān)控規(guī)則對硬件模塊發(fā)送給總線的傳輸命令的正常與否進(jìn)行監(jiān)控。
其中,AHB總線基本時序如圖2所示(參見AMBA規(guī)范),在標(biāo)準(zhǔn)AHB協(xié)議中, “HTRANS”為最重要的傳輸命令信號,當(dāng)“HTRANS”為“N0NSEQ”時硬件模塊就控制發(fā)出各條總線命令,包括“HBURST”為傳輸類型,“HSIZE”為傳輸單位尺寸,“HWRITE”為讀寫指示, “HADDR”為傳輸?shù)刂?,等等。因為AHB總線基本時序為現(xiàn)有技術(shù),在此不再贅述。
其中,預(yù)置的總線監(jiān)控規(guī)則可以預(yù)先保存在寄存器中,那么本步驟就需要從保存總線監(jiān)控規(guī)則的寄存器中獲取總線監(jiān)控規(guī)則。其中,寄存器可以分為參考地址寄存器、參考位選寄存器、監(jiān)測規(guī)則寄存器和監(jiān)測控制寄存器,上述所有寄存器均為軟件,可以自主配置,后續(xù)進(jìn)行總線監(jiān)控的時候會根據(jù)相應(yīng)的寄存器配置規(guī)則工作。
其中,參考地址寄存器一般表示讀寫所約束的目標(biāo)硬件地址的起始地址,其數(shù)目可以按總線監(jiān)控規(guī)則的復(fù)雜度要求而定,在本發(fā)明實施例中以4個為例,長度有32位,其實現(xiàn)可以參考表I所示。
表I
權(quán)利要求
1.一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法,其特征在于,包括在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則;依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正常。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正常,包括獲取所述總線監(jiān)控規(guī)則表示的所述硬件模塊的正常的尋址空間;判斷所述命令涉及的操作所影響的目標(biāo)硬件地址是否在所述正常的尋址空間內(nèi)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述命令不正常的情況下,還包括 將所述不正常的命令進(jìn)行過濾。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括將硬件模塊發(fā)送的命令不正常的結(jié)果反饋給CPU。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述總線監(jiān)控規(guī)則預(yù)先保存在寄存器中, 所述寄存器包括參考地址寄存器、參考位選寄存器、監(jiān)測規(guī)則寄存器和監(jiān)測控制寄存器; 其中,所述參考地址寄存器表示讀寫所約束的目標(biāo)硬件地址的起始地址,參考位選寄存器表示需要監(jiān)控的讀寫操作涉及的目標(biāo)硬件地址,監(jiān)測規(guī)則寄存器用于存儲對總線監(jiān)控的規(guī)則,監(jiān)測控制寄存器表示對如何按照前述的規(guī)則對總線進(jìn)行監(jiān)控。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述監(jiān)測規(guī)則寄存器包括當(dāng)前組規(guī)則條件操作命令寄存器、當(dāng)前組規(guī)則條件取反命令寄存器、當(dāng)前組規(guī)則讀操作監(jiān)控寄存器、當(dāng)前組規(guī)則寫操作監(jiān)控寄存器和當(dāng)前組規(guī)則使能寄存器;其中,所述當(dāng)前組規(guī)則條件操作命令寄存器為O時表示操作命令條件為等于,所述當(dāng)前組規(guī)則條件操作命令寄存器為I時表示操作命令條件為大于,所述當(dāng)前組規(guī)則條件操作命令寄存器為2時表示操作命令條件為小于,所述當(dāng)前組規(guī)則條件操作命令寄存器為3時表示操作命令條件為保留;所述當(dāng)前組規(guī)則條件取反命令寄存器為O時取反命令條件為原條件,所述當(dāng)前組規(guī)則條件取反命令寄存器為I時取反命令條件為原條件取反;所述當(dāng)前組規(guī)則讀操作監(jiān)控寄存器為O時表示關(guān)閉讀操作,所述當(dāng)前組規(guī)則讀操作監(jiān)控寄存器為I時表示打開讀操作;所述當(dāng)前組規(guī)則寫操作監(jiān)控寄存器為O時表示關(guān)閉寫操作,所述當(dāng)前組規(guī)則寫操作監(jiān)控寄存器為I時表示打開寫操作;所述當(dāng)前組規(guī)則使能寄存器為O時表示當(dāng)前組規(guī)則無效,所述當(dāng)前組規(guī)則使能寄存器為I時表示當(dāng)前組規(guī)則有效。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述監(jiān)測控制寄存器包括規(guī)則邏輯組合關(guān)系寄存器、總線命令屏蔽寄存器和監(jiān)控條件觸發(fā)時中斷使能寄存器;其中,所述規(guī)則邏輯組合關(guān)系寄存器為O時表示各組規(guī)則的邏輯組合關(guān)系為與,所述規(guī)則邏輯組合關(guān)系寄存器為I時表示各組規(guī)則的邏輯組合關(guān)系為或;所述總線命令屏蔽寄存器為O時表示監(jiān)控條件觸發(fā)時原命令保留,所述總線命令屏蔽寄存器為I時表示監(jiān)控條件觸發(fā)時原命令被屏蔽;所述監(jiān)控條件觸發(fā)時中斷使能寄存器為O時表示關(guān)閉使能,所述監(jiān)控條件觸發(fā)時中斷使能寄存器為I時表示打開使能。
8.根據(jù)權(quán)利要求1 7任一項所述的方法,其特征在于,在所述命令組中的命令都正常的情況下,還包括轉(zhuǎn)發(fā)所述硬件模塊當(dāng)前發(fā)送的命令至總線。
9.一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控裝置,其特征在于,包括獲取規(guī)則模塊,用于在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則;判斷模塊,用于依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正常。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述判斷模塊,包括獲取子模塊,用于獲取所述總線監(jiān)控規(guī)則表示的硬件模塊的正常的尋址空間;判斷子模塊,用于判斷所述命令涉及的操作所影響的目標(biāo)硬件地址是否在所述正常的尋址空間內(nèi)。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括過濾模塊,用于將所述不正常的命令進(jìn)行過濾。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括結(jié)果反饋模塊,用于將所述硬件模塊發(fā)送的命令不正常結(jié)果反饋給CPU。
13.根據(jù)權(quán)利要求9 12所述的裝置,其特征在于,還包括命令轉(zhuǎn)發(fā)模塊,用于轉(zhuǎn)發(fā)所述硬件模塊當(dāng)前發(fā)送的命令至總線。
全文摘要
本發(fā)明實施例公開了一種應(yīng)用于嵌入式系統(tǒng)的總線監(jiān)控方法及裝置,所述方法包括在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則;依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正常。所述裝置包括獲取規(guī)則模塊,用于在接收到硬件模塊待發(fā)送至總線的傳輸命令時,獲取預(yù)置的總線監(jiān)控規(guī)則;判斷模塊,用于依據(jù)所述總線監(jiān)控規(guī)則判斷所述硬件模塊當(dāng)前發(fā)送的命令是否正常。采用本發(fā)明實施例公開的方法或裝置,可以解決現(xiàn)有技術(shù)中無法對嵌入式系統(tǒng)的總線命令進(jìn)行監(jiān)控的技術(shù)問題,進(jìn)而保證嵌入式系統(tǒng)穩(wěn)定的性能。
文檔編號G06F13/38GK103064774SQ20131001611
公開日2013年4月24日 申請日期2013年1月16日 優(yōu)先權(quán)日2013年1月16日
發(fā)明者翟云 申請人:北京君正集成電路股份有限公司