文档库 最新最全的文档下载
当前位置:文档库 › Tornado使用指南

Tornado使用指南

Tornado使用指南
Tornado使用指南

目录

1.概述 (2)

1.1 T ORNADO 组件 (2)

1.1.1 开发工具 (2)

1.1.2 实时系统 (3)

1.1.3 Tornado 文件目录 ...................................................................................................... 41.2 硬件/软件配置 .. (7)

1.3 booting介绍 (7)

1.4 Tornado开始过程 (12)

1.5 WDB 代理 (14)

2Projects (15)

2.1 bootable projects (15)

2.2 集成模拟器vxsim (23)

2.3 Downloadable projects (21)

2.4 build说明 (24)

3WindSh 和Browser (25)

3.1WindSh (25)

3.2 Browser (28)

4 CrossWind (29)

4.1Debugging简介…………………………………………………………………………29.

4.2 任务级Debugging……………………………………………………………………..29.

4.3 系统级Debugging (30)

1. 概述

VxWorks 是美国Wind River System 公司(以下简称风河公司,即WRS 公司)推出的一个实时操作系统。WRS 公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。

VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。

1984年WRS 公司推出它的第一个版本--VxWorks 1.0.1,在1999年推出了它的最新版本VxWorks 5.4。从1995年以后,WRS 公司推出了一套实时操作系统开发环境-- Tornado。

1.1Tornado

2.0 组件

Tornado是嵌入式实时领域里最新一代的开发调试环境。。Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。Tornado包含三个高度集成的部分:

. 运行在宿主机和目标机上的强有力的交叉开发工具和实用程序;

. 运行在目标机上的高性能、可裁剪的实时操作系统VxWorks;

. 连接宿主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM仿真器等。

对于不同的目标机,Tornado给开发者提供一个一致的图形接口和人机界面。当使用Tornado 的开发人员转向新的目标机时,不必再花费时间学习或适应新的工具;对深嵌入式应用开发者来说更重要的是,Tornado所有的工具都是驻留在开发平台上的。在嵌入式系统工具发展历史上,Tornado是第一个实现了当目标机资源有限时开发工具仍可使用而且功能齐全的开发环境。另外,所有工具都通过一个中央服务器(Target Server)处理与目标机的通讯。所以无论连结方式是Ethernet,还是串口线、ICE仿真器、ROM仿真器或客户设计的调试通道,所有工具均可使用。

1.1.1 实时系统

vxworks的组成如下图所示:

特点:

●实时,能满足严格的时间要求;

●多任务内核:

实时调度(基于优先级或抢占式的);

任务间通讯;

互斥;

●其他标准设备作为库的形式支持内核;

●系统可重新配置,根据需要裁减组件,空间小;

●所有任务驻留在同一地址空间(任务间通讯快而容易,上下文切换快,但一个任

务崩溃会影响别的任务);

●所有任务运行在超级(supervisor)模式(没有哪个系统调用具有压倒一切的优势,

所有的设备都作为普通子程序调用);

●在主机上编写代码和编译;在目标机上进行调试和执行;

1.1.2 tornado 开发工具

●CrossWind:

源程序(C 或C++ 以及汇编程序等)的调试工具。CrossWind结合了图形方式和命令行方式的最大特点。最普通的调试方式,例如断点设置和程序执行控制,

可以通过便捷的点击方式实现。同样,程序显示框和数据侦察窗也提供了一个直接

的可视窗口来观察应用程序中最关键的一部分。如果需要更复杂的调试,CrossWind

也提供了命令行的方式来调用它提供的各种命令。

●Browser:

可对系统对象(任务、消息队列、信号量等)和存储器使用情况进行观察的浏

览器。可以方便地监视用户的目标系统。Browser汇总了应用进程,内存消耗和一个目标内存的映射。通过Browser,用户可以观察信号量、消息队列、内存分配、看门狗计时器、堆栈使用情况、目标CPU使用率、对象模块结构和符号表以及每个任务的详细信息。

●WindSh:

提供从宿主机到目标机之间的一个命令shell。WindSh 是一种非常受欢迎的开发工具,它具有很强的交互性和可操作性,允许用户调用内存中的应用程序模块或是VxWorks模块中的任何例程。它不但具有一般命令语言的功能,而且也具有C 语言的设计特点,能够解释几乎任何C 语言表达式,执行大多数C 语言算子,解析符号表数据。对初用者来说,WindSh学习起来比较简单,使用比较方便,对熟练用户而言,则有较为高级的手段可以应用。

●WindView:

非常出色的系统可视诊断和分析工具。可非常容易地观察各任务,中断程序之间的相互作用。它是在嵌入式系统应用开发期间的可视工具。

●VxSim:

快速原型仿真器。可在硬件设备未完成之前,在宿主机上对应用程序进行仿真分析。

●Project Facility:

工程管理工具,配制应用程序或vxworks本身。

注:大部分的工具都能通过使用Tcl进行定制,Tcl(Tool Command Language),一种类似于Bourne Shell和C语言的脚本语言。

1.1.3 Tornado文件目录

vxworks 的大部分是与机器无关的,相关的部分如下(需要有相应的安装文件):

1). 体系结构不同(如MC680x0, PPC, i960, x86, ARM),所以有相应的Tornado for PPC,

Tornado for x86, etc

2). BSP不同(表现在硬件初始化,时钟/定时器,VMEbus接口等),所以在Tornado for

x86里有386,486,pentium等各种BSP;

3)编译器不同(可选),target server不同。

注:BSP是Board Support Package的缩写,该术语通常用于嵌入式领域,主要指在开发嵌入式应用时系统开发商提供的各种驱动支持库。不过该术语即使在嵌入式领域人们对它的理解也有一些不同,有的认为它就是驱动程序,有的认为它是OS的驱动程序,也有认为它就是HAL(HardWare Abstract Layer )。实际上这几种理解都只是侧重于某个部分,再由于每个嵌入式系统提供商都根据自己的系统而提出对BSP的不同理解,因此在涉及到BSP的具体涵义时人们往往有一种似是而非的感觉。嵌入式系统提供商的龙头老大:WindRiver公司对BSP的理解偏向于是OS的驱动程序(注:从其BSP的文档中可以看出)因为嵌入式系统中的各种设备的确名目繁多,因此将BSP定位于OS的驱动的确有一定的道理。对于认为BSP就是驱动程序的人来讲,估计他们通常是接触的嵌入式系统

提供商提供的某种应用解决方案的应用系统(Total Solution)。在这种开发系统中BSP完全有理由被认为是所有驱动程序,因为开发人员没有必要自己去开发驱动程序,而只是验证驱动程序在自己的系统中是否正确了事。对于开发嵌入式OS的人来讲,似乎将BSP 看成是对硬件平台的抽象层(HAL)和CPU的驱动程序更恰当。因此各种理解都有一定的道理,但由于出发点不同,对BSP的理解都有失全面甚至有错误的地方.

