《Workbench30-VXWORKS66集成环境使用指导》课件_第1页
《Workbench30-VXWORKS66集成环境使用指导》课件_第2页
《Workbench30-VXWORKS66集成环境使用指导》课件_第3页
《Workbench30-VXWORKS66集成环境使用指导》课件_第4页
《Workbench30-VXWORKS66集成环境使用指导》课件_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式实时操作系统

风河VXWORKS6.6集成环境使用指导嵌入式实时操作系统

风河VXWORKS6.6集成环境使用指导1目录第一部分VxWorks/worksbench3.0简介第二部分worksbench3.0/Tornado2.2比较第三部分worksbench3.0的工程视图第四部分建立一个例子工程第五部分建立交叉开发环境目录第一部分VxWorks/worksbench3.2第一部分VxWorks简介workbench介绍第一部分VxWorks简介3嵌入式实时操作系统VXWORKSVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)涉及的领域包括:过程控制(化工、食品加工);机器人(制造、自动操作控制);航空电子(飞行管理、GPS、喷气发动机控制);军事(武器管理、密码);数据处理(采集、信号处理);通信(税收机、数字电话);家电(微波炉、洗衣机、空调)计算机外围设备(打印机、Modem)等。嵌入式实时操作系统VXWORKSVxWorks操作系统是美国4一、VxWorks的特点

*可靠性

*实时性

*可裁减性

二、对一个实时内核的要求

*多任务

*抢占调度

*任务间的通讯与同步

*任务与中断之间的通信一、VxWorks的特点

*可靠性

*实时性

*可裁减性

5三、VxWorks的基本结构板级支持包BSP微内核wind网络系统文件系统I/O系统三、VxWorks的基本结构6WindRiverWorkbench一、风河workbench3.0的特征风河workbench3.0是基于Eclipse平台发展出的开发工具,提供非常有效的方式去开发实时嵌入式的应用程序,而不必过多的依赖于目标系统。风河Workbench可运行在Windows、Linux、和Solaris主机上。而本文档只介绍在Windows主机上使用Workbench3.0。WindRiverWorkbench7使用WindRiverWorkbench的好处Workbench的“七多”优势:多任务多目标多模式多OS多CPU多连接形式多主机环境使用WindRiverWorkbench的好处Workb8二、风河Workbench3.0的应用组件二、风河Workbench3.0的应用组件9三、基于Eclipse的概念1.窗口(Window)2.工作空间(Workspace)3.Workspace的目录4.包含多于一个的工作空间(workspace)5.透视图(Perspectives)6.视图(Views)7.编辑器(Editors)8.工程(Projects)9.访问和查找workbench上下文关联的帮助信息三、基于Eclipse的概念1.窗口(Window)10四、理解Cross-Development(交叉开发)的概念主机系统需要足够大小

的RAM、磁盘空间、备份媒介、打印输出和其他外围设备。目标系统所需的资源用于实时的应用和一些的附加资源用于测试和调试四、理解Cross-Development(交叉开发)的概念112、要做的工作A.在主机上的工作

如果你在主机系统编写代码,那么就要管理工程文件;编辑、编译、链接,保存你自己的各种格式的实时代码,并且配置操作系统以便于最终能够在目标系统上运行这些代码。B.连接目标系统到主机

有很多可供选择的方案用于连接目标系统到主机,比如:通过网络、串口、或者JTAG。C.运行应用程序

运行期间(Run-time)的代码代表着最终的应用,其中包括:内核、开发者自己的具有特殊功用的代码,和选择调用的与库文件有关的代码。运行期间的代码并不一定属于目标代理(targetagent),即使在一个典型的开发和调试中包含它。2、要做的工作A.在主机上的工作12第二部分worksbench3.0/Tornado2.2比较第二部分13Workbench3.0平台相对于Tornado2.2平台来说,各项功能均有所增强,也有不少新加入的功能,主要的功能对比如下:工程管理工程项目编辑器断点设置仿真环境目标连接下载的代码量目标操作系统目标系统数目多任务调试第三方工具Workbench3.0平台相对于Tornado2.2平14第三部分工程视图一、Workspace/Project的设置二、各工程类型结构三、创建一个新工程四、组织工程结构五、工程的特殊执行环境第三部分工程视图15一、Workspace/Project的设置1.在workspace建立工程

所建的工程还没有建立源文件;所建的工程已经存在源文件,但需要添加进工程;所建的工程不允许设置在源文件目录处。2.在workspace外部建立工程;

所建的工程建立在已有的源文件之上,改变工程目录之后需要对源文件进行添加和链接;所建的工程需要版本控制,而被放置在workspace之外。3.将工程建立在workspace之内但是连接到外部位置

所建的工程不允许设置在源文件目录处;所建的工程因为开发团队的成员有自己的工程,并且共享了部分源文件(通常为只读的)。这种选择就避免在团队成员之间通过Workbench互相配合工作是需要建立的象征性的连接。一、Workspace/Project的设置1.在work16二、各工程类型结构1.VxWorksImageProject(VIP)2.VxWorksBootLoader/BSPProject(BSP)3.VxWorksDownloadableKernelModuleProject(DKM)4.VxWorksReal-timeProcessProject(RTP)5.VxWorksSharedLibraryProject(Libs)6.VxWorksROMFSFileSystemProject(ROMFS)7.User-DefinedProjects(UDP)8.NativeApplicationProject(NAP)二、各工程类型结构1.VxWorksImageProje17三、创建一个新工程(Projects)点击工具按钮或者选择File>New>WindRiverWorkbenchProject创建一个之前配置好的工程,或者是创建一个特殊类型的工程;也可以选择File>New>Example打开一个例子工程。1.工程创建之后的修改在相应工程的"projectproperties"界面进行修改。2.工程的结构设置选中ProjectReferences>AddasProjectReference,在弹出的菜单里就可以设定个工程之间的结构关系。3.工程与应用程序(ApplicationCode)工程以一种或几种类型管理应用程序文件。可以将一个与Workbench兼容的工程整个加入,也可以添加新的或者已经存在的源程序文件。选择File>Import打开“ImportFile”。三、创建一个新工程(Projects)点击工具按钮或者选择18四、工程和工程结构所有独立的工程内部都包含和其他任一工程无关的模块,在系统开始是都是单个的和没有经过组织的。所以使用者可以在workbench下通过工程之间的依赖关系和编译命令整体组织各个工程。通过workbench可以很方便的组织各工程,但是有的工程不能作为某个工程的子工程或者是同种类型的工程,这样的关联是不允许的。四、工程和工程结构所有独立的工程内部都包含和其他任一工程无关191.给一个工程加入子工程

