Linux USB调试与测试全解析
1. USB调试工具概述
在Linux系统中,调试USB系统有多种有效的工具和方法。usbmon能提供关于URB(USB Request Blocks)状态以及Linux主机和USB设备之间USB活动的全面信息,借助这些信息可以轻松解决平台上与USB相关的问题。
2. 使用usbfs_snoop进行调试
有时候,并不需要像usbmon那样详细的信息来调试Linux USB子系统,这时就可以使用usbfs_snoop这种更简单的方法。
2.1 usbfs_snoop的工作原理
usbfs_snoop是usbcore的一部分,它可以在USB事务的更高级别窥探URB数据,并将其作为系统日志的一部分打印出来。它从对usbfs文件系统执行的操作中窥探USB详细信息,通过usbfs文件操作截取用户应用程序传递给usbcore的URB。
在usbcore中, /drivers/usb/core/devio.c 文件实现了usbfs文件操作,这里是usbfs_snoop窥探URB操作和URB状态信息的理想位置。该文件中实现的 snoop_urb 例程处理窥探活动,其函数原型如下:
static void snoop_urb(struct usb_device *udev,void __user *userurb, int pipe,
unsigned length,int timeout_or_status, enum snoop_when when)
超级会员免费看
订阅专栏 解锁全文
8156

被折叠的 条评论
为什么被折叠?