所有的人肯定对搭积木都有一定的了解,可以用各种简单的图形积木搭建成各种物体。在程序设计的世界中人们一直希望能够利用一些可重复使用的基本程序单元来构建自己的程序或者系统。在这方面已经有了一些比较成功的案例:各种标准共享库、标准程序组件等的广泛使用。但是这些成功的案例都有一个共同的特点:都是不基于任何硬件平台的程序。当开发某个平台的、与硬件相关的程序时,往往不得不从设置某个寄存器的某个位开始编程。在嵌入式领域,这种情况更为明显。在嵌入式领域中,几乎所有的设备控制和各种协议控制都在同一个嵌入式CPU当中,非常有利于对CPU Core和设备进行抽象。如果能对CPU Core和设备的各种控制进行抽象,人们在移植OS或者开发驱动程序时就没有必要对CPU进行非常深入的了解,不必要了解某个寄存器的某个位是控制什么的,也没有必要了解怎样初始化某个控制寄存器等等。因此BSP是一种能为程序开发人员提供对硬件进行描述性操作的开发支撑库。描述性操作是指在控制硬件时只需知道要完成什么,而不需要知道如何去完成,每个操作都是一些单一的动作。例如:对于设置一个串口的波特率,只需要知道是那个串口,波特率是多少,而不需要知道要写那一个寄存器以及如何写等。在利用BSP编写Driver时,编程人员只需要了解该Driver的初始化顺序以及初始化的内容而不需要了解初始化的具体细节就能完成驱动程序。显然可以大大的提高工作效率,并且对于硬件的具体细节设置是在驱动程序中最容易出错的地方,而利用BSP支撑库则可以大大的减少出错的可能性。在BSP支撑库中除了对硬件的描述性操作部分的代码外,还包含了对目标板的初始化部分、中断管理部分以及一些简单的驱动程序程序单元。这样的BSP可以不用依赖于任何的操作系统和驱动程序,但是可以作为操作系统和驱动程序的开发支撑库,可以非常方便的移植或者开发OS与驱动程序。在最好的情况下,OS与驱动程序的移植只需要更换相应平台下的BSP支撑库就完成了移植。(摘录于https://www.wendangku.net/doc/5c6321454.html,)

下面看Tornado的文件树:

上图给出了安装后的Tornado文件夹的内容和意义,需要解释的是:

1)host-os目录根据你的主机硬件和操作系统而自动命名,如

x86-win32 所有的windows系统主机

sun4-solaris2 Solaris 操作系统主机

parisc-hpux10 HP-UX主机

2)./target/config/all包含了boot程序和vxWorks开始的源代码,是非常重要的文件,后面会有专门介绍,本人建议仔细浏览一下程序;

3)对于每个库文件(.lib),都有相应的包含头文件,编程时需要用上,对于vxworks系统有哪些库文件,需要有个印象,如:

1.2 硬件/软件配置

上图是一个典型的开发环境。

Tornado下,一个开发环境的建立,需要以下的步骤:

◆设好目标机硬件;

◆定义主机环境变量,配置好网络软件;

在\x86-win32\bin下,有torVars.bat脚本程序,用来设置环境变量,网络要配置好

TCP/IP协议,修改主机hosts文件(见booting部分);

◆开始Tornado 注册器,wtxregd (管理目标服务器的工具);

◆指明目标机启动参数(boot parameters)并启动目标机(后面介绍);

◆配置并启动目标服务器(target server),目标服务器是管理主机开发工具和目标机

通讯的;

1.3booting过程介绍

对于目标机来说,在启动的时候需要有一个boot 程序,boot程序的主要功能是引导vxworks 内核,所以boot程序需要知道vxworks的内核存放在何处,通过什么手段去获取。在vxworks缺省的boot程序里有一条内建的default boot line,它指明了获得vxworks 内核的途径,在boot程序启动时,它先寻找NVRAM里面有无boot line,如没有,则等里的内容添入BOOT_PARAMS结构里,然后,启动程序和vxworks内核利用此结构寻找启动参数。

typedef struct /* BOOT_PARAMS */

{

char bootDev [BOOT_DEV_LEN]; /* boot device code */

char hostName [BOOT_HOST_LEN]; /* name of host */

char targetName [BOOT_HOST_LEN]; /* name of target */

char ead [BOOT_ADDR_LEN]; /* ethernet internet addr */

char bad [BOOT_ADDR_LEN]; /* backplane internet addr */

char had [BOOT_ADDR_LEN]; /* host internet addr */

char gad [BOOT_ADDR_LEN]; /* gateway internet addr */

char bootFile [BOOT_FILE_LEN]; /* name of boot file */

char startupScript [BOOT_FILE_LEN]; /* name of startup script file */

char usr [BOOT_USR_LEN]; /* user name */

char passwd [BOOT_PASSWORD_LEN]; /* password */

char other [BOOT_OTHER_LEN]; /* available for applications */

int procNum; /* processor number */

int unitNum; /* network device unit number */

int flags; /* configuration flags */

} BOOT_PARAMS;

下面看boot line结构:

bootDev(unitNum,procNum) hostname:bootFile e=ead b=bad h=had g=gad

u=username pw=password f=flags tn=targetName s=startupScript o=other

bootDev // 设备名,软盘:fd; 硬盘:ATA;网络要根据网卡的类型来做:NE2000及其

兼容网卡为ENE,3COM以太网卡为ELT,Intel

网卡为EEX,Intel82559网卡为fei ,3C905B

PCI网卡为elPci。

unitNum / 设备单元号,一般指为0

procnum / cpu的处理器号,一般为0

flags / 标识,十六进制数,意义如下:

0x01: 关闭对处理器0的系统控制

0x02: 将局部symbols和全局symbols装入目标机symbols表

0x04: 禁止自动启动(即由用户输入boot line)

0x08: 快速boot(不计数等待用户输入)

0x40: 使用BOOTP or DHCP client

0x80: 使用TFTP获取image,否则使用RSH或FTP,用FTP时pw不为空

0x100: 使目标机登记为一个代理ARP client

ead / 目标机ip地址,此值如为空,网络接口不被帮定

bad / 背板接口

had / 主机ip地址

gad / 网关地址,如果主机和目标机不在一个局网里,需要

bootFile: / 存放vxworks image的路径

usr: / 使用FTP或RSH时的用户名

passwd: / ftp password

other: / 从网络启动时此值可为空,当从软盘或硬盘启动时,如果此值为你的网络设备,boot会为你绑定网络设备

hostname: / 主机名,任意

targetName:/目标机名

startupScript: / 脚本名,在boot以后的target shell里执行

在boot line中,e,b,h等等参数都不要求次序,你也可以让它为空值,如”pw= ”就是指口令为空参数,看一个例子:

ene(0,0) lijun:c:/tornado/target/config/pc486/vxworks e=10.132.3.40

h=10.132.3.37 u=x86 pw=apue tn=rod

在上例中,网卡为NE2000及兼容网卡,主机名为lijun ,vxworks image存放在

c:\tornado\target\config\pc486这个目录下,目标机的网络地址为10.132.3.40 主机的网络地址为10.132.3.37,通过FTP服务器下载,用户名为x86,口令为apue,目标机名为rod

再看一个例子:

fd=0,0(0,0) lijun:/fd0/vxWorks e=10.132.3.40 h=10.132.3.37 u=x86 o=ene

这个例子里面,用的是软盘启动vxworks ,在软盘做好boot 后,还需要把vxworks image 拷入软盘,在boot 起来以后,引导程序会在软盘里寻找vxworks,并把它启动。

软盘用fd0表示,硬盘用ATA(0,0),最后的参数o=ene 表示网络设备是NE2000网卡,并将之和ip地址绑定。

上面是有关boot的一些总述。

