VxWorks的特点主要有:微内核结构(最小结构<8KB),高效的任务管理,灵活的任务间通信,微秒级中断处理,符合POSIX 1003.1b实时扩展标准,满足TCP/IP网络标准,灵活的从ROM、磁盘或网络的引导能力,多处理器支持,快速、灵活的I/O系统,MS-DOS和 RT-11文件系统,完全符合ANSI C标准,多于1100种功能例程。
Tornado工具,是一整套强有力的交叉开发工具;VxWorks运行时系统,是运行在目标机上的高性能、可裁剪的实时操作系统;连接目标机和宿主机的通信选项,如以太网、串行线路、在线仿真或ROM仿真等。Tornado能够支持几乎所有的工作平台和目标处理器,所提供的工具可用于所有目标机,并具有两种调试模式(系统和任务模式)。除了基本的功能和开发工具,Tornado还具有先进的系列网络产品,极大地扩展了Tornado的网络特性并增强了嵌入式微处理器的网络特性。
上面是从网上找的关于vxworks和tornado的简单介绍。通过对vxworks产品的了解,感觉还是这个介绍比较全面的说明了整个产品的框架内容
就我看来, tornado不仅仅是vxworks的开发环境,也可以做模拟,也可以配合网络直接和vxworks系统交互来完成一些调试,订制系统组建的功能,实在很强大的一个工具。简单的来看,两者的配合就是按照下图的架构来完成的。
1. tornato上的新项目的创建
新建tornato的项目,选择file菜单中的新建项目就可以弹出如下:
可以看出上面有两个选择:
1. bootable项目
2. downloadable项目
简单的可以这样理解,bootable项目就是一个完整的可以直接下载到vxworks目标机上的镜像系统,里面包含了些系统内核。而downloadable项目就是应用程序,需要内核文件的基础上运行,本身没有内核文件。
这样看来,如果不需要做一个完整的烧录到目标机的系统的话,那就选择可以调用模拟的downloadable项目好了。
2. 编译自己的第一个文件
在自己新建的项目里面编写好自己的c代码(又见helloworld)
#include <vxworks.h>
#include <stdio.h>
int main()
{
printf("hello world~/n");
}
这个代码我们需要先选择编译,注意下面的build toolbar
按钮依次是build project, Rebuild All, Compile selected source file, dependencies, Stop build Update
最后一个是Download object file or image 就是把编译好的程序下载到模拟器的环境中,这里又有问题了,怎么启动模拟器的环境呢?
3. 模拟器 target simulator
目标机模拟器,其实就是一个vxworks的环境模拟。那怎么启动呢?就是通过这个按钮来开启虚拟机的环境的。按这个按钮之后会有两个选项,一个是standard,一个是customized,选择standard就可以开启一个标准的虚拟机环境来进行模拟了。
4. shell, windsh
tornato的shell环境就是windsh,这个shell环境很强大,他支持几乎大部分的c语言表达式,也就是说c语言可以直接作为命令输入,如printf("hello world~");就可以在vxworks的虚拟环境中打印出helloworld~. 同时,这个环境还支持TCL脚本。通过按钮就可以打开这个shell环境了。如下图
5. 目标文件下载到虚拟机
我们在第2段里面就提到了,我们已经把我们的helloworld.c文件编译成了.o目标文件。那怎么在程序中执行这个.o文件呢。首先要把编译好的目标文件下载到虚拟机的vxwork环境中。在编译好的目标文件上点右键,选择download。然后程序就会被下载到虚拟机。在下载完成了之后,我们可以通过moduleShow命令来查看目前系统中装载了什么目标库。如果helloworld.o这个已经在里面了。ok,我们下载就成功了。
6. 运行和调试
tornato作为一个开发环境,这两块的功能还是很强大的。这里就不一一提到了。因为很多东西可能也不是一句两句就能说完的。不过,他所有的这些功能都是很容易使用的。作为开发人员的我们可以说对这一块是最熟不过的了。
以上,就是自己通过简单的使用tornado做的随笔。有些东西我接触的也不是很深,就先当做一个学习的过程吧。后面我还会提到怎么把minigui通过tornado交叉编译到vxworks系统上去。
这一块内容,我也是边学边记下的。可能有些自己会在以后的实践过程中再修改。