打通VxWorks调试环境 Step by Step(X86)
- 格式:doc
- 大小:44.00 KB
- 文档页数:9
1.安装JAVA虚拟机j2re-1_4_2_19-windows-i586-p.exe2.安装VxWorks开发环境:Wind River Workbench3.0.顺序安装5张光盘:1)光盘1CDR-R126095.1-1-00Wind River Workbench 3.0QCpgN-Ff5gK-9dB75-9KMdd-7gCCC安装时需要注意的设置(安装下面的光盘相同):A.信息,随意填写B.安装方式,选择第二种“DISK SERIAL NUMBER”C.安装类型:选择第三种“Enter the Installation Key”,输入上面安装序列号D.其他保持默认设置,直接“下一步”即可。
2)光盘2CDR-R132650.1-1-00VxWorks 6.6 and General Purpose Technologies7F$CN-AQ4iK-bEIK4-iQFEJ-Q8iCK-9F9FF-FFF9f-FFFFF3)光盘3CDR-R132652.1-1-00Board Support Packages for VxWorks 6.6 for ColdFire, Intel Architecture, and SuperH 7FpCN-B759K-bB775-9KFBc-79gUU4)光盘4CDR-R132655.1-1-00Wind River Platform Technologies, VxWorks Edition 3.677pCN-B759K-bdBf5-gKFBc-79gCK注意:该光盘的安装路径为“X:\wind\river”和前3个不同5)光盘5CDR-R132657.1-1-00Wind River GNU Compiler 4.1.2 for VxWorks 6.67CphN-B759K-Fd7F5-FUFBd-79gCK3.安装完成后的设置1)将zwrsLicense_0016e68bb005_lily.lic文件拷到C:\WindRiver\license\目录下2)增加快捷方式“\WindRiver\workbench-3.0\wrwb\platform\eclipse\wrwb-x86-win32.exe”到程序组WindRiver中4.启动开发环境1)打开工具“VxWorks Development Shell”,输入命令“vxsimnetd –f vxsimnetd.conf”2)启动VxWorks6.6开发环境WorkBench附录:常见问题1.“VxWorks Development Shell”设置问题问题原因:配置文件需要放置在安装根目录下解决办法:配置文件需要放置在安装根目录下2.启动后问题问题原因:安装问题解决办法:重新正确安装,注意第三张光盘的目录3.安装问题问题原因:该问题不影响使用。
说明:由于开发经验和英语水平有限,在本文档中肯定存在偏差和谬误。
在有疑问的地方,请以风河的官方文档为准。
欢迎联系,指正错误。
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.所建的工程建立在已有的原文件之上,改变工程目录之后需要对源文件进行添加和链接。
Vxworks虚拟机环境搭建一、tornado的安装大部分地方默认,部分要注意的地方如下:需要的安装包:[风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.PENTIUM.CD1.ISO[风河VxWorks].WINDRIVER.TORNADO.V2.2.FOR.PENTIUM.CD2.ISO 虚拟光驱工具:任意DTLite4356-0091.zip (必须通过虚拟光驱来安装)注册序列号:sn_all.txt 见第四条四、WINDRIVER.TORNADO.V2.2.FOR.PENTIUM软件大小:328M安装方法:1)首先安装虚拟光驱软件DAEMON3.22)分别MOUNT 文件夹CD1和CD2下后缀名为BIN的文件3)自动安装后,输入序列号如下:CD1: cAQ8i-qP2I&-g$vT6-3&gjw-bEk9gCD2: A7KbB-Rd37p-hNFBE-kzgaT-b9gpC4)拷贝CRACK目录下的license.dat 到c:\flexlm 目录,如果没有这个目录,自己建一个。
设置如下环境变量:LM_LICENSE_FILE = c:\flexlm\license.dat按装完tornado后,首先要解压vxworks_end.exe文件三次出现target文件夹,将target\h\drv\end\ln97xEnd.h和target\src\drv\end\ln97xEnd.c、Makefile 覆盖对应的问件。
不要全部覆盖。
(其他的config\pc486.972、man文件夹都不要,太旧了。
注意做好整个tornado2.2\target的备份)二安装vxworks:总的过程分为以下几步:1、编译网卡驱动单击windows系统的开始菜单,在“运行”里输入“cmd”打开控制台程序。
进入:D:\tornado2.2\host\x86-win32\bin\运行:torVars.bat;进入:cd D:\tornado2.2\target\src\drv\end目录运行:make CPU=PENTIUM tool=gnu ln97xend.o (这一步会出现重复提示,不要管它,它自己会结束。
第一步VxWorks WindRiver Tornado v2.2 for Pentium CD1install key: cAQ8i-qP2I&-g$vT6-3&gjw-bEk9g第二步在C盘创建flexlm目录第三步拷贝tornado目录下CRACK目录下或者破解目录下的license.dat 到c:\\flexlm 目录,第四步在tornado目录下的setup.log文件中找到以下标识,HKEY_LOCAL_MACHINE\SOFTWARE\FLEXlm License Manager\LM_LICENSE_FILE将该键键值改为c:\flexlm\license.dat第五步将pcPentium目录复制到tornado2.2\target\config\目录下第六步将PCnet\target下所有目录复制到C:\Tornado2.2\target下,确认覆盖第七步按如下步骤完成驱动程序的编译和替换:打开一个控制台窗口(DOS窗口),运行批处理程序:$(WIND_BASE)\host\x86-win32\bin\ torVars.bat;第八步重新定位到$(WIND_BASE)\target\src\drv\end目录,运行:make CPU=PENTIUM tool=gnu ln97xend.o(区分大小写)其间会产生一些警告,但这不会影响我们的工作。
第九步重新定位到$(WIND_BASE)\target\lib\pentium\PENTIUM\common目录,并将上一步生成的文件ln97xend.o复制到此目录下。
备份此目录下的文件libdrv.a;第十步运行命令arpentium -d libdrv.a ln97xEnd.o,删除libdrv.a中原有的ln97xEnd模块,然后再运行命令:arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o将我们刚刚创建的新模块添加进去。
目 录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 )主要包括基于优先级的任务调度、任务同步和通信、中断处理、定时器和内存管理。
VxWork介绍及编程VxWork介绍及编程一.嵌入式操作系统VxWorks简介VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。
实时操作系统和分时操作系统的区别从操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统。
分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。
这样的系统无法实时响应外部异步事件。
实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。
分时系统主要应用于科学计算和一般实时性要求不高的场合。
实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。
VxWorks的特点•可靠性操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。
而稳定、可靠一直是VxWorks的一个突出优点。
自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。
•实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。
实时性的强弱是以完成规定功能和作出响应时间的长短来衡量的。
VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。
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提供了多种任务间通信机制,如消息队列、信号量、邮箱等。
开发人员可以根据实际需求选择合适的通信机制,实现任务间的数据交换和同步。
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入门VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在美国的F-16、FA-18 战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。
VxWorks原先对中国区禁止销售,自解禁以来,在我们的军事、通信、工业控制等领域得到了非常广泛的应用。
嵌入式系统的调试方法一般为通过PC(宿主机)上的集成开发环境交叉编译针对特定电路板(目标机)的程序,然后将程序通过目标板的JTAG、串口或网口等途径下载到目标板上运行。
如图1。
因此,为了构造一个嵌入式系统的学习环境,拥有一块包含CPU、存储器及I/O电路(构造计算机系统)的目标电路板往往是必要的。
虽然许多集成开发环境附带模拟软件,但仅限于指令集的模拟,均无法模拟物理的目标机硬件平台,因而在其上只能进行应用程序的象征性模拟开发。
但是,并非所有人都能拥有一块物理的电路板。
在这种情况下,我们如何构造一个模拟的开发环境,其学习效果就如同拥有完全真实的电路板一样呢? 本文试图解答此问题,主体内容包括四个方面:1.利用VMware等软件模拟真实的目标机;2.构建VMware虚拟PC上VxWorks BSP,建立Bootrom和OS映像;3.修改Tornado相关设置,连接宿主机与目标机,建立调试通道;4.写一个简单的应用程序并下载到目标系统运行。
图1 嵌入式系统的调试本章工作的最终目标为:(1)VxWorks在VMware启动成功并顺利运行,如图2;图2 在VMware中运行的VxWorks(2)可在Tornado上针对目标板编译程序并进行调试,如图3。
图3 与目标机建立调试通道的Tornado1. 模拟目标机PC也具有目标机的所有特点,实际上,我们可以把PC作为嵌入式系统的目标机,从而构造如图4所示的开发模型:图4 PC作为目标机很遗憾,这种方法实际上非常麻烦,同时开动两台PC进行调试将使你和你的室友饱受折磨,既然他如此地热切于游戏和上网。
Workbench_3.1调试操作步骤
Workbench_3.1调试操作步骤1.打开Workbench,选定要调试⼯程,创建调试任务Step1:定义⼀个连接到远程系统
预置条件:装置升级到与要调试的vxworks版本⼀致Step2:选择远程系统类型
Step3:⽬标服务器选项
需要填写⽬标服务器的IP和选择vxworks镜像⽂件路径
Step4:点击Finish,将调试⼯程的⽬录展开,可看到所有任务
2.对具体任务进⾏调试
对具体任务进⾏调试,将调试的任务加⼊调试列表
在调试列表中可以看到已经添加调试的任务
添加断点
在断点列表中可以看到所添加的所有断点
还可以查看变量,寄存器,表达式,内存等
⼀般情况下,装置运⾏起来的时候,任务都已经执⾏,⽆法将需要调试的任务添加到调试列表,所以需要在编译调试版本是将需要调试的任务进⾏delay
taskDelay (sysClkRateGet ( ) *20);/*20S*/
3.对具体函数进⾏调试
在调试任务栏可以看到正在运⾏的任务
已添加的调试任务
不同任务以不同的颜⾊区分。
在一台 PC 机上调试 VxWorks 的串口通信程序应用笔记一、工作目标:编写一套基于 VxWorks 实时多任务操作系统的 RS232串口通信应用程序二、工作环境:硬件:PC 机、目标板(暂无图 2.1 PC机属性软件:虚拟机 VMware6.5.1、 Tornado2.2 for pcPentium、虚拟串口工具SerialNull 、串口调试助手(精装版 V3.6 、虚拟软盘工具 RamDiskNT 。
解释:1、由于没有目标板,所以用虚拟机来模拟 x86平台,运行 VxWorks 。
2、安装 WindRiver 公司的 Tornado2.2 for pcPentium,来开发运行于 X86平台上的 VxWorks 内核镜像和 VxWorks 应用程序。
3、由于 PC 机上只有一个串口,因此要用虚拟串口工具来虚拟出一对串口。
考虑到 VxWorks 默认自带的只有 COM1和 COM2, 因此用 SerialNull 来虚拟出 COM1和 COM2,并覆盖原有的物理串口 COM1和 COM2.4、用串口调试助手在 Windows 端接收 VMware 上的 VxWorks 所发出的信息。
5、用 RamDiskNT 虚拟出一个软盘来做为 VxWorks 的启动盘。
图 2.2 虚拟机上运行VxWorks图 2.3 WindowsXP上运行的Tornado2.2 for pcPentium图 2.4 虚拟串口工具图 2.5 串口调试助手图 2.6虚拟软盘工具 RamDiskNT三、实现步骤上安装并运行 VxWorks 。
作系统,在硬件中新增串口。
1、在 VMware 1 在虚拟机上新建一个 VxWorks的操2 采用 FrankSolution (网上提供的一个 VMware 上运行 VxWorks 的解决方案, 参见《 VMware 上运行 VxWorks_FrankSolution.pdf》一文里面的 vm.iso 光盘镜像做为启动工具,或者自制一个虚拟的启动软盘(参见《 VMware 上运行VxWorks_VirtualFloppyDisk_Solution.pdf》一文。
在虚拟机上运⾏vxWorksVxworks是⼀个嵌⼊式系统,主要运⾏在arm、ppc、mips等嵌⼊式处理器上,它同样可以运⾏在X86处理器上。
风河公司开发的tornado开发环境就包括了pentium版本,并且发布了相应的bsp。
因此我们可在vmware虚拟机上运⾏vxworks,利⽤虚拟机的功能,我们不需要额外的计算机硬件就可以开始我们的实验。
系统引导计算机系统上电后,⾸先需要执⾏引导程序,然后加载操作系统。
嵌⼊式系统中⼀般是将引导程序(称之为bootrom)固化在ROM芯⽚(也称为bootrom,指的是物理硬件)中。
系统上电后执⾏ROM中的引导程序,将操作系统由flash(或硬盘)加载到内存。
对于PC⽽⾔,系统上电后运⾏BIOS程序,之后将软盘或则硬盘上的引导扇区载⼊内存执⾏引导过程,引导程序再将操作系统加载到内存中启动。
vmware的虚拟硬盘开始时没有安装引导程序,因此⽆法从硬盘引导。
因此我们需要制作⼀个引导软盘来引导系统加载vxworks。
我们的第⼀个实验就是编译引导程序镜像,制作引导盘。
制作引导盘⾸先要在你的PC上Tornado 2.2 for pcPentium开发环境。
另外需要安装pcPentium的BSP 包,这个软件包可以到风河公司的⽹站免费下载。
制作引导盘当然还需要⼀张软盘,但是⽬前的PC基本都不使⽤软盘软驱了(如果你的古董机还有软驱的话,那么恭喜你,你只需要⼀张软盘就搞定了)。
好在vmware可以直接使⽤软盘镜像并且可以直接创建软盘镜像,因此我们在vmware中安装⼀个虚拟的windowsxp系统,以便在虚拟的windowsXP系统中将软盘镜像格式化,并制作启动软盘。
当然也可以使⽤虚拟软驱RamDiskNT在主机上使⽤软盘镜像。
Ok,准备⼯作做好了,我们开始编译bootrom。
你可以通过tornado集成开发环境的菜单命令build boot rom。
弹出build boot rom对话框,我们选择pcpentium BSP、编译bootrom、⼯具使⽤gnu编译完成后可以在$WIND_BASE/target/config/pcPentium⽬录下找到编译出来的bootrom⽂件。
X86ARM等主板调试步骤主板调试是指对计算机主板硬件进行检查和设置,以确保系统能够正常运行。
在调试过程中,主要涉及到电源供给、BIOS设置、CPU、内存、显卡、硬盘等硬件的检查和设置。
本文将详细介绍X86和ARM主板调试的步骤。
1.检查电源供给:首先检查电源插座是否正常,然后将电源线连接到主板上的电源插槽上。
然后按下电源键,观察是否有亮起的指示灯和风扇是否正常转动,以确保电源供给正常。
2.设置BIOS:开机后按下DELETE键或者F2键进入BIOS设置界面。
然后检查硬盘、DVD驱动器、USB接口、以太网接口等设备是否正确识别。
如果需要,可以进行设置和调整。
3.CPU检查和设置:打开主板的CPU插槽,将CPU小心地插入插槽中,并确保插入位置正确。
然后将散热风扇安装到CPU上,并连接散热风扇的电源线。
最后,检查CPU温度传感器和风扇转速传感器是否正常。
如果需要,可以通过BIOS设置来调整CPU频率和电压。
4.内存检查和设置:将内存插入主板上的内存插槽中,并确保插入位置正确。
然后按下主板上的内存锁,确保内存连接牢固。
接下来,进入BIOS设置界面,检查内存是否被正确识别,并进行相应的设置。
5.显卡检查和设置:将显卡插入主板上的PCI-E插槽中,并确保插入位置正确。
然后将显卡的显示器连接器连接到显示器上,并开启显示器。
检查显示器是否正常显示,并在需要的情况下,设置显卡的分辨率和刷新率。
6.硬盘检查和设置:将硬盘插入主板上的SATA插槽中,并确保插入位置正确。
然后打开电源,开机后按下DELETE键或者F2键进入BIOS设置界面。
然后检查硬盘是否被正确识别,并进行相应的设置。
7.其他硬件检查和设置:检查主板上的其他硬件设备,如声卡、网卡、USB接口等是否被正确识别,并进行相应的设置。
8.系统启动:完成上述步骤后,按下电源键开机,等待系统自检完成,并启动操作系统。
如果系统无法正常启动,可以通过BIOS设置来检查相关错误信息,并进行相应更改。
嵌入式实时操作系统VxWorks入门――开发环境构建VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在美国的F-16、FA-18 战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。
VxWorks原先对中国区禁止销售,自解禁以来,在我们的军事、通信、工业控制等领域得到了非常广泛的应用。
VxWorks 的实时性体现在能于限定的时间内执行完所规定的功能,并能在限定的时间内对外部的异步事件作出响应。
因此,实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。
本文将对这个操作系统进行一个入门级的、全面的介绍。
为力求展示其全貌,全文共分五章:(1)搭建VxWorks嵌入式开发环境;(2)简要介绍VxWorks的基本组成,内核的基本结构;(3)概述VxWorks板级支持包(BSP)的概念及VxWorks的启动过程;(4)介绍VxWorks设备驱动的架构及编写方法;(5)指明VxWorks应用开发的思路,任务调度及任务同步、中断与任务的同步机制。
以上各章中将贯穿着许多实例,由于本文定位于入门级教程,所以文中的实例都将十分简单。
下面我们进入第一章内容的讲解。
如图1,嵌入式系统的调试方法一般为通过PC(宿主机)上的集成开发环境交叉编译针对特定电路板(目标机)的程序,然后将程序通过目标板的JTAG、串口或网口等途径下载到目标板上运行。
因此,为了构造一个嵌入式系统的学习环境,拥有一块包含CPU、存储器及I/O电路(构造计算机系统)的目标电路板往往是必要的。
虽然许多集成开发环境附带模拟软件,但仅限于指令集的模拟,均无法模拟物理的目标机硬件平台,因而在其上只能进行应用程序的象征性模拟开发。
打通VxWorks调试环境Step by Step1 引言1.1 编写目的概要说明如何建立使用Tornado开发、调试VxWorks的环境(X86版本)。
1.2 背景1.3 定义HOST:主机,运行Tornado集成环境,FTP Server,Target Server,以及编辑、build工程、下载目标文件的各种软件工具;TARGET:目标机,HOST产生的vxWorks映像运行的位置,对于X86版本来说也是一台PC;TORNADO:C:\Tornado,安装Tornado的路径;BSPNAME:C:\Tornado\target\config\pc486,BSP的路径,本例中我们选择pc486;PROJECT:C:\Tornado\proj\Project2,我们自己创建的工程的路径;BIN:C:\Tornado\host\x86-win32\bin,Tornado的可执行程序的路径;HOME:C:\Tornado\host\x86-win32\bin,FTP用户的根目录。
1.4 参考资料Tornado User’s G uide (Windows Version), 2.0, Edition 1VxWorks Programmer’s Guide, 5.4, Edition 12 总体描述2.1 硬件环境HOST与TARGET通过以太网互连,并且位于同一网段;同时,串口通过直连电缆(NULL Modem Cable)连接。
目标机配置有软盘驱动器,网卡为3com 3c905B.2.2 软件环境主机操作系统为Windows 2000简体中文专业版(SP3);安装Tornado Version 2.0和Win 2k 补丁。
(CD No. TDK-12835-ZC-01 & TDK-13127-ZC-00, T2 LM for x86)2.3 预览在VxWorks调试环境中,HOST与TARGET之间连接的方式有多种,比如串口和网络;引导TARGET的方式也有多种,当然对X86平台来说最简单的是软盘引导了。
在本文档中我们以网络连接、软盘引导为例,建立起调试环境。
主要步骤包括:HOST上启动FTP Server,配置BSP创建可以引导TARGET的Boot ROM,制作引导盘(软盘),用软盘引导TARGET,TARGET通过网络连接从HOST下载vxWorks映像文件,TARGET运行vxWorks,HOST上启动Target Server连接Target Agent,成功建立调试环境之后,就可以在HOST 生成目标模块,下载到TARGET运行,并通过Tornado集成环境进行调试。
注意:本文档中所描述的对于某些选项的选择并不一定是绝对的,只是一个行之有效的实例,仅供参考。
3 详细步骤3.1 获得IP地址和网卡类型首先要知道HOST和TARGET的IP地址以及TARGET安装的网卡类型。
在本例中,HOST的IP是10.10.0.150,TARGET的IP是10.10.0.151。
TARGET的IP地址只要不跟其他机子冲突即可(正常情况下可以通过你们的网管得到),因为目前TARGET并没有安装任何操作系统,所以这个IP地址无从配置,只是在后面的配置文件中会用到。
网卡类型是一个十分重要的问题。
为了减少麻烦,最好选择VxWorks缺省支持的网卡类型,否则可能还要添加网卡驱动程序。
不知道哪里有这样一个所支持的网卡列表,但是在不同BSP的BSPNAME/config.h文件中可以看出一些眉目。
比如pc486/config.h中有如下定义:#undef INCLUDE_ULTRA /* include SMC Elite16 Ultra inte**ce */#undef INCLUDE_ENE /* include Eagle/Novell NE2000 inte**ce */#undef INCLUDE_ELT /* include 3COM EtherLink III inte**ce */#undef INCLUDE_ESMC /* include SMC 91c9x Ethernet inte**ce */#define INCLUDE_FEI /* include Intel Ether Express PRO100B PCI */#define INCLUDE_SLIP /* include serial line inte**ce */#define SLIP_TTY 1 /* serial line IP channel COM2 */#undef INCLUDE_ELC /* include SMC Elite16 inte**ce */#undef INCLUDE_EEX /* include INTEL EtherExpress inte**ce */#undef INCLUDE_EEX32 /* include INTEL EtherExpress flash 32 */#undef INCLUDE_EX /* include Excelan Ethernet inte**ce */#undef INCLUDE_ENP /* include CMC Ethernet inte**ce*/#undef INCLUDE_SM_NET /* include backplane net inte**ce */#undef INCLUDE_SM_SEQ_ADDR /* shared memory network auto address setup */#undef INCLUDE_EL_3C90X_END /* 3com fast etherLink XL PCI */#undef INCLUDE_LN_97X_END /* AMD 79C972 END DRIVER */从注释中可以看出,NE2000、3COM 3C509、3COM 3C90X、Intel EtherExpress PRO100B 等网卡是VxWorks所支持的,同时也是比较常见的,可以说是初次配置VxWorks的比较好的选择。
本例中我们使用了一块3COM 3C905B网卡(3com Fast EtherLink XL PCI)。
事实证明能够很好地支持。
其实也不是所有的3COM网卡都支持,有一篇网友的帖子显示,3C905-TX的网卡就给他带来了很大的麻烦,换了3C905-BT才好,好像3C905-FX也是可以的。
3.2 修改hosts文件在文件c:\winnt\system32\drivers\etc\hosts 中添加如下行:10.10.0.150 xmdong10.10.0.151 target3.3 FTP服务器Tornado自带了一个FTP服务器软件WFTPD。
当HOST是WIN32平台时,TARGET通过网络连接,只能用FTP协议从HOST下载vxWorks映像文件。
打开FTP Server,选中Security > Users/Rights…菜单,在添加新用户对话框中:User Name: target,Password: target,Home Directory: 这里我设置为BIN,你也可以设置为其他路径,记住你的设置。
后面DEFAULT_BOOT_LINE中定义的vxWorks文件路径,就是以HOME为根目录的相对路径。
建议将vxWorks文件复制到HOME目录下面,这样vxWorks文件的路径最短。
另外,你可以通过Logging > Log Options…菜单,选中那些可选项目,来观察FTP过程中的问题。
配置好之后,启动FTP Server。
3.4 配置BSP配置BSP的工作是通过修改config.h文件完成的。
这一步比较关键。
打开BSPNAME/config.h文件。
在文件的108行左右,会有对不同CPU的DEFAULT_BOOT_LINE定义语句,它描述了引导参数,定义正确之后所制作的Boot ROM软盘才能正常引导TARGET机子。
根据我们的配置,这里应该修改为:#elif (CPU == I80486)#define DEFAULT_BOOT_LINE \ "elPci(0,0)xmdong:vxWorks \ h=10.10.0.150 e=10.10.0.151 u=target pw=target tn=target"参数参数值描述Boot device elPci 3COM 3C905B网卡Processor number (0,0)Host name xmdong 主机名File name vxWorks VxWorks Image 文件路径名Host inet (h) 10.10.0.150 主机网络接口地址Inet on Ethernet (e) 10.10.0.151 目标机网络接口地址User (u) target FTP用户名Password (pw) target FTP密码Target name (tn) target 目标机名称有关引导参数的详细描述,请参考Tornado User’s Guide之2.5.4 Description ofBoot Parameters。
BSP中缺省包含了对Intel Ether Express PRO100 网卡的支持,而我们用的是3C905B网卡,因此要去掉原来的定义,添加对我们的网卡的支持:#undef INCLUDE_FEI#define INCLUDE_EL_3C90X_END /* for our 3COM 3C905B NIC */3.5 新工程然后在Tornado中新建一个工程。
选择“Create a bootable VxWorks image”,OK。
Step 1Name: Project2Location: C:\Tornado\proj\Project2 (以后我们提到PROJECT就是指这个路径)Workspace: Add to current WorkspaceStep 2Would you like to base your project on: A BSP, pc486 (也就是我们说的BSPNAME)Step 3Finish3.6 Build工程在Tornado环境的Workspace窗口中,选中前面新建的工程PROJECT,从鼠标右键弹出菜单中执行ReBuild All (VxWorks)。
Build Output窗口显示了build的过程。
成功之后,生成PROJECT/default/vxWorks映像文件。