Tornado-开发环境_第1页
Tornado-开发环境_第2页
Tornado-开发环境_第3页
Tornado-开发环境_第4页
Tornado-开发环境_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、北京瑞斯康达科技有限公司 2009年8月 Tornado集成开发环境介绍 工程管理 Target Server 调试 ShellTornado是由美国风河系统公司(Wind River System 公司,WRS)推出的高性能实时操作系统VxWorks的开发平台,它包括一套完整的面向嵌入式系统的开发和调试工具。Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。Tornado开发系统包含三个高度集成的部分:运行在目标机上的高性能、可裁剪的实时操作系统VxWorks;运行在宿主机的强有力的交叉开发工具和实用

2、程序,可对目标机上的应用程序进行跟踪和调试;连接宿主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM仿真器等。Tornado环境采用主机主机-目标机目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器与目标机上的目标代理程序的通信完成对应用程序的调测、分析。 S Su un n HP Windows 95 Windows NT IBM 。 。 。 。 。 。 。 。 HOST LAUNCHER GUI Tornado Plug-ins TARGET SERVER On-line Hypertext WindSh Cro

3、ssWind WindPower Tools WindConfig Browser Third Party and Customer Tools Simulation Environment VxSim TARGET VxWorks/IxWorks/Wisp Scalable Run Time P Po ow we er rP PC C 6 68 8K K C CP PU U3 32 2 C Co ol ld dF Fi ir re e S SP PA AR RC C i i9 96 60 0 x x8 86 6 P Pe en nt ti iu umm A AR RMM MMI IP PS

4、S MMC COOR RE E V V8 8X XX X S ST T2 20 0 S SH H Real-Time Embedded Application RTGL GRAPHICS VxWindows VxVMI VxMP WindNet Networking File System SCSI POSIX Library wind Microkernel BSP Debug Agent 集成的源代码编辑器 工程管理工具 集成的C和C+编译器和make工具 调试器(CrossWind):系统和任务级调试工具,可以调试C、C+以及汇编程序。 Shell(WinSh):C语言命令外壳,用于控制

5、目标机。 浏览器(Browser):用于收集可视化的资源,监视目标系统。 VxSim:集成的VxWorks目标机仿真器。 WindView:集成的软件逻辑分析仪 Tornado目录列表WIND_BASE(指向Tornado安装目录的环境变量).wind存放个人定制文件和状态信息文件等Docs存放各种帮助文件 b o o k s . h t m l ,To r n a d o _ R e f e r e n c e . h t m l ,VxWorks_Reference_Manaul.html、rtnIndex.htmlHost存放Tornado主机环境相关文件include存放Tornado

6、 API相关的头文件resource存放Windows资源文件,如图标等resourcetcl存放实现用户界面的TCL文件及各种工具实现Tcl存放TCL相关源代码x86-win32存放主机工具及各种动态库x86-win32libTornado应用支持库Setup安装相关目录(与用户无关)ShareSrcWDB、WTX、Target Server源代码,由主机与目标机共享Target存放目标机VxWorks相关文件Setup.log包含安装信息Tornad手册列表books.html手册总入口Tornado_Reference.html分项描述各主机工具,如WindSh、elfToBin等Tor

7、nado_API_Reference.html描述Tornado API,一般用户不用,按结构层次分类libIndex.html库参考入口,按库名分类,包括VxWorks库和Tornado库BSP_Reference.htmlBSP 参考VxWorks_Reference_Manual.htmlVxWorks库手册,以库名排序描述,经常参考rtnIndex.htmlVxWorks库手册,以函数名排序描述,经常参考点击Windows任务栏上的“开始”按钮,选择程序,然后选择Tornado程序组,点击其中的Tornado项,即可启动Tornado运行,第一次启动Tornado时,创建工程窗口将出现

8、。主窗口的顶部包括5个工具条,可以快速执行最常用的Tornado命令;Standard:包括打开、保存、剪切、粘贴和打印等标准功能;Launch;启动浏览器、shell、调试器、仿真器、WindView和触发; Debug:包括启动调试、运行函数、单步执行和监视的调试器功能;WindView:缩放功能、过滤和数值分析。Build:构建、编译当前文件,更新相关性,以及下载。Tornado以工程(project)为单位组织软件开发,工程中包括源代码信息、VxWorks配置和编译配置等。Tornado提供了工作空间(workspace)机制,用于工程的组织和管理。Tornado可以创建多个工作空间,

