Tornado training:1_Get Started

1.1Tornado组件
开始之前先考虑一下下面5个问题,后面会给出这些问题的答案。
什么是Tornado?
什么是VxWorks?
怎样使用Tornado和VxWorks?
Tornado都提供了哪些方便?
这些文件存放在什么地方?

什么是Tornado?
┌──────────┐                            ┌──────────┐
│Real-Time System  │                            │Development Tools│
└──────────┘                            └──────────┘
                  │                          Networking                      │
                  ┴──────────┬───────────┴
Tornado是一个开发实时嵌入式应用程序的集成开发环境。
它主要包括下列组件:
·VxWorks实时操作系统,用来嵌入式或运行时间要求严格的应用程序。
·测试、定时和调试用的开发工具。
·网络组件允许进行下列操作
    ·处理器内部通信
    ·远程文件访问
    ·远程命令/函数执行
    ·通过网络启动


开发工具
Tornado开发工具包括:
·Launch               - 加载Tornado工具
·WindSh              - 与目标机(Target)进行交互
·CrossWind        - 源码级调试器
·Browser             - 显示系统信息
·Project Facility   - 配置应用程序或者VxWorks
·WindView           - 多任务应用程序分析器
·Simulator           - 在主机操作系统上运行的VxWorks目标机仿真程序
这些工具都可以通过Tcl定制,包括:
·增加新的功能
·定制用户接口
·利用一些常驻目标机工具
几乎所有的Wind River工具都可以通过Tool Command Language(Tcl)定制,它是一个类似于Bourne Shell或C的脚本语言。
更多关于Tcl的信息参见《Tcl and the Tk TollKit》,John Ousterhout著。
Tcl允许:
·增加用户定义命令
·定制Tornado GUI,增加新菜单项、按钮等等。
Tornado可以运行在Solaris 2.51,2.6和2.7上;Windows 95,98和NT上;以及HP-UX 10主机上。
UNIX和Windows下的一些GUI定制可能存在不一致。
Tornado绑定了对GNU C++的支持。

实时系统
                                            ┌────────┐              
┌───────┐                 │ Memory  Mgmt│                  ┌──────┐
│  File System │                 └────────┘                  │ I/O System│
└───────┘                              Kernel                        └──────┘
                                ┌───────┐         ┌────────┐
                                │Device Driver │        │ Network Stack │
                                └───────┘         └────────┘
实时操作系统中运行的应用程序可以有严格的响应时间。(即可以制定多少时间内必须做出响应或报错)
实时操作系统具有多任务内核,完成以下功能:
·实时任务调度(基于优先级的抢占式调度)
·任务间的通信
·互斥
其他标准外设都是以库的形式提供出来,不作为内核部分。
实时操作系统与非实时系统的区别:
·基于优先级的抢占式调度
·响应速度更快
·内核更小并且可以配置(微内核架构)

性能优势
所有任务运行于共享地址空间内(windows下进程运行在虚拟地址空间内)
         RAM                     fooLib                                          tTaskA
                                    int fooVal;                     ┌────fooSet(4)
         text                     void fooSet(int x){  <─┤            tTaskB
         data  <───── fooVal = x;                   └────fooSet(99)
         bss                   }
所有任务运行于特权模式。
·在Unix/NT系统中,所有进程独立存储各自的data段和bss段,共享text段,即所有的进程都调用同一地址下的text段执行相同的代码。
·在VxWorks系统中,当任务访问到某个模块的text、data或bss段时,所有任务都是访问的相同物理地址。
·所有任务都运行于共享地址空间内
   +使得任务间的通信更加简单快捷
   +使得上下文的切换更加迅速(不需要保存和回复虚拟地址上下文关系)
   +一个不正常的任务可能导致整个系统崩溃
·所有任务都运行于特权模式
   +没有系统调用的开销,所有VxWorks系统程序的调用都像普通程序调用一样。

交叉开发
            Host                                                        Target
