如何挂接到vxworks的tty系统

author author     2023-05-05     587

关键词:

参考技术A 准备工作

  我们假设您有一台普通配置的PC机,并安装了Windows2000操作系统。其次您需要安装Tornado 2.2 for pcPentium开发环境。缺省安装的Tornado 2.2 for pcPentium可能不包括pcPentium的BSP组件,但该组件可以从风河公司(Windriver)的网站免费下载。

  我们将在下文以WIND_BASE引用Tornado的安装路径。

  其次是要安装VMWare软件,这里我们使用4.0的版本。如果您还没有该软件,也可以从VMWare的网站下载试用版。

  最后,由于Tornado自带的PC-NET网卡驱动有问题,所以需要下载AMD的PC-NET网卡的VxWorks系统驱动,可以从AMD网站免费下载。

  一张1.44M的软盘,用于制作系统引导盘。

  准备并安装好以上软件后,就可以开始下一步的工作了。

  开始安装

  编译网卡驱动程序

  VMWare为运行于其上的操作系统提供虚拟网卡支持,该网卡类型即为AMD的PC-NET。实际上,在Tornado开发包中已经包含了该类型网卡的驱动程序,但经过测试,对于VMWare无法正常工作,所以您需要从AMD的网站下载最新的驱动程序。

  下载得到的是一个可执行的安装程序,运行该程序将得到一个压缩包和一个帮助文件,按照该帮助的要求,将压缩包直接释放到Tornado目录下。如果提示是否允许覆盖文件,则选择允许。

  此后按如下步骤完成驱动程序的编译和替换:

  打开一个控制台窗口,运行批处理程序:$(WIND_BASE)\host\x86-win32\bin\ torVars.bat;
  重新定位到$(WIND_BASE)\target\src\drv\end目录,运行:
  make CPU=PENTIUM tool=gnu ln97xend.o

  其间会产生一些警告,但这不会影响我们的工作。

  重新定位到$(WIND_BASE)\target\lib\pentium\PENTIUM\common目录,并将上一步生成的文件ln97xend.o复制到此目录下。备份此目录下的文件libdrv.a;
  运行命令arpentium -d libdrv.a ln97xEnd.o,删除libdrv.a中原有的ln97xEnd模块,然后再运行命令:
  arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o

  将我们刚刚创建的新模块添加进去。

  到此有关网卡驱动的设置就完成了。注意不要关闭这个窗口,后面还要使用。

  

  修改配置文件

  在这一节中,我们要修改编译VxWorks的配置头文件Config.h中定义的一些参数,使编译出来的系统引导程序和VxWorks的映象符合我们的要求;同时还要修改sysLn97xEnd.c这个文件,以使系统的网络功能正常运行。

  定位目录到$(WIND_BASE)\target\config\pcPentium并打开该目录下Config.h文件;
  我们首先要修改VxWorks的启动参数。先查找到定义DEFAULT_BOOT_LINE宏的地方,修改预处理条件CPU == PENTIUM分支下的定义如下:
  #define DEFAULT_BOOT_LINE \

  "lnPci(0,0)your_host_name:d:\\vxWorks h=192.168.80.169 e=192.168.80.254 u=target pw=vxworks tn=target"

  其中:

  lnPci(0,0)指定了使用第0个网卡和第0个处理器,lnPci这个标识会因为使用的驱动程序不同而有所不同,但这里用lnPci就可以了;
  your_host_name指定您的主机的名字,使用Windows系统的主机名就可以;
  d:\\vxWorks指定了VxWorks映象下载的完整路径;
  h=192.168.80.169是主机的IP地址,就是您当前正在使用的系统的IP地址;
  e=192.168.80.254是目标机的IP地址,也就是未来VxWorks操作系统的IP地址,您只要任意指定一个不冲突的IP地址即可,这里我们假设您的目标机IP地址和主机IP地址在同一个网段内;
  u=target指定了FTP服务器的用户名,这个FTP就是用来下载VxWorks映象的,后面还会提到;
  pw=vxwroks是用户名对应的口令;
  tn=target指定目标机的名字,任意指定即可;
  您可以参考Tornado自带的手册以获取更多信息;

  下面我们要指定使用什么样的网卡驱动程序。首先查找“Network driver options”这段文字,之后您可以看到在该注释后面定义了一系列的有关网卡驱动的宏定义。注意保证INCLUDE_END和INCLUDE_LN_97X_END这两个宏处于定义状态(define),其他的宏都处于未定义状态(undef);
  缺省情况下,VxWorks系统是不接受外部输入设备(如键盘)的输入,也不向外部输出设备(如显示器)输出数据。为了便于调试,我们必须改变它的这种缺省状态。我们查找定位宏INCLUDE_PC_CONSOLE,然后保证其处于定义状态(define)即可;
  到此为止,对config.h文件的修改就完成了,保存修改,然后再打开同一目录下的sysLn97xEnd.c文件;
  这一步修改的目的是要使网卡正常工作。我们先定位到“memory-mapped IO base”这段文字,然后将其前面的参数由pciRsrc[endUnit].bar[1]修改为NONE,这样就可以了。最后别忘了保存。
  到此为止,全部的修改工作都完成了,下一步就可以开始编译连接了。

  

  编译程序

  这一节我们要编译生成bootrom引导程序和VxWorks运行映象。

  打开您的Tornado开发工具,在Build菜单下选择Build Boot ROM,弹出如下对话框:
  

  在BSP列表中选择pcPentium,而在Image to build列表中分别选择bootrom和gnu。完成选择后,点击OK按钮就开始引导程序的编译了。编译产生的文件bootrom将保存在$(WIND_BASE)\target\config\pcPentium目录下。

  编译生成bootrom后,还要创建一个VxWorks映象(image),也就是VxWorks操作系统本身的代码。
  创建一个“bootable VxWorks image”的工程;
  选择您需要的VxWorks组件。这一步是可选的,如果您只想使用缺省的配置,那根本就不需要这一步;但如果您想使用额外的组件,例如,您可能想通过telnet连接VxWorks系统,这时就需要在Workspace窗口的VxWorks选项卡中选择telnet sever对应的组件,如下图:

  在这个例子中我们选择了两个重要的组件:Telnet server 和 Target shell 。前者使我们可以通过Telnet协议登录到VxWorks操作系统中;后者则可以让我们通过命令行控制VxWorks系统。

  完成选择后,即可开始编译程序;
  

  到此我们已经生成了VxWorks的系统引导程序和运行时的代码映象。这里还要提醒读者,在您每次修改完系统的配置信息(如:config.h)后,都要重新创建一个工程来编译VxWorks映象,以免出现代码不一致的问题。
  将生成的名为“vxworks”的文件复制到D盘根目录下。这个路径是由上面我们所设置的DEFAULT_BOOT_LINE宏中的路径参数决定的,必须保持二者一致。
  制作引导磁盘

  现在开始制作VxWorks系统引导磁盘,用于引导装载VxWorks运行映象。

  我们回到“编译网卡驱动程序”一节中所打开的控制台窗口,定位目录到$(WIND_BASE)\target\config\pcPentium,插入您已经格式化好的软盘,然后运行:

  mkboot a: bootrom

  该命令将在软盘上建立VxWorks系统引导分区,并将引导程序复制到软盘上。

  这里再额外向您介绍一个虚拟软盘的工具:RamDiskNT,它可以在内存中建立一个虚拟的软盘,对于提高VxWorks的启动速度有很大帮助。

  

  配置FTP服务器

  这里的FTP服务器用于在系统成功引导后,下载VxWorks的运行时映象。我们这里使用Tornado开发环境自带的FTP服务器。

  打开Tornado FTP Server,选择“Security”菜单下的“Users/Rights”子菜单,弹出如下对话框:

  当User Name为“target”时,修改“Home Directory”为D盘根目录(此路径由上面的DEFAULT_BOOT_LINE参数决定),同时修改口令为“vxworks”,最后点击“Done”按钮完成修改;

  为了便于调试,我们还要打开FTP Server的日志功能。选择“Logging”菜单下的“Logging Options”子菜单,弹出如下对话框,其中除了“Winsock Calls”外,让其他选项全都处于开启状态。

  保持FTP Server窗口处于打开状态(这样FTP服务器就处于运行状态)。
  

  创建VxWorks系统

  打开您的VMWare Workstation,在File->New菜单下选择创建一个新的虚拟机(Virtual Machine),按照其向导帮助,完成虚拟机的配置。在选择操作系统类型时,选择“Other”,其余选项均使用缺省值就可以了。
  完成以上配置后,点击右侧窗口中的“Start this virtual machine”,系统即开始引导运行,如下图所示:

  在引导过程中,您会遇到一个7秒钟的等待,以决定是使用缺省的引导参数,还是手动输入引导参数。这里我们选择前者,所以不需要做任何工作。

  成功引导后,系统会自动从FTP Server下载映象,并开始运行,得到如下画面:

  

  

  到此,我们已经成功的在VMWare上安装了VxWorks操作系统。

  需要注意的是,上面的画面会因为选择组件的不同而略微有所不同(例如,如果您没有选择target shell,就不会出现命令行提示符),但一般不会影响后续操作。

  配置联机调试环境

  装好系统后,您肯定还希望将自己编写的应用程序下载到目标机进行调试,下面我们就完成这一部分的配置工作。

  打开您的Tornado开发环境,选择“Tools->Target Server->Configure”菜单,弹出如下对话框:

  在“Description”中任意填写一个名字,这里是“net00”;在“Available Back”中选择“wdbrpc”,并在下面的IP地址框中填写目标机的IP地址,这里是“192.168.80.254”(由DEFAULT_BOOT_LINE参数决定);将“Target Server Properties”下拉框更改至“Core File and Symbols”,并在“File Path”一项中选择您的映象的完整路径,这里是“D:\vxWorks”(由DEFAULT_BOOT_LINE参数决定)。

  完成以上两项配置,点击“Launch”按钮,就可以启动Target Server了。

  再回到Tornado开发环境,在工具条上的Target Server下拉框列表中选择“192.168.80.254@your_host_name”。这时您会发现工具条中一些原先处于“禁用”状态的工具按钮,现在都已经处于“激活”状态了。

  现在您就可以开始联机调试您的VxWorks应用程序了。

