本發(fā)明涉及運(yùn)行時(shí)驗(yàn)證技術(shù),屬于嵌入式系統(tǒng)軟件調(diào)試技術(shù)領(lǐng)域。
背景技術(shù):
嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)一般是仿真器和調(diào)試器,這些硬件設(shè)備通常只集成了一種觸發(fā)策略——通過(guò)打斷點(diǎn)的形式,目標(biāo)程序運(yùn)行到該位置就觸發(fā)中斷條件停止,調(diào)試系統(tǒng)對(duì)其進(jìn)行調(diào)試。或者某個(gè)變量變?yōu)槟硞€(gè)值時(shí)停止。
例如,申請(qǐng)?zhí)枮?01220580256.0的中國(guó)實(shí)用新型專利,涉及一種嵌入式在線仿真器,包括協(xié)議接口,所述協(xié)議接口通過(guò)數(shù)據(jù)線與計(jì)算機(jī)usb接口連接,協(xié)議接口上連接有系統(tǒng)狀態(tài)讀出邏輯單元和串并機(jī)構(gòu),串并機(jī)構(gòu)上連接有數(shù)據(jù)校檢單元和寄存器組,寄存器組上連接有斷點(diǎn)控制邏輯單元、地址產(chǎn)生與控制邏輯單元、dma控制邏輯單元和數(shù)據(jù)分配與狀態(tài)控制邏輯單元;所述系統(tǒng)狀態(tài)讀出邏輯單元與數(shù)據(jù)校檢單元、斷點(diǎn)控制邏輯單元連接,系統(tǒng)狀態(tài)讀出邏輯單元、斷點(diǎn)控制邏輯單元、地址產(chǎn)生與控制邏輯單元、數(shù)據(jù)分配與狀態(tài)控制邏輯單元均與目標(biāo)系統(tǒng)連接。該實(shí)用新型實(shí)現(xiàn)了設(shè)計(jì)人員通過(guò)計(jì)算機(jī)對(duì)目標(biāo)系統(tǒng)進(jìn)行實(shí)時(shí)在線仿真與調(diào)試,完善了目標(biāo)系統(tǒng)軟件與硬件功能開(kāi)發(fā)與仿真調(diào)試流程。
然而,軟件分析中最重要的就是功能安全,目標(biāo)程序在運(yùn)行時(shí),我們無(wú)法檢測(cè)它何時(shí)滿足一個(gè)條件,這個(gè)條件是否為我們所需要??梢?jiàn),傳統(tǒng)的調(diào)試器功能單一,無(wú)法全面對(duì)軟件功能進(jìn)行異常檢測(cè)和判斷。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)以上情況,本發(fā)明的目的是提供了基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng):基于運(yùn)行時(shí)驗(yàn)證技術(shù),驗(yàn)證目標(biāo)程序的時(shí)序邏輯。本發(fā)明異于常規(guī)的調(diào)試軟件,根據(jù)描述的需求規(guī)范對(duì)目標(biāo)程序進(jìn)行檢查,滿足之后進(jìn)行觸發(fā)。
為實(shí)現(xiàn)以上目的,本發(fā)明采取的技術(shù)方案是:
一種基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng),包括:
i/o仿真模塊,用于調(diào)試程序的數(shù)據(jù)的輸入和輸出,提供rdi接口連接開(kāi)發(fā)環(huán)境,并將rdi轉(zhuǎn)換成jtag/swd協(xié)議連接待調(diào)試的單片機(jī);
需求規(guī)范檢查單元,集成運(yùn)行時(shí)驗(yàn)證規(guī)范,用于在程序運(yùn)行時(shí)驗(yàn)證程序是否滿足時(shí)序停止條件;
調(diào)試功能模塊,用于在需求規(guī)范檢查單元驗(yàn)證出程序滿足時(shí)序停止條件之后,對(duì)暫停的程序進(jìn)行調(diào)試;
執(zhí)行控制模塊,用于控制調(diào)試系統(tǒng)的進(jìn)程和運(yùn)行,對(duì)調(diào)試系統(tǒng)進(jìn)行狀態(tài)設(shè)置;
其中,所述i/o仿真模塊、需求規(guī)范檢查單元、調(diào)試功能模塊順序連接。
優(yōu)選的,所述需求規(guī)范檢查單元包括規(guī)范解析模塊、分析模塊、驗(yàn)證模塊和決策模塊。
優(yōu)選的,所述規(guī)范解析模塊用于解析觸發(fā)條件的需求規(guī)范,將其解析成一條條的時(shí)序條件,發(fā)送給驗(yàn)證模塊。
優(yōu)選的,所述分析模塊用于對(duì)當(dāng)前運(yùn)行程序的時(shí)序邏輯進(jìn)行分析。
更優(yōu)選的,所述分析模塊對(duì)所述當(dāng)前運(yùn)行程序的時(shí)序邏輯進(jìn)行分析包括以下步驟:
(1)、定位當(dāng)前運(yùn)行的程序;
(2)訪問(wèn)與當(dāng)前運(yùn)行的程序相關(guān)的寄存器,從而獲取相關(guān)數(shù)據(jù);
(3)、將該程序的語(yǔ)句分析成相應(yīng)的規(guī)則數(shù)據(jù),發(fā)送給驗(yàn)證模塊。
優(yōu)選的,所述驗(yàn)證模塊用于將所述分析模塊分析出來(lái)的當(dāng)前運(yùn)行程序的時(shí)序邏輯與需求規(guī)范時(shí)序邏輯比較,驗(yàn)證兩者是否符合。
更優(yōu)選的,所述驗(yàn)證模塊進(jìn)行邏輯比較包括以下步驟:
(1)、驗(yàn)證模塊接收判斷規(guī)范解析模塊發(fā)送的數(shù)據(jù),并存儲(chǔ);
(2)、驗(yàn)證模塊接收判斷分析模塊發(fā)送的數(shù)據(jù),將其與之前存儲(chǔ)的規(guī)范解析模塊發(fā)送的數(shù)據(jù)依次進(jìn)行比較;
(3)、若分析模塊發(fā)送的數(shù)據(jù)符合規(guī)范解析模塊發(fā)送的某條數(shù)據(jù),則驗(yàn)證模塊發(fā)送觸發(fā)信號(hào)給決策模塊;若都不符合,則發(fā)送非觸發(fā)信號(hào)給決策模塊。
優(yōu)選的,所述決策模塊用于驗(yàn)證模塊之后,用于在驗(yàn)證當(dāng)前運(yùn)行程序的時(shí)序邏輯滿足需求規(guī)范時(shí)序邏輯時(shí),觸發(fā)相應(yīng)的條件,對(duì)當(dāng)前運(yùn)行的程序采取相應(yīng)的決策。
更優(yōu)選的,所述決策模塊采取決策包括以下步驟:
(1)、決策模塊接收驗(yàn)證模塊發(fā)送的信號(hào);
(2)、如果所述信號(hào)為非觸發(fā)信號(hào),不采取觸發(fā)操作,繼續(xù)執(zhí)行下一句程序;
(3)、如果所述信號(hào)為觸發(fā)信號(hào),則程序符合觸發(fā)規(guī)則條件,發(fā)送sigtrap信號(hào),暫停當(dāng)前程序,對(duì)當(dāng)前程序進(jìn)行調(diào)試。
本發(fā)明的有益效果在于:
(1)、通過(guò)運(yùn)行時(shí)驗(yàn)證技術(shù)對(duì)目標(biāo)程序的運(yùn)行進(jìn)行是否符合觸發(fā)需求規(guī)范的驗(yàn)證,從而能夠?qū)υ诩僭O(shè)無(wú)異常情況下目標(biāo)程序進(jìn)行高效率觸發(fā)調(diào)試,降低程序出錯(cuò)率,同時(shí)節(jié)約了大量的人力。
(2)、所述嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)可根據(jù)描述需求規(guī)則自動(dòng)分析,并在程序運(yùn)行時(shí)驗(yàn)證,并觸發(fā)。
(3)、需求規(guī)范檢查單元中的分析和驗(yàn)證模塊,可以避免程序錯(cuò)誤的遺漏和不規(guī)范,減少軟件系統(tǒng)出現(xiàn)異常所付出的損失。
附圖說(shuō)明
通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1是本發(fā)明一種基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)的框架圖。
圖2是本發(fā)明中分析模塊運(yùn)行步驟示意方框圖。
圖3是本發(fā)明中驗(yàn)證模塊運(yùn)行步驟示意方框圖。
圖4是本發(fā)明中決策模塊運(yùn)行步驟示意方框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施方式。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施方式,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
如圖1所示,本發(fā)明公開(kāi)一種基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng),其包括:i/o仿真模塊(1),用于調(diào)試程序的數(shù)據(jù)的輸入和輸出,能夠提供rdi接口連接開(kāi)發(fā)環(huán)境,并將rdi轉(zhuǎn)換成jtag/swd協(xié)議連接待調(diào)試的單片機(jī);需求規(guī)范檢查單元(2),集成了運(yùn)行時(shí)驗(yàn)證規(guī)范,例如pasttimeltl,用于運(yùn)行時(shí)驗(yàn)證程序是否滿足時(shí)序停止條件;調(diào)試功能模塊(3),根據(jù)需求規(guī)范檢查單元驗(yàn)證出符合需求規(guī)則之后,對(duì)暫停的程序進(jìn)行調(diào)試;執(zhí)行控制模塊(4),調(diào)試系統(tǒng)的核心,用于控制調(diào)試系統(tǒng)的進(jìn)程和運(yùn)行,能夠?qū)φ{(diào)試系統(tǒng)進(jìn)行狀態(tài)設(shè)置。
本發(fā)明提出的所述基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)中,所述需求規(guī)范檢查單元(2)包括:規(guī)范解析模塊(21),用于解析觸發(fā)條件的需求規(guī)范,將其解析成一條一條的時(shí)序條件,發(fā)送給驗(yàn)證模塊;分析模塊(22),用于對(duì)當(dāng)前運(yùn)行程序的時(shí)序邏輯進(jìn)行分析;驗(yàn)證模塊(23),用于規(guī)范解析模塊和分析模塊之后,將分析模塊分析出來(lái)的當(dāng)前運(yùn)行程序的時(shí)序邏輯與需求規(guī)范時(shí)序邏輯比較,驗(yàn)證是否符合;決策模塊(24),用于驗(yàn)證模塊之后,若驗(yàn)證當(dāng)前運(yùn)行程序的時(shí)序邏輯滿足需求規(guī)范時(shí)序邏輯,則觸發(fā)相應(yīng)的條件,對(duì)當(dāng)前運(yùn)行的程序采取相應(yīng)的決策。
如圖2所示,本發(fā)明提出的所述基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)中,所述分析模塊對(duì)所述當(dāng)前運(yùn)行程序的時(shí)序邏輯進(jìn)行分析包括以下步驟:
1、定位到當(dāng)前運(yùn)行的程序;
2、訪問(wèn)與當(dāng)前運(yùn)行的程序相關(guān)的寄存器,從而獲取相關(guān)數(shù)據(jù);
3、將該程序的語(yǔ)句分析成相應(yīng)的規(guī)則數(shù)據(jù),發(fā)送給驗(yàn)證模塊。
如圖3所示,本發(fā)明提出的所述基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)中,所述驗(yàn)證模塊進(jìn)行邏輯比較包括以下步驟:
1、驗(yàn)證模塊接收判斷規(guī)范解析模塊發(fā)送的數(shù)據(jù),并存儲(chǔ);
2、驗(yàn)證模塊接收判斷分析模塊發(fā)送的數(shù)據(jù),將其與之前存儲(chǔ)的規(guī)范解析模塊發(fā)送的數(shù)據(jù)依次進(jìn)行比較;
3、若分析模塊發(fā)送的數(shù)據(jù)符合規(guī)范解析模塊發(fā)送的某條數(shù)據(jù),則驗(yàn)證模塊發(fā)送觸發(fā)信號(hào)給決策模塊;若都不符合,則發(fā)送非觸發(fā)信號(hào)給決策模塊。
如圖4所示,本發(fā)明提出的所述基于運(yùn)行時(shí)驗(yàn)證技術(shù)的嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)中,所述決策模塊采取決策包括以下步驟:
1、決策模塊接收驗(yàn)證模塊發(fā)送的信號(hào);
2、如果信號(hào)為非觸發(fā)信號(hào),不采取觸發(fā)操作,cpu繼續(xù)執(zhí)行下一句程序;
3、如果信號(hào)為觸發(fā)信號(hào),程序符合觸發(fā)規(guī)則條件,發(fā)送sigtrap信號(hào),暫停當(dāng)前程序,對(duì)當(dāng)前程序進(jìn)行調(diào)試。
本發(fā)明與傳統(tǒng)工控安全防護(hù)與報(bào)警系統(tǒng)相比,通過(guò)機(jī)器學(xué)習(xí)技術(shù)對(duì)控制系統(tǒng)之間信號(hào)發(fā)送進(jìn)行異常偵測(cè),從而提供在假設(shè)無(wú)異常情況下信號(hào)流狀態(tài)的統(tǒng)計(jì)分布預(yù)測(cè),提高了工控系統(tǒng)的異常識(shí)別率,同時(shí)節(jié)約了大量的人力。
本發(fā)明與傳統(tǒng)工控安全防護(hù)與報(bào)警系統(tǒng)相比,所述工控安全防護(hù)與報(bào)警系統(tǒng)可自感知異常,并在發(fā)現(xiàn)異常后,做出自動(dòng)產(chǎn)生報(bào)警或是保護(hù)相關(guān)的設(shè)備拒絕指令的操作。
本發(fā)明與傳統(tǒng)嵌入式系統(tǒng)軟件調(diào)試系統(tǒng)相比,利用運(yùn)行時(shí)驗(yàn)證技術(shù),通過(guò)整合需求規(guī)范,對(duì)目標(biāo)程序運(yùn)行驗(yàn)證,判斷當(dāng)前是否符合某個(gè)停止條件。
以上所述,僅為本發(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)。