在vxworks里面,针对每一种的bsp(什么叫bsp?参看本文上),都有各自的配置文件,在C:\Tornado\target\config\bspname\config.h里,打开config文件,就会看到上面所说的default_boot_line,接下来要做的就是根据你的情况修改此行参数,使之符合自己的要求。在实时应用系统的开发调测阶段,往往采用以PC机作为目标机来调测程序。主机PC和目标机PC之间可采取串口或是网口进行联结。由于大多数目标已配有网卡,网络联结成为最简单快速的连接方式。下面是它的详细步骤:

1)、修改通用配置文件\\Tornado\target\config\bspname\config.h.

针对不同的网卡,其名称不同,如NE2000及其兼容网卡为ENE,3COM以太网

卡为ELT,Intel网卡为EEX,Intel82559网卡为fei ,3C905B PCI网卡为elPci。

(以3COM以太网卡为例)

2)、针对目标机的网卡,#define INCLUDE_ELT,同时#undef 其它网卡

在config.h文件中修改相应网卡类型(如网卡为3COM网卡)的定义部分:

#define IO_ADRS_ELT 网卡I/O地址

#define INT_LVL_ELT 网卡中断号

3)、修改#define DEFAULT_BOOT_LINE的定义:

#elif (CPU_V ARIANT == PENTIUM) (修改此行后的DEFAULT_BOOT_LINE)

#define DEFAULT_BOOT_LINE \

"elt(0,0)主机标识名:vxWorks h=主机IP e=目标机IP u=登录用户名pw=口令

tn=目标机名"

例如:#define DEFAULT_BOOT_LINE \

"elt(0,0)comps:VxWorks h=10.132.101.88 e=10.132.101.82 u=x86 pw=xxx

tn=x86"

新安装的Tornado2要拷贝文件01FAE.cdf到目录

\Tornado\target\config\comps\vxWorks。???

注意:对于PCI网卡,无需步骤2,即不用修改网卡的I/O地址和中断号。

4)制作启动软盘:

?准备一张已格式化的空盘插入软驱;

?在Tornado集成环境中点取Build菜单,选取Build Boot Rom,选择对应的BSP,

选择Image为bootrom_uncmp,OK。

?进入DOS命令提示符,执行命令\tornado\host\x86-win32\bin\torvars(建立

命令行环境);改变目录到\tornado\target\config\pcpentium;执行命令

mkboot a: bootrom_uncmp

注:image文件的种类

vxWorks_rom :可以写到ROM的、没有带符号表和Shell的、没有压缩的vxWorks。

vxWorks.st :带有符号表的vxWorks。

vxWorks.st_rom:可以写到ROM的、带有符号表和Shell的、压缩的vxWorks。

vxWorks.res_rom :可以写到ROM的、带有符号表和Shell的、只有数据段拷贝到

内存的、没有压缩的vxWorks。

vxWorks.res_rom_nosym:可以写到ROM的、只有数据段拷贝到内存的、没有压缩

的vxWorks。

bootrom:压缩的bootrom

bootrom_uncmp:没有压缩的bootrom

附:硬盘启动方法:

1.在config.h中将INCLUDE_ATA包括进去;

2 .修改config.h里的

#define DEFAULT_BOOT_LINE "ata=0,0(0,0)host:/ata0/vxWorks "

3 .将目标硬盘格式化,用vxsys.exe(在host/x86_win32/bin/下)做盘;

4. 把bootrom.sys做在软盘上,拷到目标硬盘上;

5. 把你生成的vxworks文件拷到目标硬盘上;重新启动就OK。

5)新建Bootbal工程(主要目的是提供新的定制过的内核)

在Tornado环境中新建Bootbal工程:

在第一步中设定“Location”为c:\myprojects\BootPen\Project0;

在第二步中选择“A BSP”为你的BSP, 如pcPentium;

Build新建的工程,生成VxWorks。

6)启动Tornado组件FTP Server (Host)[注:如果想从软盘加载内核,不需此步,只要将上步生成的vxworks文件拷入软盘即可]

启动Tornado组件FTP Server,在WFTPD窗口中选择菜单Security中的User/right...,在其弹出窗口中选择New User...,根据提示信息输入登录用户名和口令,用户名为x86,密

码为xxx;

指定下载文件vxWorks所在根目录,在此为c:\myprojects\BootPen\Project0

还必选取主菜单Logging中Log options,使Enable Logging、Gets 、Logins 、Commands 、Warnings。

最后,将系统制作盘插入目标机软驱,加电启动目标机即可通过FTP方式从主机下载VxWorks系统。

建议:如果采用网络从主机FTP下载vxworks image,需用交叉网线,我所大网不行。

下面是booting过程中的一些细节:

1.正如上面所说的,开始时要等待用户输入boot 参数,缺省时间是7秒,这可通过修

改bootconfig.h文件来修改缺省时间,或给flag附值来改变(如快速启动),在7秒内如没有输入,就读取default-boot-line的启动参数。建议手工输入boot 参数,方法为:输入:$dev (0,0) host:/file h=# e=# g=# u=# ………, 这样就不需要一次次的做启动软盘,做一次就够了。同boot-line格式一样。通过输入p,可列出启动参数,如:

2.整个启动界面大致如下图:

如果你在自己的启动过程中和上面的不一样,可能的原因有几种情况:

1)在第一个Attaching network interface….没有done结尾:可能网卡类型不对;2)Loading….没有出现vxworks image的大小:可能网线或连接有问题;

3)Loading…54677…没有第二和第三部分:要用交叉网线;

4)Starting at…后没有进一步的指示:可能image无效;

3.重起的方法:

在WindSh里则输入reboot;

在目标机上按CTRL-X

1.4 建立tornado开发环境

在目标机起来以后,只要再将主机上的target server配置并启动起来后,主机同目标机的通讯就建立起来了,整个开发环境就已搭好了,接下来就是生成程序并下载到目标机运行了。

我们先看一下taraget server 的作用:

1)、和目标机上的debug agent通讯;

2)、模块的动态装载和卸载;

3)、主机驻留的符号表;

4)、为主机工具在目标机上安排内存;

5)、缓存目标机RAM里的程序代码段;

6)、虚拟I/O设备管理;

所有的Tornado工具使用WTX (Wind River Tool Exchange Protocol )同target server通讯,target server再将请求消息送往目标机上的WDB代理,这就避免了主机工具频繁地访问target.

注:wtxregd(注册器程序),必须在target server之前启动,主要管理工具需要同target server连接的信息。

下面是具体的一个配置过程:

运行Tornado(tornado.exe)

执行菜单命令Tools | Target Server | Configure,弹出目标服务器设置对话框,点击New 产生一个新的配置。

设置Description域(可以任意设置);

设置Target Server域(可以任意设置);

在Change Property域选取Back End项(该项设置主机与目标机如何连接,缺省为网口连接,如果使用串口连接,需要修改configall.h文件,重新编译链接VxWorks映象),如果使用网口调试,选择wdbrpc,在目标IP名或地址域中给出目标机的IP名或地址(建议给出IP名,因为这样会快得多),如果给出的是IP名,需要在HOSTS文件中给出IP名与IP地址的对应关系,如果用串口调试,选择wdbserial,选择相应的串口和波特率(注意:此处的串口是指主机的串口不是目标机的串口);