如何从 BeagleBone Black 连接到 USB TTY?

】如何从BeagleBoneBlack连接到USBTTY?【英文标题】:HowtoconnecttoUSBTTYfromBeagleBoneBlack?【发布时间】:2021-06-0720:43:24【问题描述】:我想建立从WindowsPC到BeagleBoneBlack的串行通信。目的是让BeagleBone上的Python应用程序与PC上运行的终端交... 查看详情

如何将 Log Analytics / Azure Monitor 挂接到角色分配中?

】如何将LogAnalytics/AzureMonitor挂接到角色分配中?【英文标题】:HowtohookLogAnalytics/AzureMonitorintoroleassignments?【发布时间】:2021-07-2906:36:18【问题描述】:有没有办法将LogAnalytics或AzureMonitor挂接到角色分配中,以便捕获新用户/服务... 查看详情

对于输入输出系统的理解

目录键盘的输入如何被系统识别  键盘中断  接收队列终端的概念  多终端如何实现  TTY私有接收队列  控制字符的处理将TTY纳入文件系统  进程和TTY绑定  读写对象  字符设备文件  TASK_TTY键盘的输入如何... 查看详情

查看进程

...上登录的终端,若为pts/0等等的,则表示为由网络远程连接到主机的。STAT:该程序当前的状态,主要的状态有:R:该程序目前正在运行,或者是可被运行;S:该程序目前正在睡眠当中(暂时没正在运行,后台挂着,通常是系统服... 查看详情

如何将ntfs格式的移动硬盘挂接到macos上进行读写操作

苹果电脑上必须事先安装过支持NTFS格式硬盘的插件,然后才能对NTFS格式移动硬盘上的文件进行读写操作。所需工具和原料:1一台苹果笔记本电脑。2.一款NTFS格式移动硬盘(包含三个NTFS分区)。3.插件TuxeraNTFS。4.txt文本文件。文件... 查看详情

vxworks中的任务状态“pend”和“suspend”有啥区别

1、意思不一pend:pend(阻塞),指任务释放。suspend:suspend(挂起),指任务不释放。2、用途不一pend:一般在等待某种资源或信号量的时候出现。suspend:一般挂起用于程序调试中的条件中断。3、运行不一pend:其他任务可以运... 查看详情

嵌入式操作系统的分类

...都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。  第二类、嵌入式Linux操作系统:  Linux的前途除作为服... 查看详情

计算机无法连接到远程计算机上的另一个控制台会话,您正在运行一个控制台会话,怎么办?

解决的办法:(一)我的电脑->属性->远程->远程协助和远程桌面;把复选框选上。如果还不行的话,转移到第2步;(二)在“开始”---“运行”里输入mstsc/migrate (该命令作用是将使用客户端连接管理器创建的旧连接... 查看详情

手机tty模式是什么意思?

...人士专用的特殊文字电话配件。可以将可选配件tty设备连接到手机,用来拨打和接听电话。必须将tty设备插入耳机插孔,并将手机设置为在三种tty模式中的一种模式下工作。1使用tsb-121电缆(由tty供应商提供)连接tty设备与您的手... 查看详情

如何在 Linux 上检测挂起的系统关闭?

】如何在Linux上检测挂起的系统关闭?【英文标题】:HowtodetectpendingsystemshutdownonLinux?【发布时间】:2011-02-1909:58:45【问题描述】:我正在开发一个需要检测系统关闭的应用程序。但是,我还没有找到任何可靠的方法来获取有关此... 查看详情

vxworks下dosfs文件系统的创建

...文件有不同的限制(如文件夹名限制,文件限制大小等)。VxWorks支持多种文件系统,比較重要的有:1、dosFs:适用于块存取设备(比方硬盘、软盘)。和MS-DOS文件系统兼容;2、rawFs:提供了一种简单的原始文件系统。该文件系统将整... 查看详情

vxworks的bootrom

...bsp的什么关系啊,是bsp提供bootrom所需要的文件吗,bootrom如何烧到开发板中??我的是arm9的开发板,用什么软件烧写???bootrom是bsp生成的,用来加载vxworks的。arm的bsp要用ARM的开发环境进行编译。拷贝到引导区就可以加载vxworks... 查看详情

将 dll 挂接到 exe

】将dll挂接到exe【英文标题】:Hookdllintoexe【发布时间】:2013-09-1011:04:43【问题描述】:我有我的C#dll文件,我想将这个dll挂接到一个exe文件(exe不是我的和C++)例如,我的dll中有代码,例如MessageBox.Show("Active");我想在双击exe后显... 查看详情

PyQt 5.6:连接到 DBus 信号挂起

】PyQt5.6:连接到DBus信号挂起【英文标题】:PyQt5.6:connectingtoaDBussignalhangs【发布时间】:2016-11-0317:05:34【问题描述】:我正在尝试使用Python3.5在PyQt5.6中将插槽连接到通过DBus发出的信号。当我像这样QDBUS_DEBUG=1python3qtdbustest.py运行... 查看详情

第四课:创建vxworks系统镜像

目录2.2.2创建VxWorks系统镜像2.2.2.1VxWorks概述2.2.2.2创建VxWorks6.9工程(zynq7000) 2.2.2.3创建VxWorks6.9工程(P2020) 查看详情

vxworksfuzzing之道:vxworks工控实时操作系统漏洞挖掘调试与利用揭秘

转载:freebuf0×00前言关于VxWorks,这里引用44CON议题《攻击VxWorks:从石器时代到星际》探究一文章中的介绍:VxWorks 是世界上使用最广泛的一种在嵌入式系统中部署的实时操作系统,是由美国WindRiver公司(简称风河公司,即WRS&... 查看详情

如何避免 VxWorks 中条件变量中的竞争条件

】如何避免VxWorks中条件变量中的竞争条件【英文标题】:HowtoavoidraceconditionsinaconditionvariableinVxWorks【发布时间】:2013-09-3013:58:29【问题描述】:我们正在基于VxWorks5.5的专有嵌入式平台上进行编程。在我们的工具箱中,我们有一... 查看详情

基于嵌入式操作系统vxworks的

管道可以看作受驱动器pipeDrv管理的虚拟I/O设备,使用基本的I/O系统接口可以读、写和操作管道,这些函数包括read、write、open、close、ioctl和select等。与pipe密切相关的其它API还有:(1)pipeDrv(?):初始化pipeDrv,函数原型:STATUSpipeD... 查看详情