这个程序可以直接运行。启动后,您将看到命令提示符。输入 ? 您将看到命令列表。虽然有用,但我认为您会发现 VMEShell 脚本是更好的选择。它们确实使用此程序与内核驱动程序通信,因此必须使此程序在当前的 PATH 中可用。
“vmeutils” 的源代码也是关于如何直接与内核驱动程序通信的指导。对于那些希望创建直接与驱动程序通信的程序的人来说,这些源文件是很好的示例。
VMEShell 程序是 Unix shell 脚本。它们为操作员提供了一种简单的方式来访问 VMEbus 上的数据。使用这些命令会在用户的工作目录中创建临时文件,这些文件存储您上次访问的信息。这很好,因为它使得可以注销机器,重新登录并从您离开的地方继续,而无需再次重新输入 VMEbus 信息。此外,这些文件存储在当前工作目录中,因此您可以通过为每个感兴趣的 VME 板设置不同的目录来拥有不同的 VME 访问配置。
假设您将 shell 程序和 “vmeutils” 程序放在 /usr/local/bin 目录中,您应该能够以普通用户身份登录并运行它们。以下内容正是基于此假设。
以普通用户身份登录并创建一个目录进行实验。进入此目录后,输入
vmemap您应该看到类似这样的帮助屏幕...
Usage: map address count space size type where address is VME Address to set Universe image to Space = 0 CR/CSR Space = 1 A16 Space = 2 A24 Space = 3 A32 Size = 1 8 bit Size = 2 16 bit Size = 3 32 bit Size = 4 64 bit Type = 0 USR/DATA Type = 1 USR/PRG Type = 2 SUP/DATA Type = 3 SUP/PRG在这里您可以告诉 VMELinux 您希望如何访问 VMEbus。我们假设您已经了解 VMEbus 的多种操作模式,但这里有一个简短的列表来帮助您。
vmemap 0x8000 0x100 1 2 0将 VMELinux 驱动程序设置为访问基地址为 8000 Hex 的 A16 板,范围为 100H 字节,数据宽度为 16 位,模式为 USR/DATA。
您将在当前目录中找到两个新文件。
map.vme 存储上述参数,因此您不必每次都输入它们。
以下所有 shell 实用程序都从这两个文件中读取值以执行 VME 访问。
语法
语法
语法
语法
这些命令使用几个参数:address、size 和 filename。
可用选项用单个破折号定义,后跟以下任意组合
VMELinux 提供了对 Universe 芯片所有功能的访问。尤其有用的是访问芯片上的 DMA 引擎。借助此功能,Universe 芯片通过成为 PCI 主设备在 PCI 总线上进行数据传输。这很好,但真正的好处来自 VMEbus 访问。即使 VMEbus 接口未使用块模式传输,Universe 芯片也可以在持续 400 纳秒内完成 VMEbus 传输。这是 Universe 完全控制 PCI 总线和 VMEbus 的直接结果。因此,访问非块模式 VMEbus 外围设备的速度比旧技术快得多。