硬件驱动/工具DeviceJS、CToVerilog、libusbx、HWSD介绍

以下为你介绍的硬件驱动/工具都可用在Linux系统上:DeviceJS(使用 JavaScript 感知和控制物理世界)、CToVerilog(高级硬件开发工具)、libusbx(统一 USB 设备访问库)、HWSD(硬件资源监测和监控)。

1、DeviceJS(使用 JavaScript 感知和控制物理世界)

DeviceJS 可以让你使用 JavaScript 感知和控制物理世界。目前支持 6loWPAN、ZigBee、Z-Wave、RS-232 以及基于 IP 的所有设备。

2、CToVerilog(高级硬件开发工具)

CToVerilog是Haifa University研发的高级硬件开发工具。它依赖于LLVM工具,能够将C语言代码转化为Verilog代码,并提供了相关实例。目前,该工具能够对基本的C有较好的的支持,大大提高硬件开发效率,但对于指针以及多维数组的支持有限,仍需进一步优化。

3、libusbx(统一 USB 设备访问库)

硬件驱动/工具DeviceJS、CToVerilog、libusbx、HWSD介绍

libusbx 是一个用来提供对 USB 设备进行访问的统一接口库。支持多平台,包括 Linux、OS X、Windows 和 OpenBSD。libusbx 是在用户模式下使用,无需特定的权限要求,支持所有 USB 协议版本,从 1.0 到 3.0,同时具有同步和异步访问 API。

下载地址:https://sourceforge.net/projects/libusbx/

4、HWSD(硬件资源监测和监控)

HWSD 是一个使用 ZeroConf 对硬件资源进行检查和通知的守护进程和开发库。启用专门的 GPU 集群和多 GPU 机器的自动配置。

HW-SD库使用使用不同协议实现发现的模块,每个模块都是一个单独的库,可以由应用程序有选择地链接以限制依赖关系,当前可用的是:

gpu_dns_sd:守护进程宣布的针对GPU的Remote ZeroConf(Bonjour)发现。

gpu_cgl:碳显示器的本地发现(仅限Mac OS X)。

gpu_glx:X11服务器和屏幕的本地发现。

gpu_wgl:WGL_NV_gpu_affinity,WGL_AMD_gpu_association或Windows显示的本地发现(仅Windows)。

net_dns_sd:守护程序宣布的网络接口的远程ZeroConf(Bonjour)发现。

net_sys:网络接口的本地发现。

HWSD是一个跨平台的库,旨在在任何现代操作系统(包括所有Unix变体和Windows操作系统)上运行。DNS_SD模块和应用程序需要Lunchbox中的Zeroconf支持。测试了以下平台和构建环境:

Linux: Ubuntu 16.04, RHEL 6.8 (Makefile, Ninja)

Windows: 7 (Visual Studio 2012)

Mac OS X: 10.9 (Makefile, Ninja)

构建系统使用的是CMake,具有标准的CMake构建过程:

git clone --recursive https://github.com/Eyescale/hwsd.git

mkdir hwsd/build

cd hwsd/build

cmake -GNinja .. -DCLONE_SUBPROJECTS=ON

ninja

dns_sd模块和守护程序需要ZeroConf实现,在Mac OS X上,它是操作系统的一部分,在Linux上,AVAHI已经过测试(在Ubuntu上为“sudo apt-get install libavahi-compat-libdnssd-dev”),在Windows上,使用Bonjour SDK。如果未找到ZeroConf实现,则仅使用本地发现模块编译HW-SD。

示例代码:

#include <hwsd/hwsd.h>

hwsd::gpu::wgl::Module::use();

hwsd::gpu::dns_sd::Module::use();

const hwsd::GPUInfos& gpus = hwsd::discoverGPUInfos();

hwsd::net::sys::Module::use();

const hwsd::NetInfos& nets = hwsd::discoverNetInfos();

下载地址:https://github.com/Eyescale/hwsd

注明

以上就是硬件驱动/工具DeviceJS、CToVerilog、libusbx、HWSD的介绍内容,这些硬件驱动/工具都能使用在Linux操作系统中。

栏目相关文章