┌───────┐               RS-232               ┌──────┐
│  Tornado      │ ────────────    │  VxWorks  │
└───────┴─┐                             ┌─┴──────┘
   ethernet ────┴──────────┴─────────
           上图为典型的Tornado开发环境配置
·在host机上通过一些工具完成编码和编译
   +编辑
   +通过界面或者命令行完成编译/装配/链接
   +源代码管理(ClearCase, PVCS, Visual Source Safe,...)
·通过host上的Tornado工具完成target上的测试/调试工作
   +下载目标模块
   +执行
   +源码级调试
   +性能监测
·典型的开发周期循环包括在主机上反复的编码和编译,下载到目标机,并在目标机上测试代码的运行,然后再回到主机对代码做进一步的修改。

Tornado发布
·所支持板卡的Boot Rom
   +与板卡有关
   +通过网络从主机上下载vxworks
   +Turnkey for standard board(不能理解-_-)
·产品的CD-ROM包括
   +运行在主机上的Tornado工具
   +运行于目标机的VxWorks操作系统
   +风河公司支持的bsp
·编译器等
·关于VxWorks和Tornado的帮助手册
·一些SPARC板采用OpenBoot方式下载bootRom程序,然后启动VxWorks
·Tornado的安装目录中自带包括编译器、连接器在内的GNU工具包。Tornado2.0板与Tornado1.0.1板使用同样的C编译器GCC2.7.2;仿真器(simulator)下的C++代码的编译器则基于EGCS1.0.2或EGCS1.0.3。
·更详细的安装Tornado方法请参考Wind River Products Installation Guide
·www.wrs.com/corporate/support/prodbullet/T2.0上有一些相关信息,比如对于已知问题的解释、产品公告等。

可移植性
                              
┌───────┐
                               │       HSP        │
                               └───────┘
                               ┌───────┐ ┌───┐
                               │   Generic      │ │         │
                               │   VxWorks    │ │         │
                               └───────┘ │         │
                               ┌───────┐ │ WDB│
                               │      Arch        │ │Agent│
                               └───────┘ │         │
                               ┌───────┐ │         │
                               │      BSP         │ │         │
                               └───────┘ └───┘ 
·VxWorks中大部分是与板卡无关的,VxWorks与板卡有关的部分有:
   +Arch层(例如:MC680X0、PPC、i960、x86、ARM)
   +与板卡有关部分(例如:硬件初始化、VME总线接口、定时功能等)
   +与主机有关的部分(例如:交叉编译器、tornado工具和target server)
·因为WDB调试器独立于VxWorks操作系统,所以能够直接操作目标机并在远端执行源码级系统调试。
·BSP是Board Support Package的缩写,是VxWorks中与板卡密切相关的部分。HSP是Host Support Package的缩写,是Tornado中与主机密切相关的部分。

Tornado目录树
                                            
┌host                Tornado一些主机上的工具
                                             ├SETUP             安装程序
           /usr/wind ──────┼share              shared XDR代码
                                             ├target             VxWorks操作系统以及板级支持包
                                             └docs               html在线帮助文档
·shared XDR代码用于在主机工具和目标机之间传输数据,eXternal Data Representation是RPC(Remote Procedure Call)应用程序在网络上发送数据的一种标准格式。
·Tornado目录树可以被安装到任意目录中。约定安装目录/usr/wind/指wind目录,对于Windows主机来说wind目录可能位于C:/Tornado目录下。

Host目录树
                                          
┌include      Tornado工具的头文件
                                           ├src             VxColor demo源文件
                                           ├host-os     主机相关工具
                                           │     ├bin    主机上Tornado和GNU的执行程序
                       host ────┤     └lib     Tornado工具运行库
                                           ├resource   GUI,Tcl以及帮助支持文件
                                           └tcl              标准Tcl发布
·host-os目录命名规则为硬件-操作系统,正确命名如下:
    x86-win32                  所有的Windows主机
    sun4-solaris             Solaris主机
    parisc-hpux10          HP-UX主机

