999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Proemulator的插樁構架研究

2010-04-12 00:00:00王忠民謝永剛
現代電子技術 2010年3期

摘 要:將可擴展、可裁剪的嵌入式模擬器應用于嵌入式軟件測試有很多優點。詳細研究了已有嵌入式模擬器Proemulator的工作機制,提出基于模擬器的嵌入式測試平臺構架。首先將被測軟件進行插樁,生成目標程序運行于模擬器之上,模擬器進程在執行過程中實時地將樁數據發送給樁信息分析器,由分析器即時得出程序運行過程中的語句覆蓋率。實現了基于Proemulator的插樁構架,包括樁數據的發送與獲取,能有效進行白盒測試。

關鍵詞:嵌入式測試平臺;模擬器;插樁;Proemulator

中圖分類號:TP391.9 文獻標識碼:A

文章編號:1004-373X(2010)03-188-03

Research on Instrumentation Frame Based on Proemulator

FAN Lin,WANG Zhongmin,LIANG Chen,XIE Yonggang

(Xi′an Institute of Post and Telecommunications,Xi′an,710061,China)

Abstract:There are many advantages of applying extensible and scalable embedded simulator to embedded software testing.Particular researches are made to working mechanism of existing embedded simulator:Proemulator.An Embedded System Testing Environment Frame(ESTE) is brought forward.Adding instrumentation into embedded program under test,compile and link the instrumented program to get an executable program.Running it on the simulator,the simulator process sends instrument information timely to instrument analyzer.The analyzer can calculate program statement coverage.An instrumentation frame based on Proemulator which can send and analyze instrumentation effectively and timely to do white box testing are realized.

Keywords:embedded test environment frame;simulator;instrumentation;Proemulator

0 引 言

由于目標機與宿主機處理器體系結構不同,嵌入式軟件無法在宿主機上直接運行與測試[1],因此嵌入式軟件的開發過程常常比硬件開發過程還要漫長,導致整個系統開發周期長,軟件功能調試和性能測試不能及時完成,軟件質量無法保證。嵌入式模擬器能良好地解決這一問題[2]。

將模擬器應用到嵌入式軟件的開發與測試中,其優點有如下幾個方面:

(1) 采用模擬器進行嵌入式開發與測試能讓軟件和硬件開發同步進行,縮短開發周期;

(2) 能提供比真正硬件環境下更豐富的測試環境,拓寬測試范圍;能進行長時間的測試,甚至能在真實硬件不能承受的“危險”條件下測試[3]。

(3) 能提供調試,測試,變量查看,性能分析,實驗數據存儲等多種額外功能,便于開發與測試人員進行分析。

1 國內外模擬器相關研究

國內外已有若干較成熟的嵌入式系統模擬器,如ARM公司的ARMmulator[4],同濟大學開發的Proemulator中針對ARM芯片的指令模擬器[5],清華大學Sky Eye項目中的指令模擬器[6],Linux上的開源軟件GDB ARMulator[7]。

Proemulator是一個源碼開放的通用模擬器架構,能在宿主機上以純軟件方式模擬各種硬件設備(包括CPU、輸入/輸出設備等),也可以模擬由這些設備組成的單片機或嵌入式系統。它基于插件機制,主程序提供整個構架,包括運行環境的建立、代碼的裝載和運行時內存、寄存器、端口的查看界面等,而插件負責模擬不同硬件設備的行為和特性,并抽象成一個統一的接口提供給主程序調用[6]。通過這個機制,模擬新的設備變得更為容易。Proemulator提供多種CPU插件與若干種片內與片外外設,結構圖如圖1所示。

圖1 Proemulator結構圖

2 基于嵌入式模擬器的插樁構架

嵌入式測試平臺建立在嵌入式模擬器之上,測試過程中首先對被測程序進行插樁,樁節點在程序運行過程中能同步的,即時地向樁信息分析器輸出預設的樁信息。分析器能實時接收裝數據,并進行分析,從而得出整個被測程序運行過程中的覆蓋率和分支情況。基于嵌入式模擬器的插樁構架如圖2所示。