在Change Property域选取Core File and Symbols项,选中File项输入相应的文件(同目标机上运行的内核要一致),点击Launch,运行目标服务器。

执行菜单命令File | New 创建一个新的文件,并打开编辑器Editor(该编辑器功能不是很强大,可以使用其它编辑器如Source Insight)。

单独编译生成的源文件,生成目标文件(.o),编译连接过程的详细介绍请见后面。

选取相应的目标服务器。

执行菜单命令Tools | Debugger运行调试器。

执行菜单命令Debug | Download下载要调试的目标文件(.o)

在Editor窗口设置断点。

执行菜单命令Debug | Run弹出对话框,要求输入调试入口函数,输入要调试的函数。

进行源码级调试

执行菜单命令Tools | Shell运行Shell。可以在Shell窗口查看/修改全局变量、内存,查看任务列表、各模块使用内存的情况、对象(如任务、队列、信号量、定时器、内存分区)等信息。

执行菜单命令Tools | Browser运行Browser。在Browser中可以查看任务列表、各模块使用内存的情况、对象(如任务、队列、信号量、定时器、内存分区)等信息。

WDB代理

WDB代理(WDB Agent)运行在目标机上,代表target server 和Tornado tools: 1)、读或修改内存;

2)、设置或清除断点;

3)、创建、开始、停止、删除任务;

4)、调用函数;

5)、收集系统对象信息;

WDB Agent可配置性:

1)、可在任务级、系统级模式下debug

2)、可选择同target server的通讯方式

注:target server 和WDB agent通过WDB (Wind Debug) protocal进行通讯。

2.Project

2.1 Downloadable project

Tornado 使用工程(project) 和工程区(workspace) 来管理用户代码、配置vxWorks、定制编译环境。

Project是一个源文件和二进制文件的集合,workspace是一组相关projects 的集合。

在tornado下,选择File->New Project…开始生成新工程:

step1:

Bootable & downloadable:

●一个完整的应用分:应用+Vxworks+Bsp

●为适合不同的环境,Vxworks将应用和环境分开:

应用+环境(Vxworks+Bsp), 环境诸如:ppc, x86, 模拟;

●所以:bootable --- 完整应用

downloadable --- 仅应用,在调试的时候选择环境

●模拟是一特殊的环境,将宿主机也模拟成目标机;

所以一般应用选择downloadable, 完整应用(如烧制到falsh)选择bootable;

Step 2: 输入新工程设置

Name: 工程名;Location: 工程位置WorkSpace: 开发环境(可以几个工程合用一个)Step 3: 选择工程环境

可以选取以前的工程环境,也可以自己选择;

一般选择后者,可以选择目标环境,

不在单板上运行时:选择模拟;

在单板上运行时:选择相应的选项

到此已经生成了基本程序框架,可以加入相应的应用;

Step 4: 创建自己的应用:

可以直接在Tornado环境内进行开发,File…->New,为工程填加一个c/c++文件;如建立了文件main.c:

Step 5: 编译联接

第一个按钮:build

第二个按钮:build all

第三个按钮:Compile

第四个按钮:建立整个工程的调用关系,如果没有执行,会自动调用;

结果是自动将被调用的文件加入到工程;并自动分类;

这基本同其他调试工具;用它进行编译联接;

如果出错,则修改相应的原码

Step 6: 下载文件到目标机

基本过程如下:

如果使用模拟,就启动模拟

: 会出现下面的对话框

有标准的和自定义的2种,一般选择标准的;

ok后就启动了模拟:

它除了担负做模拟机的任务外(加载了Vxworks和响应的驱动);

还可做显示输出(printf)

启动Target Server:

在上面一步完成后,会出现下面的对话框;

确定后会调起Target Server;

启动SHELL , 具体工具的使用参见另外说明;

各类浏览器调试工具使用详解

JavaScript调试技巧之:快速定位 Posted in 2009/07/24 ? 00:48h.yongbin1 Comment ? 赶紧总结一下JavaScript的调试技巧,这次首先是“快速定位”篇。 快速定位,其实就是快速定位程序的错误,所以也算是调试。这个在实际的码代码时往往比较实用。大多数情况下,你的js代码不多(少于1000行),只要能迅速发现代码的错误,往往不用复杂的调试。关于常用的快速定位方法,我总结了一下几点,欢迎大家补充。 1. 使用alert alert其实比较实用。本地调试中,在合适的位置写alert,打出来一些变量,虽然比较土,但是往往事半功倍!另外有一个alert技巧,想看看一个对象中的属性和它的值吗,试试这个: 2. 使用地址栏 使用地址栏,输入javascript: doSomething(),可以在Runtime时输出或者执行一些代码。输出东西时也使用alert,例如在地址栏输入: 可以输入当前的document下的链接数量。如果想执行已经加载的自定义函数,可以输入例如: 3. 错误查看器

最快捷的错误查看器当属Firefox的错误控制台,快捷键ctrl+shift+j。在你觉得脚本执行不正常时,首先按一下这个快捷键,往往能立刻知道哪里出了问题,并且点一下就能到问题脚本所在的位置,非常方便,强烈推荐! 4. 用浏览器的扩展或插件查看错误 这个话题比较大,一时说不完,所以先说说用扩展或插件来查看错误。对我来讲,Firebug 一般就够用了,比较常见,就不截图了。启用Firebug控制台后,如果页面上js脚本错误,就会立刻在右下角显示出来,点击可以查看错误。有一点需注意,我的Firebug有时会报这个带乱码的错误: 我一直不清楚这个为什么会乱码,但我知道这个是跨域的错误,比较常见。 其他浏览器的错误查看器,在这里我也简单总结一下: Chrome错误控制台 IE8错误查看器 Opera错误控制台

Tornado IDE与VxSim目标仿真环境

实验六 Tornado IDE 与 VxSim目标仿真环 境 6.1 实验目的 熟悉 Tornado开发环境,编辑、编译、下载、调试程序,熟练使用 GNU/Diab 编译器、 Cross Wind/Wind Shell 调试工具、Brower/Wind View 分析工具、VxSim目标仿真器,了解嵌 入式开发的基本方法和过程。 6.2 实验内容 (1) Hello World和 Goodbye World实验。使用 Tornado集成开发环境新建一个工作空间 和工程,通过编辑器编辑程序,并使用工程工具的 GNU编译程序,将程序下载到运行在主 机上的 VxWorks 目标仿真器,使用Wind Shell 运行程序, (2) 通过调试 Tornado 自带的 cobble 程序,掌握使用 Browse 观察目标仿真器的内存使 用情况,使用 Wind View图形化地跟踪监视示例程序的执行流程,使用Debugger 调试运行 时应用程序的错误。 6.3 实验软硬件环境 硬件: 主机: PIII800 ,内存 256M ,硬盘 30G 及以上 目标机:VxSim目标仿真器 软件: 主机: Windows2000/XP,Tornado2.2 目标机:VxWorks5.5 6.4 实验预备知识 Tornado 软总线体系结构,Tornado的工具集组成及其功能。 6.5 实验项目与步骤 6.5.1 Hello World 与 Goodbye World 实验 在本实验中,要求使用 Tornado工具编写一个“Hello World”的程序。该程序中有两个 函数,可以在 Tornado的 Wind Shell 工具中输入这两个函数的名称来启动这两个函数执行。 步骤见下。

Tornado_VxWorks官方培训教程1

