VxWorks使用说明书.docx
- 文档编号:5484802
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:22
- 大小:28.16KB
VxWorks使用说明书.docx
《VxWorks使用说明书.docx》由会员分享,可在线阅读,更多相关《VxWorks使用说明书.docx(22页珍藏版)》请在冰豆网上搜索。
VxWorks使用说明书
1、概述
VxWorks操作系统的集成环境叫Tornado。
Tornado集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。
Tornado环境采用主机-目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(TargetServer)与目标机上的目标代理(TargetAgent)的通信完成对应用程序的调试、分析。
它主要由以下几部分组成:
1.1VxWorks高性能的实时操作系统;
1.2应用编译工具;
1.3交互开发工具;
2、Tornado集成环境的各组件功能
2.1Tornado开发环境
Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,同样也可以从Shell窗口下发命令和浏览。
2.2WindConfig:
Tornado系统配置
通过WindConfig可选择需要的组件组成VxWorks实时环境,并生成板级支持包BSP的配置。
通过修改config.h可以实现WindConfig的所有功能,并且,可以实现WindConfig不能实现的功能。
2.3WindSh:
Tornado外壳
WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。
Tornado外壳还能解释常规的工具命令语言TCL。
WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。
它主要有以下调试功能:
下载软件模块;
删除软件模块;
产生任务;
删除任务;
设置断点;
删除断点;
运行、单步、继续执行程序;
查看内存、寄存器、变量;
修改内存、寄存器、变量;
查看任务列表、内存使用情况、CPU利用率;
查看特定的对象(任务、信号量、消息队列、内存分区、类);
复位目标机。
2.4浏览器
Tornado浏览器可查看内存分配情况、任务列表、CPU利用率、系统目标(如任务、消息队列、信号量等)。
这些信息可周期性地进行更新。
2.5CrossWind:
源码级调试器
源码级调试器CrossWind提供了图形和命令行方式来调试,可进行指定任务或系统级断点设置、单步执行、异常处理。
有些功能如修改内存、寄存器、变量的值通过菜单操作是无法实现的,需要在WindSh中执行原语操作实现。
2.6驻留主机的目标服务器
目标服务器管理主机与目标机的通信,所有与目标机的交互工具都通过目标服务器,它也管理主机上的目标机符号表,提供目标模块的加载和卸载。
2.7Tornado注册器
所有目标服务器注册其提供的服务在注册器中。
注册器映射用户定义的目标名到目标服务器网络地址。
2.8VxWorks
Tornado集成了VxWorks操作系统。
2.9目标代理程序
目标代理程序是一个驻留在目标机中的联系Tornado工具和目标机系统的组件。
一般来说,目标代理程序往往是不可见的。
3、MPC750/MCPN750上bootrom的制作
MPC750/MCPN750上的bootrom用于初始化MPC750/MCPN750的硬件,通过网口加载VxWorks的内核映象。
因为MPC750/MCPN750的bootrom已经制作,如果没有特殊需要,不需重新制作bootrom。
制作MPC750/MCPN750上bootrom的步骤:
3.1在Tornado集成环境下,使用菜单命令Project>MakeMCP750/MCPN750>CommanTargets>clean删除以前生成的bootrom文件,使用菜单命令Project>MakeMCP750/MCPN750>CommanTargets>bootrom.hex生成bootrom文件。
生成的bootrom文件在相应的BSP目录中,如MCP750为
3.2使用elftobin
3.3启动TFTP服务器tftpd32.exe,设置下载文件(mcp750.bin)的目录
3.4用PPCBug启动目标系统
3.5运行并配置超级终端。
配置:
9600bps波特率、8位数据位、1位停止位、无校验位、无流量控制。
3.6在超级终端中,使用niot命令修改客户(目标机)IP地址和服务器(主机)IP地址
3.7使用niop命令设置加载的文件名(mcp750.bin)
3.8使用pflash4000:
FFF00ff000100命令写FLASHB。
4、启动软盘启动目标机
目标机启动软盘用于启动目标机,通过网口使用Ftp协议从主机下载VxWorks映象。
在X86平台上,一般使用启动软盘来启动目标机。
4.1启动盘的制作
在实时应用系统的开发调测阶段,往往采用以PC机作为目标机来调测程序。
主机PC和目标机PC之间可采取串口或是网口进行联结。
由于大多数目标已配有网卡,网络联结成为最简单快速的连接方式。
串口联结虽通信速率不高,也有它自己的优点,系统级任务调试(如中断服务程序ISR)需使通信方式工作在Polled模式,网口联结就不支持,因此可以裁剪掉系统中网络部分,以使VxWorks系统更小,满足目标板的内存约束。
下面分别对这两种通信方式下目标机VxWorks系统启动盘的制作作一简要介绍(以PC机为目标系统)。
4.1.1串口通信时目标机VxWorks系统启动盘的制作步骤:
(1)修改通用配置文件\\Tornado\target\config\pc486\config.h。
在config.h文件中加入以下宏定义:
#defineINCLUDE_WDB
#defineINCLUDE_WDB_TTY_TEST
#undefWDB_COMM_TYPE
#defineWDB_COMM_TYPEWDB_COMM_SERIAL/*定义通信方式为串口联结*/
#defineWDB_TTY_CHANNEL1/*通道号*/
#defineWDB_TTY_BAUD9600/*串口速率,可设置至38400*/
#defineWDB_TTY_DEV_NAME"tyCo/1"
#defineCONSOLE_TTY0
#defineDEFAULT_BOOT_LINE"fd=0,0(0,0)hostname:
/fd0/vxWorks\h=主机ipe=目标机ipu=主机上的登录用户名"
(2)在Tornado集成环境中执行菜单命令Project>MakePC486>CommonTargets>clean
删除以前生成的文件,执行菜单命令Project>MakePC486>BootRomTargets>bootrom_uncmp
编译链接生成bootrom_uncmp;再选择VxWorksTarget,编译生成vxworks;
(3)拷贝\\Tornado\target\config\pc486\bootrom_uncmp至\\Tornado\host\bin下
(4)重命名文件bootrom_uncmp为bootrom;
(5)准备一张已格式化的空盘插入软驱;
(6)在目录\\Tornado\host\bin下执行命令mkboota:
bootrom;
(7)拷贝\\Tornado\target\config\pc486\VxWorks至软盘;
(8)将系统制作盘插入目标机软驱,加电启动目标机即载入VxWorkst系统。
4.1.2网口通信时目标机VxWorks系统启动盘的制作步骤:
(1)配置目标机网卡,设置其中断号和输入输出范围(I/O地址);
(2)修改通用配置文件\\Tornado\target\config\pc486\config.h。
针对不同的网卡,其名称不同,如NE2000及其兼容网卡为ENE,3COM以太网卡为ELT,Intel网卡为EEX。
在config.h文件中修改相应网卡类型(如网卡为3COM网卡)的定义部分:
#defineIO_ADRS_ELT网卡I/O地址
#defineINT_LVL_ELT网卡中断号
并且修改#defineDEFAULT_BOOT_LINE的定义:
#defineDEFAULT_BOOT_LINE\
"elt(0,0)主机标识名:
C:
\\tornado\\target\\config\\pc486\\vxWorksh=主机IP\e=目标机IPu=登录用户名pw=口令tn=目标机名"
例如:
DEFAULT_BOOT_LINE宏定义,使缺省配置符合自己的调试环境
#defineDEFAULT_BOOT_LINE\
"ene(0,0)host:
c:
/tornado/target/config/pc486/vxWorksh=129.9.75.39\e=129.9.49.7u=x86pw=x86tn=x86"
其中:
ene(0,0)/*启动设备为网卡*/
host/*主机标识,可以任意填写,不影响启动过程*/
c:
\tornado\target\config\pc486\vxWorks/*需要从主机加载的映象*/
h=129.9.75.39/*主机的IP地址*/
e=129.9.49.7/*目标机的IP地址*/
u=x86/*用户名,主机的Ftp服务器必须有相应的同名用户*/
pw=x86/*密码,必须与主机的Ftp服务器相应的同名用户的密码相同*/
tn=x86/*目标名,可以任意设置,不影响启动过程*/
(3)主机信息的确定(可无)
主机操作系统Win95安装目录下有一文件hosts.sam,向其中加入:
主机IP主机名
目标机IP目标机名
(4)在Tornado集成环境中点取Project菜单,选取MakePC486,选择CommonTarget,先进行clean操作;再选择BootRomTarget,进行bootrom_uncmp操作;再选择VxWorksTarget,进行vxworks操作;
(5)拷贝\\Tornado\target\config\pc486\bootrom_uncmp至\\Tornado\host\bin下
(6)重命名文件bootrom_uncmp为bootrom;
(7)准备一张已格式化的空盘插入软驱;
(8)在目录\\Tornado\host\bin下执行命令mkboota:
bootrom;
(9)启动Tornado组件FTPServer,在WFTPD窗口中选择菜单Security中的User/right...,在其弹出窗口中选择NewUser...,根据提示信息输入登录用户名和口令,并且要指定下载文件vxWorks所在根目录;还必选取主菜单Logging中Logoptions,使EnableLogging、Gets、Logins、Commands、Warnings能;
(10)将系统制作盘插入目标机软驱,加电启动目标机即通过FTP方式从主机下载VxWorks系统。
4.2主机Tornado环境配置
4.2.1串口联结时主机Tornado开发环境的目标服务器配置操作
(1)在Tornado集成环境中点取Tools菜单,选取TargetServer,选择config...;
(2)在ConfigureTargetServers窗口中先给目标服务器命名;
(3)在配置目标服务器窗口中的"ChangeProperty"窗口中选择BackEnd,在"AvailableBack"窗口中选择wdbserial,再在"SerialPort"窗口中选择主机与目标机连接所占用的串口号(COM1,COM2),再在"Speed(bps)"窗口中选择主机与目标机间串口速率;
(4)在配置目标服务器窗口中的"ChangeProperty"窗口中选择CoreFileandSymbols,选择File为BSP目标文件所在目录(本例为PC486目录)的VxWorks.st,并选取为AllSymbols;
(5)在配置目标服务器窗口中的"ChangeProperty"窗口中其它各项可根据需要选择
4.2.2网口联结时主机Tornado开发环境的目标服务器配置操作
(1)在Tornado集成环境中点取Tools菜单,选取TargetServer,选择config...;
(2)在ConfigureTargetServers窗口中先给目标服务器命名;
(3)在配置目标服务器窗口中的"ChangeProperty"窗口中选择BackEnd,在"AvailableBack"窗口中选择wdbrpc,在"TargetIP/Address"窗口中输入目标机IP。
(4)在配置目标服务器窗口中的"ChangeProperty"窗口中选择CoreFileandSymbols,选择File为BSP目标文件所在目录(本例为PC486目录)的VxWorks,并选取为AllSymbols;
(5)在配置目标服务器窗口中的"ChangeProperty"窗口中其它各项可根据需要选择
4.3以上的串口和网口联结配置完成后,可按以下步骤和目标机建立连接:
(1)点击Launch按钮,连接主机和目标机,全部出现successed后即可进入应用调试
(2)点击图形按钮中下拉框,选择和主机相连的目标机。
(3)选择Debugger菜单项中Download...,下载应用程序到目标板。
(4)选择Debugger菜单项中Run...,调测应用程序中某一任务或功能函数。
5、使用步骤
使用Tornado集成环境一般需要经过以下步骤:
5.1运行TCP/IP端口管理器Portmapper(portmap.exe)
5.2运行注册器TornadoRegistry(wtxregd.exe)。
如使用的是试用版,注意是否注册成功,是否修改了日期
5.3运行并配置FtpServer(wtfpd32.exe)。
点击菜单命令Security>Users>rights弹出配置窗口,点击NewUser,在NewUser弹出窗口加入需要加入的用户名(注意:
要与目标机bootrom或启动软盘设置一致),在改变密码弹出窗口设置该用户的密码(注意:
要与目标机bootrom或启动软盘设置一致),在HomeDirectory中设置相应的目录,MCP750为
5.4目标板上电或复位
5.5在控制台(MCP750/MCPN750为超级终端,X86为目标机显示器)上可以看到启动信息。
如果需要修改,在等待用户配置时,按c键,进行相应修改。
(注意:
配置信息要与主机配置、Ftp服务器配置一致),修改结束后,按@键重新启动目标机。
5.6运行Tornado(tornado.exe)
5.7执行菜单命令Tools>TargetServer>Configure,弹出目标服务器设置对话框,
点击New产生一个新的配置。
设置Description域(可以任意设置);设置TargetServer域(可以任意设置);在ChangeProperty域选取BackEnd项(该项设置主机与目标机如何连接,缺省为网口连接,如果使用串口连接,需要修改configall.h文件,重新编译链接VxWorks映象),如果使用网口调试,选择wdbrpc,在目标IP名或地址域中给出目标机的IP名或地址(建议给出IP名,因为这样会快得多),如果给出的是IP名,需要在HOSTS文件中给出IP名与IP地址的对应关系,如果用串口调试,选择wdbserial,选择相应的串口和波特率(注意:
此处的串口是指主机的串口不是目标机的串口);在ChangeProperty域选取CoreFileandSymbols项,选中File项输入相应的文件:
MCP750c:
\tornado\target\config\mcp750\vxWorks,
MCPN750为c:
\tornado\target\config\mcpn750\vxWorks,
在X86平台上为c:
\tornado\target\config\pc486\vxWorks,
点击Launch,运行目标服务器。
5.8执行菜单命令File>New创建一个新的文件,并打开编辑器Editor(该编辑器功能不是很强大,可以使用其它编辑器如SourceInsight)。
5.9单独编译生成的源文件,生成目标文件(.o),编译连接过程详细介绍请见后。
5.10选取相应的目标服务器。
5.11执行菜单命令Tools>Debugger运行调试器。
5.12执行菜单命令Debug>Download下载要调试的目标文件(.o)
5.13在Editor窗口设置断点。
5.14执行菜单命令Debug>Run弹出对话框,要求输入调试入口函数,输入要调试的函数。
5.15进行源码级调试。
5.16执行菜单命令Tools>Shell运行Shell。
可以在Shell窗口查看/修改全局变量、内存,查看任务列表、各模块使用内存的情况、对象(如任务、队列、信号量、定时器、内存分区)等信息。
5.17执行菜单命令Tools>Browser运行Browser。
在Browser中可以查看任务列表、各模块使用内存的情况、对象(如任务、队列、信号量、定时器、内存分区)等。
6、编译链接
VxWorks的开发调试环境可以把VxWorks内核和应用分开,分别加载。
VxWorks内核在目标机启动过程中通过ftp协议加载到目标机中运行,应用模块在调试中动态下载,目标代理把下载的应用模块动态链接到系统中,应用模块的调试是通过在用户执行运行命令时提供入口函数实现的。
这样做的好处是需要调试哪个模块就下载那个模块调试,不需下载其它模块,前期调试一般使用这种编译方式。
VxWorks的开发调试环境也提供把应用模块与系统内核链接在一起,通过ftp协议加载执行。
这需要经过两个步骤:
把应用模块的入口代码加到usrConfig.c文件中的usrRoot函数的尾部;把应用模块编译链接到VxWorks内核中,这种编译链接方式一般用于后期调试。
下面分类对编译链接进行介绍
6.1单个应用模块的编译
单个应用模块的编译可以通过使用菜单命令Project>MakeCurrentSourceFile进行编译,要编译的源文件必须已经用Editor打开并且为当前窗口。
如果要编译的源文件所在目录没有makefile文件,系统会提示创建一个新的makefile文件,确定。
在弹出的创建缺省makefile窗口的CPU域选择相应的项(MCP750/MCPN750选择PPC604,X86选择I80486),在ADDED_FLAGS域输入-g,确定。
系统对源文件进行编译,生成目标文件(.o)。
生成的目标文件在Debugger环境中动态加载,与内核动态链接到一起。
6.2系统内核vxWorks的编译链接
系统内核vxWorks是调试中使用最多的内核映象。
它被通过Ftp协议从主机加载到目标机中。
它的作用通常是进行软硬件初始化,等待加载应用模块,进行程序调试。
在Project菜单下,选择相应硬件平台的生成vxWorks的命令,进行编译链接。
在编译链接之前先使用clean命令删除以前生成的文件。
6.3应用模块与系统内核一起编译链接
VxWorks的开发调试环境也提供把应用模块与系统内核链接在一起,通过Ftp协议加载,vxWorks内核自动执行应用模块。
这需要经过两个步骤:
把应用模块的入口代码加到usrConfig.c文件中的usrRoot函数的尾部;在makefile中把待生成的应用模块的目标文件名加到宏定义MACH_EXTRA中,再把相应的编译规则加到makefile中。
编译链接生成vxWorks映象。
6.4Project菜单下其它编译链接命令介绍
*vxWorks_rom:
可以写到ROM的、没有带符号表和Shell的、没有压缩的vxWorks。
*vxWorks.st:
带有符号表的vxWorks。
*vxWorks.st_rom:
可以写到ROM的、带有符号表和Shell的、压缩的vxWorks。
*vxWorks.res_rom:
可以写到ROM的、带有符号表和Shell的、只有数据段拷贝到内存的、没压缩的vxWorks。
*vxWorks.res_rom_nosym:
可写到ROM的、只有数据段拷贝到内存的、没有压缩的vxWorks。
*bootrom:
压缩的bootrom
*bootrom_uncmp:
没有压缩的bootrom
7、调试时的常用方法
下面是一些调试手段在调试器中的相应命令(操作):
调试手段:
相应操作
--------------------------------------------------------
设置断点:
菜单命令Debug>ToggleBreakPoint
删除断点:
菜单命令Debug>ToggleBreakPoint
运行:
菜单命令Debug>Run
单步执行(进入函数):
菜单命令Debug>Step
单步执行(不进入函数):
菜单命令Debug>Next
继续执行(停下后的程序):
菜单命令Debug>Continue
执行完当前的函数,停在调用它的函数的下一条语句:
菜单命令Debug>Finish
查看变量的值:
菜单命令Debug>Inspect
查看当前函数的所有局部变量:
菜单命令Debug>Locals
查看内存:
菜单命令Debug>Memory
查看寄存器:
菜单命令Debug>Registers
修改内存:
Shell命令m
修改寄存器:
Shell命令mRegs
修改变量:
在Shell中直接给该变量赋值(局部变量无法用此方法修改)
卸载一个加载的模块:
Shell命令unld
删除任务:
Shell命令td
复位目标机:
Shell命令reboot(用该命令的好处:
目标服务器自动与目标代理重新链接,Shell自动重启)
查看任务:
在Browser对象信息窗口输入待查看的任务名或ID
查看信号量:
在Browser对象信息窗口输入待查看的信号量名或ID
查看消息队列:
在Browser对象信息窗口输入待查看的消息队列命或ID
内存分区:
在Browser对象信息窗口输入待查看的内存分区ID
看门狗:
在Browser对象信息窗口输入待查看的看门狗ID
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VxWorks 使用 说明书