Target目录树
                                          ┌config                用来配置和编译VxWorks的文件
                                          │     ├all              通用配置文件
                                          │     ├bspName   板级支持包
                                          │     └comps        VxWorks组件描述文件以及配置
                    target────┼proj                    已编译的VxWorks自启动工程
                                          ├h                        VxWorks头文件
                                          ├lib                      VxWorks提供的库文件
                                          ├src                     部分VxWorks源代码
                                          └unsupported     工具、驱动
·启动程序以及VxWorks启动代码位于wind/target/config/all目录中。
·BSP源代码位于wind/target/config/bspName/sysLib.c中。
   +该文件可能包含BSP目录中的其他文件,以及wind/target/src/drv下的通用驱动文件(例如:位于wind/target/src/drv/timer目录下的定时程序)
   +标准发布版中不包括网络和SCSI驱动源码
·VxWorks库文件通常是由一个目标模块组成,有时也会由多个目标模块以及与之相关的头文件组成,例如:
                     Library                    Routine                     Include file(s)
                    -----------                  ------------                  -------------------
                     taskLib                    taskSpawn              taskLib.h
                     memPartLib             malloc                     stdlib.h
                     semLib                    semTake                 semLib.h
                     sysLib                     sysHwInit                 sysLib.h

 1.2帮助
帮助手册
在线帮助
用户群
技术支持
WindSurf(风河公司的一个网站,类似于论坛,上面有各种常见问题以及解决方法,可以发帖提问,有高人指点)

