首页 文章
  • 1 votes
     answers
     views

    需要为USB外围设备编写驱动程序吗?

    我正在设计一个USB外围设备,偶尔会连接到Windows PC,并在每个方向传输几KB的数据 . 将有一个定制的PC应用程序,使用专有协议(即USB有效载荷)控制数据传输 . 我在以下链接中看到Microsoft描述了如何为USB设备编写驱动程序 . 但我需要一个吗? Developing Windows client drivers for USB devices PC应用程序是我们打算知道如何...
  • 3 votes
     answers
     views

    Linux USB驱动程序:中断URB

    我想我实际上有两个不同的问题,但我认为它们足以将它们包括在内 . 上下文是Linux USB设备驱动程序(不是用户空间) . 发送请求URB后,如果调用 complete 回调,如何收到响应? 如何将中断URB用于单个请求/响应对,而不是实际的连续中断轮询(如预期那样)? 因此,对于某些背景,我正在为Microchip MCP2210一个带有GPIO的USB-to-SPI协议转换器(U...
  • 9 votes
     answers
     views

    在OS X中对HID设备的原始访问

    在OS X上获取HID设备原始访问权限的最简单方法是什么? 我一直在查看IOKit示例,但即使打开一个设备似乎也是不必要的复杂,涉及多个回调并包含来自六个库的东西 .libusb可用于OS X,但是内核会抓取所有HID设备以进行独占访问,并且在尝试使用无代码.kext阻止它与我的设备关联时,我一直遇到奇怪的行为(它阻止内核抓取设备最初,但任何配置设备的调用似乎都会导致内核从我正在测试的小pytho...
  • 8 votes
     answers
     views

    用于嵌入式设备的USB - 设计设备驱动程序/协议栈

    我的任务是为嵌入式设备编写设备驱动程序,该驱动程序将通过SPI接口与微控制器通信 . 最终,USB接口将用于从外部下载更新的代码并在验证阶段使用 . 我的问题是,有没有人知道一个好的参考设计或文档或在线教程,它涵盖了嵌入式系统中USB协议栈/设备驱动程序的实现/设计?我刚刚开始阅读650页的USB v2.0规范,目前有点令人生畏 . 就像一个FYI,我使用的微控制器是飞思卡尔9S12 . 标记 根...
  • 3 votes
     answers
     views

    FreeBSD中的USB HID设备驱动程序开发

    我目前正在为 FreeBSD system 开发HID设备的驱动程序 . 想法是驱动程序通过控制 endpoints 写入设备的寄存器 . 从那时起,设备根据所输入的数据进行操作 . 由于我刚刚开始使用驱动程序,我正在遵循一本指南(我会在这里命名,但我不知道我是否可以?) . 这本书解决了 USB ULPT (Printer) driver ,解释了 USB device 的基本驱动因素 . 然而...
  • 0 votes
     answers
     views

    如何从Linux设备驱动程序中的USB endpoints 接收连续数据

    我正在为Ubuntu 16.04中的数据采集设备编写USB设备驱动程序 . 数据采集设备目前在Windows中工作,制造商只提供Windows的驱动程序,我需要它在Linux中工作 . 因此,为了进行逆向工程,我在Windows中使用Wireshark捕获了数据 . 我想出了所有设置urb,我可以将数据发送到数据采集设备并且运行良好,但问题是接收数据 . 似乎有来自 endpoints 1和3的连...
  • 2 votes
     answers
     views

    如何在非零 endpoints (libusb)上发送USB控制事务?

    我正在编写代码来了解飞思卡尔Kinetis微控制器上的USB外设 . 我已经设法通过Linux主机上的枚举,我可以使用EP0上的供应商自定义代码发送和接收数据包,与libusb测试程序进行交互 . 看起来我可以在微控制器上配置额外的控制 endpoints (非零 endpoints 号),但我没有看到让libusb发送/接收控制传输到这些 endpoints 的方法 . ( libusb_co...
  • 0 votes
     answers
     views

    qemu不是有效的设备型号名称

    我按照https://github.com/levex/kernel-qemu-pci来构建自定义设备 . 在使用qemu源代码(使用"make"命令)构建它之后,我跑了 “qemu-system-x86_64 -m 256 -kernel arch / x86_64 / boot / bzImage -initrd initrd.img -hda disk1.img -app...
  • 2 votes
     answers
     views

    Linux使用驱动程序内部的驱动程序

    我试图通过RS232串口从我的linux盒子接口到微控制器 . 我编写了驱动程序并实现了一个协议b / n pc和微控制器,它使用内核中已经存在的tty(/ dev / ttyS0)设备作为模块(例如通过调用open,close等等) . 但是,当我尝试编译时,它说它无法找到打开,写入,读取等参考... 如何在驱动程序中使用现有的设备驱动程序?我需要包含其他东西吗? 如果没有,我如何在驱动程序中轻...
  • 2 votes
     answers
     views

    如何在virtio串行设备中使用in-qemu API

    我想在KVM Qemu设置中交换来宾和主机之间的“复杂”数据(分层结构) . 我的想法是使用virtio串行驱动程序这样做 . 来宾应用程序将使用普通的I / O函数,如open(2),close(2),read(2)和write(2)将"buffer"(=我要发送的结构)发送到virtio serial back -结束 . 后端驱动程序将在Qemu内部运行,并通过此处描述的...
  • 0 votes
     answers
     views

    linux spi驱动程序CONFIG

    我是Linux和内核编译的新手 . 我想在我的设备中添加SPI支持 - 它的带有LCD的stm32f429-disco评估板 . 我在这里找到了整个项目:https://github.com/jserv/stm32f429-linux-builder,编译它并且它工作(内核源代码是https://github.com/robutest/uclinux),但我不知道如何在https://github...
  • 0 votes
     answers
     views

    构建I2C结构

    您好,我正在查看此文档 . https://www.kernel.org/doc/html/v4.11/driver-api/i2c.html我的目标是使用I2C总线将一些数据写入EEPROM . 我对使用哪些函数以及如何填充这些函数所需的结构感到困惑 . 我的猜测是我需要创建一个i2c_client来代表EEPROM . 我从这个设备树中获得了EEPROM的位置 . &i2c0 { ...
  • 0 votes
     answers
     views

    如何通过查询注册表找出是否安装了USB设备驱动程序?

    我试图在安装过程中检查是否为特定USB设备安装了驱动程序 . 不幸的是,制造商为同一个驱动程序提供了几个不同的安装程序,并且注册表中似乎没有一致的位置来检查驱动程序是否已安装 . 但是很明显,Windows必须知道是否为给定的USB设备ID(例如VID和PID)安装了驱动程序,并且我认为这是记录在注册表中的? 如何仅通过查询注册表来检查是否安装了驱动程序,而不依赖于查找特定于安装程序的密钥,例如对...
  • 13 votes
     answers
     views

    便宜的Windows驱动程序签署64位Windows 7

    我需要在Windows 7 64位计算机上安装libusb-win32驱动程序 . 这个驱动程序是开源的,因此没有数字签名所以我想自己这样做,但我想知道这是否可以完成而无需付出很多钱 . 是否可以使用未经Verisign或GlobalSign签名的证书?也许是自签名或使用StartSSL代替? 如果是的话,我该怎么做?根据how-to,The Practical Truth About x64 K...
  • 7 votes
     answers
     views

    用自定义驱动程序替换Windows USB类驱动程序?

    我想知道是否有人可以提供任何帮助,这是一个专家问题 . 我有一个应用程序需要读取和分析许多USB设备(不是同时,它们分别在单独的测试中运行,理论上可以在不同的机器上运行) . 每个USB设备都基于USB HID类,由不同的公司制造,这些USB设备都不是设计在PC上运行,而是用于不同的平台,但是为了测试设备的目的,客户端已请求从PC运行测试应用程序 . 一些设备将启动,被Windows识别,它们将使...
  • 0 votes
     answers
     views

    在linux中通信和同步内核和用户空间的最佳方式

    我的目标是从内核记录很多活动 . 为此,我需要写入基于磁盘的文件系统 . 因此,我实现了一个字符设备驱动程序,以及一个从该虚拟设备读取的用户空间进程 . 驱动程序将数据复制到用户空间缓冲区,用户进程将其写入文件 . 我的问题是如何同步数据 . 我开始在fifo的内核实现中使用kfifo . 因此,无论我想记录哪里,我都使用kfifo API将数据复制到fifo中 . 虚拟设备驱动程序从fifo读取...
  • 0 votes
     answers
     views

    如何知道USB设备的连接速度?

    是否有任何信息字段或描述符可用于获取USB设备的速度(低速或全速或高速)?
  • 1 votes
     answers
     views

    内核中的物理内存分配

    我正在写一个内核模块,它将触发和外部PCIe设备从我的内部存储器读取数据块 . 为此,我需要向PCIe设备发送指向我想要发送的数据的物理内存地址的指针 . 最终,这些数据将使用 write() 函数(用户空间)和 copy_from_user() (内核空间)从用户空间写入内核 . 据我了解,我的内核模块将看到的地址仍然是虚拟内存地址 . 我需要一种方法来获取它的物理地址,以便PCIe设备可以找到...
  • 0 votes
     answers
     views

    通过Windows内核驱动程序调度用户空间线程

    我想使用ioctl的倒模型 . 我的意思是我想安排一些工作项,当驱动程序检测到特定活动时,该工作项是用户空间线程 . 例如 . 1.我在内核模式驱动程序中注册了一个特定中断的回调 .2.每当我收到中断时,我想安排一些用户使用ioctl注册的用户空间线程 . 我可以使用DPC,APC或IRP来执行此操作 . 我知道不应该/不能将驱动程序空间工作与用户空间区分开来 . 我想要的是在发生特定硬件事件时...
  • 0 votes
     answers
     views

    如何在WinCe7中的用户模式应用程序中访问内核模式内存

    我为Win CE 7编写了直接显示过滤器和视频解码器驱动程序 . 过滤器在用户模式下加载,解码器驱动程序在内核模式下加载 . 过滤器需要内存来接收输入缓冲区,并通过调用视频解码器驱动程序函数来分配此内存 . 解码器驱动程序分配内存并从内核空间(> 2GB)返回其虚拟地址,因为它是在内核模式下加载的 . 但是过滤器无法访问此内存,因为它是在用户模式下加载的 . 通过考虑上述场景,如何使视频解码...
  • 11 votes
     answers
     views

    自动化Win32驱动程序测试

    Does anyone know ways of partially or fully automating driver test installation? 我是驱动程序开发的新手,并且习惯于在更高级别的语言中使用更多的测试驱动方法,因此转向我无法轻松测试的环境对我来说是一个进步 . 我在我的测试环境中使用Virtual PC,目前必须重置它,打开设备管理器,选择设备,点击一堆“你真的确定你不...
  • 1 votes
     answers
     views

    进入中断处理程序后,是否必须禁用硬件上的中断?

    硬件引发了一个中断,cpu在IRQ线上调用了注册的中断处理程序 . 在我的设备驱动程序中,在进入处理程序并在完成所需处理后重新启用它们时是否必须禁用中断? 或者,如果我们只是在调用中断处理程序后清除所需的中断状态寄存器而不禁用和重新启用它们,这是否可以? 什么是正确的过程,这种处理架构是特定的(x86,ARM)?
  • 1 votes
     answers
     views

    Linux中的USB串行驱动程序和设备名称

    我的设备是USB串行设备 . 当我插入时,cdc_acm.ko驱动程序检测到它,并在/ dev /下创建一个节点,设备名称为ttyACM0 . 当我执行软复位时,设备将显示名称为ttyACM1 . 我在哪里可以获得有关设备名称的信息[在/ proc /或/ etc下] . 目前我依靠dmesg来检测设备名称 . 一旦我打算自动化它,我想知道在哪里可以获得设备名称信息 .
  • 4 votes
     answers
     views

    Linux USB设备驱动程序未被探测

    我正在研究Linux的设备驱动程序 . 这是一个USB笔式平板电脑 . 问题是驱动程序的探测回调永远不会被调用 . dmesg只显示: generic-usb: probe of 0003:099A:2620.000F failed with error -22 我永远不会连接到设备 . 看起来系统驱动程序在某种程度上凌驾于我的驱动程序之上? 我的代码使用insmod / rmmod正确注册和...

热门问题