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

C++Test在無(wú)操作系統(tǒng)下的軟件仿真方法

文檔序號(hào):6338064閱讀:213來(lái)源:國(guó)知局
專利名稱:C++Test在無(wú)操作系統(tǒng)下的軟件仿真方法
技術(shù)領(lǐng)域
本發(fā)明涉及電站控制領(lǐng)域,具體涉及ー種利用C++Test實(shí)現(xiàn)無(wú)操作系統(tǒng)環(huán)境下對(duì)測(cè)試對(duì)象實(shí)現(xiàn)軟件仿真,從而得到単元測(cè)試的靜態(tài)分析和動(dòng)態(tài)測(cè)試的跟蹤調(diào)試的方法。
背景技術(shù)
目前核電站的應(yīng)用上,常常需要根據(jù)不同的客戶要求,安裝或増加一些新的設(shè)備, 這些設(shè)備需要使用相應(yīng)的軟件,此類軟件都是在相應(yīng)的工程軟件環(huán)境下編寫(xiě)的,軟件完成后需要首先進(jìn)行測(cè)試,以驗(yàn)證是否能夠驅(qū)動(dòng)相應(yīng)設(shè)備或是否達(dá)到驅(qū)動(dòng)要求,但此類實(shí)際運(yùn)行環(huán)境比較難以實(shí)現(xiàn),因此就采用仿真的方法來(lái)驗(yàn)證和測(cè)試軟件的正確性?,F(xiàn)有技術(shù)中,核電站領(lǐng)域都是采用C++Test —類軟件來(lái)運(yùn)行wind river prober進(jìn)行硬件環(huán)境下的仿真測(cè)試,wind riverprober能夠仿真代碼在硬件環(huán)境下的執(zhí)行情況,從而查找代碼中存在的問(wèn)題,wind river probe在使用時(shí)需要搭建硬件環(huán)境(變壓器ー個(gè),wind river probe, 板卡),搭建好環(huán)境后,然后編譯測(cè)試對(duì)象,加載到仿真環(huán)境中,執(zhí)行編譯生成文件,觀察仿真器wind river probe指示燈,然后選擇剛剛執(zhí)行過(guò)的測(cè)試用例,進(jìn)行跟蹤調(diào)試,每調(diào)試完一個(gè)功能項(xiàng),要重新啟動(dòng)硬件仿真器,執(zhí)行步驟比較繁瑣,靜態(tài)分析和動(dòng)態(tài)測(cè)試都存在這樣的問(wèn)題。而且wind river probe的采購(gòu)周期長(zhǎng),成本高,很多單位即使有數(shù)量也很少,當(dāng)有多個(gè)項(xiàng)目人員需要使用吋,往往就會(huì)出現(xiàn)無(wú)法同時(shí)兼顧的情況,影響工作進(jìn)度。另一方面,wind riverprobe在進(jìn)行硬件仿真時(shí),開(kāi)發(fā)人員編寫(xiě)的代碼必須已經(jīng)開(kāi)發(fā)完整,不完整的情況下,很難讓測(cè)試人員運(yùn)行在wind riverprober的硬件仿真環(huán)境里,如開(kāi)發(fā)人員寄存器沒(méi)有初始化的情況下,測(cè)試人員就無(wú)法進(jìn)行測(cè)試,需要重起硬件wind river probe,更改寄存器的值,很不便利。目前多數(shù)行業(yè)開(kāi)始采用軟件仿真來(lái)代替硬件仿真,軟件仿真需要的運(yùn)行環(huán)境相對(duì)硬件仿真的運(yùn)行環(huán)境要少得多,而且軟件仿真可以方便實(shí)現(xiàn)測(cè)試程序某個(gè)部分、某個(gè)功能、某個(gè)方向的部分輸出,而且可以隨時(shí)中止測(cè)試程序,隨時(shí)提出測(cè)試過(guò)程中的數(shù)據(jù),這些都是硬件仿真所實(shí)現(xiàn)不了的。因此需要在C++Test環(huán)境下來(lái)執(zhí)行軟件仿真程序, 但是由于C++Test本身僅為硬件仿真所開(kāi)發(fā),其無(wú)法直接運(yùn)行軟件仿真程序,因此,如何在核電站領(lǐng)域中克服C++Test不能運(yùn)行軟件仿真程序的問(wèn)題,是當(dāng)前需要解決的問(wèn)題。