嵌入式培训专题 微迪软件培训中心Tornado &VxWorks 培训 深圳市微迪软件技术有限公司 培训中心

嵌入式培训专题 微迪软件培训中心实时系统概念 ?实时系统是对外来事件在限定时间内能做出反应的系统。 ?指标 –响应时间Response Time –生存时间Survival Time –吞吐量Throughput

嵌入式培训专题 微迪软件培训中心实时系统与普通系统 ? 在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间?对于实时系统来说最重要的要求就是实时操作系统必须有满足在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理的能力 ? 此外作为实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I /O 能力来处理有严格时间限制的数据收发应用

嵌入式培训专题 微迪软件培训中心实时系统分类 ?根据不同的分类方法可以分为几种。 –方法一是分为周期性的和非周期性的(p e r i o d i c 和 a p e r i o d i c ) –方法二是分为硬实时和软实时(h a r d r e a l _t i m e 和s o f t r e a l _t i m e ) –专用系统和开放系统 –集中式系统和分布式系统

嵌入式培训专题 微迪软件培训中心实时多任务操作系统与分时多任务操作系统? 分时操作系统,软件的执行在时间上的要求,并不严格,时间上的错误,一般不会造成灾难性的后果。?实时操作系统,主要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件上必须在事件发生时能够在严格的时限内作出响应(系统响应时间),即使是在尖峰负荷下,也应如此,系统时间响应的超时就意味着致命的失败。另外,实时操作系统的重要特点是具有系统的可确定性,即系统能对运行情况的最好和最坏等的情况能做出精确的估计。

网络工程师调试工具IPOP使用介绍资料

IPOP使用手册 ■文档编号请输入文档编号■密级请输入文档密级■版本编号V1.0 ■日期2014-10-08 ? 2020 科技

■版权声明 本文中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属科技所有,受到有关产权及版权法保护。任何个人、机构未经科技的书面授权许可,不得以任何方式复制或引用本文的任何片断。 ■版本变更记录 时间版本说明修改人 2014-10-08 1.0 初稿陈飞 ■适用性声明 本模板用于撰写科技内外各种正式文件,包括技术手册、标书、白皮书、会议通知、公司制度等文档使用。

目录 一. 章标题.................................................................................................................... 错误!未定义书签。 1.1一级小节标题.................................................................................................... 错误!未定义书签。 1.1.1 二级小节标题 ............................................................................................ 错误!未定义书签。 1.2标题与正文的样式名........................................................................................ 错误!未定义书签。 二. 列表符号与列表编号............................................................................................ 错误!未定义书签。 2.1列表符号............................................................................................................ 错误!未定义书签。 2.2列表编号............................................................................................................ 错误!未定义书签。 2.3项目符号与项目编号的样式名 ........................................................................ 错误!未定义书签。 三. 图片、表格与公式................................................................................................ 错误!未定义书签。 3.1图片.................................................................................................................... 错误!未定义书签。 3.2表格.................................................................................................................... 错误!未定义书签。 3.3公式.................................................................................................................... 错误!未定义书签。 3.4图片与表格的样式名........................................................................................ 错误!未定义书签。 四. 其他 ....................................................................................................................... 错误!未定义书签。 4.1附注和脚注........................................................................................................ 错误!未定义书签。 4.2文本引用与补充材料........................................................................................ 错误!未定义书签。 4.3文本强调............................................................................................................ 错误!未定义书签。 4.4其他常用样式名................................................................................................ 错误!未定义书签。附录A附录标题一.................................................................................................. 错误!未定义书签。 A.1附录标题二.................................................................................................. 错误!未定义书签。 A.1.1附录标题三.......................................................................................... 错误!未定义书签。 A.1.1.1附录标题四 .................................................................................................... 错误!未定义书签。

嵌入式实时操作系统vxworks实验教程[1]

???VxWorks 偠 ? Laboratory Tutorial for Embedded Real ˉtime Operating System VxWorks ?? ? ? ? ? ? ? 2003 10

???VxWorks 偠 ? ? 1 ???? (1) 1.1 ?? (1) 1.2 ??? (7) 2 ? MPC860 (16) 3 ???VxWorks ? ? Tornado (25) 3.1 ???VxWorks (25) 3.2 Tornado? ? (43) 4 VxWorks?BootRom (48) 5 偠 (55) 5.1 偠??Tornado??? (55) 5.2 偠?? ??? ? ? (74) 5.3 偠?? ? ? ?? (78) 5.4 偠 ?? ??? (101) 5.5 偠?? ?????? ?? (110) 5.6 偠 ? ?????? ?? (116) ? A hwa-xpc860 偠 (120)

1 ???? ?? ?? 催? ?? ??? ?? ? ? ?? ??Ё?????? ? ?? ?? ? ? ?? ?? (Embebdded computer) Ё??? ?? ? ??? ⑤?20??60 ?? ????? ? ????? ? 1.1.1 ???? ??? ?? ? Н? ??? ????? ?? ?? ???? ???? ?? ?? ?? ?? ???? ??? ????? ? ?????BIOS? ? ? ???? ?催 ? ? ? ㄝ???? ? ??? ? ? ? ?????????? ???? ?? ? ? ? ? ???? ?? ? ? ???? ?ㄝ???? ???? ??? ? ? ??? ? ???? ? ? ?? ㄝ ?? ? ??? ? ?? ? (control)???Mointer) ??(Managemet)ㄝ ?? 1.1.2 ? ?????? ? ? 1.1. 2.1 ? ?? ? ?? ??4?? ? 1? ? ? ? ?? ? ? ???Ё ????? ???? ?? ? ? ?? ?2? ? ??? ?? ?????? ? ????? ??? П? ??? ??????? ? ?? ???? ? 3? ? ? ? ????? ?? ? 催 ? ? ? 4? ? 乏 ? ?? ?? ? ? ? ??? ? ? Ё??∴??? ?? ?? ?? ? mW??uW??1.1.2.2 ? ???? ???? ?? ?? ? ? ?? ? ??? ?? ? ? ? ? ???1000 ??????? 30 ?? ?

最新Python web开发视频教程从入门到精通

最新Python web开发视频教程从入门到精通想学Python web开发?想成为Python web开发工程师?想进入Python行业拿高薪?但还没入行?别急,先看看Python web开发视频教程。 千锋Python基础教程:https://www.wendangku.net/doc/5c6321454.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.wendangku.net/doc/5c6321454.html,/s/1hrXwY8k Python课程windows知识点:https://www.wendangku.net/doc/5c6321454.html,/s/1kVcaH3x Python课程linux知识点:https://www.wendangku.net/doc/5c6321454.html,/s/1i4VZh5b Python课程web知识点:https://www.wendangku.net/doc/5c6321454.html,/s/1jIMdU2i Python课程机器学习:https://www.wendangku.net/doc/5c6321454.html,/s/1o8qNB8Q Python课程-树莓派设备:https://www.wendangku.net/doc/5c6321454.html,/s/1slFee2T 以上是千锋现有的Python web开发视频教程,一起看看千锋Python web开发培训都有哪些内容吧。 千锋Python培训的主要学习内容包括三大模块,十大部分:

