Virtual Machine串口调试:用命名管道在宿主机与虚拟机间建立起通信连接

Virtual Machine串口调试

转自:http://www.360doc.com/content/15/0518/10/12129652_471385326.shtml


本文内容简介:

(1)在Virtual Machine上建立虚拟串口,用命名管道的方式创建实现在宿主机与虚拟机间打通通信通道;

(2)用PuTTY调试串口通信,可调试用命名管道的方式创建的串口


Virtual Machine 主要有三种串口调试技术,可以在serial port的配置界面找到:

vmware虚拟机串口调试Serial Port配置

vmware虚拟机串口调试Serial Port配置

  1. Use physical serial port 即使用物理机串口,当用串口线和另一台电脑连接时,就用这种方式
  2. Use output file 即把串口数据输出到宿主机某文件中,当只需要看输出结果的时候可以用这种方式,简单方便
  3. Use named pipe 把串口输出到命名管道,命名管道可读可写,也就可以交互,进行一些Debug工作,而非只是简单的查看结果

因为前两种相对简单易用就不具体介绍了,这里主要说第三种用命名管道进行调试的方法。命名管道(Named Pipes ),也称命名管线,是一种简单的进程间通信( IPC)机制,命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。用命名管道来设计应用程序实际非常简单,并不需要事先深入掌握基层网络传送协议(如TCP / IP或IPX)的知识。这里就是运用了这种技术,通过把串口绑定一个命名管道,对命名管道的读写交换串口数据。也有两种方式:

【命名管道】或,Microsoft Windows NT,Windows 2000、Windows 95以及Windows 98均提供了对它的支持(但不包括Windows CE)。命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。用命名管道来设计应用程序实际非常简单,并不需要事先深入掌握基层网络传送协议(如TCP / IP或IPX)的知识。

  1. 宿主机与虚拟机之间
  2. 在同一宿主机上,两虚拟机间通过绑定同一个宿主机上的命名管道。

在Windows中命名管道式通过路径来创建的,创建好命名管道后,就是如何使用管道进行数据传输了。无论是Windows还是Linux,都可以采用直接读写命名管道的方式,或者通过把命名管道和Socket绑定,通过读写Socket来间接读写管道的方式传输数据。

根据Virtual Machine运行环境及通讯要求的不同,设置也有不同,主要存在以下情况:

Windows环境下的Host与Virtual Machine之间通讯、Virtual Machine与 Virtual Machine之间通讯。Linux环境下的Host与Virtual Machine之间通讯、Virtual Machine与 Virtual Machine之间通讯。我们这里主要针对Windows环境下的Host与Virtual Machine之间通讯的调试方法。

Windows环境下的Host与Virtual Machine之间通讯时,请按以下步骤添加端口:

  1. 打开对应虚机的WM配置
  2. 添加硬件->Serial Port
  3. 依照下图进行参数的设定。

[注]添加端口时必须停止虚拟机的运行。

[注]端口数量存在限制(最多4个)

vmware虚拟机串口调试Serial Port添加&配置

vmware虚拟机串口调试Serial Port添加&配置

添加设置完成后,启动虚拟机。

Windows宿主机上,下载并运行Putty。(PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。)
将连接方式调整为Serial,并调整对应的管道名称及波特率。
[注]在Window 7、Windows Server 2008等操作系统中必须以管理员身份启动Putty。

PuTTY Serial配置

PuTTY Serial配置

PuTTY Serial端口配置

PuTTY Serial端口配置

连接成功后,会出现如下所示的画面,在对话框中直接输入需要发送的数据即可。

PuTTY Serial数据接收与发送

PuTTY Serial数据接收与发送

Virtual Machine端串口数据收发效果

Serial Port数据接收与发送

Serial Port数据接收与发送


猜你喜欢

转载自blog.csdn.net/i1j2k3/article/details/53031908