ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:272.32KB ,
资源ID:11623107      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11623107.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vxworks模拟器使用指南.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vxworks模拟器使用指南.docx

1、vxworks模拟器使用指南约定 文档中提到的路径,均相对于ROS5(M)目录而言。1. 编译模拟器1.1. 基本原理为了节省时间,模拟器不像设备那样编译一个完整的vxworks镜像文件,而是把系统和模块分开。系统存放在vxsimvxWorks文件中,该文件由系统组负责维护。模块则编译在vxsimvxsim.out文件中,这个文件由各自编译。为了编译理解,我们可以和Windows系统做一个对比,vxworks文件相当于Windows系统,.out文件相当于一个exe文件。我们开发一个exe文件的时候,并不需要编译整个Windows系统。因此我们只需要编译出vxsim.out文件即可。vxsim

2、.out的编译过程如下:1、 编译vxsim目录下的所有.c文件,生成对应的.o文件2、 链接步骤1生成的.o文件和libgnuvxworksSIMNT、publibgnuvxworksSIMNT目录下的所有.a文件。如果两个目录有同名文件,则使用lib目录下的。1.2. 编译vxsim.out当前模拟器的编译不再使用Workbench工程,完全使用批处理commonvxsim.bat进行,该批处理应该用VxWorks Development Shell运行,而不是cmd。下面描述都假设是在common目录下。从基本原理那能看出,编译vxsim.out需要编译vxsim目录下的.c文件和编译库

3、文件(.a文件)。其中主要的工作是编译库文件。1.2.1. 库文件编译编译一个库文件的方法是 vxsim.bat libname,其中libname指的是模块的名称,在module目录下应该有一个libname.module文件。比如:最终生成的库文件是存放在libgnuvxworksSIMNT目录下,也即当前编译的库文件优先于publib的库文件。一般而言,公共的库文件(rdvp/support/rcis/simssp)在publib目录下已经存在稳定的版本,不用另外编译。各自只需要编译自己当前开发/调试的模块即可。ROS5和ROS5M编译库文件略有不同。ROS5M下的代码是全的,各个组件可

4、以正常编译,比如需要编译命令行库文件,只需要运行vxsim.bat cli即可。其余各个组件的编译方法类似。由于cli目录下存在大量的未组件化模块的命令行,编写不甚规范,在ROS5下是编译不过的(ROS5M可以编过),因此ROS5下应该使用publib下的cli库文件。但是publib下的cli库文件并不包含正在开发的模块命令行,为了解决这个问题,可按如下步骤进行:1、 ROS5的cli库文件应该起一个新名称,比如qoscli。只需要复制一份module下的cli.module文件,然后改个名即可,比如改成qoscli.module。注意该文件不能受控。2、 在cli目录下增加一个filter

5、.txt文件,里面写一行ROSCFILES=xxx.c,比如,这样表示该目录(cli)下只编译erpsCli.c这个文件,可以写多个,中间用空格隔开,大小写敏感,比如ROSCFILES=erpsCli.c elpsCli.c3、 编译新增加的命令行库文件,比如这样在lib目录下就会生成一个libqoscli.a。之所以要改名,是因为如果这里也用cli这个名称,根据优先原则,publib下的libcli.a将不会被链接,导致其他模块的命令行链接不进来。mib虽然在ROS5下也能编译通过,但是建议采用和cli类似的处理方法。1.2.2. 编译.out文件库文件编译好了之后,即可编译vxsim.ou

6、t文件了,执行vxsim.bat dev即可:如果编译成功,则在vxsim目录下会生成一个vxsim.out文件,这个就是我们用来调试的文件。1.3. 常见问题编译问题这里不再赘述,按照一般的编译问题定位方法即可,这里说模拟器比较典型的两个问题:缺少定义和重复定义。缺少定义也就是我们常见的“undefined reference to xxxx”这种错误。模拟器的编译是不会报这种错误的,只有在运行的时候才会出现这种错误。上面说了,现在模拟器是分成了两部分,系统的vxworks文件和模块的vxsim.out文件。编译vxsim.out文件的时候,如果某些变量找不到定义,会假定其在vxworks文