發(fā)明內(nèi)容
為解決現(xiàn)有技術(shù)中,C++Test環(huán)境里無(wú)法實(shí)現(xiàn)軟件仿真環(huán)境下的測(cè)試對(duì)象的靜態(tài)分析和動(dòng)態(tài)測(cè)試的跟蹤調(diào)試的問(wèn)題,本發(fā)明提供ー種利用C++Test環(huán)境下調(diào)入仿真軟件實(shí)現(xiàn)無(wú)操作系統(tǒng)測(cè)試軟件的靜態(tài)分析和動(dòng)態(tài)跟蹤調(diào)試的技術(shù)方案,具體方案如下C++Test 在無(wú)操作系統(tǒng)下的軟件仿真方法,包括如下步驟步驟1、在工程軟件中編譯測(cè)試對(duì)象并生成測(cè)試腳本,利用測(cè)試腳本生成測(cè)試中間文件;步驟2、在C++test中利用仿真環(huán)境執(zhí)行測(cè)試中間文件;步驟3、以C++test環(huán)境下得到仿真環(huán)境下的測(cè)試結(jié)果和覆蓋率統(tǒng)計(jì)信息;
其特征在于所述步驟2包括如下步驟步驟21、在C++test中配置工程軟件的使用環(huán)境;步驟22、在C++test中調(diào)用測(cè)試腳本所用到的工程軟件的運(yùn)行時(shí)庫(kù);步驟23、在C++test中編譯調(diào)用程序來(lái)調(diào)用軟件仿真程序;步驟23、在C++test環(huán)境下的工程軟件中執(zhí)行軟件仿真程序與測(cè)試中間文件進(jìn)行交互測(cè)試。本發(fā)明的另ー優(yōu)選方案所述步驟3得到的測(cè)試結(jié)果包括中間測(cè)試結(jié)果或根據(jù)需要得到的部分測(cè)試結(jié)果。本發(fā)明的另ー優(yōu)選方案所述步驟23編譯調(diào)用的軟件仿真程序是Windiss軟件仿
ζΜ^ ο本方案充分解決無(wú)硬件仿真環(huán)境支持的情況下,進(jìn)行單元測(cè)試靜態(tài)分析和動(dòng)態(tài)測(cè)試的跟蹤調(diào)試的難題,同時(shí)提供測(cè)試覆蓋率數(shù)據(jù)支持。使軟件仿真直接運(yùn)行在C++Test環(huán)境下,不必等到先做出硬件板卡再進(jìn)行測(cè)試,縮短了エ期,提高了工作效率。達(dá)到降低技術(shù)難度、克服資源短缺、降低成本的效果。將原嵌入式動(dòng)態(tài)單元測(cè)試執(zhí)行流程3個(gè)步驟合并成一個(gè)執(zhí)行步驟,簡(jiǎn)化了執(zhí)行過(guò)程。將C++Test與wind river probe進(jìn)行交互的動(dòng)作,全部替換為調(diào)用軟件仿真代碼,同時(shí)加上了編譯動(dòng)態(tài)運(yùn)行時(shí)庫(kù)的操作,以提供測(cè)試對(duì)象在編譯過(guò)程中調(diào)用的相關(guān)庫(kù)穩(wěn)健,C++test采用軟件仿真程序(windiss)后相對(duì)硬件仿真(wind river probe)大約提高工作效率25% .。本發(fā)明可以節(jié)約成本,減少對(duì)硬件資源的依賴,通過(guò)編代碼腳本可以使用測(cè)試工具C++Test進(jìn)行軟調(diào)試,可以方便進(jìn)行代碼定位。