Workbench可以通过多种的方式创建子工程或者超级工程(subproject/superproject)结构:A 、在ProjectExplorer窗口,选择ProjectReferences>AddasProjectReference或者在Project菜单选择AddasProjectReference。B、在ProjectExplorer窗口,选择Properties再选ProjectReferences或者选择Project>Properties。然后选择ProjectReferences,之后进行设置。

Workbench确认子工程和超级工程之间的关系是基于工程类型和目标操作系统的。有些关系是不允许的。比如,Real-timeProcess工程不能作为VxWorksImage工程的子工程,但是可以加入到ROMFS工程。通常,一个user-defined工程在选用一个合适的目标操作系统的情况下可以作为任一工程的子工程或是超级工程。1.给一个工程加入子工程Workbench可以通过202.移除子工程A、在ProjectExplorer窗口,选择ProjectReferences>RemoveProjectReference或者在Project菜单选择RemoveProjectReference。B、在ProjectExplorer窗口,选择Properties再选ProjectReferences或者选择Project>Properties。然后选择ProjectReferences,之后进行移除。2.移除子工程213.工程结构和主机文件系统结构

Workbench工程在树状目录的顶部,其他子目录会自动包含在此树状目录之下。不要试图通过子目录建立工程建的连接关系,这样是不允许的,因为会造成工程的重叠。3.工程结构和主机文件系统结构Workbench工程224.工程结构和编译系统编译先从顶部开始,再逐层深入到内部的枝叶最后回到顶部,完成编译4.工程结构和编译系统编译先从顶部开始,再逐层深入到内部的枝235.工程结构和共享子工程

一个实际的工程可以关联任意数量的逻辑工程。产品的升级或者编译共享工程亦或组件的变化,都会影响到关联共享工程的工程结构。6.自定义编译共享工程

一个单独的文件系统文件夹可以像子工程一样添加到多个逻辑工程结构。这种情况下,可以根据需要为每个工程指定不同的依赖编译规格。

同一个文件夹可以在同一个工程中指定不同的编译规格。

如果为工程整体制定了一种编译规格,那么子文件夹也会运行这种编译规格,为其指定的特殊的编译规则自然就被排除在外。5.工程结构和共享子工程

一个实际的工程可24五、工程的特殊执行环境如果需要为每个工程保存不同的编译和外部工具执行的环境,Workbench允许使用者创建一个perties文件,为每个工程定义工具、工具版本、环境变量等内容。1.在shell中使用perties文件

选择projects>openworkbenchdevelopmentshell,在打开的shell中,选择一个工程模板,从一个已经存在的properties文件中往模版中加入相应的内容。2.使用perties文件的局限

*不能去除已经包含的内容;*不做在文件中设置的路径(PATH)扩展。*不能够把perties文件用在NativeApplication工程;五、工程的特殊执行环境如果需要为每个工程保存不同的编译和外部25第四部分建立一个例子工程一、创建一个例子工程并运行程序二、编辑和调试源程序三、使用编辑器的高级特性第四部分建立一个例子工程一、创建一个例子工程并运行程26一、创建一个例子工程并运行程序1.创建一个例子工程a.选择File>New>WindRiverWorkbenchProject。会出现NewWindRiverWorkbenchProject对话框。b.从Targetoperatingsystem下拉选择菜单选择WindRiverVxWorks6.x,点击Next。c.从Buildtype下拉选择菜单选择DownloadableKernelModule点击ClickNext。d.在ProjectName区域,输入ball。在本指导说明中都保持Createprojectinworkspace选项,点击Finish。一个名称为“ball”的工程出现在workbench的工程窗口。一、创建一个例子工程并运行程序272.把源文件添加到工程a.鼠标右击ball工程文件夹,然后选择“Import......”出现一个添加导航界面。b.选择General,然后是FileSystem,然后点击Next。出现一个为Import导航的FileSystem界面。c.点击Browse按钮出现一个可做Import的选择目录。d.跳转到installDir\workbench-3.x\samples目录,选择ball,然后点击OK,这时Filesystem页面出现,ball文件夹在左面的小窗口,这个文件夹下的文件在右面的小窗口。e.选择ball的相应选项自动添加文件到工程中,然后点击Finish完成添加。f.在工程窗口的工程目录下:工程文件为黑色;编译的目标是绿色;灰色的是只读文件。2.把源文件添加到工程a.鼠标右击ball工程文件夹,然283.编译工程A.右击工程文件夹,选择BuildProject。B.第一次编译一个工程时,会弹出一个询问workbench中生成编译目标的存储目录,通常不需要变化,所以选择Continue。C.这时BuildConsole窗口会打印编译信息,当编译完成后,ball.out文件会出现在ball/SIMNTdiab/ball/Debug目录之下。D.说明:

工程中的目录名称“SIMNTdiab”反映当前起作用的编译规格,它包含vxworks的模拟器和编译器;目录名称“Debug”反映的是实际上的默认的调试模式标志。