圖2 基于嵌入式模擬器的插樁構架

3 基于Proemulator的插樁構架實現

嵌入式模擬器和樁信息分析器為兩個獨立進程,在兩者之間實現樁數據的傳遞,需采用進程間通信機制。常見的進程間通信方法有以下幾種:

(1) Socket通信是常見的進程間通信方法,它能良好地支持網絡通信協議TCP/IP,在進行通信時,需要設置端口,并通過幾次握手建立TCP連接,因此適合網絡間的大量數據傳輸,而對于單機上的少量多次數據傳輸并不合適。

(2) 共享內存的方法較為常見,對于每個進程來說,獲得共享內存后,就能實現內存的讀寫操作。但是如果不進行同步,則一個進程在進行讀的過程中另一個進程進行寫操作,就會造成數據的不一致。因此在采用共享內存的方法時,需要將共享區域設置為臨界資源。常用的方法有信號量機制,兩個進程訪問共享內存時,利用P,V操作進行讀寫的互斥。當P操作成功時,才能訪問臨界區,訪問完畢后進行V操作,讓出使用權,使得別的進程能夠訪問。共享內存的方法適合多個進程間的大量數據共享,只要處理好操作的互斥性,該方法非常實用。

(3) WM_COPYDATA消息是Windows底層消息,使用非常方便,只需獲得進行通信的進程的窗口句柄,就能通過SendMessege函數將數據封裝在消息中傳遞給該進程,因為SendMessege函數在接收進程接到消息后才會返回,因此絕對不會發生消息丟失的情況,是可靠的通信。接收方只需要處理WM_COPYDATA消息,便能獲得傳遞來的數據。當然,該方法不能用于網絡間的傳輸,只能用于單機環境下的Windows操作系統。還有管道,剪貼板,文件映射等方法,本文不做詳細介紹。下面詳細介紹基于嵌入式模擬器獲取樁數據的技術難點。

3.1 基于Proemulator的插樁構架

Proemulator源碼完全開放,提供了UART插件,對外設的模擬可以簡化為對端口寄存器的模擬,當程序訪問相應的端口時,觸發其對應外設的動作。UART內部包括控制口和數據口。向控制口寫入工作方式控制字后,訪問數據口數據能觸發事件。在被測程序中進行插樁初始化,設定UART工作方式,在需要插樁的位置將樁數據寫入UART數據端口,然后在UART插件中將寫入數據端口的樁信息使用Windows進程通信機制輸出。

Proemulator提供了多種串行數據重定位的方式來將模擬器內部的數據信息發送至外部,包括控制臺、磁盤文件、命名管道和串口[5]。其中命名管道是一種較好的方式,只需編寫自己的管道接收器,就能實時地接收管道發送出來的樁數據,使用串口也比較方便。還能在Proemulator中加入共享內存,或者發送WM_COPYDATA消息,基于Proemulator的插樁構架如圖3所示。

圖3 基于Proemulator的插樁構架

3.2 插樁構架性能分析

本文實現了基于Proemulator的樁數據的發送與獲取,并進行了分析,見表1。

表1 基于ARMulator和Proemulator的插樁構架比較

基于Proemulator的ESTE

樁數據發送不采用中斷機制,樁數據發送比ARMulator慢

樁數據獲取機制支持磁盤文件,WM_COPYDATA消息通信,共享內存機制,串口通信,命名管道等各種Windows進程通信機制

是否需要編寫外設插件來發送樁數據提供UART插件,能直接使用

外設插件提供插件較多,如UART,LED,LCD等

插件編寫規范其插件編寫規范相應簡單

加載插件修改配置文件無需修改配置文件

4 結 語

本文提出基于嵌入式模擬器的插樁構架,將插樁后的程序經編譯生成可執行代碼,運行于模擬器上,在運行過程中模擬器能實時地將樁信息發送到樁信息分析器,進行代碼的白盒測試。本文基于已有的嵌入式模擬