圖1本發(fā)明執(zhí)行步驟示意框圖。圖2本發(fā)明在C++Test里中配置測(cè)試對(duì)象執(zhí)行環(huán)境示意圖。圖3是圖2基礎(chǔ)上插樁配置示意圖。圖4是圖3基礎(chǔ)上運(yùn)行選項(xiàng)示意圖。圖5是圖4基礎(chǔ)上配置調(diào)試窗ロ示意圖。圖6是圖5基礎(chǔ)上設(shè)置斷點(diǎn)示意圖。圖7是圖6基礎(chǔ)上處理斷點(diǎn)示意圖。
具體實(shí)施例方式本方案的無(wú)操作系統(tǒng)是指測(cè)試對(duì)象本身就是可執(zhí)行的操作系統(tǒng),沒(méi)有運(yùn)行在其它的操作系統(tǒng)環(huán)境下,它含有main函數(shù),可無(wú)限循環(huán)調(diào)用。本方案重新編寫(xiě)C++test的腳本命令,將原調(diào)用硬件仿真的代碼編寫(xiě)成調(diào)用軟件仿真的代碼,采用直接在C++test中調(diào)用工程軟件的時(shí)序庫(kù),使軟件仿真完全運(yùn)行在C++test環(huán)境下,實(shí)現(xiàn)了 C++test環(huán)境下對(duì)單元測(cè)試的靜態(tài)分析、動(dòng)態(tài)測(cè)試的跟蹤調(diào)試,同時(shí)可以提供測(cè)試覆蓋率數(shù)據(jù)支持。在實(shí)現(xiàn)wind river prober所有功能的情況下,還克服了 wind river prober需要重新啟動(dòng)才能得到單元測(cè)試的中間執(zhí)行結(jié)果,隨時(shí)可以根據(jù)需要輸出中間某部的測(cè)試結(jié)果,大大提高了編程人員的工作效率。如圖1所示,此為本方案的工作過(guò)程如下
101 在工程軟件中編譯測(cè)試對(duì)象并生成測(cè)試腳本,利用測(cè)試腳本生成測(cè)試中間文件;此為利用相應(yīng)的工程軟件按用戶要求編譯測(cè)試對(duì)象,編譯好后生成測(cè)試腳本,在測(cè)試腳本中添加各個(gè)樁點(diǎn)生成測(cè)試中間文件,添加樁點(diǎn)是為了輸出各種效果以驗(yàn)證此段腳本的功能。102 在C++test環(huán)境下配置工程軟件的使用環(huán)境;在C++test環(huán)境中為步驟1中所使用的工程軟件配置運(yùn)行環(huán)境。103 在C++test中調(diào)用測(cè)試腳本所用到的工程軟件的運(yùn)行時(shí)庫(kù);在C++test配置好的工程軟件環(huán)境中,將當(dāng)前測(cè)試中間文件所用到的工程軟件里的運(yùn)行時(shí)庫(kù)調(diào)進(jìn)來(lái),以支持當(dāng)前測(cè)試中間文件的運(yùn)行。104 在C++test中編譯調(diào)用程序并調(diào)用軟件仿真程序;在C++test環(huán)境里,啟動(dòng)配置好的工程軟件,同時(shí)編寫(xiě)測(cè)試腳本,進(jìn)行測(cè)試配置, 調(diào)用軟件仿真程序的運(yùn)行環(huán)境,利用本方案編制的程序?qū)④浖抡娉绦蛘{(diào)入工程軟件中, 與工程軟件進(jìn)行交互,達(dá)到而測(cè)試目的。105 在C++test環(huán)境下的工程軟件中執(zhí)行軟件仿真程序與測(cè)試中間文件進(jìn)行交互測(cè)試。在C++test環(huán)境下的工程軟件中啟動(dòng)仿真軟件,利用仿真軟件運(yùn)行包含樁點(diǎn)的測(cè)試中間文件,同時(shí)在屏幕上輸出樁點(diǎn)的效果,最終生成可執(zhí)行文件,在此過(guò)程中,C++Test可以隨時(shí)控制軟件仿真的運(yùn)行過(guò)程,以得到想要的結(jié)果。106 在C++test中得到工程軟件的仿真環(huán)境下的測(cè)試結(jié)果和覆蓋率信息;在C++test環(huán)境中,隨時(shí)可以得到仿真軟件的測(cè)試結(jié)果、動(dòng)態(tài)測(cè)試的跟蹤調(diào)試信息及覆蓋率信息,特別是能夠隨時(shí)得到中間測(cè)試結(jié)果,避免了硬件仿真需要重啟當(dāng)前環(huán)境才能得到中間結(jié)果的繁瑣過(guò)程。
104中本方案所編制的程序內(nèi)容如下 本方案首先將C++test執(zhí)行的下述步驟合在ー個(gè)程序中執(zhí)行。
(1)BuildVxfforks Test Module-DKM(PassFS)配置仿真程序運(yùn)行環(huán)境
(2)LoadAnd Run Vxfforks Test Object(DKM)與仿真程序進(jìn)行交互操作。
(3)LoadTestResult:C+test從仿真程序環(huán)境中讀取測(cè)試結(jié)果和覆蓋率統(tǒng)計(jì)信 肩、ο合并后的程序如下將原調(diào)用wind river prober的代碼修改為調(diào)用windiss,同時(shí)增加windiss的時(shí)序庫(kù),く? xml version = “ 1.0〃 encoding = “ UTF-8" ? ><FlowRecipeTemplate toolName = “ C++test" formatVersion = “ 1. 0" ><Name>Build Vxfforks Test Module-DKM(PassFS)</Name><RunnaoleExecution>< ! —SetProperty key = " nm〃 value = " nmpentium" /—> < ! —GNU toolchain—>......</RunnableExecution>
<ConditionaIExecution value = '‘ $ {cpptest os) “ equals =“windows“ ノ<SetProperty key = “ host_prefix" value = “ host: “ /><SetProperty key = " wrsh" value = " windsh" /><SetProperty key=" wrsh" value = " $ {cpptestproperty: wrsh}. bat" /></ConditionalExecution><RunnableExecution>......<PrecompileSt 印/><AppendIncludedTestCases/><HarnessInstrumentationStep symbolsOptimization =" false" /><ReadStaticCoverageStep/><SendStaticCoverageStep/><UserStubsInstrumentationStep/><ReadSymbolsDataStep/>......<CompileSt 印/><BuiIdRuntimeLibStep /><Name>Load And Run Vxfforks Test 0bject (DKM)</Name)......<Compi IeStep file = " $ {cpptest: testware_loc} /ctdt. c" addToExtSources =" true" /><LinkStep result =" ${cpptest:testware_loc}/${project_name} Test, out" /><ClearTempCoverageData/>〈CustomSt印id = " ReadCoverage "......<Name>調(diào)用軟件仿真環(huán)境windiSS</Name> :本方案采用的軟件仿真程序?yàn)?windiss。commandLine = “ windiss. exe$ {cpptest testware_ loc}\${project_name}Test, out"/><Name>Load Test Results</Name><ReadStaticCoverageStep/><SendStaticCoverageStep/>...... </FlowRecipeTemplate>
本方條避免 J C++Test 與 wind river prober 父互時(shí),wina river prober 曾先要將單元測(cè)試編譯后,生成.elf(可執(zhí)行鏈接文件),再將該.elf文件通過(guò)JTAG傳輸協(xié)議傳入到wind riverprobe中,并由wind river probe和板卡交互執(zhí)行,其執(zhí)行的結(jié)果和覆蓋率統(tǒng)計(jì)信息再通過(guò)JTAG傳輸協(xié)議傳回C++Test,然后,在C++Test里顯示的繁瑣步驟。在C++Test和windiss交互時(shí),C++Test將單元測(cè)試編譯后的文件.o,調(diào)用windiss, 用windiss直接執(zhí)行.ο,即直接生成測(cè)試結(jié)果和測(cè)試對(duì)象。本方案在執(zhí)行吋,需要對(duì)C++test環(huán)境進(jìn)行配置,以保持執(zhí)行過(guò)程中使用的工程軟件屬性一致性,保障測(cè)試環(huán)境不被破壞。以下以C++test環(huán)境下調(diào)用windiss舉例說(shuō)明本方案的工作過(guò)程和配置過(guò)程。1、執(zhí)行測(cè)試用例,設(shè)置斷點(diǎn),進(jìn)行跟蹤調(diào)試。2、運(yùn)行測(cè)試用例3、選擇測(cè)試用例;4> Α τΙ Α τ Bui 1 d and run test module for None_0PS module unit testing-FileChannel,其中Build and run test module for None_0PS module unit testing-FileChannel是本發(fā)明為使C++test能夠兼容軟件仿真所開(kāi)發(fā)的腳本。5、建立與仿真環(huán)境一致的交互對(duì)象,新建Connection object,選處理器為5200B, 連接該對(duì)象,選Reset and download選項(xiàng),將執(zhí)行測(cè)試用例生成的.OUT文件,用AddFiles 按鈕加入到當(dāng)前面板。如圖2所示。6、配置 Instruction pointer,如圖 3 所示。7、配置 Run options->Run Options,如圖 4 所示。8、點(diǎn)debug按鈕,進(jìn)入動(dòng)態(tài)單元測(cè)試調(diào)試窗ロ,如圖5所示。9、點(diǎn)擊測(cè)試用例,設(shè)置斷點(diǎn)點(diǎn)擊Resume按鈕,如圖6所示。10、光標(biāo)直接運(yùn)行到,斷點(diǎn)處,如圖7所示。以此類推,即可以跟蹤調(diào)試所需的測(cè)試代碼了。
權(quán)利要求
1.C++Test在無(wú)操作系統(tǒng)下的軟件仿真方法,包括如下步驟步驟1、在工程軟件中編譯測(cè)試對(duì)象并生成測(cè)試腳本,利用測(cè)試腳本生成測(cè)試中間文件;步驟2、在C++test中利用仿真環(huán)境執(zhí)行測(cè)試中間文件;步驟3、以C++test環(huán)境下得到仿真環(huán)境下的測(cè)試結(jié)果和覆蓋率統(tǒng)計(jì)信息;其特征在于所述步驟2包括如下步驟步驟21、在C++test中配置工程軟件的使用環(huán)境;步驟22、在C++test中調(diào)用測(cè)試腳本所用到的工程軟件的運(yùn)行時(shí)庫(kù);步驟23、在C++test中編譯調(diào)用程序來(lái)調(diào)用軟件仿真程序;步驟23、在C++test環(huán)境下的工程軟件中執(zhí)行軟件仿真程序與測(cè)試中間文件進(jìn)行交互測(cè)試。
2.如權(quán)利要求1所述的C++Test在無(wú)操作系統(tǒng)下的軟件仿真方法,其特征在干,所述步驟3得到的測(cè)試結(jié)果包括中間測(cè)試結(jié)果或根據(jù)需要得到的部分測(cè)試結(jié)果。
3.如權(quán)利要求1所述的C++Test在無(wú)操作系統(tǒng)下的軟件仿真方法,其特征在干,所述步驟23編譯調(diào)用的軟件仿真程序是windiss軟件仿真。
全文摘要
本發(fā)明涉及C++Test在無(wú)操作系統(tǒng)下的軟件仿真方法,屬于計(jì)算機(jī)仿真領(lǐng)域,包括在C++test中配置工程軟件的使用環(huán)境;在C++test中調(diào)用測(cè)試腳本所用到的工程軟件的運(yùn)行時(shí)庫(kù);在C++test中編譯調(diào)用程序并調(diào)用軟件仿真程序;在C++test環(huán)境下的工程軟件中執(zhí)行軟件仿真程序與測(cè)試中間文件進(jìn)行交互測(cè)試;以C++test環(huán)境下得到仿真環(huán)境下的測(cè)試結(jié)果和覆蓋率統(tǒng)計(jì)信息。本方案利用C++test在無(wú)硬件仿真環(huán)境支持的情況下,進(jìn)行單元測(cè)試靜態(tài)分析和動(dòng)態(tài)測(cè)試的跟蹤調(diào)試,同時(shí)提供測(cè)試覆蓋率數(shù)據(jù)支持,減少了硬件需求,縮短了工期,提高了工作效率。
文檔編號(hào)G06F11/36GK102541615SQ201010579998
公開(kāi)日2012年7月4日 申請(qǐng)日期2010年12月7日 優(yōu)先權(quán)日2010年12月7日
發(fā)明者劉軍利, 孟廣國(guó), 張宓, 張海濱 申請(qǐng)人:中國(guó)廣東核電集團(tuán)有限公司, 北京廣利核系統(tǒng)工程有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
波密县| 芒康县| 土默特左旗| 章丘市| 双江| 监利县| 西充县| 巴东县| 三台县| 旬邑县| 万荣县| 八宿县| 大港区| 和硕县| 阳东县| 榆树市| 荥经县| 长阳| 宁强县| 栾城县| 土默特右旗| 株洲县| 弥勒县| 金阳县| 长垣县| 淄博市| 密山市| 绥滨县| 兴隆县| 巴南区| 南阳市| 板桥市| 海口市| 龙胜| 兴海县| 吉木萨尔县| 吴江市| 布尔津县| 沙雅县| 阜城县| 襄樊市|