一、Python初级开发工程师 1.python语言基础(可以python基础语法入门和项目实践); 2.python语言高级(能够利用python进行一般的数据处理和爬虫); 3.python全栈工程师前端(掌握常用的前端技术); 4.python全栈工程师后端(学会企业级后端框架Django,并可完成大型网站构建); 二、Python高级开发工程师 5.python全栈工程师后端高级(目标是掌握两种轻量级和实时后端框架Flask和Tornado,完成两个实际项目); 6.Linux基础(懂得Linux常用命令和shell开发技术); 7.Linux运维自动化开发(清楚Linux运维自动化开发原理,并完成相应项目实践); 三、Python大神级数据分析师 8.python数据分析(学会python数据分析与可视化,了解数据统计和进入数据分析的原理,完成相应项目); 9.python大数据(掌握python大数据的原理和实践);

浅谈Tornado2.2下程序调试

浅谈Tornado2.2下程序调试 “调试一段程序的难度是写出这段程序的难度的两倍,因此,如果你的代码尽可能清楚,那么你就不用费力的调试它”-- Brian W. Kernighan “有时周一宁愿休息而不是花一周余下的时间调试周一的代码” -- Christopher Thompson ….. ….. 调试对于软件的成败至关重要,正确使用恰当的调试工具可以提高发现和改正错误的效率。 一、调试前的准备工作 1、保证目标机跟主机能网络正常通信。如果tornado是装在虚拟机中,则要保 证虚拟机跟目标机能网络通信。用ping xx.xx.xx.xx –l 1500命令。之所以后面要加-l 1500是为了保证最大包也能ping通,如果不加-l 则为ARP包,ARP包只有64个字节。在网络通信中会出现小包能ping通,大包ping不通的情况。 2、保证WDB为Ready状态 图1 如果WDB为unReady状态,很可能是WDB的组件没有加。 二、配置Target Server Target Server是Tornado集成交叉开发环境中最重要的工具。这个工具负责主机与目标机的连接,为其他的工具使用提供通信桥梁。 点击”Tools->Targer Server->configure”。出现如下图2所示:

图2 Target server配置界面 配置界面中Targer Server要填入主机的IP地址,Targer Server PropertiesBack End(后端)默认选择wdbrpc ,它是最常用的连接类型,其支持任意种IP连接(如以太网)。Target Name/Ip Address需要填入目标机的IP地址。主机和目标机的IP地址可以在bootrom起来后看到,如图3所示。 图3 bootrom启动打印 Targer Server Properties 之Core File and Symbols,在File选项中选择主机vxworks镜像的路径,如图4所示。

NOCSIM实验教程

NoCsim 使用手册 1、如何开始 1.1 生成可执行文件 如果使用Cygwin程序(Cygwin中已安装gcc组件),假设模拟器src目录路径为C:/NoCsim/src/,则在命令提示符中输入cd /cygdrive/C/NoCsim/src,切换当前工作目录到src目录。 如果使用虚拟机或者直接在linux环境下,则类似进入src文件后,进行编译即可。要求已安装gcc组件。 输入make,对NoCsim进行编译,生成可执行文件NoCsim.exe。 1.2 模拟 假设src目录下当前存在一个配置文件mesh88,则开始模拟命令为:./NoCsim.exe mesh88。 2、配置文件介绍 部分常用配置参数包括: topology: mesh,表示mesh拓扑结构网络; k:任意正整数值,表示 mesh结构网络每一维上的router数目; n:任意正整数值,表示mesh结构网络的维数; routing_function:当前支持取值:single_single,该路由算法用于评估allocator的性能;dim_order_mesh,表示mesh网络上的DOR路由算法;valiant_mesh,表示mesh结构上的Valiant路由算法; num_vcs:任意正整数值,表示每个input port上的input VC条数; vc_buf_size:任意正整数值,表示每条input VC中的buffer单元数; input_speedup:表示在crossbar上是否提供input speedup; routing_delay:表示路由器的路由计算延迟,将其值设为0,可以模拟look-aheading routing算法的性能; vc_alloc_delay:表示路由器进行VC allocation所需延迟; sw_alloc_delay:表示路由器进行switch allocation所需延迟; st_final_delay:表示路由器进行Switch traversal所需延迟。一般而言,上述4个延迟参数都置为1; vc_allocator:VC allocator类型,当前只支持wavefront allocator; sw_allocator:Switch allocator类型,当前只支持wavefront allocator; traffic:traffic pattern类型,当前支持uniform、bitcomp和tornado三种traffic patterns; const_flits_per_packet:每个packet所包含的flit数目;

Abacus 调试工具使用介绍

Spirent Abacus Abacus调试工具使用介绍

Monitor/ media 使用 (3) No dial tone error的定位 (3) No path confirm first error的定位 (6) Monitor/ Call tracer 使用 (7) Data link Monitor的使用 (7) Ethereal Trace抓包 (7) Channel Status/ Circuit Status (9) Suggestion forE1 physical not UP (9) Monitor/ QoM Monitor (9) Monitor/ Fax Monitor (10)

一、Monitor/ media 使用 通常用于No Dial Tone, No path confirm first 及No path confirm sequ 等error的定位。 1.No dial tone error的定位: 在模拟用户的测试中(A call B DTMF path confirm for call length),主叫用户的呼叫流程是:off-hook, wait 拨号音, DTMF 拨号和do path confirm。在wait 拨号音的过程中,经常遇到Abacus100 (ECG or A50A) 不能识别所收到来自SUT的拨号音,那么后续的拨号过程肯定就不会继续下去了,也就是call 不能建立起来。 Monitor/ media可以用来监控Abacus 主叫用户收到的拨号音的frequency, Power level等,从而来调整Abacus控制台中的一些参数。 使用monitor/ media 的步骤: 步骤1. 打开Monitor/media 或者打开Channel Status,双击需要监控的通道,选择Save to file。

Python基础教程视频全集下载

Python基础教程视频全集下载 现在大数据,量化分析,科学技术,人工智能,游戏很多方面都用到Python,目前国内Python人才需求量上升非常快,薪资也水涨船高。也有同学考虑找些Python基础教程视频进行学习,请看以下链接: 千锋Python基础教程:https://www.wendangku.net/doc/5c6321454.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.wendangku.net/doc/5c6321454.html,/s/1hrXwY8k Python课程windows知识点:https://www.wendangku.net/doc/5c6321454.html,/s/1kVcaH3x Python课程linux知识点:https://www.wendangku.net/doc/5c6321454.html,/s/1i4VZh5b Python课程web知识点:https://www.wendangku.net/doc/5c6321454.html,/s/1jIMdU2i Python课程机器学习:https://www.wendangku.net/doc/5c6321454.html,/s/1o8qNB8Q Python课程-树莓派设备:https://www.wendangku.net/doc/5c6321454.html,/s/1slFee2T

以上是千锋Python视频全集,希望对你有帮助。如果你对于千锋Python 培训的内容感兴趣,请继续阅读。 千锋Python培训的主要学习内容包括三大模块,十大部分: 一、Python初级开发工程师 1.python语言基础(可以python基础语法入门和项目实践); 2.python语言高级(能够利用python进行一般的数据处理和爬虫); 3.python全栈工程师前端(掌握常用的前端技术); 4.python全栈工程师后端(学会企业级后端框架Django,并可完成大型网站构建); 二、Python高级开发工程师 5.python全栈工程师后端高级(目标是掌握两种轻量级和实时后端框架Flask和Tornado,完成两个实际项目); 6.Linux基础(懂得Linux常用命令和shell开发技术); 7.Linux运维自动化开发(清楚Linux运维自动化开发原理,并完成相应项目实践); 三、Python大神级数据分析师 8.python数据分析(学会python数据分析与可视化,了解数据统计和进入数据分析的原理,完成相应项目);

