本發(fā)明專利技術(shù)涉及基于執(zhí)行路徑全過程的系統(tǒng)窗口期滑動(dòng)測試方法,包括步驟:1)設(shè)置時(shí)鐘相關(guān)寄存器;2)注冊時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4);6)獲取另一時(shí)鐘計(jì)數(shù)器的值,作為被測試接口的計(jì)時(shí)開始值;7)調(diào)用被測試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值作為被測試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開始值,計(jì)算被測試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。本發(fā)明專利技術(shù)用形式化驗(yàn)證的思想解決操作系統(tǒng)內(nèi)核多重入、多路徑的形式化驗(yàn)證難題,可以有效提升操作系統(tǒng)內(nèi)核開發(fā)和測試的覆蓋性難題。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及一種,屬于操作系統(tǒng)開發(fā)與測試方法領(lǐng)域。
技術(shù)介紹
對嵌入式實(shí)時(shí)操作系統(tǒng)(ERTOS)開發(fā)和測試技術(shù)的研究主要集中在實(shí)時(shí)性能參數(shù)的測試上,通常包括上下文切換時(shí)間(task switching time)、搶占時(shí)間(preemptiontime)、中斷延遲時(shí)間(interrupt latency time)等。對于系統(tǒng)設(shè)計(jì)正確性測試,實(shí)際測試時(shí)劃分為功能性測試,其測試用例設(shè)計(jì)通常是針對每一項(xiàng)測試要求設(shè)計(jì)單獨(dú)的測試用例。現(xiàn)有技術(shù)存在的主要問題I.針對系統(tǒng)功能測試,其測試粒度過大,不能很好的測試系統(tǒng)的正確性,很多問題需要在實(shí)際使用過程中才能發(fā)現(xiàn)。2.逐項(xiàng)測試的方法不能驗(yàn)證系統(tǒng)的整體工作情況。
技術(shù)實(shí)現(xiàn)思路
為了解決上述問題,本專利技術(shù)提供了一種全新的嵌入式實(shí)時(shí)操作系統(tǒng)測試方法,它通過對硬件時(shí)鐘定時(shí)器的配置,在測試用例設(shè)計(jì)時(shí)利用設(shè)計(jì)的邏輯,來驗(yàn)證操作系統(tǒng)在特定接口的任務(wù)切換、上下文保存等整個(gè)執(zhí)行路徑中,異步中斷在不同階段到來時(shí)并執(zhí)行相關(guān)耦合性的其他接口,以此來形成各種交錯(cuò)路徑組合,測試和驗(yàn)證操作系統(tǒng)能否正確執(zhí)行,根據(jù)不同的設(shè)置情況,相鄰兩次中斷到來的時(shí)間間隔可以精確到一個(gè)CPU周期。為實(shí)現(xiàn)上述目的,本專利技術(shù)采用的技術(shù)方案如下一種,包括以下步驟I)設(shè)置時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器;2)注冊時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值,初始值為I ;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),否則繼續(xù)以下步驟;6)獲取另一時(shí)鐘計(jì)數(shù)器的值,將其作為被測試接口的計(jì)時(shí)開始值;7)調(diào)用被測試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值,將其作為被測試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開始值,計(jì)算被測試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。本專利技術(shù)的有益效果是在實(shí)際使用中,根據(jù)不同硬件平臺特性,包括晶振頻率、預(yù)分頻計(jì)數(shù)器、預(yù)置數(shù)寄存器、計(jì)數(shù)器控制寄存器的不同設(shè)置,可以控制相鄰兩次時(shí)鐘中斷產(chǎn)生的時(shí)間間隔,在最優(yōu)情況下可以保證兩次中斷的間隔為一個(gè)CPU周期。由于引入類似高度可控的中斷源,可以打破被測試接口的任意執(zhí)行路徑,所以只要將其有限的耦合性相關(guān)接口路徑引入到重入路徑中,就可以列舉出所有的執(zhí)行路徑組合,以此用形式化驗(yàn)證的思想解決操作系統(tǒng)內(nèi)核多重入、多路徑的形式化驗(yàn)證難題,可以有效提升操作系統(tǒng)內(nèi)核開發(fā)和測試的覆蓋性難題。附圖說明圖I為系統(tǒng)調(diào)用時(shí)段說明圖;圖2為測試用例工作流程圖。具體實(shí)施例方式本專利技術(shù)提供了一種。一種,包括以下步驟 I)設(shè)置時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器;2)注冊時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值,初始值為I ;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),否則繼續(xù)以下步驟;6)獲取另一時(shí)鐘計(jì)數(shù)器的值,將其作為被測試接口的計(jì)時(shí)開始值;7)調(diào)用被測試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值,將其作為被測試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開始值,計(jì)算被測試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。系統(tǒng)調(diào)用過程與中斷對應(yīng)時(shí)間關(guān)系共分為兩種系統(tǒng)調(diào)用過程中不被時(shí)鐘中斷打斷;系統(tǒng)調(diào)用過程中被時(shí)鐘中斷打斷;在系統(tǒng)調(diào)用過程中執(zhí)行以下步驟I)記錄每次系統(tǒng)調(diào)用從開始到返回所花費(fèi)的時(shí)間;2)創(chuàng)建高優(yōu)先級任務(wù)Tl和低優(yōu)先級任務(wù)T2,Tl用來調(diào)用測試用例,T2負(fù)責(zé)設(shè)置全局標(biāo)志,可以被Tl用來判別切換是否成功;3)在Tl中調(diào)用測試用例,打印系統(tǒng)調(diào)用時(shí)間;4)重復(fù)步驟3)直到兩種系統(tǒng)調(diào)用過程與中斷對應(yīng)時(shí)間關(guān)系全部出現(xiàn)。本專利技術(shù)屬于操作系統(tǒng)功能和性能測試中采用的一種高精度測試方法,主要用于測試系統(tǒng)調(diào)用過程中,異步時(shí)鐘中斷到來時(shí)系統(tǒng)的響應(yīng)情況。其工作原理是通過配置計(jì)數(shù)器控制寄存器及相關(guān)寄存器,調(diào)整時(shí)鐘中斷發(fā)生的時(shí)機(jī),使中斷連同其服務(wù)程序在被測接口整個(gè)執(zhí)行路徑中發(fā)生,從而觀察在不同時(shí)間點(diǎn)中斷發(fā)生時(shí)的各種路徑交錯(cuò)組合是否能使操作系統(tǒng)正常工作及其各項(xiàng)性能指標(biāo)所產(chǎn)生的變化等。在實(shí)際使用中,根據(jù)不同硬件平臺特性,包括晶振頻率、預(yù)分頻計(jì)數(shù)器、預(yù)置數(shù)寄存器、計(jì)數(shù)器控制寄存器的不同設(shè)置,可以控制相鄰兩次時(shí)鐘中斷產(chǎn)生的時(shí)間間隔,在最優(yōu)情況下可以保證兩次中斷的間隔為一個(gè)CPU周期。由于引入類似高度可控的中斷源,可以任意打破被測試接口的任意執(zhí)行路徑,所以只要將其有限的耦合性相關(guān)接口路徑引入到重入路徑中,就可以列舉出所有的執(zhí)行路徑組合,以此用形式化驗(yàn)證的思想解決操作系統(tǒng)內(nèi)核多重入、多路徑的形式化驗(yàn)證難題,可以有效提升操作系統(tǒng)內(nèi)核開發(fā)和測試的覆蓋性難題。下面詳細(xì)說明。本專利技術(shù)方法包括以下步驟I)設(shè)置兩個(gè)時(shí)鐘相關(guān)寄存器預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器,以初始化時(shí)鐘相關(guān)寄存器,此處假設(shè)時(shí)鐘計(jì)數(shù)器是按照從大到小計(jì)數(shù)的,其中一個(gè)作為系統(tǒng)時(shí)鐘,一個(gè)作為計(jì)數(shù)時(shí)鐘,計(jì)數(shù)時(shí)鐘的時(shí)鐘周期要大于系統(tǒng)時(shí)鐘周期,且以大于被測接口執(zhí)行時(shí)間為宜,避免在測試被測接口時(shí)計(jì)數(shù)時(shí)鐘發(fā)生中斷,而造成一定的計(jì)時(shí)誤差; 2)注冊時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷,以開啟時(shí)鐘,并在時(shí)鐘中斷到來時(shí),調(diào)用中斷服務(wù)程序進(jìn)行計(jì)時(shí)處理;3)設(shè)置一步進(jìn)值,其初始值為1,該步進(jìn)值用于控制系統(tǒng)時(shí)鐘窗口期;4)獲取系統(tǒng)時(shí)鐘計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),此步驟5)的意圖是排除掉窗口期以外的值;6)獲取計(jì)數(shù)時(shí)鐘的值,該值用于被測試接口的計(jì)時(shí)開始值;7)調(diào)用被測試接口;8)獲取計(jì)數(shù)時(shí)鐘值,該值用于被測試接口的計(jì)時(shí)結(jié)束值;9)取計(jì)時(shí)開始值減去計(jì)時(shí)結(jié)束值,用作被測試接口的耗時(shí),由于計(jì)數(shù)時(shí)鐘計(jì)數(shù)器是從大到小計(jì)數(shù)的,故計(jì)時(shí)開始值大于計(jì)時(shí)結(jié)束值;10)增加步進(jìn)值,若小于I)中設(shè)置的系統(tǒng)時(shí)鐘計(jì)數(shù)器的初始值,則繼續(xù)擴(kuò)大窗口期,轉(zhuǎn)到4),否則說明已經(jīng)到達(dá)最大的時(shí)鐘窗口期,終止。系統(tǒng)調(diào)用過程與中斷對應(yīng)時(shí)間關(guān)系共分為兩種,如圖I所示I.系統(tǒng)調(diào)用過程中不被時(shí)鐘中斷打斷;2.系統(tǒng)調(diào)用過程中被時(shí)鐘中斷打斷。測試流程如下所示此處假設(shè)目標(biāo)板有兩個(gè)時(shí)鐘定時(shí)器timerl和timer2,并且timer2為系統(tǒng)時(shí)鐘中斷觸發(fā)寄存器,具體步驟如下I)設(shè)置timerl為計(jì)數(shù)器,記錄每次系統(tǒng)調(diào)用從開始到返同所花費(fèi)的時(shí)間;2)創(chuàng)建任務(wù) Tl(high priority)和 T2(low priority),Tl 用來調(diào)用測試用例,T2負(fù)責(zé)設(shè)置全局標(biāo)志,可以被Tl用來判別切換是否成功;3)在TI中調(diào)用測試用例,打印系統(tǒng)調(diào)用時(shí)間;4)重復(fù)步驟3)直到圖I中兩種情況全部出現(xiàn)。測試用例如圖2所示I)獲取系統(tǒng)時(shí)鐘定時(shí)器timer2的值,如果值大于步進(jìn)值scale,則轉(zhuǎn)到I),否則轉(zhuǎn)到2);2)獲取定時(shí)器timerl的值,用于被測試接口計(jì)時(shí)開始值;3)調(diào)用被測試接口 tsk_delay ;4)再次獲取定時(shí)器timerl的值,用于被測試接口計(jì)時(shí)結(jié)束值;5)計(jì)算被測試接口時(shí)間值time,打印該值;6)步進(jìn)值scale增加delta, delta為相鄰兩次系統(tǒng)調(diào)用時(shí)刻的間隔;7)如果步進(jìn)值scale大于系統(tǒng)時(shí)鐘定時(shí)器間隔則終止;否則轉(zhuǎn)到I)。實(shí)現(xiàn)范例代碼用C語言實(shí)現(xiàn),硬件平臺為SPARC V8,本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種基于執(zhí)行路徑全過程的系統(tǒng)窗口期滑動(dòng)測試方法,其特征在于包括以下步驟:1)設(shè)置時(shí)鐘相關(guān)寄存器:預(yù)分頻計(jì)數(shù)器,預(yù)置數(shù)寄存器,計(jì)數(shù)器控制寄存器;2)注冊時(shí)鐘中斷服務(wù)程序,使能時(shí)鐘中斷;3)設(shè)置時(shí)鐘中斷發(fā)生的步進(jìn)值,初始值為1;4)獲取時(shí)鐘計(jì)數(shù)器當(dāng)前計(jì)數(shù)值;5)若計(jì)數(shù)值大于步進(jìn)值,則轉(zhuǎn)到步驟4),否則繼續(xù)以下步驟;6)獲取另一時(shí)鐘計(jì)數(shù)器的值,將其作為被測試接口的計(jì)時(shí)開始值;7)調(diào)用被測試接口;8)獲取步驟6)中的時(shí)鐘計(jì)數(shù)器值,將其作為被測試接口的計(jì)時(shí)結(jié)束值;9)計(jì)時(shí)結(jié)束值減去計(jì)時(shí)開始值,計(jì)算被測試接口的耗時(shí);10)增加步進(jìn)值,若該步進(jìn)值小于時(shí)鐘計(jì)數(shù)器的初始設(shè)置值,則轉(zhuǎn)到步驟4),否則終止。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:闞宏偉,程勝,李紅兵,周志軍,孫磊,魏明,黃察夫,呂紫旭,靳仕慧,卓保特,劉貴,吳常明,張春艷,陶戈丹,
申請(專利權(quán))人:北京神舟航天軟件技術(shù)有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。