Tornado和VxWorks学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Tornado and vxWorks学习笔记-myc

环境配置相关:

1.tornado

2.2在启动时,弹出一个警告窗口如下:

Warning: Cannot find a valid Tornado Registry on host "".

You need to have access to a Tornado Registry to connect to any targets. For instructions on how to start the Tornado Registry, please refer to the documentation.

应该如何解决?

解决方法:启动Tornado后,选择Tool options→Tornado Registry→勾选Local registry。

问题原因:Tornado Registry即Tornado目标服务器注册表,这种注册表可以使主机通过名称连接目标服务器(运行主机工具的主机和运行目标服务器的机器可以不同)。也即说,这个注册表必须一致处于运行状态,否则主机工具就不能联系上运行目标服务器的机器,也就不能与目标机进行通信。

而由于我们的机器同时运行主机工具和目标服务器,因此,我们只需要将Tornado Registry建立为本地的就可以了。所以,要勾选Local registry。

(由于Tornado工具与目标机通信的方式无关,所以无论与目标机的通信方式是通过网络还是通过串口,注册表都是必须的。)

2.目标机代理执行的模式有三种:

㈠任务模式:目标机代理作为VxWorks的一个任务,用户可以再不影响目标系统运行的情况下隔离某个任务。

㈡系统模式

㈢双模式

3.Tornado Launch工具条是一个下拉列表,显示了当前运行的并注册过的目标服务器。如果没有目标服务器列出,

或没有用户需要的目标服务器,则用户必须配置和启动一个目标服务器。

4.目标服务器管理Tornado主机工具和VxWorks目标机代理间的通信。在主机工具与目标机交互前,必须针对该

目标机配置并启动目标服务器。

5.在Tornado内建立一个开发环境,具体步骤如下:

㈠设好目标机硬件

㈡定义主机环境变量,配置好网络软件;在\x86-win32\bin下,有torwars.bat脚本程序,用来设置环境变量;

网络要配置好TCP/IP协议,修改主机host文件。

㈢开启Tornado目标服务器注册表。

㈣指明目标机启动参数(boot parameters),并启动目标机。(最开始学习的时候,没有目标机的话,就用VxSim 吧)

㈤配置并启动目标服务器(target sever),目标服务器是管理主机开发工具和目标机通讯的。

6.VxWorks具有可移植性的原因是采用了模块化的设计,它将所有硬件的功能函数分别放到一系列库中,这些库

就称之为板级支持包BSP(Board support Package)。

7.BSP库为实现所有目标板上各种硬件的功能提供了相同的软件接口,包括如下功能:

㈠硬件初始化

㈡中断的产生与处理

㈢硬件时钟和定时器管理

㈣本地及总线存储空间映射

㈤设置存储空间大小

㈥等等

8.*在一块新的目标板上安装VxWorks操作系统是很困难滴,是因为我们不能无法使用VxWorks的开发工具,并且,

也没有相对应的BSP。但是,Tornado软件为我们提供了VxWorks的BSP开发工具包,这个BSP的开发工具包提供的一些策略可以使VxWorks的安装变得容易点。(BSP工具包的用户应该具备低级c语言和汇编语言的编程经验,熟悉设备驱动程序,熟悉中断处理程序以及软硬件之间的接口)

BSP工具包包含一套文献资料和一些软件。

其中,文献资料包括:①安装指南②用户手册

软件包括:

㈠BSP合法性测试包

㈡BSP模板

㈢驱动程序模板

㈣SCSI测试包(SCSI:small computer system interface,小型计算机系统接口)

9.在运行具有网络功能的vxsim full simulator的时候, 如果在启动targetServer时遇到如下错误:

Error: rpccore backend client Timed outfailed.

则需要检查以下几点:

1)检查ULIP虚拟网络适配器的ip地址是否配置为:192.168.255.254

2)VxWorks组件中, development tool components/WDB agent components/select WDB connection/中, 应当仅选

择WDB END driver connection选项.

同时, select WDB mode应当仅选择WDB task debugging选项.

3)Target Server的配置里面, Target Server Properties应当选择Back End(表示通过网口调试), Available Back处应

选择wdbrpc选项.

Target Name/Ip Address可以填目标机地址. 例如:192.168.255.1

(还有一次, 直接target server都打不开,之前一直好好的, 忽然间就出错了, 一直遇到这种错误:

error :simulator failed to initialize before timeout

我是这么解决的: 先新建了一个project, 然后重新编译了一个最原始的vxworks.exe, 然后打开.

再之后又重新开之前的那个vxworks.exe 然后居然就正常了)

10.如果想要能够有ping功能, 需要包含组件network conmponents/networking protocols/network applications/PING

client.

11.如果vxsim0和vxsim1不能互相ping通, 但vxsim0和vxsim1可以ping通主机, 则说明组件:

network conmponents/networking protocols/core TCP/IP conmponents/ICMPv4没有被包含进去.

12.Simulator与其它主机的通信

假设host0(你的主机, simulator运行于此机上)的Ip为10.12.9.113, host1的Ip为10.12.9.129. 如果host1想与simulator通讯, 只需在host1的路由表中增加一项:

Route add 192.168.255.1 10.12.9.113 metric 1

然后可以分别在host1上ping 192.168.255.1和simulator上ping 10.12.9.129进行验证.

网络编程相关:

Tcp(基于连接的)编程

1.相关概念:

端口: RFC1700规定常用的端口号从0-1023, 1024-49151是已注册的端口号.

这个端口号很重要, 比如在客户机/服务器模型下, 服务器端有一个任务在指定的端口等待客户来连接(在vxworks当中, 是先通过listen函数监听端口, 然后accept函数接受来自client端的连接来实现的), 一旦连接上之后, 就可以按设计的数据交换方法和格式进行数据传送.

2.客户机/服务器通信过程:

对server来说, 包括如下几个步骤(注意:结构体struct sockaddr_in和struct sockaddr是不一样滴两个结构):

1)创建一个tcp socket.

eg: int sd=socket(AF_INET,SOCK_STREAM,0); /*其中, sd是socket描述符, 由socket函数返回. AF_INET得看Help文件具体才知道是什么意思, 反正大多都用这个. SOCK_STREAM 说明是建立的一个基于连接的socket, 也即tcp socket. */

2)分配一个server的端口给第1步中创建的socket. 也即让创建的那个socket和某个端口绑定起来, 否则server到

哪监听想要连过来的client呢? 绑定了之后相当于server就在这个端口这里等待client的连接请求了.

VxWorks下面, 是通过bind函数绑定socket和分配的端口的, 如下:

bind(sd,(struct sockaddr *)&serverAddr,sizeof(struct sockaddr_in))

相关文档
最新文档