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

上传人:cn****1 文档编号:568848854 上传时间:2024-07-27 格式:PPT 页数:58 大小:525KB
返回 下载 相关 举报
嵌入式实时操作系统VXWORKS6.6集成环境使用指导_第1页
第1页 / 共58页
嵌入式实时操作系统VXWORKS6.6集成环境使用指导_第2页
第2页 / 共58页
嵌入式实时操作系统VXWORKS6.6集成环境使用指导_第3页
第3页 / 共58页
嵌入式实时操作系统VXWORKS6.6集成环境使用指导_第4页
第4页 / 共58页
嵌入式实时操作系统VXWORKS6.6集成环境使用指导_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《嵌入式实时操作系统VXWORKS6.6集成环境使用指导》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统VXWORKS6.6集成环境使用指导(58页珍藏版)》请在金锄头文库上搜索。

1、嵌入式实时操作系统嵌入式实时操作系统风河风河VXWORKS6.6集成环境使用指导集成环境使用指导目录第一部分VxWorks/worksbench3.0简介第二部分worksbench3.0/Tornado2.2比较第三部分worksbench3.0的工程视图第四部分建立一个例子工程第五部分建立交叉开发环境第一部分VxWorks简介workbench介绍嵌入式实时操作系统嵌入式实时操作系统VXWORKSVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)涉及的领域包括涉及的领域包括:过程控制(化工、食品加工);机器人(制造、自动操作控制);航

2、空电子(飞行管理、GPS、喷气发动机控制);军事(武器管理、密码);数据处理(采集、信号处理);通信(税收机、数字电话);家电(微波炉、洗衣机、空调)计算机外围设备(打印机、Modem)等。一、一、VxWorks的特点的特点*可靠性*实时性*可裁减性二、二、对一个实时内核的要求对一个实时内核的要求*多任务*抢占调度*任务间的通讯与同步*任务与中断之间的通信三、VxWorks的基本结构板级支持包BSP微内核wind网络系统文件系统I/O系统WindRiverWorkbench一、风河workbench3.0的特征风河workbench3.0是基于Eclipse平台发展出的开发工具,提供非常有效的

3、方式去开发实时嵌入式的应用程序,而不必过多的依赖于目标系统。风河Workbench可运行在Windows、Linux、和Solaris主机上。而本文档只介绍在Windows主机上使用Workbench3.0。使用WindRiverWorkbench的好处Workbench的“七多”优势:多任务多目标多模式多OS多CPU多连接形式多主机环境二、风河Workbench3.0的应用组件三、基于Eclipse的概念1.窗口(Window)2.工作空间(Workspace)3.Workspace的目录4.包含多于一个的工作空间(workspace)5.透视图(Perspectives)6.视图(View

4、s)7.编辑器(Editors)8.工程(Projects)9.访问和查找workbench上下文关联的帮助信息四、理解四、理解Cross-Development(交叉开发)的概念(交叉开发)的概念主机系统需要足够大小的RAM、磁盘空间、备份媒介、打印输出和其他外围设备。目标系统所需的资源用于实时的应用和一些的附加资源用于测试和调试2、要做的工作A.在主机上的工作在主机上的工作如果你在主机系统编写代码,那么就要管理工程文件;编辑、编译、链接,保存你自己的各种格式的实时代码,并且配置操作系统以便于最终能够在目标系统上运行这些代码。B.连接目标系统到主机连接目标系统到主机有很多可供选择的方案用于连

5、接目标系统到主机,比如:通过网络、串口、或者JTAG。C.运行应用程序运行应用程序运行期间(Run-time)的代码代表着最终的应用,其中包括:内核、开发者自己的具有特殊功用的代码,和选择调用的与库文件有关的代码。运行期间的代码并不一定属于目标代理(targetagent),即使在一个典型的开发和调试中包含它。第二部分worksbench3.0/Tornado2.2比较Workbench3.0平台相对于Tornado2.2平台来说,各项功能均有所增强,也有不少新加入的功能,主要的功能对比如下:工程管理工程项目编辑器断点设置仿真环境目标连接下载的代码量目标操作系统目标系统数目多任务调试第三方工具

6、第三部分工程视图一、Workspace/Project的设置二、各工程类型结构三、创建一个新工程四、组织工程结构五、工程的特殊执行环境一、Workspace/Project的设置1.在workspace建立工程所建的工程还没有建立源文件;所建的工程已经存在源文件,但需要添加进工程;所建的工程不允许设置在源文件目录处。2.在workspace外部建立工程;所建的工程建立在已有的源文件之上,改变工程目录之后需要对源文件进行添加和链接;所建的工程需要版本控制,而被放置在workspace之外。3.将工程建立在workspace之内但是连接到外部位置所建的工程不允许设置在源文件目录处;所建的工程因为开