如果需要改变编译规格,右击工程文件夹,选择BuildOptions>SetActiveBuildSpec,选择合适的编译规格。3.编译工程294.建立一个定义到vxworkssimulator的连接A.在remotesystem窗口中点击“Defineaconnection”,或者在remotesystem窗口单击右键,出现NewConnection选择窗口。B.选择VxWorks6.x>WindRiverVxWorks6.xSimulatorConnection,然后点击Next。C.点击Finish完成,这是所建立的连接相关的设置都是默认的状态。因为“Immediatelyconnecttotargetifpossible”默认为选中状态,workbench会尝试连接到模拟器。4.建立一个定义到vxworkssimulator的连接A305.下载程序和连接到调试器(Debugger)A.在ProjectExplorer窗口,右击编译的目标ball/SIMNTdiab/ball/Debug/ball.out,然后选择DebugKernelTask,这时Debug加载配置对话框出现。B.在main窗口的填写EntryPoint选项(或者点击Browse并且选择Downloads>ball.out>main),然后点击Debug。C.这时workbench会进行以下动作:自动编译“ball”工程;跳转到DeviceDebug透视图;在模拟器上执行“ball”工程的程序;连接到调试器(debugger);执行程序到main();然后停止(breaks)。5.下载程序和连接到调试器(Debugger)A.在Proj316.设置DeviceDebugPerspective(透视图)A.在Memoryview使用memoryaddress观察“ball”工程的“grid”变量在运行过程中的动作,所以选择Window>ShowView>Other>Debug>Memory。B.在Expressions视图右击Expression标题栏并且选择AddWatchExpression输入grid再点击OK。grid变量的存储地址和它的值会出现在视图中。C.右击Memory视图并选择“AddMemoryMonitor”。D.输入“grid”变量的存储地址,点击"OK"。E.在Memory视图的"Renderings"侧空白处,单击右键,然后选择CellSize>8bytes。F.除了把Memory窗口调大之外,还需要调整Monitors和Renderings窗口的大小,以便能够更加清楚的看到相应存储的值。6.设置DeviceDebugPerspective(透327.设置和运行到断点(Breakpoint)A.在main.c的三个初始化for循环之后的while中加入断点:在相应行的左侧边栏双击左键;出现一个蓝色的小圆点,还有一个Breakpoints视图显示断点的名称和行号。B.断点设置以后在Debug窗口点击Resume按钮,workbench会在运行之后停在断点处。C.在Memory窗口,程序运行后,会有六个符号出现。7.设置和运行到断点(Breakpoint)A.在main.33二、编辑和调试源文件1.在源程序中设置一个错误(Error)A.在ProjectExplorer窗口,双击main.c,打开编辑器。B.在Outline视图中选中main(),编辑器就会跳转显示这个函数。C.删除gridInit()后面的分号“;”。D.保存并关闭文件。二、编辑和调试源文件342.跟踪一个编译错误(BuildFailure)A.在ProjectExplorer窗口选择编译“ball”工程。B.当编译到main.c中设置的错误时,编译就会失败,这时workbench用一个红色圆点里面一个白色的查“x”在以下地方显示错误:(a).BuildConsole窗口会在前端显示,怀疑出错位置以及出错的信息。(b).在ProjectExplorer窗口提示“ball”工程编译出错和main.c就是包含错误的文件。(c).在Problems视图中会对错误进行描述,包括文件名、文件夹、行号。(d).点击这些位置的红色按钮,就会在编辑器中打开main.c文件,在红色的标记附近就是出错的所在。(e).在gridInit()函数之后加上分号“;”。(f).保存并关闭文件。2.跟踪一个编译错误(BuildFailure)A.在Pr353.更改错误后,重新编译工程。右键点击“ball”工程,选择RebuildProject。3.更改错误后,重新编译工程。36三、使用编辑器的高级特性1.使用代码完整(CodeCompletion)在文件中加入符号(Symbols)在编辑器中任意位置单击右键,在下拉菜单中选择Source>ContentAssist。三、使用编辑器的高级特性1.使用代码完整(CodeComp372.使用参数隐藏信息

在编辑器中想要使用参数隐藏信息,在编辑器的代码中的某一处单击右键,在下拉菜单中选择Source>ContentAssist或者使用快捷键CTRL+SHIFT+SPACE。2.使用参数隐藏信息在编辑器中想要使用参数隐藏信息,在383.使用括弧配对使语法清晰

使用括弧配对特性时,当鼠标放在括号的一边,与之配对的另一边就会被一个矩形框起来,还可以使用快捷键CTRL+SHIFT+P,跳转到矩形框的位置,可以进行括弧配对操作的符号有:

(),[],{},"",/**/,<>(C/C++only)。3.使用括弧配对使语法清晰使用括弧配对特性时,当鼠标放394.在源文件中查找标志符号(Symbols)

在Outline视图中可非常容易的查找符号标志,点击符号就可以跳到对应的位置。但是在函数内部引用的符号和函数名在Outline视图中是不显示的。*符号高级查找打开一个高级的符号查找对话框,其步骤如下:A.Navigate>OpenElement。B.在弹出的对话框中,输入要找的符号并选择其类型。C.在“matchingelements”框中,双击相应的符号就会跳转到对应位置,或者点击“cancel”退出。4.在源文件中查找标志符号(Symbols)在Out405.在文件中跟踪特定项(Items)

添加一个书签和定位一个书签方法是一样的:

都可以在短时间内找到感兴趣的名目(Items),打开书签(Bookmarks)窗口的方法:选择Window>ShowView>Bookmarks。可以在文件的内部的特殊行设置一个书签,也可以为文件自身设定一个书签。

在文件内部的某一行设置一个书签(Bookmark)

A.找到文件内部想要设置的行,在行号的左边单击右

键,在下拉菜单中选择AddBookmark,然后点击OK。

B.书签设置好后,可以在Bookmarks窗口点击

description

下方的书签名称进行修改。5.在文件中跟踪特定项(Items)41第五部分建立交叉开发环境一、主机和目标的配置任务概述二、配置交叉开发环境三、启动VxWorks四、配置Workbench的Host-Target通信第五部分建立交叉开发环境一、主机和目标的配置任务概述42一、主机和目标的配置任务概述1.在主机上所要做的工作2.在目标上所要做的工作3.一般操作4.目标代理(TargetAgents)和目标服务器(TargetServers)一、主机和目标的配置任务概述1.在主机上所要做的工作435.目标代理(TargetAgent)模式(1).用户模式

代理(Agent)就像VxWorks的任务一样运行。调试的执行是基于单个任务的:可以使任务独立出来或者使任务不对目标系统的其他部分产生影响。(2).系统模式

agent运行在VxWorks的外部,允许调试应用程序和vxworks就像单个的线程一样执行。当应用程序和vxworks在执行的过程中遇到断点,应用程序和vxworks就会停止执行并且中断锁定。使用这种模式的最大好处就是可以通过中断单步执行;另一方面,熟练操纵单个的任务是很难的。使用这种方法的缺点那就是干扰太多—因为加入了大量的有意义的中断延时:当agent运行到中断锁定时。(3).双重模式

VxWorks映像对agent选择默认配置,一个用户模式的agent(INCLUDE_WDB_TASK)和一个系统模式的agent(INCLUDE_WDB_SYS)。但是同一时间只有其中一个agent运行,由workbenchdebugger或者主机shell控制两者之间的切换。5.目标代理(TargetAgent)模式44二、配置交叉开发环境1.配置主机软件A.设置VxWorksTarget名称和IP地址B.在Windows下配置FTP服务器C.认识WindRiverRegistry2.检验串口连接和电源*静电保护;*在目标CUP设置切换和跳转;*连接串口线,如果允许网络连接,还要连接网线;*连接电源。二、配置交叉开发环境1.配置主机软件45连接和终端界面的设置串口连接配置此终端界面的步骤:

*停止其他任何正在使用串口的程序。*运行Workbench。*打开串口终端界面Window>ShowView>Other,在filtertextfield框中输入Terminal,再选中,点击"OK"完成。*为了个人能更好的看界面的信息,可以双击界面的标题栏,全屏显示;然后双击标题栏可以还原到原来的大小。连接和终端界面的设置串口连接46ConnectionType:SSH

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。Host:要连接目标的主机的IP。User:输入系统设置的用户名。Password:输入系统设置的密码。Timeout(sec):所有平台默认为0。Port:用于此链接的端口。ConnectionType:SSHS47

ConnectionType:Telnet

是Internet远程登陆服务的标准协议和主要方式。Host:要连接目标的主机的IP。Port:用于连接端口有telnet和tgtcons两种选择,或者输入一个用于此链接的端口号。Timeout(sec):所有平台默认为10。ConnectionType:Telnet48D.设置一种启动方式通常都需要为系统设置以下的几种启动方式中的一种:ROM

大多数的目标板都从ROM的方式启动,在建立启动ROMs的时候,需要注意一下问题:建立每个设备的socket特征列表;注意每个设备的Pin1方向;在电路中工作时注意防静电措施;

软盘一些系统的BSP选择包含软盘方式的磁盘启动代替从ROM,而Pentium就是从磁盘启动。Flash存储器

为了支持从flash启动,BSP必须要做把启动程序下载到flash的相关工作。D.设置一种启动方式49三、启动VxWorksA.默认的启动顺序如果从一种默认的启动程序启动VxWorks,必须使bootloader提供能够帮助在主机上找到VxWorks的映像并把这个映像下载到目标系统的信息。默认的启动程序是通过网络,需要正确的配置主机和目标的IP地址,VxWorks启动映像的完全路径和名称,用户名,密码等等。当目标上电或者重启,目标首先从ROM执行启动程序,目标通过串口和终端或者工作站(workstation)相连。在执行过程中,启动程序会首先输出一个标志页和一个7到2的数秒信息,如果在7到2的数秒周期没有按下任意键,bootloader就会已默认的方式启动,并且不会由VxWorks启动目标。三、启动VxWorks50B.输入新的启动参数

在7到2的数秒周期按下任意键中断启动程序并且输入正确的启动参数。

启动程序显示如下VxWorks启动提示:

[VxWorksBoot]:

选择查看当前的(默认)启动参数,输入p(小写)就像:

[VxWorksBoot]:p

按下ENTER键,界面就会显示相关参数C.启动(程序的)命令

在VxWorks启动提示的后面输入h或者?,如:

[VxWorksBoot]:?

再按下ENTER键,就可以看到启动程序提供的命令列表B.输入新的启动参数

在7到2的数秒周期按下任意键51D.启动参数描述bootdevice:用作启动的设备的类型,存有

bootloader。unitnumber:启动设备的单元号,从0开始。processornumber:一般设置为0。hostname:是让VxWorks使用。filename:VxWorks映像的完全路径名称。inetonethernet(e):目标的IP地址。inetonbackplane(b):目标系统的底板IP号。hostinet(h):主机的IP地址。gatewayinet(g):网关的IP。user(u):用户名。ftppassword(pw):密码。flags(f):特殊配置的选项数值。targetname(tn):加入到主机列表的目标系

统的名称。startupscript(s):shell或者其它组件。other(o):用于应用程序。D.启动参数描述bootdevice:用作启动的设备的52E.重启VxWorks重启VxWorks的方法有以下几种:在Terminal输入CTRL+X。在shell中调用reboot()。按目标系统上的reset按钮。关闭再打开目标电源。如果以其他方式重启VxWorks,auto-boot步骤将从倒计时(7到2的数秒)处,自动运行。E.重启VxWorks53四、配置Workbench的Host-Target通信如果要开发应用程序,网络连接比较容易建立和使用。到现在大多数的VxWorks目标都支持网络连接,不需要额外的目标设置。另一方面,网络接口是一个目标板最快速的连接通道。可能需要JTAG或者其他模拟器连接。四、配置Workbench的Host-Target通信54A.网络连接点击RemoteSystems视图的“Defineaconnectiontoremotesystem”按钮。选择WindRiverVxWorks6.xTargetServerConnection然后点击Next,这时TargetServerOptionsdialog出现,如下图:选择wdbrpc,输入目标名称或者目标IP。选中AdvancedTargetServerOptionssection,选中Verbosetargetserveroutput。命令行格式就像这样:

tgtsvr-V-RC:/installDir/workspace-RWipaddress点击Next之后点Finish完成。如果所有设置都正确,在RemoteSystems视图中可以看到连接到target的服务正在运行。A.网络连接55B、串口连接

在串口连接成功之后,就可以通过以下步骤把targetserver连接到agent:关闭正在使用串口的程序。在RemoteSystems窗口点击Defineaconnection之后NewConnection对话框出现。选择WindRiverVxWorks6.xTargetServerConnection然后点击Next。出现TargetServerConnection对话框。选择wdbserial终端,输入目标的名称和IP。选择AdvancedTargetServerOptions选中Verbosetarget

serveroutput,然后用-d检查端口通信,同时检查线速与目标的线速相匹配,使用的命令格式如下;

tgtsvr-V-dcomport-bpsspeed-Bwdbserialipaddress然后点击next,再finish。在新建的连接上,选择Connect,就可以看见连接到目标的服务正在运行。B、串口连接在串口连接成功之后,就可以通过以下步骤把56工欲善其事,必先利其器1.一个稳定的操作系统。2.一个自己熟悉好用的输入法。3.一个好的阅读pdf软件。4.一个好的Word版本,带上Visio。5.一个好的翻译软件。

6.一个或多个下载工具。7.一个好的浏览器。总结一下:

选对了好软件只是提高效率的第一步!工欲善其事,必先利其器57参考文档1.《wr_workbench_vxworks_users_guide_3.0.pdf》2.《platform_general_vxworks_getting_started_3.6.pdf》3.《vxworks_bsp_developers_guide_6.6.pdf》4.《从Tornado到Workbench——风河公司的新一代嵌入式软件集成开发环境.pdf》5.《风河Woorkbench3.0_VxWorks6.6使用说明-MMEV1.0.doc》6.《VxWorks6.6简介-MMEV1.0.doc》参考文档58演讲完毕,谢谢观看!演讲完毕,谢谢观看!59嵌入式实时操作系统

风河VXWORKS6.6集成环境使用指导嵌入式实时操作系统

风河VXWORKS6.6集成环境使用指导60目录第一部分VxWorks/worksbench3.0简介第二部分worksbench3.0/Tornado2.2比较第三部分worksbench3.0的工程视图第四部分建立一个例子工程第五部分建立交叉开发环境目录第一部分VxWorks/worksbench3.61第一部分VxWorks简介workbench介绍第一部分VxWorks简介62嵌入式实时操作系统VXWORKSVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)涉及的领域包括:过程控制(化工、食品加工);机器人(制造、自动操作控制);航空电子(飞行管理、GPS、喷气发动机控制);军事(武器管理、密码);数据处理(采集、信号处理);通信(税收机、数字电话);家电(微波炉、洗衣机、空调)计算机外围设备(打印机、Modem)等。嵌入式实时操作系统VXWORKSVxWorks操作系统是美国63一、VxWorks的特点

*可靠性

*实时性

*可裁减性

二、对一个实时内核的要求

*多任务

*抢占调度

*任务间的通讯与同步

*任务与中断之间的通信一、VxWorks的特点

*可靠性

*实时性

*可裁减性

64三、VxWorks的基本结构板级支持包BSP微内核wind网络系统文件系统I/O系统三、VxWorks的基本结构65WindRiverWorkbench一、风河workbench3.0的特征风河workbench3.0是基于Eclipse平台发展出的开发工具,提供非常有效的方式去开发实时嵌入式的应用程序,而不必过多的依赖于目标系统。风河Workbench可运行在Windows、Linux、和Solaris主机上。而本文档只介绍在Windows主机上使用Workbench3.0。WindRiverWorkbench66使用WindRiverWorkbench的好处Workbench的“七多”优势:多任务多目标多模式多OS多CPU多连接形式多主机环境使用WindRiverWorkbench的好处Workb67二、风河Workbench3.0的应用组件二、风河Workbench3.0的应用组件68三、基于Eclipse的概念1.窗口(Window)2.工作空间(Workspace)3.Workspace的目录4.包含多于一个的工作空间(workspace)5.透视图(Perspectives)6.视图(Views)7.编辑器(Editors)8.工程(Projects)9.访问和查找workbench上下文关联的帮助信息三、基于Eclipse的概念1.窗口(Window)69四、理解Cross-Development(交叉开发)的概念主机系统需要足够大小

的RAM、磁盘空间、备份媒介、打印输出和其他外围设备。目标系统所需的资源用于实时的应用和一些的附加资源用于测试和调试四、理解Cross-Development(交叉开发)的概念702、要做的工作A.在主机上的工作

如果你在主机系统编写代码,那么就要管理工程文件;编辑、编译、链接,保存你自己的各种格式的实时代码,并且配置操作系统以便于最终能够在目标系统上运行这些代码。B.连接目标系统到主机

有很多可供选择的方案用于连接目标系统到主机,比如:通过网络、串口、或者JTAG。C.运行应用程序

运行期间(Run-time)的代码代表着最终的应用,其中包括:内核、开发者自己的具有特殊功用的代码,和选择调用的与库文件有关的代码。运行期间的代码并不一定属于目标代理(targetagent),即使在一个典型的开发和调试中包含它。2、要做的工作A.在主机上的工作71第二部分worksbench3.0/Tornado2.2比较第二部分72Workbench3.0平台相对于Tornado2.2平台来说,各项功能均有所增强,也有不少新加入的功能,主要的功能对比如下:工程管理工程项目编辑器断点设置仿真环境目标连接下载的代码量目标操作系统目标系统数目多任务调试第三方工具Workbench3.0平台相对于Tornado2.2平73第三部分工程视图一、Workspace/Project的设置二、各工程类型结构三、创建一个新工程四、组织工程结构五、工程的特殊执行环境第三部分工程视图74一、Workspace/Project的设置1.在workspace建立工程

所建的工程还没有建立源文件;所建的工程已经存在源文件,但需要添加进工程;所建的工程不允许设置在源文件目录处。2.在workspace外部建立工程;

所建的工程建立在已有的源文件之上,改变工程目录之后需要对源文件进行添加和链接;所建的工程需要版本控制,而被放置在workspace之外。3.将工程建立在workspace之内但是连接到外部位置

所建的工程不允许设置在源文件目录处;所建的工程因为开发团队的成员有自己的工程,并且共享了部分源文件(通常为只读的)。这种选择就避免在团队成员之间通过Workbench互相配合工作是需要建立的象征性的连接。一、Workspace/Project的设置1.在work75二、各工程类型结构1.VxWorksImageProject(VIP)2.VxWorksBootLoader/BSPProject(BSP)3.VxWorksDownloadableKernelModuleProject(DKM)4.VxWorksReal-timeProcessProject(RTP)5.VxWorksSharedLibraryProject(Libs)6.VxWorksROMFSFileSystemProject(ROMFS)7.User-DefinedProjects(UDP)8.NativeApplicationProject(NAP)二、各工程类型结构1.VxWorksImageProje76三、创建一个新工程(Projects)点击工具按钮或者选择File>New>WindRiverWorkbenchProject创建一个之前配置好的工程,或者是创建一个特殊类型的工程;也可以选择File>New>Example打开一个例子工程。1.工程创建之后的修改在相应工程的"projectproperties"界面进行修改。2.工程的结构设置选中ProjectReferences>AddasProjectReference,在弹出的菜单里就可以设定个工程之间的结构关系。3.工程与应用程序(ApplicationCode)工程以一种或几种类型管理应用程序文件。可以将一个与Workbench兼容的工程整个加入,也可以添加新的或者已经存在的源程序文件。选择File>Import打开“ImportFile”。三、创建一个新工程(Projects)点击工具按钮或者选择77四、工程和工程结构所有独立的工程内部都包含和其他任一工程无关的模块,在系统开始是都是单个的和没有经过组织的。所以使用者可以在workbench下通过工程之间的依赖关系和编译命令整体组织各个工程。通过workbench可以很方便的组织各工程,但是有的工程不能作为某个工程的子工程或者是同种类型的工程,这样的关联是不允许的。四、工程和工程结构所有独立的工程内部都包含和其他任一工程无关781.给一个工程加入子工程

Workbench可以通过多种的方式创建子工程或者超级工程(subproject/superproject)结构:A 、在ProjectExplorer窗口,选择ProjectReferences>AddasProjectReference或者在Project菜单选择AddasProjectReference。B、在ProjectExplorer窗口,选择Properties再选ProjectReferences或者选择Project>Properties。然后选择ProjectReferences,之后进行设置。

Workbench确认子工程和超级工程之间的关系是基于工程类型和目标操作系统的。有些关系是不允许的。比如,Real-timeProcess工程不能作为VxWorksImage工程的子工程,但是可以加入到ROMFS工程。通常,一个user-defined工程在选用一个合适的目标操作系统的情况下可以作为任一工程的子工程或是超级工程。1.给一个工程加入子工程Workbench可以通过792.移除子工程A、在ProjectExplorer窗口,选择ProjectReferences>RemoveProjectReference或者在Project菜单选择RemoveProjectReference。B、在ProjectExplorer窗口,选择Properties再选ProjectReferences或者选择Project>Properties。然后选择ProjectReferences,之后进行移除。2.移除子工程803.工程结构和主机文件系统结构

Workbench工程在树状目录的顶部,其他子目录会自动包含在此树状目录之下。不要试图通过子目录建立工程建的连接关系,这样是不允许的,因为会造成工程的重叠。3.工程结构和主机文件系统结构Workbench工程814.工程结构和编译系统编译先从顶部开始,再逐层深入到内部的枝叶最后回到顶部,完成编译4.工程结构和编译系统编译先从顶部开始,再逐层深入到内部的枝825.工程结构和共享子工程

一个实际的工程可以关联任意数量的逻辑工程。产品的升级或者编译共享工程亦或组件的变化,都会影响到关联共享工程的工程结构。6.自定义编译共享工程

一个单独的文件系统文件夹可以像子工程一样添加到多个逻辑工程结构。这种情况下,可以根据需要为每个工程指定不同的依赖编译规格。

同一个文件夹可以在同一个工程中指定不同的编译规格。

如果为工程整体制定了一种编译规格,那么子文件夹也会运行这种编译规格,为其指定的特殊的编译规则自然就被排除在外。5.工程结构和共享子工程

一个实际的工程可83五、工程的特殊执行环境如果需要为每个工程保存不同的编译和外部工具执行的环境,Workbench允许使用者创建一个perties文件,为每个工程定义工具、工具版本、环境变量等内容。1.在shell中使用perties文件

选择projects>openworkbenchdevelopmentshell,在打开的shell中,选择一个工程模板,从一个已经存在的properties文件中往模版中加入相应的内容。2.使用perties文件的局限

*不能去除已经包含的内容;*不做在文件中设置的路径(PATH)扩展。*不能够把perties文件用在NativeApplication工程;五、工程的特殊执行环境如果需要为每个工程保存不同的编译和外部84第四部分建立一个例子工程一、创建一个例子工程并运行程序二、编辑和调试源程序三、使用编辑器的高级特性第四部分建立一个例子工程一、创建一个例子工程并运行程85一、创建一个例子工程并运行程序1.创建一个例子工程a.选择File>New>WindRiverWorkbenchProject。会出现NewWindRiverWorkbenchProject对话框。b.从Targetoperatingsystem下拉选择菜单选择WindRiverVxWorks6.x,点击Next。c.从Buildtype下拉选择菜单选择DownloadableKernelModule点击ClickNext。d.在ProjectName区域,输入ball。在本指导说明中都保持Createprojectinworkspace选项,点击Finish。一个名称为“ball”的工程出现在workbench的工程窗口。一、创建一个例子工程并运行程序862.把源文件添加到工程a.鼠标右击ball工程文件夹,然后选择“Import......”出现一个添加导航界面。b.选择General,然后是FileSystem,然后点击Next。出现一个为Import导航的FileSystem界面。c.点击Browse按钮出现一个可做Import的选择目录。d.跳转到installDir\workbench-3.x\samples目录,选择ball,然后点击OK,这时Filesystem页面出现,ball文件夹在左面的小窗口,这个文件夹下的文件在右面的小窗口。e.选择ball的相应选项自动添加文件到工程中,然后点击Finish完成添加。f.在工程窗口的工程目录下:工程文件为黑色;编译的目标是绿色;灰色的是只读文件。2.把源文件添加到工程a.鼠标右击ball工程文件夹,然873.编译工程A.右击工程文件夹,选择BuildProject。B.第一次编译一个工程时,会弹出一个询问workbench中生成编译目标的存储目录,通常不需要变化,所以选择Continue。C.这时BuildConsole窗口会打印编译信息,当编译完成后,ball.out文件会出现在ball/SIMNTdiab/ball/Debug目录之下。D.说明:

工程中的目录名称“SIMNTdiab”反映当前起作用的编译规格,它包含vxworks的模拟器和编译器;目录名称“Debug”反映的是实际上的默认的调试模式标志。

如果需要改变编译规格,右击工程文件夹,选择BuildOptions>SetActiveBuildSpec,选择合适的编译规格。3.编译工程884.建立一个定义到vxworkssimulator的连接A.在remotesystem窗口中点击“Defineaconnection”,或者在remotesystem窗口单击右键,出现NewConnection选择窗口。B.选择VxWorks6.x>WindRiverVxWorks6.xSimulatorConnection,然后点击Next。C.点击Finish完成,这是所建立的连接相关的设置都是默认的状态。因为“Immediatelyconnecttotargetifpossible”默认为选中状态,workbench会尝试连接到模拟器。4.建立一个定义到vxworkssimulator的连接A895.下载程序和连接到调试器(Debugger)A.在ProjectExplorer窗口,右击编译的目标ball/SIMNTdiab/ball/Debug/ball.out,然后选择DebugKernelTask,这时Debug加载配置对话框出现。B.在main窗口的填写EntryPoint选项(或者点击Browse并且选择Downloads>ball.out>main),然后点击Debug。C.这时workbench会进行以下动作:自动编译“ball”工程;跳转到DeviceDebug透视图;在模拟器上执行“ball”工程的程序;连接到调试器(debugger);执行程序到main();然后停止(breaks)。5.下载程序和连接到调试器(Debugger)A.在Proj906.设置DeviceDebugPerspective(透视图)A.在Memoryview使用memoryaddress观察“ball”工程的“grid”变量在运行过程中的动作,所以选择Window>ShowView>Other>Debug>Memory。B.在Expressions视图右击Expression标题栏并且选择AddWatchExpression输入grid再点击OK。grid变量的存储地址和它的值会出现在视图中。C.右击Memory视图并选择“AddMemoryMonitor”。D.输入“grid”变量的存储地址,点击"OK"。E.在Memory视图的"Renderings"侧空白处,单击右键,然后选择CellSize>8bytes。F.除了把Memory窗口调大之外,还需要调整Monitors和Renderings窗口的大小,以便能够更加清楚的看到相应存储的值。6.设置DeviceDebugPerspective(透917.设置和运行到断点(Breakpoint)A.在main.c的三个初始化for循环之后的while中加入断点:在相应行的左侧边栏双击左键;出现一个蓝色的小圆点,还有一个Breakpoints视图显示断点的名称和行号。B.断点设置以后在Debug窗口点击Resume按钮,workbench会在运行之后停在断点处。C.在Memory窗口,程序运行后,会有六个符号出现。7.设置和运行到断点(Breakpoint)A.在main.92二、编辑和调试源文件1.在源程序中设置一个错误(Error)A.在ProjectExplorer窗口,双击main.c,打开编辑器。B.在Outline视图中选中main(),编辑器就会跳转显示这个函数。C.删除gridInit()后面的分号“;”。D.保存并关闭文件。二、编辑和调试源文件932.跟踪一个编译错误(BuildFailure)A.在ProjectExplorer窗口选择编译“ball”工程。B.当编译到main.c中设置的错误时,编译就会失败,这时workbench用一个红色圆点里面一个白色的查“x”在以下地方显示错误:(a).BuildConsole窗口会在前端显示,怀疑出错位置以及出错的信息。(b).在ProjectExplorer窗口提示“ball”工程编译出错和main.c就是包含错误的文件。(c).在Problems视图中会对错误进行描述,包括文件名、文件夹、行号。(d).点击这些位置的红色按钮,就会在编辑器中打开main.c文件,在红色的标记附近就是出错的所在。(e).在gridInit()函数之后加上分号“;”。(f).保存并关闭文件。2.跟踪一个编译错误(BuildFailure)A.在Pr943.更改错误后,重新编译工程。右键点击“ball”工程,选择RebuildProject。3.更改错误后,重新编译工程。95三、使用编辑器的高级特性1.使用代码完整(CodeCompletion)在文件中加入符号(Symbols)在编辑器中任意位置单击右键,在下拉菜单中选择Source>ContentAssist。三、使用编辑器的高级特性1.使用代码完整(CodeComp962.使用参数隐藏信息

在编辑器中想要使用参数隐藏信息,在编辑器的代码中的某一处单击右键,在下拉菜单中选择Source>ContentAssist或者使用快捷键CTRL+SHIFT+SPACE。2.使用参数隐藏信息在编辑器中想要使用参数隐藏信息,在973.使用括弧配对使语法清晰

使用括弧配对特性时,当鼠标放在括号的一边,与之配对的另一边就会被一个矩形框起来,还可以使用快捷键CTRL+SHIFT+P,跳转到矩形框的位置,可以进行括弧配对操作的符号有:

(),[],{},"",/**/,<>(C/C++only)。3.使用括弧配对使语法清晰使用括弧配对特性时,当鼠标放984.在源文件中查找标志符号(Symbols)

在Outline视图中可非常容易的查找符号标志,点击符号就可以跳到对应的位置。但是在函数内部引用的符号和函数名在Outline视图中是不显示的。*符号高级查找打开一个高级的符号查找对话框,其步骤如下:A.Navigate>OpenElement。B.在弹出的对话框中,输入要找的符号并选择其类型。C.在“matchingelements”框中,双击相应的符号就会跳转到对应位置,或者点击“cancel”退出。4.在源文件中查找标志符号(Symbols)在Out995.在文件中跟踪特定项(Items)

添加一个书签和定位一个书签方法是一样的:

都可以在短时间内找到感兴趣的名目(Items),打开书签(Bookmarks)窗口的方法:选择Window>ShowView>Bookmarks。可以在文件的内部的特殊行设置一个书签,也可以为文件自身设定一个书签。

在文件内部的某一行设置一个书签(Bookmark)

A.找到文件内部想要设置的行,在行号的左边单击右

键,在下拉菜单中选择AddBookmark,然后点击OK。

B.书签设置好后,可以在Bookmarks窗口点击

description

下方的书签名称进行修改。5.在文件中跟踪特定项(Items)100第五部分建立交叉开发环境一、主机和目标的配置任务概述二、配置交叉开发环境三、启动VxWorks四、配置Workbench的Host-Target通信第五部分建立交叉开发环境一、主机和目标的配置任务概述101一、主机和目标的配置任务概述1.在主机上所要做的工作2.在目标上所要做的工作3.一般操作4.目标代理(TargetAgents)和目标服务器(TargetServers)一、主机和目标的配置任务概述1.在主机上所要做的工作1025.目标代理(TargetAgent)模式(1).用户模式

代理(Agent)就像VxWorks的任务一样运行。调试的执行是基于单个任务的:可以使任务独立出来或者使任务不对目标系统的其他部分产生影响。(2).系统模式

agent运行在VxWorks的外部,允许调试应用程序和vxworks就像单个的线程一样执行。当应用程序和vxworks在执行的过程中遇到断点,应用程序和vxworks就会停止执行并且中断锁定。使用这种模式的最大好处就是可以通过中断单步执行;另一方面,熟练操纵单个的任务是很难的。使用这种方法的缺点那就是干扰太多—因为加入了大量的有意义的中断延时:当agent运行到中断锁定时。(3).双重模式

VxWorks映像对agent选择默认配置,一个用户模式的agent(INCLUDE_WDB_TASK)和一个系统模式的agent(INCLUDE_WDB_SYS)。但是同一时间只有其中一个agent运行,由workbenchdebugger或者主机shell控制两者之间的切换。5.目标代理(TargetAgent)模式103二、配置交叉开发环境1.配置主机软件A.设置VxWorksTarget名称和IP地址B.在Windows下配置FTP服务器C.认识WindRiverRegistry2.检验串口连接和电源*静电保护;*在目标CUP设置切换和跳转;*连接串口线,如果允许网络连接,还要连接网线;*连接电源。二、配置交叉开发环境1.配置主机软件104连接和终端界面的设置串口连接配置此终端界面的步骤:

*停止其他任何正在使用串口的程序。*运行Workbench。*打开串口终端界面Window>ShowView>Other,在filtertextfield框中输入Terminal,再选中,点击"OK"完成。*为了个人能更好的看界面的信息,可以双击界面的标题栏,全屏显示;然后双击标题栏可以还原到原来的大小。连接和终端界面的设置串口连接105ConnectionType:SSH

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。Host:要连接目标的主机的IP。User:输入系统设置的用户名。Password:输入系统设置的密码。Timeout(sec):所有平台默认为0。Port:用于此链接的端口。ConnectionType:SSHS106

ConnectionType:Telnet

是Internet远程登陆服务的标准协议和主要方式。Host:要连接目标的主机的IP。Port:用于连接端口有telnet和tgtcons两种选择,或者输入一个用于此链接的端口号。Timeout(sec):所有平台默认为10。ConnectionType:Telnet107D.设置一种启动方式通常都需要为系统设置以下的几种启动方式中的一种:ROM

大多数的目标板都从ROM的方式启动,在建立启动ROMs的时候,需要注意一下问题:建立每个设备的socket特征列表;注意每个设备的Pin1方向;在电路中工作时注意防静电措施;

软盘一些系统的BSP选择包含软盘方式的磁盘启动代替从ROM,而Pentium就是从磁盘启动。Flash存储器

为了支持从flash启动,BSP必须要做把启动程序下载到flash的相关工作。D.设置一种启动方式108三、启动VxWorksA.默认的启动顺序如果从一种默认的启动程序启动VxWorks,必须使bootloa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论