7、件中,因此不会报错只有等运行的时候才会报错。重复定义,也就是我们常见的“multiple definition xxxx”这种错误,常见于组件开发过程,特别是那些未组件化的模块组件化的时候。因为在libothers.a中存在一份定义,然后新开发的模块中也有一份定义。但是,正常情况下,即使有重复定义,如果模块的独立性没问题,那么也不会出现重复定义的问题。如果出现了这个问题,可以打开vxsim目录下的vxsim.map文件查看原因。里面列出了各个.o被引用的原因。正常情况下,由于lib目录优先,publib下的libothers.a中的旧模块应该是不会被引用的。2. 编写ssp【本节暂时作废,先别

8、看】和设备类似,模拟器也有自己的ssp,用于硬件的一些行为。当前模拟器的ssp放在ROS5sspvxsim_ssp目录下,ROS5M不做复制,仅做映射。vxsim_ssp下有两个目录,一个src一个include,分别用于存放源文件和头文件。一般而言,每个模块应该有两个源文件和一个头文件。定义的规则如下:定义一个xxx.c,名字和hwapi头文件的名称一样,比如有一个maclibHwApi.h,则定义一个maclibHwApi.c用于存放hwapi的7个(pvset, pvget, svget, svset, ssget, ssset, ssdel)函数(部分模块可能只有7个中的部分)。然后再

9、定义一个xxxVxsim.c,用于存放功能代码,xxx为模块的名称,取xxxhwapi.h的前面部分,比如maclibHwApi.h则对应的是maclibVxsim.c,头文件叫maclibVxsim.h,也放在src目录下。当前已经实现了一些基本的hwapi,比如mac,vlan和port,但是还很不完整,特别是收发包模块的转发功能,后续会根据大家的需求补全。具体的ssp功能如何编写这里没办法说,毕竟各个模块不一样,简单的说,就是要用软件来模拟硬件的功能。3. 建立远端系统在Workbench的Remote Systems窗口下建立远端系统【如果已经有远端系统且正确配置,这一步省略】,如下图

10、(如果找不到Remote Systems这个窗口,请参考附录A):点击图中的红色方框内的按钮即可新建一个远端系统。远端系统类型选“Wind River VxWorks 6.x Simulator Connection”,如下图:下一步,然后配置启动参数,如下图:这里需要配置两个参数,一个是选择镜像文件,请选择ROS5vxsimvxWorks。另一个是“Processor number”,这个相当于远端系统的编号。每个远端系统相当于一台设备,如果需要调试一些需要多设备联调的模块,就需要建立多个远端系统,各个远端系统之间的“Processor number”不能重复。下一步,配置内存选项,如下图:

11、红色方框内的是内存大小选项,默认是32,需要修改为一个更大的值,推荐128,如果调试的是很大的模块,建议改的更大,具体数值请根据各个模块的内存使用情况。下一步,配置其他参数,如下图:这里主要配置三个参数:临时目录的路径,选择vxsimwb目录;是vxsim的进程优先级,建议修改为“Normal”;其他选项,这里我们主要配置simnet接口。以-ni开头,留一个空格,然后后面配置各个simnet接口的IP地址,各个simnet接口之间用分号隔开。simnet接口的命名按照simnet+接口号的格式进行。simnet接口介绍请参考附录B simnet简介。至此,远端系统就算建立好了,上述的各个配置

12、在建立好了之后也可以修改,修改的方式为右击一个远端系统,然后选择“Properties”。4. 建立调试配置调试配置主要需要以下事情: 选择远端系统 选择.out文件 配置入口函数步骤如下:菜单:RunDebug Configurations右击左边窗口的VxWorks Kernel Task,选择New:在“Launch Context”标签页下需要做几个配置:1、选择远端系统;2、输入入口函数,ROS5统一为sysAppInit;3、Debug栏下的两个复选框选上。 在“Download”标签页下选择.out文件:点击“Add”按钮,会弹出一个对话框,点击浏览按钮,选择对应的.out文件。

