




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
说明:由于开发经验和英语水平有限,在本文档中肯定存在偏差和谬误。在有疑问的地方,请以风河的官方文档为准。欢迎联系,指正错误。qq:1039309823。风河woorkbench3.0/vxworks6.6使用说明 第一章 风河workbench3.0介绍一、风河workbench3.0的特征风河workbench3.0是基于eclipse平台发展出的开发工具,提供非常有效的方式去开发实时嵌入式的应用程序,而不必过多的依赖于目标系统。风河workbench可运行在 windows 、linux、和 solaris主机上。而本文档只介绍在windows主机上使用workbench3.0 。 workbench提供了: * 开发过程的每一阶段都具有最佳性能,包括硬件生成、固件开发、应用软件开发和测试 。* 强大的功能目标基于设备软件开发过程和测试过程的主要挑战 。* 支持跨项目标准化的广泛实用性 。- 多目标操作系统支持,包括对vxworks6.x、linux 以及 threadx 的支持 。- 目标机处理器支持 arm、coldfire 、ia/pentium 、mips、powerpc 、sh以及xscale处理器 。- 插件架构,可添加其它目标机操作系统、目标机处理器以及目标机连接支持 。* 基于eclipse 的可扩展框架能够为可裁剪性和完全用户化而无缝集成第三方和专用内部插件。二、风河workbench 3.0的应用程序组件 * eclipse 框架 * 项目系统 * 编译系统 * 编辑器 * 源代码分析器 * 风河编译器 - 风河编译器(适合于和其它目标机操作系统) - 风河gnu 编译器(适合于vxworks 和风河linux 平台) * 风河调试器* 风河开发环境实用程序 * 风河shell环境 * 用于数据分析的 stethoscope * 用于内存分析的 memscope * 用于性能分析的 profilescope * 用于代码覆盖分析的 coveragescope * 用于代码流程分析的 tracescope * 用于系统事件可视化的风河系统查看器 * 用于单元和集成测试的workbench unit tester * 用于动态调试和诊断分析的workbench diagnostics * 风河芯片级调试器 - 风河ice - 风河probe - 风河trace 3、 基于eclipse的概念wind river workbench 是基于eclipse平台的一种工业标准的集成来发环境。2008年eclipse开源大会上,wind river workbench荣获eclipse基金会(eclipse foundation)评选的“最佳商用eclipse开发工具”大奖。eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由eclipse项目、eclipse工具项目和eclipse技术项目三个项目组成,具体包括四个部分组成eclipse platform、jdt、cdt和pde。jdt支持java开发、cdt支持c开发、pde用来支持插件开发,eclipse platform则是一个开放的可扩展ide,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。eclipse platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。wind river workbench3.0刚启动时的界面如图:1.窗口( window)在这里指的是集成开发环境的桌面。也可以选择window new window同时打开多个窗口,每个窗口都可以包含一个或者多个透视图( perspectives)。2.工作空间(workspace)workbench使用一个workspace保存当前使用者的工作环境,包括一系列的打开的工作项目(projects)的大小和位置的视图。workspace包含的信息包括:最近一段时间最后使用的workbench时的工程(projects)的种类和位置视图,当前的工程,设置的断点。3. workspace的目录默认的目录在installdirworkspace,当然如果必要的话,也可以在建工程时设置在其他地方。如果想同时运行一个或者多个复制的workbench时,必须是每一个拥有独立的工作空间(workspace)。4. 包含多于一个的工作空间(workspace)如果需要运行两个独立(independent copies)的workbench保证各自的工程(projects)和文件(files)互不关联。这事就需要建立另一个工作空间(workspace)。步骤如下:(1)、启动workbench3.0。(2)、选择 file switch workspace 打开“select a workspace”对话框。(3)、选择你想要设置新的工做空间的目录,选择“make new folder”并输入新的工作空间的名称,点击“ok”,完成操作。备注:如果两个工作空间(workspace)在同一个目录下,必须保证两个工作空间(workspace)有不同的名称; 如果两个工作空间(workspace)在不同的目录下,则两个工作空间(workspace)可以有相同的名称。5. 透视图(perspectives)在编辑区(editor area)可以存在一组透视图以及一个或者多个视图(views)以便于在执行一个特殊任务(particular task)时使用。打开一个新的的类型的透视图:选择window open perspective other如图所示:或者在工作空间(workspace)的右上角,在重叠的窗口处选择一个要打开的窗口,如下图所示:同时,可以把当前的透视图保存为想要的种类和名称:选择window save perspective as 选择一个种类并输入想要的名称,点击“ok”,完成操作。或者相对当前的透视图做更进一步的配置:window customize perspective,然后进行相应的设置,保存设置。又或者想要对当前的透视图回复为默认配置:选择window reset perspective。6. 视图(views)视图存在于透视图(perspectives)之下,可以排列、操作、或者用于workbench的导航信息。打开视图的方法:选择window show view, 选择一个要打开的视图类型 ;或者选择other,打开更多的可供选择的类型。如下图所示:说明:同一时间只有一个视图是活动的,视图标题栏(title bar)高亮度显示;可以对视图拖动、最大化、最小化,改变视图在透视图(perspectives)中的位置和大小。7. 编辑器(editors)编辑器是一种特殊类型的视图用作编辑文件。可以为不同类型的文件关联不同类种类的编辑器,比如c、c+、汇编、makefile,当打开文件,所关联的编辑器就会在透视图(perspectives)的编辑区域打开。8. 工程( projects)workbench利用工程( projects)就像逻辑容器和积木块它们能够连接在一起创建一个软件系统。工程( projects)窗口可以直观地组织工程结构反映在内部的依赖关系上,以及编译和链接的次序。9. 访问和查找workbench上下文关联的帮助信息可以使用快捷键,就可以访问上下文关联的workbench下的用户界面的更多信息。windows使用f1,linux 和 solaris 使用ctrl+f1,就可以打开一个帮助界面包含对当前界面的一个主要描述并且链接在其他文档中有同样主题的更多的相关信息。也可以通过在打开的workbench系统的菜单栏选择helphelp contents wind river documentation ,查找相关的帮助信息。更多关于eclipse的信息,选择 help help contents wind riverpartner documentation eclipse platform documentation ,或者访问eclipse的网站 。1、 在文档中查找帮助信息(1)、按照9中的步骤打开 workbench自带的帮助窗口。(2)、在“ search”栏输入关键词或者词组,点击“go 查找。(3)、在帮助窗口就是搜索的同一个主题的帮助信息,点击其中一个进入包含此主题的文档。在搜索的主题之前加上适当的限制词语可以简化搜索的结果。四、理解cross-development(交叉开发)的概念交叉开发就在一个系统上写程序代码,比如hast(主机系统:linux, windows, solaris);而最终运行在另一个系统,比如target(目标系统:比如移动电话的某个芯片)。交叉开发的硬件环境一个典型的主机系统需要足够大小的ram、磁盘空间、备份媒介、打印输出和其他外围设备。而相对的,一个典型的目标系统所需的资源用于实时的应用(real-time appl ication)和一些的附加资源用于测试(testing)和调试(debugging)。在主机上的工作如果你在主机系统编写代码,那么就需要进行以下工作:管理工程文件;编辑、编译、链接,保存你自己的各种格式的实时代码,并且配置操作系统以便于最终能够在目标系统上运行这些代码。连接目标系统到主机有很多可供选择的方案用于连接目标系统到主机,比如:通过网络、串口、或者jtag.运行应用程序运行期间(run-time)的代码代表着最终的应用,其中包括:内核、开发者自己的具有特殊功用的代码,和选择调用的与库文件有关的代码。 运行期间的代码并不一定属于目标代理(target agent),即使在一个典型的开发和调试中包含它。 操作系统平台(workbench)允许你避开那些繁琐的程序在你做一点改动之后必须整个重新下载的运行代码,能够单独下载和运行开发的应用模块。如果目标系统的硬件尚未完成,甚至可以把一个用用模块运行在一个目标模拟器(target simulator)上,或者使用风河操作系统平台的模拟器(wind river vxworks simulator)。5. 使用wind river workbench的好处使用wind river workbench能够确保在开发过程中、开发完成后与实际运行在目标系统之间出现最小限度的差异,并且保留绝大多数的开发工具在主机(host)上。一个很重要的优点就是在使用wind river workbench 时不需要全部连接应用程序.如果只有部分代码完成就可以经行渐进式的测试和调试;应用模块也不需要连接到运行期间的系统库 (run-time system libraries)。驻留在主机上的外壳和调试器(shell and debugger)可以交互用于援引和测试单独的应用程序或者是完整的任务(tasks)。workbench可以直接下载动态的目标模块,并且在主机(host)上为目标(target)保留一张完整的符号表(symbol table)。这张符号表是可增长的:目标服务器( target server )包含的所下载模块的符号。可做可变因数测试,调用子程序,创建任务,在存储器上分借代码,设置断点,跟踪子程序调用,等等;以上所有操作都是使用原始的符号名称。wind river workbench缩短了开发计划和实际产品之间的之间周期,它允许快速下载逐渐增长的运行代码并且动态连接到操作系统。使得应用程序的符号交互和测试得到最小程度的延迟。平台的调试器(workbench debugger)可以查看和调试应用程序代码,设置断点、单步运行、测试数据结构等等操作都可以在资源水平(source level)进行,而且使用便捷的图形化界面。workbench的“七多”优势workbench 平台的广泛适用性主要体现在七“多”上,即多任务、多目标、多模式、多os、多cpu 、多连接形式、多主机环境。 多任务:在workbench 调试环境下,可以同时连接目标系统上的多个不同的任务(或者进程),每个任务都可以单独设置断点,进行单步调试。开发者再也不用象以前那样,为了调试多个任务,先断开一个任务的连接,再连接到另外一个任务上去。这就给具有多任务的目标系统开发提供了便利,尤其是需要查看多个任务之间的配合关系时体现的优势更加明显; 多cpu :我们知道,风河公司的tornado 开发环境可以说已经支持了全系列的主流 cpu(或处理器),而workbench也将继承这个传统,目前推出的 workbench 2.2版本已经可以支持pentium、ppc 、mips系列的所有主流cpu 。对 arm、xscale 、sh等系列的支持正在移植和测试中,不久即将发布正式版本(workbench 2.3) 。 多os:目前的workbench 2.2 不仅支持vxworks嵌入式操作系统(6.0 以上版本),而且支持linux 操作系统,这确实给广大的linux 嵌入式开发人员带来了福音。大家知道,由于linux 操作系统的“免费”性质,使得其上的软件开发系统一直比较分散和孤立,用起来不是特别方便,有了work ben ch 以后,嵌入式linux 的开发就同vxworks的开发一样方便和快捷了。并且以后,如果有必要的话,还可以增加对其它类型嵌入式操作系统的支持,因为workbench 本身是开放和可扩展的。 多目标:workbench对复杂目标系统的强有力的支持还表现在它可以支持同时连接多块目标板进行调试开发,更为可贵的是这些目标板上处理器可以各不相同,并且在目标板上运行的操作系统也可任意(既可以运行vxworks,也可以运行linux),而调试工作都可以在同一个workbench 界面中同时进行,这无疑给一些复杂系统的调试带来了极大的便利。 多连接:所谓多连接,是指workbench 所在的主机和目标机之间可以有多种连接方式进行通讯,如果目标系统中存在以太网接口,那就应该首选以太网连接,因为这种方式速度比较快;如果目标系统中不存在以太网接口,那也可以选用串行口进行通讯连接,除了速度较慢以外,功能上与以太网连接没有什么区别。另外,在目标板初始调试阶段,还可通过风河的硬件仿真器(windriver ice / windriver probe) 进行连接,观察硬件状态,以迅速定位硬件问题。 多模式:在workbench中调试程序,即可以采用任务模式,也可以采用系统模式。所谓任务模式,是指各个任务之间独立运行,暂停其中一个任务的运行不影响其他任务的运行( 主要用于调试各个任务) ;而系统模式则是指只要暂停了系统的任何一处,整个系统都停止下来(主要用于调试中断程序)。 多主机:这是指workbench可以在windows、linux、solaris 这三大流行的主机操作系统下运行,这不仅可以适合不同开发者的使用习惯,而且在一定程度上有利于某些目标系统的开发,如使用linux 主机环境调试运行 linux 系统的目标板(但这并不是必须的)。 丰富易用的调试手段,大大加快调试进度 动态链接:用过 tornado 开发环境的人都对其独特的分模块单独下载、动态链接到目标系统的功能深有体会,而workbench 也完全继承了这个特性。有了这个功能,就使开发者不必将所有应用模块都编写完成再进行调试,也不用每次将应用模块和操作系统编译到一起然后下载调试,而是编好一个小模块,如果想进行验证,只需将这个小模块( 哪怕只是一个函数) 编译然后下载到目标板中就行了,这大大加快了调试验证的速度,尤其是在目标板和主机之间是低速连接的情况下更能体现出其优势所在。 目标可视:对目标系统的可视化是每一个嵌入式软件开发人员都希望得到的功能,为达到这一目的,workbench 除了提供一般的查看内存,积存器、变量、调用树等的传统视图工具外,还提供了几种增强的系统查看工具:目标浏览器、系统观察器和scopetools 工具集。目标浏览器可以用来查看目标系统每一个系统资源的使用情况和当前状态,包括系统各个模块、任务、信号量、消息队列、内存、堆栈等。系统观察器可对系统事件提供详细的分析和图形化的可视效果,同时还可展示在目标机上执行的应用程序的相关任务、中断以及系统对象之间复杂的交互作用。它能够清楚地显示上下文变化以及信号量、消息队列、信号、任务、用户事件和记时器一类的系统事件,就象一个软件的“示波器”。应用这些系统查看工具,开发人员可以很容易地去诊断和解决嵌入式系统中存在的调度问题( 如死锁,饥饿和竞争) ,性能问题(如优先级设置,资源的竞争与互斥),定时问题等。而 rti scopetools则是专门为设备类软件开发提供的一组强大的可视化工具集,用户可以动态观察整个系统平台,包括应用代码、第三方的库,甚至操作系统本身。workbench 2.2中集成进来了用于观察函数执行效率的profilescope 工具,用于观察内存使用效率和检测内存泄露的memscope工具,和用于检测变量或指定内存位置处数值的动态变化情况的stethoscope 工具。另外,还有可选的用于实时跟踪代码执行情况的 tracescope工具和用于检测代码执行覆盖率的coveragescope工具。 仿真环境:在目标系统的硬件开发完成之前,往往软件系统的开发也要同步进行,workbench提供的模拟仿真环境(只适用于针对vxworks 操作系统的应用软件开发)就提供了这种同步开发的途径。vxworks 软件仿真器运行于主机操作系统环境中,是一种从vxworks6.0操作系统移植过来的本地应用程序,它能够精确地实施vxworks 6.0的高级复杂特性,包括实时进程、内存保护等,它还具有完整的文件系统和网络功能,并能调用主机系统api。这些特性使得在 vxworks 软件仿真器中开发复杂的系统成为可能。例如,在 vxworks 软件仿真器中可以组建多个网络,这些网络不但互相之间可以通讯,还可以通过主机系统的网口与外界相连,实现一个完全真实的网络环境;再例如,可以利用主机系统的显示屏幕来开发具有图形用户界面的应用程序,这是通过调用主机系统与图形相关的api 来实现的。一般来说,用户可以为主机系统的任何资源编写api,而在 vxworks 软件仿真环境中进行调用,这极大地扩展了vxworks 软件仿真器的功能,也更便于应用软件的同步开发。 除了以上所提到的需要特别强调的功能外,workbench的强大调试功能还表现在支持各种类型的断点设置、方便灵活的操作系统内核配置工具,具有主机 shell和目标机 shell,具有 4种命令解释器,以及丰富的视图界面等等,详细情况请参考workbench 的说明及手册,这里就不多做介绍。总之,使用wo rkb ench 给开发人员的感受就是方便灵活,功能强大,几乎无所不能。风河公司副总裁、开发工具事业部总经理stephen saunders认为:“设备开发人员需要灵活、易用、高质量的开发环境,确保能够快速、高效、可靠地面向市场开发和部署各种高级嵌入式设备。风河公司基 于eclipse的开发工具套件wind river workbench完全满足了上述需求。wind river workbench此次荣获eclipse基金会评选的最佳商用eclipse开发工具再次证明了其价值所在,同时也是对我们开发工具产品提供的一流解决 方案的认可。” wind river workbench是一个完全基于eclipse平台技术的开发平台环境,能够为使用vxworks和wind river linux的设备开发人员加快产品上市速度(time-to-market)。通过紧密整合业界领先的实时操作系统(rtos)和linux系统, workbench提供了灵活、端到端(end-to-end)、基于开放标准的嵌入式设备软件开发环境。第2章 workbench3.0与tornado2.2的区 别与联系workbench平台相对于 tornado 平台来说,各项功能均有所增强,也有不少新加入的功能,主要的功能对比如下表所列: 表1 tornado与workbench的功能对比项目 tornado workbench 工程管理基本的工程管理功能,对分级的工程支持有限,并需要手工修改makefile等,比较麻烦 支持任意工程的分级控制,采用简单的“拖拉”方式就可完成工程项目的分级构造,非常方便工程项目 支持可下载的工程项目和客户化的vxworks 工程项目 增加了对系统引导工程项目、实时进程工程项目、文件系统工程项目、用户定制工程项目等的支持编辑器 功能比较简单,只能完成一般的编辑功能 具有语法分析功能,可以进行语法着色显示、符号定义查找、符号补全、函数参数提示等功能,具有强大的符号查找和浏览能力 断点设置 功能比较简单,只能完成一般的编辑功能 增加支持对处理器硬件断点等的支持,并且对各种断点还提供多种控制手段 仿真环境 基本的vxworks 仿真环境,可以操作主机系统中的文件和网络访问增强了仿真环境中的复杂组网功能,提供了调用主机系统 api 的能力,并可模拟中断信号的产生 目标连接 支持网络、串口等连接方式增加了对硬件仿真器的连接 下载的代码量下载的目标代码一般在10mbyte之内,超过10mbyte 会出现下载速度慢,系统不稳定的问题 设计能力为可下载750mbyte 的目标代码,充分满足开发和调试需要目标操作系统只支持vxworks 操作系统增加了对linux 操作系统的支持,并且还可以扩展到其它目标操作系统目标系统数目单一的目标系统,同一个开发环境中同时只能建立一个连接,调试一种类型的单板 可以同时进行多目标板、多cpu体系结构的调试 多任务调试 不支持,每次只能挂接一个任务,或者进行系统级调试支持,同时可挂接目标系统的多个任务或进程进行调试第三方工具 结构比较封闭,集成第三方工具比较困难 采用eclipse 的开放架构,第三方工具容易集成,且资源丰富 workbench是对 tornado 的一次脱胎换骨的升级,但目前并不能说 workbench就可以完全取代tornado。这是因为 workbench只对vxworks6.0以上的版本(具有“进程”的概念)进行支持,如果用户想使用vxworks6.0以下的版本(扁平地址空间,应用程序均在内核中运行),那只能用tornado 进行开发。 第三章 工程视图(projects overview)workbench利用工程( projects)就像逻辑容器和积木块它们能够连接在一起创建一个软件系统。工程( projects)窗口可以直观地组织工程结构反映在内部的依赖关系上,以及编译和链接的次序。前期配置的各种不同的工程允许在后面建立或添加工程时使用与之前的工程相同的配置和建立方式,因而只需要极小的输入。1、 workspace/project 的设置wind river workbench并不知道使用者的源文件在哪一个地方,在开始的使用的时候wind river workbench在安装目录下有一个默认的工作空间(workspace )的目录。但是这不是必需的或者说并不一定是合理的,当使用者的工作空间因为产品升级或者更改安装目录已经完全存储在当前的安装目录树之外的时候!通常,使用者需要把workspace目录设置在当前的源文件树的根目录下并且在此创建workbench工程。对于各种不同的源文件树,可以使用不同的工作空间(workspaces)。当决定在什么地方建立工程(projects)要做以下考虑:1. 在workspace建立工程如果使用者想要新建一个工程在workspace下,通常的情况有a. 所建的工程还没有建立源文件。b. 所建的工程已经存在源文件,但需要添加进工程。c. 所建的工程不允许设置在源文件目录处。2. 在workspace外部建立工程在创建工程时,点击“browse”,将要建立的工程放置在在与workspace不同的目录。通常的情形有:a. 所建的工程建立在已有的原文件之上,改变工程目录之后需要对源文件进行添加和链接。b. 所建的工程需要版本控制,而被放置在workspace之外。3. 将工程建立在workspace之内但是连接到外部位置在创建工程时,选择browse,定位到使用者的源文件目录,当不愿意因为工程文件的加入而是原文件增大或者不想把源文件复制到workspace。通常的情形有:a. 所建的工程不允许设置在源文件目录处。b. 所建的工程因为开发团队的成员有自己的工程,并且共享了部分源文件(通常为只读的)。这种选择就避免在团队成员之间通过workbench互相配合工作是需要建立的象征性的连接。注意:如果要使用一个早期版本的 workbench创建了一个workspace,在使用当前版本的workbench打开此workspace时,必须先升级此workspace的结构!有一个对话框提醒使用者这种升级会使得workspace与早期的版本不相匹配,选择“ok升级,或者选择“cancel”去选择不同的workspace。二、创建一个新工程(projects)尽管使用者可以将工程建立在任何位置,但是通常还是建立在自己的workspace中。这样就不需要在建立工程时跳转到外部目录。如果在workspace创建了一个工程,必须在外部所创建的工程处设置写允许,因为workbench的工程管理文件要写到此处。可以点击 工具按钮或者选择 filenewwind river workbench project 创建一个之前配置好的工程,或者是创建一个特殊类型的工程;也可以选择file new example 打开一个例子工程。无论选择种菜单命令,都会由导航菜单一步一步选择,直到创建需要的特定类型的工程,接下来将介绍以下各工程的创建:a.creating vxworks image projectsb. creating boot loader/bsp projectsc. creating vxworks romfs file system projectsd. creating vxworks real-time process projectse. creating vxworks shared library projectsf. creating vxworks download able kernel module projectsg. creating user-defined projectsh. creating native application project1. 工程创建之后的修改所有工程的创建导航设置都可以修改一旦工程已经存在。在project explorer窗口,选中工程文件夹,例如“ball”,单击右键在下拉菜单中选中“properties”,就可以在相应工程的 project properties界面进行修改,如下图:工程的结构设置(包括使用者创建的超级工程),也可以很容易的修改,在project explorer窗口,选中工程文件夹,例如“ball”,单击右键在下拉菜单中选中project references add as project reference,在弹出的菜单里就可以设定个工程之间的结构关系,如下图所示:2. 工程与应用程序(application code)工程以一种或几种类型管理应用程序文件。可以将一个与workbench兼容的工程整个加入,也可以添加新的或者已经存在的源程序文件。选择 file import 打开“import file ”对话框进行相关操作。3、 各工程类型结构不同类型的工程有着不同的用处,workbench支持多种类型的工程,在project explorer窗口可以看见不同类型的工程有着不同的符号标志,见下图:1. vxworks image project(vip)用vxworks image project 工程配置(自定义或裁剪)并编译一个内核映像用以启动目标板( boot target)。通过添加vxworks romfs 文件系统、内核模块(kernel modules)、应用程序(applications)、 库(libraries)、 数据文件(data files),可以把整个系统联接进如一个映像(single image)。 一个vxworks image project既可基于一个同类型的image project也可基于一个bsp( board support package)。2. vxworks boot loader/bsp project(bsp)vxworks boot loader/bsp工程用于创建一个vxworks boot loader也称为vxworks boot rom 在启动时下载一个带vxworks内核的目标映像。也可以把一个已经存在的同类型的工程的源文件复制到使用者创建的工程中,然后在不改变 vxworks 所在目录的情况下自定义工程。在开发环境中boot loader被用来从主机下载一个vxworks映像;在最终的产品中boot loader和操作系统映像存储在同一个磁盘上。boot loader和vxworks并不需要在rom中单独存储。3. vxworks downloadable kernel module project(dkm)利用vxworks downloadable kernel module 工程管理和建立一个存在于内核空间(kernel space)模块(modules)。可以单独建立模块运行和调试,可以自由的在目标(target)上运行vxworks,下载,卸载,重载。一旦模块完成就可以静态的链接到内核(kernel),或者模块也可以使用一个存在的文件系统。dkm工程示意图(不包含文件系统)内核模式的开发是vxworks 传统的开发方法,所有的任务(tasks)都在启动(spawn)之后运行在一个没有保护的环境。downloadable kernel module在目标已经启动之后,可以启动应用程序。4. vxworks real-time process project(rtp)vxworks real-time process可以管理和建立可执行文件在内核空间之外。可以单独运行和调试可执行文件。对于real-time任务就像一个完全独立的程序下载到一个单独的程序运行地址空间( process address space)。一个real-time的程序的二进制文件可以像romfs文件系统一样存在于目标的(target-side)文件系统。real-time 程序执行时对于内核就像单独的实体,如下图所示:关于如何连接到共享库(shared libraries),参看平台所带的帮助信息。5. vxworks shared library project(libs)vxworks shared library的库文件会动态连接到运行的vxworks实时程序,要连接到rtp工程,必须将共享库( shared library)储存在目标侧的文件系统。也可以通过vxworks shared library工程建立一个子工程在编译时静态链进入其他的工程。更多的信息在平台帮助信息中查看,其路径为: help cheat sheets wind river workbench setup a vxworks rtp with a shared library 。6. vxworks romfs file system project(romfs)vxworks romfs file system 工程可以作为任何一个需要目标侧文件系统的工程的子工程。这种工程类型设计用来建立应用程序或者其他任何类型的文件,带一个vxworks系统映像的romfs文件系统,除了是vxworks的引导映像并不需要任何的存储介质。所以并不需要其他的文件系统存储文件,系统也具有完全的功能而不需要求助local文件系统、nfs 驱动、rsh 、或者ftp 协议等等。需要注意的是romfs与rom 媒介没有任何关系,名字代表的意思是read only memory file system。 romfs工程示意图:7. user-defined projects(udp)user-defined projects 为用户设置和保存自己的编译系统、文件系统布局等等。用户接口提供以下支持:a. 可以用编译命令(build command )开展用户的编译功能,这样就允许在workbench gui界面进行编译。b. 在project explorer窗口中建立的工程,它的编译规则可以反映在makefiles文件中。这样就允许在project explorer窗口选择任何用户自己的编译规则。c. 可以在build console窗口看到编译工程时的输出信息。8. native application project(nap)native application工程用于主机环境下的c/c+应用程序的开发。wind river workbench为当地gnu 2.9x, gnu 3.x, 和microsoft 开发功能(ssembler, compiler, linker, archiver)提供编译和源文件分析支持,但没有调试器,所以得选择合适的当地工具用于调试(debugging)。4、 工程和工程结构所有独立的工程内部都包含和其他任一工程无关的模块,在系统开始是都是单个的和没有经过组织的。所以使用者可以在workbench下通过工程之间的依赖关系和编译命令整体组织各个工程。通过workbench可以很方便的组织各工程,但是有的工程不能作为某个工程的子工程或者是同种类型的工程,这样的关联是不允许的。1. 给一个工程加入子工程workbench可以通过多种的方式创建子工程或者超级工程(subproject/superproject)结构:a、在project explorer窗口,右键点击工程,在下拉菜单中选择project references add as project reference或者在project 菜单选择 add as project reference。之后就可以进行工程之间的关联选择。b、在project explorer窗口,右键点击工程,在下拉菜单中选择properties再选 project references或者选择project properties。然后选择project references,之后进行设置。workbench确认子工程和超级工程之间的关系是基于工程类型和目标操作系统的。有些关系是不允许的。比如,real-time process 工程不能作为vxworks image工程的子工程,但是可以加入到romfs工程。通常,一个user-defined 工程在选用一个合适的目标操作系统的情况下可以作为任一工程的子工程或是超级工程。2. 移除子工程 a、在project explorer窗口,右键点击工程,在下拉菜单中选择project references remove project reference或者在project 菜单选择 remove project reference,之后进行移除。 b、在project explorer窗口,右键点击工程,在下拉菜单中选择properties再选 project references或者选择project properties。然后选择project references,之后进行移除。3. 工程结构和主机文件系统结构 workbench工程在树状目录的顶部,其他子目录会自动包含在此树妆目录之下。不要试图通过子目录建立工程建的连接关系,这样是不允许的,因为会造成工程的重叠。 工程的目录结构和逻辑结构示意图:4. 工程结构和编译系统对于上文工程的“目录结构和逻辑结构示意图”所示工程的结构与编译顺序的示意图:编译先从顶部开始,再逐层深入到内部的枝叶最后回到顶部,完成编译。上图的编译顺序如下图所示: 5. 工程结构和共享子工程 一个实际的工程可以关联任意数量的逻辑工程。产品的升级或者编译共享工程亦或组件的变化,都会影响到关联共享工程的工程结构。6. 自定义编译共享工程一个单独的文件系统文件夹可以像子工程一样添加到多个逻辑工程结构。这种情况下,可以根据需要为每个工程指定不同的依赖编译规格。同一个文件夹可以在同一个工程中指定不同的编译规格。如果为工程整体制定了一种编译规格,那么子文件夹也会运行这种编译规格,为其指定的特殊的编译规则自然就被排除在外。5、 工程的特殊执行环境 如果需要为每个工程保存不同的编译和外部工具执行的环境,workbench 允许使用者创建一个 perties文件,为每个工程定义工具、工具版本、环境变量等内容。 可以把perties在团队共享保持一致性,也可以和工程中的其他文件一起做源文件控制。 a.在project explorer窗口,右键单击工程,选择new file。 b.在new file对话框选择创建perties的步骤: new file对话框如下图所示: a.在file name中输入perties,点击finish。 b.连接到外部的perties点击 advanced,然后选择link to file in the file system选则当地的文件,然后点finish完成。 注意;当在团队中共享文件或者是在公共的位置访问这些文件时,最好使用路径variable代替不受约束的路径,因为团队成员到这个位置的路径可能各不相同。设置variable路径,点击variables,在弹出的对话框中选择new,输入名称和选择预设的位置,点击ok然后完成设置。c.新的 perties文件出现在project explorer窗口底部,并且在编辑窗口打开,可以添加和编辑文件内容。 d.新perties 和其他的工程描述文件使用相同的语法,都是wrenv(就像perties和perties )更多的信息参看vxworks command line tools users guide: creating a development shell with wrenv。e.如果已经做了一个扩展,在 project explorer窗口可以通过工程名查找到工程模板。f.打开 installdir/perties文件,查看模版中的列表信息:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 边缘计算分布式系统-洞察及研究
- 手持轻物投准课件
- 山东省德州市庆云县2024-2025学年八年级(下)期末物理试卷(含答案)
- 高二年级上学期9月月考历史试卷
- 2025年煤气考试题库及答案
- 手外伤处置原则课件
- 手动工具及安全培训课件
- 中介租房简单版合同范本6篇
- 扇形统计图课件操作说明
- 中级银行从业资格《银行业法律法规与综合能力》提升训练题库卷及答案
- 部编版小学一年级上册语文带拼音阅读练习题26篇
- 无机及分析化学第2章-化学热力学基础1
- GB/T 2930.1-2017草种子检验规程扦样
- 会计学原理模拟试题一套
- 第一章-宗教社会学的发展和主要理论范式课件
- 国内外新能源现状及发展趋势课件
- 临床常见护理技术操作常见并发症的预防与处理课件
- 高速公路改扩建桥梁拼宽施工技术及质量控制
- 双台110kV主变短路电流计算书
- 你不懂咖啡课件
- 危险物品储存安全隐患排查整治表
评论
0/150
提交评论