9、每一个工作空间可以包含多个工程。每个工程又能引用多个源代码文件,组成层次结构。工作空间主要用在主机上安装有多个不同版本的Tornado时,每个工作空间可以以Torndao的版本命名。Tornado能创建两种工程类型:Bootable和Downloadable。前者用于生成VxWorks程序映像,包括基本的操作系统组件,经过完全连接,可以独立运行。后者生成程序模块目标映像,只是部分连接,不能独立运行,但这种映像支持动态加载和连接支持动态加载和连接,为VxWorks特有,能进行应用代码的快速开发和调试,而对系统其他部分不会造成影响。在项目的开发中,采用创建Downloadable工程来调试自己开发

10、的应用模块。 step1:Tornado启动时或选择菜单“FileNew Project”命令 选择工程类型。我们以创建Downloadable工程为例做一介绍。step2:设置工程名称、目录、描述和所属的工作空间。step3:选择编译工具链,与CPU类型和编译器相关。工具链决定了编译器、系统库和目标格式等。工程生成时会自动完成依赖关系,生成相关文件 step4:工程创建完成创建的新工程是一个初始化框架,还没有文件。只有和用户自己的应用代码关联后,才能进行实际的项目开发。添加文件:完成应用代码的添加后,需要完成编译配置,才能得到需要的程序映像。编译配置在“Builds”窗口中进行。“C/C+

11、compile”和“assembler”选项卡用于设置编译器和汇编器的命令和选项。“linker”选项卡用于设置连接器的命令和选项。“Link Order”选项卡可查看模块连接的情况,用于更改链接次序。 -g映像中是否包含调试信息调试信息,会影响映像的大小-ansi支持标准标准C语法,若想在C中用C+注释则去掉-D编译器宏定义,用于代码条件编译条件编译-O指定优化优化等级,建议-O0(不优化)-O2优化-fvolatile防止编译器优化防止编译器优化volatile变量相关的代码-I包含头文件目录头文件目录,需自己添加-IC:/Tornado2.2/target/h-Wall报告所有告警告警-

12、P预处理器不产生“line”指令l “Rules”选项卡用于设置生成的映像的类型。“Macros”选项卡用于定义编译宏。在build成功完成以后,在某一个.o文件上单击右键,选择“Download 文件.o”能够实现模块的动态下载。 Target Server在主机上运行并管理主机工具(如shell、调试器和浏览器)以及目标机系统本身之间的通信。 Target Server 包含主机驻留目标机符号表和向正在运行的目标机系统中插入应用模块的目标模块装载器。 Target Server和目标机系统通过目标机代理Target Agent(WDB Agent)通信,该Agent以任务任务的形式运行在目

13、标机上。Tornado工具向Target Server 发送请求,根据请求类型,有的请求由Target Server自己处理,有的转发给Target Agent处理。为了与Target Agent通信,Target Server使用一个通信后端,该后端与Target Agent配置为相同的通信协议和传输层。 Target Server必须在任何工具能与Target Agent通信之前配置并启动。在配置和启动之前,确定主机和目标机已经适当地连接。通过选择菜单“Tools-Target Server”即出现配置对话框 :在该对话框中可以创建、复制和删除Target Server配置;描述为该配置的

14、标识,描述下的选项用于将该描述添加到菜单上,方便以后的操作;Target Server为目标服务器的IP地址Target Name/IP为Target Agent的目标机IP地址 授权和访问限制【Authorizations】 用于限制用户访问以增加系统的网络安全性,授权配置如图所示。如果选择“Lock on Startup”,则只有启动Target Server的用户的进程才可以访问该Target Server,如果没有选择“Lock”项,则缺省查找“$WIND_BASE/.WIND/userlock”文件来获得授权用户ID;若没有该文件,则无访问限制。也可以自己设置指定“User ID f

15、ile”。我们一般不对该项进行设置,也就是设置成无访问限制。通信后端【Back End】根据不同的目标机,可以选择不同的Target Server通信后端与目标机的Agent通信。其中wdbrpc用于网络连接;wdbserial用于串行通道连接;wdbpile用于Visxim仿真目标机连接 ;netrom用于一专有的通讯协议;loopback用于测试;选择的后端类型与Agent中选择的WDB connection类型一致才能建立主机与目标机之间的WDB连接。各后端的动态库位于“hostx86-win32libbackend”目录下。 wdbrpc是最常使用的一种:“Timeout”参数用于设置

