标签: device-driver

如何在设备驱动程序和它控制的FPGA之间共享寄存器和位字段定义

是否有任何好的,现有的软件工具可以帮助生成C头文件,其中#defines用于寄存器偏移以及来自VHDL的位定义?如果确实存在任何此类工具,它们对VHDL有什么限制以及如何指定要导出的内容?

到目前为止,我已经找到了这些工具,但它们并不是我正在寻找的:

基于这些工具,我也感兴趣,如果正确的工作流程是生成C和VHDL而不是尝试直接从VHDL(可能在注释中添加额外的标签)到C.

c embedded driver vhdl device-driver

8
推荐指数
2
解决办法
3222
查看次数

Devfs和dev文件系统有何不同

我读了关于devfs(称为设备文件系统)以便于设备驱动程序编程,如linux设备驱动程序文本中所述.如何不同的是devfs的距离的/ dev在linux.Are他们都一样吗?目录,我很困惑.

linux kernel device-driver linux-device-driver

8
推荐指数
1
解决办法
7466
查看次数

如何了解专有硬件通信?

如果我有两个硬件(比如一台带有自定义ISA或PCI卡的PC使用一些疯狂的电缆连接到一块硬件),并希望尽可能多地了解它们之间的对话,我将如何进行这样的操作?特别是,我对连接到Windows PC(旧的和新的)的旧科学硬件感兴趣.任何参考将不胜感激.

我对偷窃任何人的IP都不感兴趣.我是学术界的科学程序员,我们必须始终处理孤儿硬件.由于公司破产并且他们的软件在Windows 3.1上运行并使用专有的ISA卡,所以必须抛弃完美的硬件非常糟糕.通过使用现代数据采集卡和拼接电缆编写自己的代码,保存一些东西(有些东西很昂贵或无法替换)会很不错.

hardware operating-system communication protocols device-driver

7
推荐指数
0
解决办法
612
查看次数

相当于在Windows XP或更高版本中以编程方式从文件夹安装驱动程序

我需要在客户的计算机上安装驱动程序.不幸的是,现在唯一的方法是让Windows在插入设备时显示其"硬件更新向导",然后让用户执行以下操作:

  • 选择"不,不是这次",
  • 选择"从特定位置安装(高级)",
  • 选中或取消选中相应的复选框,然后选择包含驱动程序的文件夹

对于技术娴熟的用户来说,所有这些都是缓慢且不友好的.对于必须在许多计算机上安装设备的人来说,这也是一个重复且烦人的过程.

所以,我正在尝试编写一个非常简单的程序,它将提示用户插入设备.然后程序将自动执行上述相同步骤.我的问题:

  • 我想知道是否有一个Windows API在文件夹中查找驱动程序,因为这就是向导所做的.
  • 我刚刚发现了这个功能DriverPackageInstall.将.inf文件作为参数传递给我想要的是什么?(我将编写代码来同时测试它,只需给我一些时间下载Windows驱动程序工具包并设置项目......).
  • 还有其他建议吗?

windows drivers device-driver

7
推荐指数
1
解决办法
5942
查看次数

mmap用户调用mmap内核调用之间的连接

我试图了解mmap的工作原理.mmap的用户级调用如下所示.

void *mmap(void *addr, size_t len, int prot, int flags,
       int fildes, off_t off); 
Run Code Online (Sandbox Code Playgroud)

但特定设备驱动程序的内核级别mmap如下所示:

int <device_name>_mmap(struct file*fp, struct vm_area_struct *vma)
Run Code Online (Sandbox Code Playgroud)

我也查看了源代码,但我无法找到它们之间的连接.

特定设备的mmap如何获取其参数"struct vm_area_struct*vma"?你能帮我理解一下吗?感谢您的帮助.

c device-driver linux-device-driver linux-kernel

7
推荐指数
1
解决办法
4498
查看次数

Windows驱动程序开发:Visual Studio 2012中缺少部署选项

我试图编译和部署从MSDN调用获得WFP样本,msnmntr但同样的问题适用于所有样本.

