您的位置 首页 IOT

根据Proemulator的插桩构架研讨

0引言由于目标机与宿主机处理器体系结构不同,嵌入式软件无法在宿主机上直接运行与测试,因此嵌入式软件的开发过程常常比硬件开发过程还要漫长,导致整个系统开发周期长,软件功能调试和性能测试不能及时完成,软件

0引 言

由于方针机与宿主机处理器体系结构不同,嵌入式软件无法在宿主机上直接运转与测验,因而嵌入式软件的开发进程常常比硬件开发进程还要绵长,导致整个体系开发周期长,软件功用调试和功用测验不能及时完结,软件质量无法确保。嵌入式模仿器能杰出地处理这一问题。

将模仿器应用到嵌入式软件的开发与测验中,其长处有如下几个方面:

(1)选用模仿器进行嵌入式开发与测验能让软件和硬件开发同步进行,缩短开发周期;

(2)能供给比实在硬件环境下更丰厚的测验环境,拓展测验规模;能进行长时刻的测验,乃至能在实在硬件不能接受的“风险”条件下测验。

(3)能供给调试,测验,变量检查,功用剖析,试验数据存储等多种额定功用,便于开发与测验人员进行剖析。

1国内外模仿器相关研讨

国内外已有若干较老练的嵌入式体系模仿器,如ARM公司的ARMmulator,同济大学开发的Proemulatot中针对ARM芯片的指令模仿器,清华大学Sky Eye项目中的指令模仿器,Linux上的开源软件GDB ARMulator。

Proemulator是一个源码敞开的通用模仿器架构,能在宿主机上以纯软件办法模仿各种硬件设备(包含CPU、输入/输出设备等),也能够模仿由这些设备组成的单片机或嵌入式体系。它根据插件机制,主程序供给整个构架,包含运转环境的树立、代码的装载和运转时内存、寄存器、端口的检查界面等,而插件担任模仿不同硬件设备的行为和特性,并笼统成一个一致的接口供给给主程序调用。经过这个机制,模仿新的设备变得更为简单。Proemutator供给多种CPU插件与若干种片内与片外外设,结构图如图1所示。



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供给了多种串行数据重定位的办法来将模仿器内部的数据信息发送至外部,包含操控台、磁盘文件、命名管道和串口。其间命名管道是一种较好的办法,只需编写自己的管道接纳器,就能实时地接纳管道发送出来的桩数据,运用串口也比较便利。还能在Proemulator中参加同享内存,或许发送WMCOPYDATA音讯,根据Proemulator的插桩构架如图3所示。



3.2插桩构架功用剖析

本文完成了根据Proemulator的桩数据的发送与获取,并进行了剖析,见表1。



4结 语

本文提出根据嵌入式模仿器的插桩构架,将插桩后的程序经编译生成可执行代码,运转于模仿器上,在运转进程中模仿器能实时地将桩信息发送到桩信息剖析器,进行代码的白盒测验。本文根据已有的嵌入式模仿器Proemulator完成了桩数据获取。根据嵌入式模仿器的插桩架均能即时地进行桩数据的发送接纳与剖析,能有用进行白盒测验。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/206071.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部