vxworks模拟器使用指南
- 格式:docx
- 大小:260.29 KB
- 文档页数:10
VxWorks使用说明书1、概述VxWorks操作系统的集成环境叫Tornado。
T ornado集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。
Tornado环境采用主机-目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(T arget Server)与目标机上的目标代理(Target Agent)的通信完成对应用程序的调试、分析。
它主要由以下几部分组成:VxWorks高性能的实时操作系统;* 应用编译工具;* 交互开发工具;下面对T ornado集成环境的各组件功能分别介绍:* Tornado开发环境Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,同样也可以从Shell窗口下发命令和浏览。
* WindConfig:T ornado系统配置通过WindConfig可选择需要的组件组成VxWorks实时环境,并生成板级支持包BSP的配置。
通过修改config.h可以实现WindConfig的所有功能,并且,可以实现WindConfig不能实现的功能。
* WindSh:Tornado外壳WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。
Tornado外壳还能解释常规的工具命令语言TCL。
WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。
它主要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机。
* 浏览器Tornado浏览器可查看内存分配情况、任务列表、CPU利用率、系统目标(如任务、消息队列、信号量等)。
说明:由于开发经验和英语水平有限,在本文档中肯定存在偏差和谬误。
在有疑问的地方,请以风河的官方文档为准。
欢迎联系,指正错误。
QQ:1039309823。
风河Woorkbench3.0/VxWorks6.6使用说明第一章工程视图(Projects Overview)Workbench利用工程( Projects)就像逻辑容器和积木块——它们能够连接在一起创建一个软件系统。
工程( Projects)窗口可以直观地组织工程结构反映在内部的依赖关系上,以及编译和链接的次序。
前期配置的各种不同的工程允许在后面建立或添加工程时使用与之前的工程相同的配置和建立方式,因而只需要极小的输入。
一、Workspace/Project 的设置Wind River Workbench并不知道使用者的源文件在哪一个地方,在开始的使用的时候Wind River Workbench在安装目录下有一个默认的工作空间(workspace )的目录。
但是这不是必需的或者说并不一定是合理的,当使用者的工作空间因为产品升级或者更改安装目录已经完全存储在当前的安装目录树之外的时候!通常,使用者需要把workspace目录设置在当前的源文件树的根目录下并且在此创建Workbench工程。
对于各种不同的源文件树,可以使用不同的工作空间(workspaces)。
当决定在什么地方建立工程(projects)要做以下考虑:1.在workspace建立工程如果使用者想要新建一个工程在workspace下,通常的情况有A.所建的工程还没有建立源文件。
B.所建的工程已经存在源文件,但需要添加进工程。
C.所建的工程不允许设置在源文件目录处。
2.在workspace外部建立工程在创建工程时,点击“Browse”,将要建立的工程放置在在与workspace不同的目录。
通常的情形有:A.所建的工程建立在已有的原文件之上,改变工程目录之后需要对源文件进行添加和链接。
Tornado使用指南目录1.概述 (2)1.1 T ORNADO 组件 (2)1.1.1 开发工具 (2)1.1.2 实时系统 (3)1.1.3 Tornado 文件目录 ...................................................................................................... 41.2 硬件/软件配置 .. (7)1.3 booting介绍 (7)1.4 Tornado开始过程 (12)1.5 WDB 代理 (14)2Projects (15)2.1 bootable projects (15)2.2 集成模拟器vxsim (23)2.3 Downloadable projects (21)2.4 build说明 (24)3WindSh 和Browser (25)3.1WindSh (25)3.2 Browser (28)4 CrossWind (29)4.1Debugging简介…………………………………………………………………………29.4.2 任务级Debugging……………………………………………………………………..29.4.3 系统级Debugging (30)1. 概述VxWorks 是美国Wind River System 公司(以下简称风河公司,即WRS 公司)推出的一个实时操作系统。
WRS 公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。
VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。
VxWorks CF卡及网络启动方法:CF卡格式化后分区,分出小于2G的空间,然后格式化文件系统选择fat16,勾选建立dos系统。
将、msdos.sys、io.sys三个文件拷入分区.新建vxworks boot loader工程(为了生成boorom),选好bsp后修改bsp中的config.h文件,修改方法见附件《vxworks的default boot line说明》。
clean project,然后编译工程。
生成bootrom.bin文件,将后缀改成sys,即得到bootrom.sys文件拷入cf卡。
将目标程序工程得到的vxworks文件拷入即可。
第一次启动时输C:lock把引导写入扇区VXWORKS电脑模拟单步调试方法建立downloadble工程,调试按钮里面选kerneltask,entrypoint里面填上入口函数下入控创机器建立的工程叫vxworks image project机器模拟调试建立工程叫downloadble kernel module project打开文件:电脑模拟用 fp= fopen("host:D:/juzhensuanfa/shishi/data.txt","r");机器用fp= fopen("/ata0a/data.txt","r");Dos命令下arp –a查看网卡地址。
工控机vxworks下E:\WindRiver64-wrs\vxworks-6.4\target\config,passauold文件夹的BSP时候网卡地址:00-25-a8-00-09-95data.txt文档写完矩阵以后最后一行要是回车注意组播地址的问题,第一字节最后一位是1stime.c文件里面把win32改成vxworks,有个取毫秒时间的被改了成time(NULL)ms_asn1_to_local在mms_vvar.h中有声明887行VOID readtxtcfg()读txt 文件配置电网拓扑矩阵,此方法不灵活,以后后台系统成熟后改成通过后台图形界面自动搜索拓扑生成array矩阵。
目 录632.7.应用示例分析 (61)2.5.应用软件开发指导 (61)2.4.VxWorks 系统任务 (60)2.3.板级支持包BSP (57)2.2.应用系统配置 (55)2.1.系统启动 (54)2.VxWorks 应用指导 (51)1.9.网络通信 (51)1.8.POSIX Memory-locking 接口 (50)1.7. POSIX 时钟和定时器 (49)1.6.看门狗定时器(Watchdog Timers) (46)1.5.中断服务代码 (18)1.4.任务间通信 (5)1.3.任务 (5)1.2.VxWorks 操作系统内核 (4)1.1.VxWorks 操作系统简介 (4)1.VxWorks 操作系统介绍...............................................................关键词:RTOS POSIX VxWorks Tornado摘 要:本文档对实时操作系统作了简要介绍,并详细描述了Vxworks 内核和运行环境的基本原理,并概述了系统配置、系统接口等方面的内容。
1.VxWorks 操作系统介绍1.1.VxWorks 操作系统简介现代的实时操作系统主要增加了支持多任务和任务间通信的概念。
多任务环境允许一个实时应用作为一个独立的任务创建。
在VxWorks 里,任务间通信机制依靠信号量,消息队列,管道及socket(实现网络透明传输)实现。
实时操作系统的另外一个主要功能就是硬中断处理。
为使中断得到尽快响应,VxWorks 的中断服务程序(ISRs)有自己单独的context ,它与其他任务的context 不在一起。
本文主要讨论了多任务内核,任务机制(facilities),任务间通信及中断处理机制,这些都是VxWorks 运行环境的核心内容。
VxWorks 操作系统的基本构成模块包括以下部分:Ÿ高效的实时内核WindVxWOrks 实时内核(Wind )主要包括基于优先级的任务调度、任务同步和通信、中断处理、定时器和内存管理。
VxWorks CF卡及网络启动方法:CF卡格式化后分区,分出小于2G的空间,然后格式化文件系统选择fat16,勾选建立dos系统。
将、msdos.sys、io.sys三个文件拷入分区.新建vxworks boot loader工程(为了生成boorom),选好bsp后修改bsp中的config.h文件,修改方法见附件《vxworks的default boot line说明》。
clean project,然后编译工程。
生成bootrom.bin文件,将后缀改成sys,即得到bootrom.sys文件拷入cf卡。
将目标程序工程得到的vxworks文件拷入即可。
第一次启动时输C:lock把引导写入扇区VXWORKS电脑模拟单步调试方法建立downloadble工程,调试按钮里面选kerneltask,entrypoint里面填上入口函数下入控创机器建立的工程叫vxworks image project机器模拟调试建立工程叫downloadble kernel module project打开文件:电脑模拟用 fp= fopen("host:D:/juzhensuanfa/shishi/data.txt","r");机器用fp= fopen("/ata0a/data.txt","r");Dos命令下arp –a查看网卡地址。
工控机vxworks下E:\WindRiver64-wrs\vxworks-6.4\target\config,passauold文件夹的BSP时候网卡地址:00-25-a8-00-09-95data.txt文档写完矩阵以后最后一行要是回车注意组播地址的问题,第一字节最后一位是1stime.c文件里面把win32改成vxworks,有个取毫秒时间的被改了成time(NULL)ms_asn1_to_local在mms_vvar.h中有声明887行VOID readtxtcfg()读txt 文件配置电网拓扑矩阵,此方法不灵活,以后后台系统成熟后改成通过后台图形界面自动搜索拓扑生成array矩阵。
VxWorks操作指南项目\子项目名称:3G BTS平台分系统拟制部门:科技发展部拟制日期:2000.2.28目录1. 实时嵌入式操作系统V X W ORKS (3)2.V X W ORKS和T ORNADO (4)3.T ORNADO的配置 (5)3.1 主机的设置:Tornado Register (5)3.2 目标的设置 (6)4.T ORNADO开发工具的使用介绍 (7)4.1 Editor (7)4.2 Projects(Tornado 2.0版本特有) (7)4.3 Shell (8)4.4 Debugger (9)4.5 Browser (10)4.6 GNU工具 (10)4.7 Target Server (11)5.V X W ORKS的启动过程及相关例程 (12)5.1 VxWorks启动的一般原理 (12)5.2 MSDOS的启动过程 (13)6.V X W ORKS的多任务管理 (14)6.1多任务 (14)6.2任务状态转换 (14)6.3 wind任务的排序(scheduling)机制 (14)6.4 任务控制 (15)6.5 任务的删除和删除安全 (15)6.6 任务异常处理 (16)6.7 VxWorks系统任务 (16)7任务间通信(原语消息的传递) (16)7.1 概述 (16)7.2 互斥 (17)7.3 同步 (18)7.4 删除安全 (19)7.5 中断和任务间的通信 (19)8应用程序的加载 (19)1.实时嵌入式操作系统VxWorksVxWorks操作系统是一种应用广泛的嵌入式实时多任务操作系统。
其内核WIND具有强占式优先级排序的多任务处理能力,提供了任务间同步和通信的机制,支持中断处理、看门狗定时器和内存管理功能。
VxWorks的开发环境是Tornado,应用程序的开发语言是ANSI C和C++。
VxWorks的开发体系是代理-服务器(Agent-Server)结构体系,即驻留在主机(Host)的开发工具Tornado通过目标服务器(Target Server)指示目标上的目标代理(Target Agent)进行目标板上的操作并将结果返回给主机。
vxworks7编程指南VxWorks 7编程指南VxWorks 7是一款实时操作系统(RTOS),被广泛应用于嵌入式系统开发中。
本文将为读者介绍VxWorks 7的一些基本概念、特性和编程指南,帮助读者更好地理解和应用VxWorks 7。
一、VxWorks 7概述VxWorks 7是一款由美国飞利浦公司(Wind River)开发的实时操作系统,它具有高性能、可靠性和可定制性的特点。
VxWorks 7支持多种硬件平台,包括x86、ARM、PowerPC等,并提供了丰富的开发工具和库函数,方便开发人员进行嵌入式系统的开发。
二、VxWorks 7的特性1. 实时性:VxWorks 7具有非常高的实时性能,能够满足对实时性要求较高的应用场景,如航空航天、军事等领域。
2. 多任务支持:VxWorks 7支持多任务并发执行,可以同时处理多个任务,提高系统的吞吐量和效率。
3. 可定制性:VxWorks 7提供了灵活的系统配置和组件定制功能,开发人员可以根据实际需求进行裁剪和优化,减少系统资源占用。
4. 异常处理:VxWorks 7提供了丰富的异常处理机制,能够有效地处理系统中出现的异常情况,保证系统的稳定性和可靠性。
5. 网络支持:VxWorks 7提供了完善的网络支持,包括TCP/IP协议栈、网络驱动程序等,方便开发人员进行网络应用的开发。
三、VxWorks 7编程指南1. 开发环境搭建:首先,需要安装VxWorks 7的开发工具和相应的编译器。
然后,创建一个新的项目,配置项目的相关参数,如目标硬件平台、编译选项等。
2. 任务创建和管理:使用VxWorks 7提供的API函数,可以创建和管理多个任务。
任务的创建需要指定任务的入口函数和优先级等参数,任务的管理包括任务的启动、挂起、恢复等操作。
3. 任务间通信:VxWorks 7提供了多种任务间通信机制,如消息队列、信号量、邮箱等。
开发人员可以根据实际需求选择合适的通信机制,实现任务间的数据交换和同步。
约定
文档中提到的路径,均相对于ROS5(M)目录而言。
1.编译模拟器
1.1.基本原理
为了节省时间,模拟器不像设备那样编译一个完整的vxworks镜像文件,而是把系统和模块分开。
系统存放在vxsim\vxWorks文件中,该文件由系统组负责维护。
模块则编译在vxsim\vxsim.out文件中,这个文件由各自编译。
为了编译理解,我们可以和Windows系统做一个对比,vxworks文件相当于Windows系统,.out文件相当于一个exe文件。
我们开发一个exe文件的时候,并不需要编译整个Windows系统。
因此我们只需要编译出vxsim.out 文件即可。
vxsim.out的编译过程如下:
1、编译vxsim目录下的所有.c文件,生成对应的.o文件
2、链接步骤1生成的.o文件和lib\gnu\vxworks\SIMNT、publib\gnu\vxworks\SIMNT目
录下的所有.a文件。
如果两个目录有同名文件,则使用lib目录下的。
1.2.编译vxsim.out
当前模拟器的编译不再使用Workbench工程,完全使用批处理common\vxsim.bat进行,该批处理应该用VxWorks Development Shell运行,而不是cmd。
下面描述都假设是在common 目录下。
从基本原理那能看出,编译vxsim.out需要编译vxsim目录下的.c文件和编译库文件(.a 文件)。
其中主要的工作是编译库文件。
1.2.1.库文件编译
编译一个库文件的方法是vxsim.bat libname,其中libname指的是模块的名称,在module目录下应该有一个libname.module文件。
比如:
最终生成的库文件是存放在lib\gnu\vxworks\SIMNT目录下,也即当前编译的库文件优先于publib的库文件。
一般而言,公共的库文件(rdvp/support/rcis/simssp)在publib目录下已经存在稳定的版本,不用另外编译。
各自只需要编译自己当前开发/调试的模块即可。
ROS5和ROS5M编译库文件略有不同。
ROS5M下的代码是全的,各个组件可以正常编译,比如需要编译命令行库文件,只需要运行vxsim.bat cli即可。
其余各个组件的编译方法类似。
由于cli目录下存在大量的未组件化模块的命令行,编写不甚规范,在ROS5下是编译不过的(ROS5M可以编过),因此ROS5下应该使用publib下的cli库文件。
但是publib下的cli库文件并不包含正在开发的模块命令行,为了解决这个问题,可按如下步骤进行:
1、ROS5的cli库文件应该起一个新名称,比如qoscli。
只需要复制一份module下
的cli.module文件,然后改个名即可,比如改成qoscli.module。
注意该文件不
能受控。
2、在cli目录下增加一个filter.txt文件,里面写一行ROSCFILES=xxx.c,比如
,这样表示该目录(cli)下只编译
erpsCli.c这个文件,可以写多个,中间用空格隔开,大小写敏感,比如
ROSCFILES=erpsCli.c elpsCli.c
3、编译新增加的命令行库文件,比如
这样在lib目录下就会生成一个libqoscli.a。
之所以要改名,是因为如果这里也用cli这个名称,根据优先原
则,publib下的libcli.a将不会被链接,导致其他模块的命令行链接不进来。
mib虽然在ROS5下也能编译通过,但是建议采用和cli类似的处理方法。
1.2.2.编译.out文件
库文件编译好了之后,即可编译vxsim.out文件了,执行vxsim.bat dev即可:
如果编译成功,则在vxsim目录下会
生成一个vxsim.out文件,这个就是我们用来调试的文件。
1.3.常见问题
编译问题这里不再赘述,按照一般的编译问题定位方法即可,这里说模拟器比较典型的两个问题:缺少定义和重复定义。
缺少定义也就是我们常见的“undefined reference to xxxx”这种错误。
模拟器的编译是不会报这种错误的,只有在运行的时候才会出现这种错误。
上面说了,现在模拟器是分成了两部分,系统的vxworks文件和模块的vxsim.out文件。
编译vxsim.out文件的时候,如果某些变量找不到定义,会假定其在vxworks文件中,因此不会报错只有等运行的时候才会报错。
重复定义,也就是我们常见的“multiple definition xxxx”这种错误,常见于组件开发过程,特别是那些未组件化的模块组件化的时候。
因为在libothers.a中存在一份定义,然后新开发的模块中也有一份定义。
但是,正常情况下,即使有重复定义,如果模块的独立性没问题,那么也不会出现重复定义的问题。
如果出现了这个问题,可以打开vxsim目录下的vxsim.map文件查看原因。
里面列出了各个.o被引用的原因。
正常情况下,由于lib目录优先,publib下的libothers.a中的旧模块应该是不会被引用的。
2.编写ssp
【本节暂时作废,先别看】
和设备类似,模拟器也有自己的ssp,用于硬件的一些行为。
当前模拟器的ssp放在ROS5\ssp\vxsim_ssp目录下,ROS5M不做复制,仅做映射。
vxsim_ssp下有两个目录,一个src一个include,分别用于存放源文件和头文件。
一般而言,每个模块应该有两个源文件和一个头文件。
定义的规则如下:定义一个xxx.c,名字和hwapi头文件的名称一样,比如有一个maclibHwApi.h,则定义一个maclibHwApi.c用于存放hwapi的7个(pvset, pvget, svget, svset, ssget, ssset, ssdel)函数(部分模块可能只有7个中的部分)。
然后再定义一个xxxVxsim.c,用于存放功能代码,xxx为模块的名称,取xxxhwapi.h 的前面部分,比如maclibHwApi.h则对应的是maclibVxsim.c,头文件叫maclibVxsim.h,也放在src目录下。
当前已经实现了一些基本的hwapi,比如mac,vlan和port,但是还很不完整,特别是收发包模块的转发功能,后续会根据大家的需求补全。
具体的ssp功能如何编写这里没办法说,毕竟各个模块不一样,简单的说,就是要用软件来模拟硬件的功能。
3.建立远端系统
在Workbench的Remote Systems窗口下建立远端系统【如果已经有远端系统且正确配置,这一步省略】,如下图(如果找不到Remote Systems这个窗口,请参考附录A):
点击图中的红色方
框内的按钮即可新建一个远端系统。
远端系统类型选“Wind River VxWorks 6.x Simulator Connection”,如下图:。