此示例和所有示例都无法部署,因为Visual Studio 2012 Ultimate中缺少文档中的一个步骤.

它说:

1)打开驱动程序包的属性页.在Solution Explorer中右键单击驱动程序包项目,然后选择"属性".

2)在驱动程序包的属性页中,单击"配置属性",单击"驱动程序安装",然后单击"部署".

但是,Visual Studio 2012中没有这样的选项,您可以在下面的屏幕中看到:

在此输入图像描述

我想知道我做错了什么.

wdk device-driver visual-studio wfp

7
推荐指数
1
解决办法
3589
查看次数

是否可以检索创建WDFREQUEST的CPU?

我试图将CompleteRequest的完成关联到最初发出请求的CPU.有没有办法检索在FdoDeviceControl期间发出请求的CPU或任何另一种方式来查看请求进入调度队列之前的来源?

c windows wdk device-driver wdf

7
推荐指数
1
解决办法
195
查看次数

对于共享中断线,如何找到要使用的中断处理程序?

对于共享中断线,我可以有几个中断处理程序.内核将按顺序调用该特定共享行的所有处理程序.据我所知,每个处理程序在被调用时都会通知内核它是否是要调用的正确处理程序.

我的问题是如何确定,有没有办法检查一个内存映射寄存器,告诉特定设备的状态或是否有其他硬件机制?处理程序如何知道相应的设备确实是发出中断的设备?

这些信息是通过设备和处理器中断线之间的中断控制器进行中继的吗?

device-driver irq linux-device-driver linux-kernel

7
推荐指数
1
解决办法
3178
查看次数

input.h中input_absinfo结构体中fuzz和flat的解释

我正在尝试使用 input.h 中的 EVIOCSABS 调用来调整无法与 SDL 一起正常工作的操纵杆的灵敏度。我认为 input_absinfo 结构的 fuzz 和 flat 成员会影响轴的灵敏度,但在黑暗中进行了多次射击后,我仍然对它们的工作原理感到困惑。我希望有人能指出我正确的方向。

感谢您考虑我的问题!这是我在 Joystick 类中编写的代码:

int Joystick::configure_absinfo(int axis, int fuzz, int flat)
{
    struct input_absinfo jabsx;
    int result_code = ioctl(joystick_fd, EVIOCGABS(axis), &jabsx);
    if (result_code < 0)
    {
        perror("ioctl GABS failed");
    }
    else
    {
        jabsx.fuzz = fuzz;
        jabsx.flat = flat;

        result_code = ioctl(joystick_fd, EVIOCSABS(axis), &jabsx);
        if (result_code < 0)
        {
            perror("ioctl SABS failed");
        }
    }
    return result_code;
}
Run Code Online (Sandbox Code Playgroud)

linux input event-handling device-driver

7
推荐指数
1
解决办法
2537
查看次数

检查给定设备 ID 是否存在 Windows 驱动程序

我正在使用 C++ 编写一个 Windows 库。该库应该能够检查系统上是否安装了特定设备的设备驱动程序。因此,我正在寻找一种方法来检查是否为已知的Device ID安装了驱动程序。

到目前为止,我找到了这样的信息:

SetupDiBuildDriverInfoList列出给定设备的可用驱动程序。但是,我必须提供的不仅仅是设备 ID。

SetupDiGetClassDevs似乎准确地返回了我调用 SetupDiBuildDriverInfoList 所需的内容,但它仍然不接受设备 ID 作为输入。它可能需要设备设置/接口类的 GUID,但如果我理解正确的话,特定于供应商的驱动程序没有这样的 GUID。它还可以使用 PnP 枚举器,但我对此不太了解,无法判断是否可以以某种方式使用它。或者最后,它可能需要设备实例 ID,但不是设备 ID。

显然,我想检查是否有同类设备,所以通过设备实例ID查询是不可行的。因此,问题是:如何使用我列出的 API 函数(或可以识别设备的任何其他信息;我假设设备 ID 是正确的)来检查是否安装了给定设备 ID 的驱动程序(或任何其他方式)?

c++ winapi device-driver

7
推荐指数
2
解决办法
5173
查看次数