网络工程师调试工具IPOP使用手册

■版 权声明 本文中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属所有,受到有关产权及版权法保 IPOP 使用手册 ■文档编号 ■密级 ■版本编号 V1.0 ■日期 2014-10-08 科技

护。任何个人、机构未经■版本变更记录 时间版本2014-10-08 1.0 ■适用性声明 本模板用于撰写科技内外

目录表格索引

插图索引

一. IPOP介绍 IPOP是一款设备调试终端工具,功能很强大,集合很多服务、调试、查看手段于一身,主要功能如下: ●IP地址动态绑定功能 ●路由信息查询和配置功能 ●MAC地址信息查询和修改功能 ●MAC 、主机信息扫描功能 ●本机网络报文统计功能 ●本机端口列表、远程端口扫描功能 ●端口映射功能 ●网卡流量统计功能 ●本机IP报文捕获和发送功能 ●终端控制功能(支持telnet、dos、ssh、sftp、ftp、com等协议) ●TCL脚本支持 ●多种服务功能(tcp/udp/ping/telnet/ftp/tftp/web/team/syslog/smtp)二. 模块介绍 下面按照模块方式来介绍这款工具,先来张截图认识下软件 图 2.1 IPOP软件介绍

如上图,总共有11个模块,有些模块下面包含多个功能,我会针对以前测试中经常用到的功能做详细介绍,有些地方可能介绍的不全,大家也可以自行研究。 2.2 IP绑定 图 2.2 IP绑定 本功能为IP地址动态绑定,可以在WIN2000/WINXP/WIN2003/WIN7/WIN2008系统上绑定多个IP地址,可以随时增加和删除。用于WIN98系统。 注意事项: *所绑定的IP地址为动态绑定,在计算机重启后IP地址会丢失,需要重新绑定;但退出本软件不会导致已绑定的动态IP丢失。如需启动时生效,请选择“下次重启自动绑定”选项后,再添加需要绑定的IP,以后计算机重启后不须启动本软件即能自动绑定IP。 *本软件可以自动搜索系统中存在网卡,在绑定前请选择正确的网卡。 *多IP地址绑定可以成批的绑定IP,规则如下: 终止的IP地址必须大于起始的IP地址、地址递增为各地址 段的递增规则,如起始地址为终止地址为 地址递增为,则增加的IP地址为: *在网卡网线断开重连或无线网络断开重连时,动态IP地址会丢失,如果想在此种情况下保持动态IP不变,请选择“断线不丢失动态IP”选项,此选项只需设置一次,在下次计算机重启后一直生效。

调试程序的简单说明

难怪很多前辈说调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 我以前接触的程序大多是有比较成形的思路和方法,调试起来出的问题都比较小,最近这个是我自己慢慢摸索调试,接触了很多新的调试方法,并查了很多前辈的总结,受益匪浅,总结以前的和新的收获如下: VC调试篇 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创建的工程中包含的Debug Configuration自动包含调试信息,但是是不是Debug版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration中增加调试信息,包括Release版本。 为了增加调试信息,可以按照下述步骤进行: ?打开Project settings对话框(可以通过快捷键ALT+F7打开,也可以通过IDE菜单Project/Settings打开) ?选择C/C++页,Category中选择general ,则出现一个Debug Info下拉列表框,可供选择的调试信息方式包括: ?选择Link页,选中复选框"Generate Debug Info",这个选项将使连接器把调试信息写进可执行文件和DLL ?如果C/C++页中设置了Program Database以上的选项,则Link incrementally可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译),而不必每次都从头开始编译。 调试方法:

1、使用 Assert(原则:尽量简单)assert只在debug下生效,release下不会被编译。 2、防御性的编程 3、使用Trace 4、用GetLastError来检测返回值,通过得到错误代码来分析错误原因 5、把错误信息记录到文件中 位置断点(Location Breakpoint) 大家最常用的断点是普通的位置断点,在源程序的某一行按F9就设置了一个位置断点。但对于很多问题,这种朴素的断点作用有限。譬如下面这段代码: void CForDebugDlg::OnOK() { for (int i = 0; i < 1000; i++) //A { int k = i * 10 - 2; //B SendTo(k); //C int tmp = DoSome(i); //D int j = i / tmp; //E } } 执行此函数,程序崩溃于E行,发现此时tmp为0,假设tmp本不应该为0,怎么这个时候为0呢?所以最好能够跟踪此次循环时DoSome函数是如何运行的,但由于是在循环体内,如果在E行设置断点,可能需要按F5(GO)许多次。这样手要不停的按,很痛苦。使用VC6断点修饰条件就可以轻易解决此问题。步骤如下。 1 Ctrl+B打开断点设置框,如下图:

TORNADO环境下的命令行编译文件

Tornado环境下的命令行编译文件 Table of contents目录 T ABLE OF CONTENTS目录 (1) 1TORNADO及其编译工具简介 (2) 2两种编译工具下的C/C++文件编译 (4) 2.1GNU T OOL的编译 (4) 2.2D IAB T OOL的编译 (5) 3MAKEFILE的编译 (6) 3.1特殊变量的定义(以DCN DS45XX项目为例) (6) 3.2MAKEFILE.LOCAL的建立 (7) 3.3命令实现 (8) 4REFERENCE DOCUMENTS参考文献 (9)

1Tornado及其编译工具简介 Tornado是嵌入式实时领域里最新一代的开发调试环境。Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。Tornado 包含三个高度集成的部分: ·运行在主机和目标机上的强有力的交叉开发工具和实用程序; ·运行在目标机上的高性能、可裁剪的实时操作系统VxWorks; ·连接主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM 仿真器等。 对于不同的目标机,Tornado给开发者提供一个一致的图形接口和人机界面,如图1-1所示。 图1-1 当使用Tornado的开发人员转向新的目标机时,不必再花费时间学习或适应新的工具;对深嵌入式应用开发者来说更重要的是,Tornado所有的工具都是驻留在开发平台上的。在嵌入式系统工具发展历史上,Tornado是第一个实现了当目标机资源有限时开发工具仍可使用而且功能齐全的开发环境。另外,所有工具都通过一个中央服务器(Target Server)与目标机的通讯,因此无论连结方式是Ethernet,还是串口线、ICE仿真器、ROM仿真器或客户设计的调试通道,所有工具均可使用。 Tornado提供了一套完整的GNU Tool开发工具链,其中包括: ·CPP:C预处理

vxworks培训教程(10)

Wind River Systems Tornado Training Workshop ? Copyright Wind River Systems 10-1Chapter 10 Exceptions, Interrupts,and Timers Exception Handling and Signals Interrupt Service Routines System Clock, Auxiliary Clock, Watchdog Timers

Wind River Systems Tornado Training Workshop ? Copyright Wind River Systems 10-2Exceptions, Interrupts, and Timers 10.1Exception Handling and Signals Interrupt Service Routines Timers Exception handling Using signals Installing user-de?ned signal handler

Wind River Systems Tornado Training Workshop ? Copyright Wind River Systems 10-3Exception Handling Overview ?An exception is an unplanned event generated by the CPU. Examples include: trap or breakpoint instruction, divide by zero, ?oating point or integer over?ow, illegal instruction, or address error. ?An exception will generate an “internal” interrupt. ?VxWorks installs exception handlers at system startup.These handlers will run on an exception and will try to invoke a user-de?ned exception handler. ? A VxWorks exception handler communicates with a user tasks by sending a signal. The user-installed handler will then run. ?Exceptions vary across CPU architectures. The help page for excLib contains information about generic exception handling, while the page for excArchLib discusses architecture-speci?c routines.

网络工程师调试工具ipop使用手册终审稿)

