USB设备驱动程序

USB设备驱动程序

我为STM32h7编写了一个USB设备驱动程序,并使用Struct gpio_chip结构将设备注册为GPIO。我的问题在这里:

我将 NUCLEO-H743ZI 板上的 USB 外设配置为通过 QUBE-MX 进行通信的 CUSTUM HID CLass。我的意思是linux usb dirver和设备的usb端口之间的通信是在此类中完成的。对于这种类型的通信来说是这样吗?

当我使用以下命令将 GPIO(例如 gpio496)导出到内核空间时:

echo 496 > /sys/class/gpio

然后我想设定方向

echo out > /sys/class/gpio/gpio496

该进程被终止,我的 ubuntu 挂起,拔掉设备后设备正在连接。

我的问题是什么?在此输入图像描述

答案1

我为STM32h7编写了一个USB设备驱动程序,并使用Struct gpio_chip结构将设备注册为GPIO。我的问题在这里:

我假设你写了一个内核驱动程序(.ko)......你是吗?

当我使用以下命令将 GPIO(例如 gpio496)导出到内核空间时: echo 496 > /sys/class/gpio 然后我想使用 echo out > /sys/class/gpio/gpio496 设置方向

阅读这个文档,看起来你是对的。

该进程被终止,我的 ubuntu 挂起,拔掉设备后设备正在连接。我的问题是什么?

可能是设备驱动程序代码错误导致内核恐慌或内核错误。要确认/了解更多详细信息,请尝试: 1. 直接从文本控制台启动测试(ctrl-alt+F1 应该有效):由于内核会将其错误转储到控制台上,因此您会看到它。 或者 2. 使用 root 身份将内核日志转储到终端窗口中cat /dev/kmsg

请注意,2. 可能不起作用,具体取决于几个因素......如果可以的话,更喜欢 1.。

答案2

我的问题是我正在使用中断端点发送批量数据。

相关内容