7、发团队的成员有自己的工程,并且共享了部分源文件(通常为只读的)。这种选择就避免在团队成员之间通过Workbench互相配合工作是需要建立的象征性的连接。二、各工程类型结构1.VxWorksImageProject(VIP)2.VxWorksBootLoader/BSPProject(BSP)3.VxWorksDownloadableKernelModuleProject(DKM)4.VxWorksReal-timeProcessProject(RTP)5.VxWorksSharedLibraryProject(Libs)6.VxWorksROMFSFileSystemProject(ROMFS

8、)7.User-DefinedProjects(UDP)8.NativeApplicationProject(NAP)三、创建一个新工程(Projects)点击工具按钮或者选择FileNewWindRiverWorkbenchProject创建一个之前配置好的工程,或者是创建一个特殊类型的工程;也可以选择FileNewExample打开一个例子工程。1.工程创建之后的修改在相应工程的projectproperties界面进行修改。2.工程的结构设置选中ProjectReferencesAddasProjectReference,在弹出的菜单里就可以设定个工程之间的结构关系。3.工程与应用程序(

9、ApplicationCode)工程以一种或几种类型管理应用程序文件。可以将一个与Workbench兼容的工程整个加入,也可以添加新的或者已经存在的源程序文件。选择FileImport打开“ImportFile”。四、工程和工程结构所有独立的工程内部都包含和其他任一工程无关的模块,在系统开始是都是单个的和没有经过组织的。所以使用者可以在workbench下通过工程之间的依赖关系和编译命令整体组织各个工程。通过workbench可以很方便的组织各工程,但是有的工程不能作为某个工程的子工程或者是同种类型的工程,这样的关联是不允许的。1.给一个工程加入子工程Workbench可以通过多种的方式创建子

10、工程或者超级工程(subproject/superproject)结构:A 、在ProjectExplorer窗口,选择ProjectReferencesAddasProjectReference或者在Project菜单选择AddasProjectReference。B、在ProjectExplorer窗口,选择Properties再选ProjectReferences或者选择ProjectProperties。然后选择ProjectReferences,之后进行设置。Workbench确认子工程和超级工程之间的关系是基于工程类型和目标操作系统的。有些关系是不允许的。比如,Real-timeP

11、rocess工程不能作为VxWorksImage工程的子工程,但是可以加入到ROMFS工程。通常,一个user-defined工程在选用一个合适的目标操作系统的情况下可以作为任一工程的子工程或是超级工程。2.移除子工程A、在ProjectExplorer窗口,选择ProjectReferencesRemoveProjectReference或者在Project菜单选择RemoveProjectReference。B、在ProjectExplorer窗口,选择Properties再选ProjectReferences或者选择ProjectProperties。然后选择ProjectReferen

12、ces,之后进行移除。3.工程结构和主机文件系统结构Workbench工程在树状目录的顶部,其他子目录会自动包含在此树状目录之下。不要试图通过子目录建立工程建的连接关系,这样是不允许的,因为会造成工程的重叠。4.工程结构和编译系统编译先从顶部开始,再逐层深入到内部的枝叶最后回到顶部,完成编译5.工程结构和共享子工程工程结构和共享子工程一个实际的工程可以关联任意数量的逻辑工程。产品的升级或者编译共享工程亦或组件的变化,都会影响到关联共享工程的工程结构。6.自定义编译共享工程自定义编译共享工程一个单独的文件系统文件夹可以像子工程一样添加到多个逻辑工程结构。这种情况下,可以根据需要为每个工程指定不同

13、的依赖编译规格。同一个文件夹可以在同一个工程中指定不同的编译规格。如果为工程整体制定了一种编译规格,那么子文件夹也会运行这种编译规格,为其指定的特殊的编译规则自然就被排除在外。五、工程的特殊执行环境如果需要为每个工程保存不同的编译和外部工具执行的环境,Workbench允许使用者创建一个project.properties文件,为每个工程定义工具、工具版本、环境变量等内容。1.在shell中使用project.properties文件选择projectsopenworkbenchdevelopmentshell,在打开的shell中,选择一个工程模板,从一个已经存在的properties文件中

14、往模版中加入相应的内容。2.使用project.properties文件的局限*不能去除已经包含的内容;*不做在文件中设置的路径(PATH)扩展。*不能够把project.properties文件用在NativeApplication工程;第四部分建立一个例子工程一、创建一个例子工程并运行程序二、编辑和调试源程序三、使用编辑器的高级特性一、创建一个例子工程并运行程序1.创建一个例子工程创建一个例子工程a.选择FileNewWindRiverWorkbenchProject。会出现NewWindRiverWorkbenchProject对话框。b.从Targetoperatingsystem下拉