网络工程师调试工具 I P O P使用手册

本文中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属 科技所有,受到有关产权及版权法保护。任何个人、机构未经 科技的书面授权许可,不得以任何方式复制或引用本文的任何片断。 ■ 版本变更记录 时间 版本 说明 修改人 2014-10-08 1.0 初稿 陈飞 ■ 适用性声明 本模板用于撰写 科技内外各种正式文件,包括技术手册、标书、白皮书、会议通知、公司制度等文档使用。 IPOP 使用手册 ■ 文档编号 请输入文档编号 ■ 密级 请输入文档密级 ■ 版本编号 V1.0 ■ 日期 2014-10-08 2020 科技

目录 表格索引插图索引

IPOP介绍 IPOP是一款设备调试终端工具,功能很强大,集合很多服务、调试、查看手段于一身,主要功能如下: IP地址动态绑定功能 路由信息查询和配置功能 MAC地址信息查询和修改功能 MAC 、主机信息扫描功能 本机网络报文统计功能 本机端口列表、远程端口扫描功能 端口映射功能 网卡流量统计功能 本机IP报文捕获和发送功能 终端控制功能(支持telnet、dos、ssh、sftp、ftp、com等协议)TCL脚本支持 多种服务功能 (tcp/udp/ping/telnet/ftp/tftp/web/team/syslog/smtp) 模块介绍 下面按照模块方式来介绍这款工具,先来张截图认识下软件 IPOP软件介绍

如上图,总共有11个模块,有些模块下面包含多个功能,我会针对以前测试中经常用到的功能做详细介绍,有些地方可能介绍的不全,大家也可以自行研究。 IP绑定 IP绑定 本功能为IP地址动态绑定,可以在 WIN2000/WINXP/WIN2003/WIN7/WIN2008系统上绑定多个IP地址,可以随时增加和删除。用于WIN98系统。 注意事项: *所绑定的IP地址为动态绑定,在计算机重启后IP地址会丢失,需要重新绑定;但退出本软件不会导致已绑定的动态IP丢失。如需启动时生效,请选择“下次重启自动绑定”选项后,再添加需要绑定的IP,以后计算机重启后不须启动本软件即能自动绑定IP。 *本软件可以自动搜索系统中存在网卡,在绑定前请选择正确的网卡。 *多IP地址绑定可以成批的绑定IP,规则如下: 终止的IP地址必须大于起始的IP地址、地址递增为各地址 段的递增规则,如起始地址为终止地址为 地址递增为,则增加的IP地址为: *在网卡网线断开重连或无线网络断开重连时,动态IP地址会丢失,如果想在此种情况下保持动态IP不变,请选择“断线不丢失动态IP”选项,此选项只需设置一次,在下次计算机重启后一直生效。

调试程序的简单说明.

难怪很多前辈说调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 我以前接触的程序大多是有比较成形的思路和方法,调试起来出的问题都比较小,最近这个是我自己慢慢摸索调试,接触了很多新的调试方法,并查了很多前辈的总结,受益匪浅,总结以前的和新的收获如下: VC 调试篇 设置 为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard 创建的工程中包含的Debug Configuration 自动包含调试信息,但是是不是Debug 版本并不是程序包含调试信息的决定因素,程序设计者可以在任意的Configuration 中增加调试信息,包括Release 版本。 为了增加调试信息,可以按照下述步骤进行: ? 打开Project settings 对话框(可以通过快捷键ALT+F7打开,也可以通过IDE 菜单Project/Settings 打开 ?选择C/C++页,Category 中选择general ,则出现一个Debug Info 下拉列表框,可供选择的调试信息方式包括: 命令行 Project settings 说明 无 None 没有调试信息 /Zd Line Numbers Only 目标文件或者可执行文件中只包含全局和导出符号以及代码行信息,不包含符号调试信息

/Z7 C 7.0- Compatible 目标文件或者可执行文件中包含行号和所有符号调试信息,包括变量名及类型,函数及原型等 /Zi Program Database 创建一个程序库(PDB,包括类型信息和符号调试信息。 /ZI Program Database for Edit and Continue 除了前面/Zi 的功能外,这个选项允许对代码进行调试过程中的修改和继续执行。这个选项同时使 #pragma 设置的优化功能无效 ? 选择Link 页,选中复选框"Generate Debug Info",这个选项将使连接器把调试信息写进可执行文件和DLL ?如果C/C++页中设置了Program Database 以上的选项,则Link incrementally 可以选择。选中这个选项,将使程序可以在上一次编译的基础上被编译(即增量编译,而不必每次都从头开始编译。调试方法: 1、使用 Assert(原则:尽量简单assert只在debug下生效,release下不会被编译。 2、防御性的编程 3、使用Trace 4、用GetLastError来检测返回值,通过得到错误代码来分析错误原因 5、把错误信息记录到文件中 位置断点(Location Breakpoint 大家最常用的断点是普通的位置断点,在源程序的某一行按F9就设置了一个位置断点。但对于很多问题,这种朴素的断点作用有限。譬如下面这段代码:

tornado调试工具介绍

T ornado调试工具介绍 网络上海软件开发二部 crossWind (tornado debugger) 重要的设置步骤: 1、配置tools->target server->config a、在target name/ip address中输入目标板子的ip地址。 b、在back end 处选上wdprpc,如果网络不好,可以在timeout中输入2s c、在core file and symbols的文件中选上需要调试的vxWorks或vxWorks.st d、memory cache Size 设置为10000。 e、这样就可以启动这个target server了 2、Debug->Source search path 中加上你要调试的原代码的路径。 典型故障: 1、PING目标机也通,想调试程序,但target server 启不来,现象如下: Connecting to target agent... Error: rpccore backend client Unable to receive failed. 解决:检查target server 的配置,其中Core file应选为下载的vxworsk image。假设target server 的配置是正确的,那么就检查Tornado中对vxworks的配置,选择wdb connection为end 方式。 2、启动target server后,出现 Warning: Target checksum: 0xa7fc (computed from 0x108340 to 0x2170d0). Host checksum: 0xa8fd (computed from 0x1830380 to 0x193f110). Warning: Core file checksums do not match. 解决:下载的VxWorks核和target server路径下的文件不是同一个文件,有可能是因为重新编译了VxWorks(即使不修改任何内容,两次编译的结果仍然会不同)。 3、启动target server后,出现 Warning: Target server cache for agent memory is full. Use the '-m' option to increase the target server cache. 解决:target Server的Memory cache size默认为1M,适当加大。 常用功能: breakPoint:设置断点,当任务执行到本断点后会stop,前提是我们设置了auto attach to task,在没有设置此选项的情况下,必须手工attach 到某一任务。有全局断点和任务断点

相关文档