16、连接断开的确认时间,缺省为1秒,当连接超时时会进行连接重试,最大重试次数由“Re-try”确定,缺省为3次。核心文件和符号表【Core File and Symbols】Target Server依赖主机上存放的VxWorks映像文件映像文件来完成调试工作,我们需要指定映像核文件的存放路径。Target Server在主机上为目标机VxWorks映像维护了一张符号表符号表,该表根据核心文件建立,从文件中提取符号名称和内存地址,用于加载其他模块时进行引用符号解析。默认情况下选择“Global Symbol”,只有核文件中的全局符号加入到主机符号表中。若选择“All Symbol”全局和局部符号都

17、加入符号表中。“No Symbol”不建立主机符号表。另外为了实现在动态加载时主机和目标机上符号表的一致性,选择“Synchronize Target/Host Symbol Table”选项。 为了避免目标机进行过多的数据传输处理,Target Server维持在主机系统上有一块快速存储区(快速存储区(Cache)。该内存区主要由主机加载目标模块时使用。缺省情况下为1M,为了提高主机工具访问该内存的效率,可指定其大小。 其他选项:目标服务器文件系统、控制台和重定向、日志、杂项和目标机存储池这里暂不做介绍,在实际使用中几乎不用进行配置。在进行上述的配置后点击图中的“Launch”按钮启动Tar

18、get Server。 当目标服务器已经启动时,目标服务器图标在Windows任务栏中显示。对于图标的上下文菜单提供对于显示LogConsole窗口、显示关于目标机信息和关闭目标机服务器的选项。 Tornado支持系统级调试和任务级调试支持系统级调试和任务级调试 系统级调试系统级调试可以在多个任务中切换,甚至在系统例程中检查运行,其主要用于中断代码中断代码的调试,也可以用于任务代码的调试。在此模式下,可以使用全局断点来停止整个系统,只要有任何任务遇到此断点。 任务级调试任务级调试可以调试任务上下文中的代码,调试只对单个任务运行,不会对系统造成影响。默认情况下,Tornado一次只可以调试一个任

19、务。可以通过使用run对话框建立一个新任务,或者通过Attach对话框调试一个已存在的任务,以选择任务。当绑定一个任务时,其命令只影响此任务。当任务遇到断点时,只停止此任务,整个系统并不停止。启动:从Tornado Launch工具栏:按 按钮,或从Tools菜单:单击Debugger,启动调试器;当调试器运行时,可以通过编辑窗口、命令行窗口、debug菜单及工具条进行调试;停止:在调试工具条中,按 按钮或单击Debug菜单中的Stop Debugging命令,停止调试过程;Debug工具条上面有调试命令的按钮,以及显示辅助调试器窗口的按钮。调试按钮和命令 Default breakpoint

20、s(任务断点):停在绑定的任务,或在系统级调试时停止整个系统; Global breakpoints(全局断点):全局断点和任务上下文无关,只和调试代码有关,任何任务运行该代码到断点,都会挂起该任务等待调试。而任务断点除了和代码相关外,也和运行该代码的任务上下文相关。只有被Attach的任务运行到该段代码断点才会有意义。 Temporary breakpoints(临时断点):只有效一次,然后删除( default )或禁止掉(disabled)当代码运行到断点处时,可以单步跟踪,通过使用附属窗口,来检查局部和全局的程序变量、参数、寄存器、目标机存储器和堆栈情况。Watch窗口可以查看和修改全

21、局符号全局符号,包括变量、数组、函数名等。在源代码窗口可以直接选择符号名加入Watch窗口,也可以先激活“Add to Watch”对话框,再手工输入符号名加入到Watch窗口。特别是对大数组的查看,数据量过大会导致Tornado运行很慢,最好手动输入分项查看。 Variables窗口可以查看和修改当前例程的局部变量,当单步执行不同的例程时,新的例程的局部变量就取代了先前显示的局部变量。Registers窗口可以查看和修改 CPU寄存器寄存器的数值。Memory窗口显示从Start Address控制字段指定的地址开始的一个范围的目标机存储器。Variables窗口 Registers窗口 M

22、emory窗口Back Trace窗口可查看的函数调用轨迹,最下层为根函数,一般为任务入口函数;最上层为断点设置函数。窗口显示函数的地址、入口参数和所处的文件等。可以在窗口中任何例程上双击,以将上下文指针移至编辑窗口中的那个堆栈级,可查看相应的源代码。工程生成的目标文件和部分连接的out文件,可以通过调试器下载到运行VxWorks的目标机中,完成局部代码的开发调试工作。下载的目标模块代码不能自动运行,需要通过运行系统中的代码和调试器来启动其运行的上下文。在调试器中,可通过菜单“Debug-Run”命令来运行调试代码函数,如果不需要提供参数,其默认值为零。 Shell(WindSh)是Vxwor

23、ks的一种命令行用户接口,在shell下允许调用任何VxWorks例程,提供对全部VxWorks工具的访问;也可以用作应用程序开发者的一个原形和调试工具,通过调用任何一个应用程序例程来交互地运行应用程序模块。Shell的操作包括Tornado系统的三个组件:1、Shell接收命令并在本地主机上执行,为任何操作向目标服务器发出请求,包括符号表或者目标机驻留程序或者数据2、目标服务器管理符号表,并处理与远程目标的所有通讯,发出函数调用并在需要时发送回结果。3、目标机代理是在目标机上运行的唯一一个组件。可选择菜单“Tools-Shell”命令启动或按钮“launch shell” 启动 :在Shel

24、l窗口执行exit、quit或退出Shell 。如果Shell和Target Server连接中断时,Shell停止响应输入时,可用中断按键强制退出。 Shell提供了一些内部命令,被构建在主机Shell内部,不需要在目标上调用的函数,而与目标机上一些函数功能类似,通过使用主机命令直接在主机上执行,以减少对目标机性能的影响。 调用说明sp()发起一个具有默认值的任务sps()发起一个任务,但使它处于挂起状态tr()继续一个挂起的任务ts()挂起一个任务td()删除一个任务i ()显示任务TCB概要信息ti()显示任务的详细TCB信息w()显示关于每个任务的特定信息的概要tt()显示任务的堆栈记

25、录checkStack() 查看各个任务的堆栈使用概要taskIdFigure()给出一个任务的名字,报告该任务的IDdevs显示设备列表lkup “substr”从符号表中查找符号d adr,nunits,width显示内存,可以指定地址、数目和宽度l adr, n反汇编和显示指定数目的指令printError描述最新的错误状态值version显示vxworks的版本信息cd改变主机工作目录ls列出主机工作目录下的文件pwd显示当前的主机工作目录help显示主机命令帮助列表h显示主机命令历史记录ShellHistory设置或者显示Shell历史记录信息ShellPromptSet改变C解释程

26、序Shell提示printLogo显示Shell徽标ld装载一个目标模块到目标机存储区,并动态链接它进入运行状态unld从目标机存储区删除一个动态链接的目标模块,并释放它占有的存储区m adr,width修改大小为width的存储区,起始于adrmRegs为特定的任务修改寄存器值s单步执行一个程序到下一条指令so单步执行,但跨过子程序c从一个断点继续b在一个特定的任务中或者在所有任务中,设置或者显示断点bd删除一个断点bdall删除所有的断点reboot复位目标服务器并重新绑定Shellquit or exit推出Shell- x = (8 * 6) / 4x = 0 x1bbc20: val

27、ue = 12 = 0 xc- Name = Nelsonnew symbol Name added to symbol table.Name = 0 x1bbc00: value = 1817616 = 0 x1bbc10 = Name + 0 x10- printf (Hello %s, number is %d.n, Name, 0 x20)Hello Nelson, number is 32.value = 28 = 0 x1c- &xvalue = 1817632 = 0 x1bbc20 = x当Shell命令的名字与目标列程有相同的名字时,又需要调用此列程,使用单字符前缀来

28、标识目标机例程。- i NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY- - - - - - - - -tExcTask excTask 3efc80 0 PEND 1805b0 3efb60 0 0tLogTask logTask 3ed298 0 PEND 1805b0 3ed188 0 0tWdbTask wdbTask 360198 3 READY 177908 360068 0 0tNetTask netTask 3af248 50 READY 17775c 3af018 0 0value = 0 = 0 x0- ii = 0 x1bbbd0: value = 10 = 0 xa Tornado除了提供CrossWind、WindSh等基本调试工具外,还提供一些如Browser、VxSim和WindView等辅助调试工具。 Browser 可以方便的监视目标机状态。使用浏览器可以检查下列内容:详细的任务信息信号量消息队列存储器分区看门狗定时器目标机上的堆栈使用情况任务使用目标机的CPU目标模块结构和符号中断向量从Tornado Launch工具条单击 按钮,启动浏览器。Browser

温馨提示

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

评论

0/150

提交评论