15、选择菜单选择WindRiverVxWorks6.x,点击Next。c.从Buildtype下拉选择菜单选择DownloadableKernelModule点击ClickNext。d.在ProjectName区域,输入ball。在本指导说明中都保持Createprojectinworkspace选项,点击Finish。一个名称为“ball”的工程出现在workbench的工程窗口。2.把源文件添加到工程a.鼠标右击ball工程文件夹,然后选择“Import.”出现一个添加导航界面。b.选择General,然后是FileSystem,然后点击Next。出现一个为Import导航的FileSyste

16、m界面。c.点击Browse按钮出现一个可做Import的选择目录。d.跳转到installDirworkbench-3.xsamples目录,选择ball,然后点击OK,这时Filesystem页面出现,ball文件夹在左面的小窗口,这个文件夹下的文件在右面的小窗口。e.选择ball的相应选项自动添加文件到工程中,然后点击Finish完成添加。f.在工程窗口的工程目录下:工程文件为黑色;编译的目标是绿色;灰色的是只读文件。3.编译工程A.右击工程文件夹,选择BuildProject。B.第一次编译一个工程时,会弹出一个询问workbench中生成编译目标的存储目录,通常不需要变化,所以选择C

17、ontinue。C.这时BuildConsole窗口会打印编译信息,当编译完成后,ball.out文件会出现在ball/SIMNTdiab/ball/Debug目录之下。D.说明:工程中的目录名称“SIMNTdiab”反映当前起作用的编译规格,它包含vxworks的模拟器和编译器;目录名称“Debug”反映的是实际上的默认的调试模式标志。如果需要改变编译规格,右击工程文件夹,选择BuildOptionsSetActiveBuildSpec,选择合适的编译规格。4.建立一个定义到vxworkssimulator的连接A.在remotesystem窗口中点击“Defineaconnection”,

18、或者在remotesystem窗口单击右键,出现NewConnection选择窗口。B.选择VxWorks6.xWindRiverVxWorks6.xSimulatorConnection,然后点击Next。C.点击Finish完成,这是所建立的连接相关的设置都是默认的状态。因为“Immediatelyconnecttotargetifpossible”默认为选中状态,workbench会尝试连接到模拟器。5.下载程序和连接到调试器(Debugger)A.在ProjectExplorer窗口,右击编译的目标ball/SIMNTdiab/ball/Debug/ball.out,然后选择Debug

19、KernelTask,这时Debug加载配置对话框出现。B.在main窗口的填写EntryPoint选项(或者点击Browse并且选择Downloadsball.outmain),然后点击Debug。C.这时workbench会进行以下动作:自动编译“ball”工程;跳转到DeviceDebug透视图;在模拟器上执行“ball”工程的程序;连接到调试器(debugger);执行程序到main();然后停止(breaks)。6.设置DeviceDebugPerspective(透视图)A.在Memoryview使用memoryaddress观察“ball”工程的“grid”变量在运行过程中的动作

20、,所以选择WindowShowViewOtherDebugMemory。B.在Expressions视图右击Expression标题栏并且选择AddWatchExpression输入grid再点击OK。grid变量的存储地址和它的值会出现在视图中。C.右击Memory视图并选择“AddMemoryMonitor”。D.输入“grid”变量的存储地址,点击OK。E.在Memory视图的Renderings侧空白处,单击右键,然后选择CellSize8bytes。F.除了把Memory窗口调大之外,还需要调整Monitors和Renderings窗口的大小,以便能够更加清楚的看到相应存储的值。7.