器Proemulator實現了樁數據獲取。基于嵌入式模擬

器的插樁架均能即時地進行樁數據的發送接收與分析,能有效進行白盒測試。

參考文獻

[1]Alex Heunhe Han,Yong-Ho Ahn,Ki-Seok Chung.Virtual ARM Simulation Platform for Embedded System Developers[A].ITC-CSCC[C].2008:253-256.

[2]李明.兩種嵌入式軟件仿真環境的分析與比較[J].電子產品世界,2003(7):47-49.

[3]蔣崇武,楊順昆,劉斌.面向嵌入式軟件測試的仿真建模[J].計算機工程,2008,34(4):87-89.

[4]ARM Limited.ARM Application Notes[EB/OL].http://rtds.cs.tamu.edu/web_462/techdocs/ARM/appsnotes/index.htm,2003.

[5]Stanley Huang.ProEmulator Introduction[EB/OL].http://proemulator.sourceforge.net,2005.

[6]SkyEye開發小組.Sky Eye項目文檔[EB/OL].http://www.huihoo.org/mirrors/skyeye/skyeyedoc.html.2003.

[7]David McCullough.μClinux in the GDB/ARMulutor[EB/OL].http://www.uclinux.org/pub/uClinux/utilities/armulator,2005.

主站蜘蛛池模板: 欧美国产日产一区二区| 久久久久久高潮白浆| 久久午夜影院| 亚洲综合中文字幕国产精品欧美| 国产性精品| 国产高颜值露脸在线观看| 午夜福利网址| 久久中文无码精品| 999精品视频在线| a网站在线观看| 婷婷六月在线| 亚洲高清在线天堂精品| 全裸无码专区| 国产国语一级毛片在线视频| 欧美黄色网站在线看| 动漫精品中文字幕无码| 无码AV高清毛片中国一级毛片| 在线亚洲精品自拍| 亚洲三级影院| 精品日韩亚洲欧美高清a| 欧美日韩在线国产| 无码AV高清毛片中国一级毛片 | 国产欧美精品一区二区| 国内精品久久人妻无码大片高| 国产精品久久久久久搜索| 日韩精品久久久久久久电影蜜臀| 美女黄网十八禁免费看| 青青草国产精品久久久久| 久无码久无码av无码| 无码中文AⅤ在线观看| 亚洲无码视频喷水| 日本a级免费| 丝袜无码一区二区三区| 老司国产精品视频91| 国产精品99久久久久久董美香| 国产成人a在线观看视频| 国产三级精品三级在线观看| 无码丝袜人妻| 久久国语对白| 国产亚洲精品自在久久不卡| 免费日韩在线视频| 国产成人1024精品| 91在线一9|永久视频在线| 久久永久精品免费视频| 女人18毛片一级毛片在线 | 亚洲va欧美va国产综合下载| 久久综合九色综合97婷婷| 91热爆在线| 精品人妻AV区| www.91中文字幕| 中文字幕在线观| 91精品国产综合久久不国产大片| 国产在线97| 亚洲综合色区在线播放2019| 一本一道波多野结衣一区二区 | 亚洲男人天堂2020| 国产素人在线| 久久这里只精品热免费99| 中文字幕人妻av一区二区| 亚洲综合久久成人AV| 日韩国产黄色网站| 亚洲国产成人自拍| 久久天天躁狠狠躁夜夜躁| 精品视频一区二区三区在线播| 国产精品自在在线午夜区app| 呦视频在线一区二区三区| 久久国产高潮流白浆免费观看| 午夜福利网址| 国产成人综合在线观看| 久久semm亚洲国产| 老司机精品久久| 久久中文无码精品| 国产成人h在线观看网站站| 亚洲国产精品久久久久秋霞影院| 91久久国产成人免费观看| 亚洲一区二区三区中文字幕5566| 伊人网址在线| 欧美日韩中文国产| 一级毛片无毒不卡直接观看| 亚洲成人动漫在线| 欧美一区精品| 波多野结衣二区|