13、至此,调试配置建立完毕。附录A Workbench下打开某个窗口的方法如果当前view下没有找到需要的窗口,可以选择菜单中的WindowShow View。在弹出的下拉菜单里面有各种窗口,如果没有找到想要的,则点击最下面的Other,如下图:点击Other之后会弹出一个Show View的窗口,如下图:可以在type filter text框里面输入过滤字符串,即可找到想要的窗口。附录B simnet简介simnet用于模拟远端系统之间的网络连接。如果两个simnet接口的IP地址网段相同,那么这两个接口就是连通的,不管是同一个远端系统内还是不同的远端系统之间。比如远端系统A配置了simnet

14、1=,远端系统B配置了simnet1=,远端系统C配置了simnet2=,那么A:simnet1、B:simnet1、C:simnet2就是连通的。注意,simnet接口的IP地址不是随便配的,其网段是有限制的,具体请参考后面章节。在ROS5里面,我们用simnet来模拟端口,simnet0模拟SNMP口,simnet1-6模拟1-6口。在上面的例子里面A的端口1,B的端口1,C的端口2是连通的,它们中任意一个发出的报文都能被另外两个收到。上面说了,simnet的IP地址是有限制的,simnet能否互通依赖于一个服务,大家打开自己的Windows服务管理窗口,如果看到下图红色框内的服务,则表示

15、已经安装:如果没看到则需要安装该服务,在vxworks shell下运行vxsimnetds_inst.exe即可安装该服务。如果安装成功则在Windows的服务管理里面应该能看到该服务。停止该服务,然后在启动参数里面输入:-f xxxx,其中xxxx表示的是simentds的配置文件,格式在后面讲,如下图:,将启动类型修改为自动。这个步骤只需要在安装了simnetds服务之后执行一次即可。配置文件格式如下:SUBNET_START sub1 SUBNET_ADDRESS = ;SUBNET_EXTERNAL = yes;SUBNET_EXTPROMISC = yes;SUBNET_START

16、 sub2 SUBNET_ADDRESS = ;SUBNET_EXTERNAL = yes;SUBNET_EXTPROMISC = yes;每个子网配置包含三部分,可以配置多个子网。关键看“SUBNET_ADDRESS”段,这里配置的是一个子网地址,最后一位是0。上面说的simnet的IP地址是有限制的,意思是只能配置在在配置文件中定义了的子网地址,比如上面的配置文件中,simnet只能配置,少了不够用,多了浪费内存(每个网段约1M)。附录C 模拟器和实际设备联调这里简单介绍一下如果将模拟器和实际设备连接起来。这里需要用到虚拟网卡,在介绍虚拟网卡安装方法之前,先介绍一下拓扑:桥接程序网线sim

17、netds上面介绍了,模拟器可以配置simnet接口用来模拟物理端口,相同网段的simnet接口是互通的,如果虚拟网卡的IP地址网段也相同,那么simnet接口和虚拟网卡也是连通的。因此,只要模拟器上有一个1-6之间的simnet接口的IP地址网段和虚拟网卡的相同,就意味着模拟器有一个“端口”连接到虚拟网卡上了。开发了一个桥接程序(依赖于wincap),可以将从一个网卡收上来的报文原样转发到另一个网卡,反过来也一样。因此可以用桥接程序将虚拟网卡和一块物理网卡连接起来,然后物理网卡通过网线和设备相连,那么就相当于模拟器和实际设备相连了。(当前的桥接程序的MAC表容量只有100,也即下挂的设备不能超过100台)。上面说的虚拟网卡并不是Windows自带的虚拟网卡,而是Wind River提供的虚拟网卡,安装步骤如下:控制面板添加硬件下一步是,我已经连接了此硬件下一步添加新的硬件设下一步安装我手动从列表选择的硬件下一步网络适配器下一步从磁盘安装选择“WindRivervxworks-6.7hostx86-win32binwrtap.inf”下一步下一步完成。虚拟网卡的IP不用配置,它会选择上面的simnetds的配置文件的第N个网段作为其IP网段,最后一位是254,N是这是你安装的第几块虚拟网卡的编号。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1