21、设置和运行到断点(Breakpoint)A.在main.c的三个初始化for循环之后的while中加入断点:在相应行的左侧边栏双击左键;出现一个蓝色的小圆点,还有一个Breakpoints视图显示断点的名称和行号。B.断点设置以后在Debug窗口点击Resume按钮,workbench会在运行之后停在断点处。C.在Memory窗口,程序运行后,会有六个符号出现。二、编辑和调试源文件1.在源程序中设置一个错误(在源程序中设置一个错误(Error)A.在ProjectExplorer窗口,双击main.c,打开编辑器。B.在Outline视图中选中main(),编辑器就会跳转显示这个函数。C.删除

22、gridInit()后面的分号“;”。D.保存并关闭文件。2.跟踪一个编译错误(BuildFailure)A.在ProjectExplorer窗口选择编译“ball”工程。B.当编译到main.c中设置的错误时,编译就会失败,这时workbench用一个红色圆点里面一个白色的查“x”在以下地方显示错误:(a).BuildConsole窗口会在前端显示,怀疑出错位置以及出错的信息。(b).在ProjectExplorer窗口提示“ball”工程编译出错和main.c就是包含错误的文件。(c).在Problems视图中会对错误进行描述,包括文件名、文件夹、行号。(d).点击这些位置的红色按钮,就会

23、在编辑器中打开main.c文件,在红色的标记附近就是出错的所在。(e).在gridInit()函数之后加上分号“;”。(f).保存并关闭文件。3.更改错误后,重新编译工程。右键点击“ball”工程,选择RebuildProject。三、使用编辑器的高级特性1.使用代码完整(使用代码完整(Code Completion)在文)在文件中加入符号(件中加入符号(Symbols)在编辑器中任意位置单击右键,在下拉菜单中选择SourceContentAssist。2.使用参数隐藏信息在编辑器中想要使用参数隐藏信息,在编辑器的代码中的某一处单击右键,在下拉菜单中选择SourceContentAssist或

24、者使用快捷键CTRL+SHIFT+SPACE。3.使用括弧配对使语法清晰使用括弧配对特性时,当鼠标放在括号的一边,与之配对的另一边就会被一个矩形框起来,还可以使用快捷键CTRL+SHIFT+P,跳转到矩形框的位置,可以进行括弧配对操作的符号有:(),/*/,(C/C+only)。4.在源文件中查找标志符号(Symbols)在Outline视图中可非常容易的查找符号标志,点击符号就可以跳到对应的位置。但是在函数内部引用的符号和函数名在Outline视图中是不显示的。*符号高级查找打开一个高级的符号查找对话框,其步骤如下:A.NavigateOpenElement。B.在弹出的对话框中,输入要找的

25、符号并选择其类型。C.在“matchingelements”框中,双击相应的符号就会跳转到对应位置,或者点击“cancel”退出。5.在文件中跟踪特定项(Items)添加一个书签和定位一个书签方法是一样的:都可以在短时间内找到感兴趣的名目(Items),打开书签(Bookmarks)窗口的方法:选择WindowShowViewBookmarks。可以在文件的内部的特殊行设置一个书签,也可以为文件自身设定一个书签。 在文件内部的某一行设置一个书签(在文件内部的某一行设置一个书签(Bookmark)A.找到文件内部想要设置的行,在行号的左边单击右键,在下拉菜单中选择AddBookmark,然后点击

26、OK。B.书签设置好后,可以在Bookmarks窗口点击description下方的书签名称进行修改。第五部分建立交叉开发环境一、主机和目标的配置任务概述二、配置交叉开发环境三、启动VxWorks四、配置Workbench的Host-Target通信一、主机和目标的配置任务概述1.在主机上所要做的工作2.在目标上所要做的工作3.一般操作4.目标代理(TargetAgents)和目标服务器(TargetServers)5.目标代理(TargetAgent)模式(1).用户模式代理(Agent)就像VxWorks的任务一样运行。调试的执行是基于单个任务的:可以使任务独立出来或者使任务不对目标系统的

27、其他部分产生影响。(2).系统模式agent运行在VxWorks的外部,允许调试应用程序和vxworks就像单个的线程一样执行。当应用程序和vxworks在执行的过程中遇到断点,应用程序和vxworks就会停止执行并且中断锁定。使用这种模式的最大好处就是可以通过中断单步执行;另一方面,熟练操纵单个的任务是很难的。使用这种方法的缺点那就是干扰太多因为加入了大量的有意义的中断延时:当agent运行到中断锁定时。(3).双重模式VxWorks映像对agent选择默认配置,一个用户模式的agent(INCLUDE_WDB_TASK)和一个系统模式的agent(INCLUDE_WDB_SYS)。但是同一

28、时间只有其中一个agent运行,由workbenchdebugger或者主机shell控制两者之间的切换。二、配置交叉开发环境1.配置主机软件A.设置VxWorksTarget名称和IP地址B.在Windows下配置FTP服务器C.认识WindRiverRegistry2.检验串口连接和电源检验串口连接和电源*静电保护;*在目标CUP设置切换和跳转;*连接串口线,如果允许网络连接,还要连接网线;*连接电源。连接和终端界面的设置串口连接配置此终端界面的步骤:*停止其他任何正在使用串口的程序。*运行Workbench。*打开串口终端界面WindowShowViewOther,在filtertext

29、field框中输入Terminal,再选中,点击OK完成。*为了个人能更好的看界面的信息,可以双击界面的标题栏,全屏显示;然后双击标题栏可以还原到原来的大小。ConnectionType:SSHSSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。Host:要连接目标的主机的IP。User:输入系统设置的用户名。Password:输入系统设置的密码。Timeout(sec):所有平台默认为0。Port:用于此链接的端口。ConnectionType:Telnet是Internet远程登陆服务的标准协议和主要方式。Host:要连接目标的主机的IP。Port:用于连接端口有telne

30、t和tgtcons两种选择,或者输入一个用于此链接的端口号。Timeout(sec):所有平台默认为10。D.设置一种启动方式通常都需要为系统设置以下的几种启动方式中的一种:ROM大多数的目标板都从ROM的方式启动,在建立启动ROMs的时候,需要注意一下问题:建立每个设备的socket特征列表;注意每个设备的Pin1方向;在电路中工作时注意防静电措施;软盘一些系统的BSP选择包含软盘方式的磁盘启动代替从ROM,而Pentium就是从磁盘启动。Flash存储器为了支持从flash启动,BSP必须要做把启动程序下载到flash的相关工作。三、启动VxWorksA.默认的启动顺序默认的启动顺序如果从

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

32、秒周期按下任意键中断启动程序并且输入正确的启动参数。启动程序显示如下VxWorks启动提示:VxWorksBoot:选择查看当前的(默认)启动参数,输入p(小写)就像:VxWorksBoot:p按下ENTER键,界面就会显示相关参数C.启动(程序的)命令启动(程序的)命令在VxWorks启动提示的后面输入h或者?,如:VxWorksBoot:?再按下ENTER键,就可以看到启动程序提供的命令列表D.启动参数描述bootdevice:用作启动的设备的类型,存有bootloader。unitnumber:启动设备的单元号,从0开始。processornumber:一般设置为0。hostname:是

33、让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):用于应用程序。E.重启VxWorks重启VxWorks的方法有以下几种:在Terminal输入

34、CTRL+X。在shell中调用reboot()。按目标系统上的reset按钮。关闭再打开目标电源。如果以其他方式重启VxWorks,auto-boot步骤将从倒计时(7到2的数秒)处,自动运行。四、配置Workbench的Host-Target通信如果要开发应用程序,网络连接比较容易建立和使用。到现在大多数的VxWorks目标都支持网络连接,不需要额外的目标设置。另一方面,网络接口是一个目标板最快速的连接通道。可能需要JTAG或者其他模拟器连接。A.网络连接点击RemoteSystems视图的“Defineaconnectiontoremotesystem”按钮。选择WindRiverVxW

35、orks6.xTargetServerConnection然后点击Next,这时TargetServerOptionsdialog出现,如下图:选择wdbrpc,输入目标名称或者目标IP。选中AdvancedTargetServerOptionssection,选中Verbosetargetserveroutput。命令行格式就像这样:tgtsvr-V-RC:/installDir/workspace-RWipaddress点击Next之后点Finish完成。如果所有设置都正确,在RemoteSystems视图中可以看到连接到target的服务正在运行。B、串口连接在串口连接成功之后,就可以通

36、过以下步骤把targetserver连接到agent:关闭正在使用串口的程序。在RemoteSystems窗口点击Defineaconnection之后NewConnection对话框出现。选择WindRiverVxWorks6.xTargetServerConnection然后点击Next。出现TargetServerConnection对话框。选择wdbserial终端,输入目标的名称和IP。选择AdvancedTargetServerOptions选中Verbosetargetserveroutput,然后用-d检查端口通信,同时检查线速与目标的线速相匹配,使用的命令格式如下;tgtsv

37、r-V-dcomport-bpsspeed-Bwdbserialipaddress然后点击next,再finish。在新建的连接上,选择Connect,就可以看见连接到目标的服务正在运行。工欲善其事,必先利其器1.一个稳定的操作系统。2.一个自己熟悉好用的输入法。3.一个好的阅读pdf软件。4.一个好的Word版本,带上Visio。5.一个好的翻译软件。6.一个或多个下载工具。7.一个好的浏览器。总结一下:选对了好软件只是提高效率的第一步!参考文档参考文档1.wr_workbench_vxworks_users_guide_3.0.pdf2.platform_general_vxworks_getting_started_3.6.pdf3.vxworks_bsp_developers_guide_6.6.pdf4.从Tornado到Workbench风河公司的新一代嵌入式软件集成开发环境.pdf5.风河Woorkbench3.0_VxWorks6.6使用说明-MMEV1.0.doc6.VxWorks6.6简介-MMEV1.0.doc

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号