首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式系统中进程间通信的监视方法(2)

嵌入式系统中进程间通信的监视方法(2)

监视系统的体系和应用        利用上面讨论的技术,我们开发了可以运行在 mips 目标板上的监视程序,名为 ipcmsg 。它是一个命令行程序。在我们的应用环境中,它的使用方法是:
1
root@host:~$ ipcmsg -p pid -l xxx.xxx.xxx.xxx -b 6000




pid 是被监视进程的 pid ,可以通过 ps 命令获得。 -l 参数后面指定 PC 主机的 IP 地址。 -b 参数指明了接收的端口号。
        最初进行监视时, ipcmsg 是没有 IP 地址和端口号参数的。所有信息是输出到串口控制台中。这既影响了运行的效率(大量的在串口上的输出会影响目标板的运行速度),也不利于信息的处理。由于我们的目标板具备以太网接口,我们很容易的想到将 ipcmsg 截获的数据包转发到 PC 主机上。使用 PC 主机更便于对进程间通信的数据包进行分析。在 PC 主机上,我们使用 wireshark 这个非常流行的开源的网络报文分析软件接收来自目标板的信息。整个监视系统的架构如下图所示:
图1 架构         在实际的使用过程中,我们使用以太网线将目标板与 PC 主机相连。然后,在目标板上启动 ipcmsg ,并为其指定监视进程的 pid 。 ipcmsg运行后,我们在PC主机上启动 wireshark 接收来自 ipcmsg  的数据包。这些数据包中包含了 mips 目标板上进程间通信的信息。利用我们为 ipcmsg 专门开发的 wireshark 插件,在 wireshark 上,我们可以详细的分解 ipcmsg 转发来的数据包,非常直观的分析进程间通信的过程和可能存在的问题。下面是 wireshark 分解 ipcmsg 数据包的实际运行图:
图2 运行图        从图中可以看到,我们从 ipcmsg 获得了进程间通信的方式,参数( path 是 AF_UNIX域 socket 地址参数),方向和内容,以及进程名称。这些信息帮助我们对嵌入式系统的运行状态进行分析。而这一切非常直观和便于操作。
返回列表