概述
Tornado提供各种类型的帮助(括号中为手册英文全称)
·关于主机上的工具
   +Tornado用户手册(Tornado User's Guide)
   +GNU工具用户手册(GNU ToolKit User's Guide)
   +WindView用户手册(WindView User's Guide)
·关于VxWorks操作系统
   +VxWorks程序员指南(VxWorks Programmer's Guide)
   +VxWorks网络程序员指南(VxWorks Network Programmer's Guide)
   +VxWorks参考手册(VxWorks Reference Manual)
   +BSP参考手册(HTML)(BSP Reference)
·Tornado在线帮助
·技术支持(如果购买了的话)
·其他手册包括
   +Wind River Products Installation Guide.
   +Customer Support User’s Guide
   +Tornado Release Notes.
   +Tornado API Guide.
   +Debugging with GDB
   +GNU Make
·Tornado在线帮助
   +所有Tornado和VxWorks帮助手册都提供HTML版,位于wind/docs目录下。
   +在Windows和UNIX下可以通过Help按钮打开帮助
   +在Windows主机上通过F1按钮还能打开一些与上下文有关的帮助。

其他资源
·包含VxWorks和嵌入式编程主题的新闻组:comp.os.vxworks
·培训课程
   +Tornado设备驱动编写(Tornado Device Driver Workshop)
   +Tornado BSP培训(Tornado BSP Training Workshop)
   +Tornado工具培训(Tornado Tools Training Workshop)
·提供下列问题的技术支持
   +安装时问题以及安装媒体出错
   +WRS软件、文档和服务问题
   +帮助理解WRS产品功能
·WindSurf自助网页提供:搜索引擎、FAQ、补丁、文档更新以及已知问题清单等。
·其他需要注意的新闻组包括
   +comp.os.realtime-实时主题
   +comp.arch.bus.vmebus
   +comp.arch.embedded
·可以购买技术支持
   +通过Tornado中的Support菜单填写Tornado Support Request表单,并发送邮件到support@wrs.com
   +在美国,太平洋时区早上5点到下午5点之间拨打1-800-USA-4WRS。其他地方请联系当地的WRS办事处。
·可以通过Wind River Systems主页http://www.wrs.com访问WindSurf网站,点击Customer Support页面。登录WindSurf需要注册用户ID和密码。

1.3 硬件/软件配置
配置目标机硬件
配置主机软件

设置交叉开发环境
执行交叉开发前必须先完成以下操作:
·安装目标机硬件
·定义主机环境变量,配置网络软件
·启动Tornado registry: wtxregd。
   +wtxregd管理target servers列表。各种工具通过名字在registry中查找target servers
·指定目标机启动参数并启动目标机
·配置并加载target server
   +每个target server管理主机工具与特定目标机之间的交互
·典型的配置为每个工程有一个registry程序。
·Tornado的架构允许registry、target servers以及Tornado工具运行于网络上的不同主机上。

目标机硬件配置
·用vxworks的ROM代替制造商的ROM
·关于硬件设置和跳线情况请参考您的BSP的在线帮助文档
·另外
    ·静电和过热将损坏板卡
    ·串口、网口、VME等接口必须插紧
·VME特性
    ·系统主控板必须位于0插槽中(通常是最左边的插槽,或者插槽颜色与众不同)
    ·两个板卡之间存在空插槽的话背板上需要增加跳线
    ·如果两块板卡之间存在空插槽,但背板跳线不对,会导致VME总线中断和仲裁异常
    ·有些板卡通过跳线进行总线仲裁,此时最左边的插槽跳线必须与众不同

UNIX主机软件配置
·在.cshrc(或.profile)文件中设置Tornado的环境变量,可以参考torvars.csh(或torvars.sh)脚本文件来设置这些变量
·修改registry host的启动方式为开机时启动wtxregd
·配置网络
    ·给目标机配置IP地址
    ·告诉目标机主机的名字(可选)
    ·如果通过RSH启动,在~/.rhosts文件中列出目标机名字
    ·需要的话修改路由表
·需要设置到include中去的环境变量
    ·WIND_BASE                               Tornado安装目录
    ·WIND_REGISTRY                        registry程序运行的主机
    ·WIND_HOST_TYPE                     sun4-solaris2或者parisc-hpux10
    ·PATH                                          $WIND_BASE/HOST/$WIND_HOST_TYPE/BIN:...
    ·LD_LIBRARY_PATH                     Solaris共享库路径
    ·SHLIB_PATH                               HP-UX共享库路径
    Tornado User's Guide的Getting Started一章讨论了怎样在主机上配置环境变量
·wtxregd是Wind Registry程序,用来管理有效的target server,必须运行在WIND_REGISTRY环境变量指定的主机上,默认是本机。
·向网络管理员获取vxworks目标机的ip和主机名

PC:主机软件配置
·在windows下使用Tornado IDE不需要设置环境变量,需要通过命令行使用各种工具时先运行torVars.bat
·安装Tornado时定义Registry的启动方式
    ·win95,98或NT4.0下Registry安装在Startup文件夹下
    ·Windows NT下Registry作为一个服务安装
    也可以手动运行registry
·使用Tornado时,通过Tools=>Options...=>Tornado Registry页面指定registry所在的主机。
·参考Windows95/98/NT文档安装和配置TCP/IP
·torVars.bat脚本位于host/x86-win32/bin,设置一些在命令行下运行工具时所需要的环境变量,例如:
    set WIND_HOST_TYPE=x86-win32
    set WIND_BASE=D:/TTwo
    set PATH=%WIND_BASE%/HOST/%WIND_HOST_TYPE%/bin;%PATH%
   这种配置下Tornado安装在D:/TTwo目录。为了避免每个命令行都要调用该文件,在win95下可以将环境变量文件拷贝到autoexec.bat中,在Windows NT下使用系统控制面板
·与IP地址有关的hosts文件:
    ·Windows 95 - c:/windows/hosts
    ·Windows NT - c:/winnt/system32/drivers/etc/hosts

1.4 启动
设置启动参数
重启
Alternative booting schemes

Boot ROM
·上电时自动运行目标机的boot ROM代码
·Boot ROM并不包括用户程序运行的Vxworks操作系统
·vxworks系统映像在主机上是以目标模块形式存放的
·Boot ROM代码
    ·允许配置boot参数
    ·通过网络下载vxoworks到目标机内存中
    ·开始执行vxworks

启动配置
·通过串口设置启动参数
·通过网络启动vxworks(速度更快)
·关键启动参数
    ·Boot device(启动设备)                                           使用的网络接口
    ·Host internet address(主机IP地址)                       从哪台主机上启动vxworks
    ·Path of Vxworks image(vxworks映像路径)            通过网络传输的文件名和路径
    ·User name(用户名)                                                访问主机文件时用到的用户名
    ·Target internet address(目标机IP地址)                  定义目标机IP地址
    ·CPU number(CPU号)                                            机箱中每块板卡都有不同的编号,主控板CPU号为0

目标机上电
·上电时通过串口访问boot ROM,UNIX工作站下链接串口时使用tip(SunOS),cu或dermit。在超级终端上查看输入输出。
·使用h查看启动命令列表提示
[VxWorks Boot]: h
?                                          -Print this list(打印本列表)
@                                         -boot(load and go)(下载并启动vxworks)
p                                          -print boot params(打印启动参数)
c                                          -change boot params(修改启动参数)
l                                           -load boot file(下载启动文件)
g adrs                                  -go to adrs(跳到地址)
d adrs [,n]                           -display memory(打印内存)
...
n netif                                 -print network interface device address(打印网络设备地址)
$dev (0, procnum) host:/file h=# e=# b=# g=# u=usr[pw=passwd] f=#
                                                                          tn=targetname s=script o=other
Boot选项
    0x02 - 加载系统符号表
    0x04 - 不自动启动
    0x08 - 快速自动启动(不倒计时)
    0x20 - 取消登陆vxworks的密码
    0x40 - 使用dhcp获取启动参数
    0x80 - 使用tftp获取启动映像
    0x100 - 使用代理arp
有效启动设备: ei0 sm

启动参数
[VxWorks Boot]: p
boot device                                :    ei
unit number                               :    0
processor number                      :    0
host  name                                :    wolverine
file name                                    :    c:/tornado2/target/config/mv162/vxWorks
inet on ethernet(e)                    :    147.11.12.204:ffffff00
host inet(h)                                :    147.11.12.165
user(u)                                      :    todd
ftp password(pw)                      :    covert
flags(f)                                       :    0
target name(tn)                         :    t12-204
·在输入p时未设置的启动参数不会显示
    gateway inet(g)
    startup script(s)
    other(o)
·根据网卡驱动程序决定boot device,例如:
    制造商             boot device代码
    3Com             elPci
    Lance             Ln
    Excelan          ex
    Digital            dc
    Intel               ei
·windows用户习惯用'/'区分符代替'/',Unix用户习惯使用'/'
·下载vxWorks映像需要文件访问权限,包括
    ·用户名
    ·UNIX主机使用rsh协议时需要~/.rhosts
    ·通过FTP启动时需要用户密码

修改启动参数
·在启动时输入c可以修改启动参数
·修改后的数据将保存在目标板的NVRAM中
·还可以直接将启动参数写成一行
    $ei(0,0)wolverine:c:/tornado2/target/config/mv162/vxWorks/ h=147.11.12.165 e=147.11.12.204 u=todd pw=covert tn=t12-204
    将该字符串保存到主机上可以剪切粘贴的文件中
·也可以通过默认参数生成新的boot ROM(参考 重新配置 一章)

启动
[VxWorks boot]:@

boot device                                :    ei
unit number                               :    0
processor number                      :    0
host  name                                :    wolverine
file name                                    :    c:/tornado2/target/config/mv162/vxWorks
inet on ethernet(e)                    :    147.11.12.204:ffffff00
host inet(h)                                :    147.11.12.165
user(u)                                      :    todd
ftp password(pw)                      :    covert
flags(f)                                       :    0
target name(tn)                         :    t12-204

Attached TCP/IP interface to ei0.
Attaching network interface lo0... done.
Loading... 424504 + 29664 + 29404
Starting at 0x20000...

Attached TCP/IP interface to ei unit 0
Attaching network interface lo0... done.
NFS client support not included.

                                    VxWorks
Copyright  1984-1998       Wind River Systems, Inc.

                      CPU:  Motorola MVME162
               VxWorks:  5.4
          BSP version:  1.2/0
       Creation date:  Apr 17 1999
                     WDB:  Ready.
·Loading...后面的数字表示VxWorks映像的text段、data段和bss(未初始化数据)段大小
·问题提示-如果出现下列情况:
    ·第一个Attaching network interface没有显示done,检查是否使用了正确的网络接口,VME系统中通常有多个网络接口,检查系统控制器配置是否正确,网卡跳线是否设置好。
    ·Loading...后没有出现VxWorks映像文件大小,请检查网络接口是否正确,网线接触是否良好。
    ·Starting at后没有响应,请谏撤VxWorks映像是否有效。
    ·第二个Attaching network interface没有显示done,请检测VxWorks映像中网络驱动的配置。
·启动完毕后,运行target server,就可以开始使用Tornado提供的各种工具了。

重启
·在WindSh下输入reboot()命令
·在target控制台或者UNIX WindSh下按CTRL+X键
·按板卡上的abort按钮
·按机箱上的reset按钮
·上电启动或其他冷启动时,为了避免读取未初始化的内存时出现奇偶校验错误,RAM被清零。热启动会跳过该步。
    ·输入reboot()或者按下CTRL+X后进行热启动
    ·在VME环境下,对总线上的所有CPU来说,abort按钮引起热启动,reset按钮引起冷启动。

可选启动方式
·可以从VME总线通过共享内存方式启动vxWorks,参见附录
·可以从本地磁盘启动vxWorks
·可以通过FTP服务器从其他VxWorks目标机上启动VxWorks
·可以采用SLIP、CSLIP、PPP或TSFS协议通过串口启动VxWorks,速度远比从网络启动VxWorks要慢
·可以通过DHCP或BOOTP协议提供启动参数,然后通过TFTP下载启动文件并启动VxWorks
·可以将VxWorks写到ROM中,将在 重新配置 章节讲到
·关于VxWorks的各种启动方式参见VxWorks网络程序员指南和Tornado用户指南
·CSLIP使用压缩的TCP/IP头部,因此速度比SLIP要快
·启动参数flag的0x40位是用来指从DHCP获取启动参数。0x80位是指从TFTP启动。flag为0xC0时,两者都包含。此时host需要设置DHCP server;详见vxworks网络程序员指南的网络章节。
·VxWorks包括DHCP server组件,也可以当作BOOTP server。
·一些启动方式可能需要重新生成boot ROM。

1.5 Tornado上手
使用Tornado开发环境

使用工具
·使用Tornado 控制面板
    ·创建和管理target server
    ·启动Tornado工具
    ·访问在线帮助
    ·链接到技术支持
    ·浏览相关的网站
·UNIX主机IDE为Launcher,启动方式为:%launch &
·对于PC主机,tornado集成开发环境中包括了控制面板,通过Start按钮启动集成开发环境
·将在后续章节介绍其他工具
·可以通过添加Tcl命令到.wind目录下适当的文件来定制Tornado开发环境,参考Tornado用户指南。

UNIX launcher
·Target面板列出了当前registry下的所有target server
·Information面板显示Target面板中选中的target server的信息
·加载一个工具的方法:点击Target面板中的target server名字,在点击要加载的工具图标即可。安装软件时会根据配置自动添加工具按钮到面板上。
·通过Target菜单来管理target server
    ·打开或者加载新的target server
    ·保存target server配置信息
    ·重启或杀掉target server
·通过Support菜单可以通过邮件联系技术支持
·通过Admin菜单可以安装WRS产品,登陆WRS ftp或编辑用户文件等
·通过Info菜单浏览相关网站
·通过Help菜单访问在线文档

PC Tornado环境
·通过Tools菜单打开或创建新的target server,还可以运行Tornado的工具
·通过Project菜单管理和下载工程文件
·通过Build菜单编译工程,查看关联关系
·通过File和Edit菜单查看和编辑源文件
·通过Debug菜单运行源码级调试工具
·通过Help菜单访问帮助文件
·通过Window菜单管理各个窗口
·一旦配置好target server也可以通过Launch工具条运行Tornado的工具

Target Server(目标机代理)
·启动目标机后必须启动一个target server,这样Tornado的工具才能访问到目标机
·Target server提供基于主机的目标机资源管理,以便于Tornado工具访问目标机,功能如下:
    ·与目标机上的debug引擎进行通讯
    ·动态模块下载和卸载
    ·常驻主机的目标机符号表
    ·在目标机上为主机上的工具分配内存
    ·缓存目标机代码text段
    ·支持虚拟IO
·Target server增强了主机和目标机之间的灵活性
    ·使得主机工具对目标机的影响最小
    ·主机工具与主机和目标机之间的通信方式互相独立
·所有的Tornado工具均使用WindRiver Tool Exchange协议(缩写为WTX)与target server通信。WTX协议具体内容参见Tornado API指南
·target server通过下列方式响应工具的WTX请求:
    ·操作缓存中的信息
    ·发送请求到目标机上的WDB agent中

Tornado 架构
                                 HOST                         
┆                 Target
                       ┌──────>wtxregd         ┆
                        v                          ^              ┆
                    Tool<────┐        │              ┆                VxWorks
                    Tool<────┼> tgtsvr <────────>WDB Agent
                    Tool<────┘                        ┆
·在启动target server和工具之前要先启动wtxregd
·Tornado工具、registry和target server可以运行在不同主机上
·Tornado registry程序必须运行在指定的主机上
    ·UNIX下为WIND_REGISTRY环境变量所指定的主机
    ·windows下为Tools=>Options...=>Tornado Registry页面中指定的主机
·tornado工具与目标机通过target server(tgtsvr)进行交互,target server提供:
    ·网络、串口、NetROM或者用户自定义连接上的通信
    ·常驻主机的目标机符号表
    ·动态模块下载和卸载
    ·缓存目标机RAM中程序的text段
    ·在target上创建虚拟IO路径
·Wind Registry程序wtxregd负责管理tornado工具与target server之间连接所需的各种信息。tornado工具首先与registry进行交互,获取target server的相关信息。

UNIX下创建target server
·点击Target=>Create菜单,激活target server configuration窗口
·使用target server configuration窗口加载和保存target server配置信息
·创建一个target server配置:
    ·在Target Name位置输入目标机名称
    ·选择需要的选项
    ·加载target server时会自动保存配置信息
·加载一个已保存的配置时,从Saved Configurations列表中选中该配置并点击Launch

PC机:管理Target Server
·点击IDE中Tools菜单下的Target Server/Configure按钮激活Target Server配置窗口
·创建一个target server配置:
    ·在Target Name/IP Address处填写目标机名称
    ·通过Change Property工具条选择需要的选项
    ·指定Log File,超时时间和重试次数(可选)
·点击Launch按钮加载配置后,该配置会自动保存。如果想不加载直接保存,点击OK。
·在Add description to menu前打钩,会把该target server添加到Tools->Target server菜单下,直接点击该菜单下的条目将自动加载对应的target server

连接目标机
·一旦target server成功的连接到目标机后
    ·(UNIX)出现连接信息(包括各种详细配置信息)的同时会出现一个xterm
    ·(Windows)出现一个target server窗口,显示连接状态,并且在任务栏会有个红色的小图标
·现在Tornado工具就可以与目标机进行交互了

1.6 WDB代理
配置WDB代理

配置WDB代理
·WDB代理位于target server和Tornado工具之间,可以完成以下功能
    ·读取或修改内存
    ·设置或清除断点
    ·创建、启动、停止或删除任务
    ·调用函数
    ·收集系统目标信息
·WDB代理配置
    ·指定调试模式为任务模式还是系统模式或两者兼有
    ·选择与target server一致的通讯方式
    ·设置目标机保留内存总数,供代理使用
·target server与WDB代理之间的通信遵守WindDebug(WDB)协议
·代理使用目标机内存来满足上位机工具的请求,例如:下载目标代码,创建变量,生成任务或运行命令
·由于代理使用单独的内存区域,使得Tornado工具对目标机的影响降到最小
·默认的调试模式是任务调试和系统调试兼有
·为了获取目标机上的VxWorks系统模块信息,工具发送Gohper脚本后WDB代理解释该脚本,搜集并返回信息给请求者。该配置使得可以在使用最小目标机资源的情况下检测任何模块。Gopher语言是WTX协议的一部分,具体参见文档《Tornado API指南》。

主机-目标机交互
                                  ┏━━━━━┓                          ┌────────┐   
                                  ┃      Tool   ┃                         │  ┏━━━━━┓  │
                                  ┗━━┳━━┛                          │  ┃VxWorks ┃  │
                                           ┃                                   │  ┗━━━━━┛  │
                                  ┏━━┻━━┓                          │                         │
                                  ┃  tgtsvr    ┃                          │   ┏━━━━━┓ │
                                  ┣━━━━━┫                          │  ┃WDB Agent┃│
                                  ┃back end ┃                          │   ┗━━━━━┛│
                                  ┗━━┳━━┛                          └────┰───┘
                                           ┗━━━━━━━━━━━━━━━━┛
·WDB调试代理运行在目标机上,与target server进行交互,执行命令并返回结果
·所有的工具均连接到主机上的target server,target server负责处理与WDB agent之间的通信细节,Tornado支持TCP/IP,串口和NetROM等连接方式。
·通常WDB代理作为一个任务运行在目标机上,因此获得最佳性能。但这种情况下只能进行任务级调试。也叫做task或internal模式。
·由于WDB代理不依赖于VxWorks,所以也能够执行系统级调试--例如:调试中断服务程序或内核运行起来之前的代码。将WDB代理与VxWorks分开运行才能进行系统调试。也叫做external或system模式。

代理配置
·默认的vxworks映像中定义了WDB代理,并开启了WDB代理支持。所有目标机代理相关的模块均位于/development tool components/WDB agent components/.下
·根据调试策略设置WDB模式组件(两个至少选一个)
    ·.../select WDB mode/WDB system debugging
    ·.../select WDB mode/WDB task debugging
·设置WDB通信方式模块,例如以下几个模块
    ·.../select WDB connection/WDB END driver connection
    ·.../select WDB connection/WDB serial connection
·通过设置组件参数配置代理的串口通信
·组件和参数将在Project章节中详细讨论
·几乎所有目标机的默认配置为:包含系统级和任务级两种调试方式,采用END方式进行通信。
·在系统开始多任务切换之前进行调试,需要设置为单一系统级调试模式,具体参见《Tornado 用户指南》。
·要调试中断服务程序,则必须选择external agent模式
·既选择任务模式又选择系统模式,vxworks将创建external和task两种WDB代理。当进入或退出系统调试时,代理会自动切换。
·通过串口线进行调试时,请使用最高可靠性的数据传输速率。
·具体参见《Tornado 用户指南》的Getting Started章节。

小结1
·Tornado的三部分
    ·VxWorks实时操作系统
    ·网络
    ·开发工具
·BSP(板级支持包)
    ·位于wind/target/config/bspName目录下
    ·包括板卡特定的文件
·主机上的可执行工具位于wind/host/host-os/bin/目录下
·帮助:
    ·在线文档
    ·客户技术支持和WindSurf(windriver论坛,有FAQ)

小结2
·BSP文档中描述了目标机硬件配置
·主机环境:
    ·UNIX下设置环境变量,以便于命令行调用
    ·配置网络:IP地址、主机名
·必须的启动参数:
    ·启动设备
    ·vxworks路径名
    ·主机ip地址
    ·目标机ip地址
    ·用户名
    ·处理器号

小结3
·通过界面进行Tornado开发
    ·创建、重启和杀死target server
    ·启动Tornado工具,例如WindSh、Browser等..
·激活每一个目标机的target server
·target server负责管理
    ·主机工具使用的目标机资源
    ·目标机信息
    ·与目标机进行通信
    ·工具与目标机之间的交互

小结4
·配置WDB代理
    ·调试模式
    ·通信方式

转载请注明出处:blog.csdn.net/helenhf

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值