linux下usb调试工具,LINUX USB调试

LinuxUSB驱动程序调试

:这是LinuxUSB驱动程序调试--003:Ubuntu下的准备工作的详细页面,介绍了和linux,有关的知识、技巧、经验,和一些linux源码等。

Ubuntu下的准备工作:

(1)如何查看内核中的printk输出: dmesg

再配合管道命令,   dmesg |head   ,    dmesg |tail

通过这个命令,我们可以看到内中的printk输出的内容,这是很有用的一个

工具。

(2)的USB抓包工具:usb_mon

其实,Ubuntu下已经内置了USB抓包工具---USB_MON

【其实 make menuconfig 时候会让我们选择的】

使用方法如下:

# mount -t debugfs none /sys/kernel/debug

# modprobe usbmon

查看当前的USB device:

# cat  /sys/kernel/debug/usb/devices

下面的输出:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 12 Spd=480 MxCh= 0

D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

P:  Vendor=601a ProdID=4740 Rev= 1.00

S:  Manufacturer=Ingenic

S:  Product=JZ4740 USB Boot Device

C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA

I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=50 Driver=skeleton

E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

如何看懂上面的输出?  Documentation/usb/usbmon.txt

Bus=01 means it's bus 1.

通过上面的 Vendor=601a ProdID 可以找到我们设备的Bus号。

上面Bus=01。

使用下面的名利,就开始监听 Bus01上的全部USB数据包。

# cat  /sys/kernel/debug/usb/usbmon/1u

要想开始监听 全部 Bus 上的全部USB数据包:

# cat  /sys/kernel/debug/usb/usbmon/0u

一旦有数据包,就会打印出来:

# cat /sys/kernel/debug/usb/usbmon/1u

f07dbb80 3233986312 S Co:1:012:0 s 40 01 80c0 0000 0000 0

f07dbb80 3234327703 C Co:1:012:0 0 0

f07dbb80 3234327880 S Co:1:012:0 s 40 02 0000 0200 0000 0

f07dbb80 3234329561 C Co:1:012:0 0 0

f07dbb80 3234329625 S Bi:1:012:1 -115 32 <

f07dbb80 3234331550 C Bi:1:012:1 -75 32 = 00000000 00000000  。。。

读懂上面的数据,还是要看usbmon.txt

URB tag  :标志

TimeStamp:毫秒数

Event Type:  S - submission,

C - callback,

E - submission error.

URBType:BusNo:DeviceAddr:EndPointNum

Ci Co   Control input and output

Zi Zo   Isochronous input and output

Ii Io   Interrupt input and output

Bi Bo   Bulk input and output

URB Status: 0为没有错误。-XXX是错误码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF 1025C Plasticine zebra

昨晚忘记判只有一个字符的情况fst了呜呜呜 挺有趣的题&#xff0c;昨晚连刚带猜弄出结论 考虑答案的取值&#xff0c;最优答案可能是一个后缀&#xff0c;或者是一个前缀&#xff0c;或者是一个后缀加上前缀 那么翻转之后最优答案的可选值就有了1的前缀n的后缀 对于一个合法的z…

嵌入式|这些年我都是怎么找兼职的?

‍‍‍‍1这篇文章是在上一篇文章之后写的&#xff0c;因为上篇文章写到了嵌入式找兼职的一些坑&#xff0c;下面有同学留言说要怎么找到兼职项目&#xff0c;所以这篇文章会写一些我的兼职经历还有总结建议&#xff0c;希望对大家如何找兼职有一些帮助。这篇文章是写第二次了&…

WCF 第五章 行为 实现事务(操作行为)

有两个场景一般用作事务的参考。多步骤商业过程是典型跨度分&#xff0c;天&#xff0c;月的长时间运行过程。它们可以涉及多个组织和基于人的工作流。短期运行事务是那些在几秒钟完成并很少有外部依赖的商业操作。尽管它们都有定义的很好的接口和确定的工作流&#xff0c;它们…

linux java的启动内存溢出,java - Java的R代码可在Linux上运行,但不能在Windows中运行 - 堆栈内存溢出...

我在做什么&#xff1f;我正在用Java编写一个数据分析程序&#xff0c;该程序依赖R的arulesViz库来挖掘关联规则。我想要什么&#xff1f;我的目的是将规则存储在Java中的String变量中&#xff0c;以便以后进行处理。它是如何工作的&#xff1f;该代码分别使用String.format和e…

这届毕业生薪资高,是真的

‍‍‍‍最近一份校招的薪资上了知乎的热搜榜。大家想查薪资的&#xff0c;可以用这个微信小程序offershow>查薪资的小程序<可以看到这个小程序可以查到的企业还挺多的&#xff0c;方便大家在选择工作谈薪资的时候做下参考。额&#xff0c;我这篇文章不是为了介绍这个小程…

心得 : 面向对象和面向过程的区别【分享】

面向对象&#xff1a;用线性的思维。与面向过程相辅相成。在软件开发过程中&#xff0c;宏观上&#xff0c;用面向对象来把握事物间复杂的关系&#xff0c;分析系统。微观上&#xff0c;仍然使用面向过程。 “面向过程”是一种是事件为中心的编程思想。就是分析出解决问题所需的…

linux 系统监控脚本

Linux下性能预警及应急处理 自己编写一个脚本程序&#xff0c;该程序在工作时段&#xff08;8&#xff1a;00-22&#xff1a;00&#xff09;&#xff0c;每隔一个小时执行一次&#xff1b;在其他时段每隔两小时执行一次。 每次执行都要完成如下任务&#xff1a; 1、检测进程CPU…

这辆迷你摩托车,很酷!

摘要&#xff1a;平衡小车大家应该见到过很多了&#xff0c;比如最有名的要数野生钢铁侠稚晖君的自行车平衡小车了。那个玩意太高级一般人做不出来&#xff0c;作为学生或者DIY爱好者做一辆小型的mini平衡小车还是可以实现的。随着16届恩智浦杯全国大学生智能汽车大赛新增单车拉…

自测题

什么是硬件&#xff1f;什么是软件&#xff1f; 硬件是看得见摸得着东西&#xff0c;软件是数据程序 电脑常见的硬件有&#xff1a;主板、机箱、CPU、内存条、硬盘、光驱、显示器、键盘、鼠标等&#xff1b; 电脑的软件有很多&#xff0c;像windows系统&#xff0c;office系列…

linux errno 线程,Linux errno 错误对照表

errno 在 中定义&#xff0c;错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的 errno-base.h 和 errno.h&#xff0c;分别定义了 1-34 、35-132 的错误定义。strerror() 函数依据 errno 值返回错误描述字符串&#xff0c;下面程序打印对照表&#xff1a;Code highli…

如何当好独立CIO(1)

如何当好独立CIO(1)出处:信息方略 文: 刘少东 评论( 0 )条 论坛 博客导读&#xff1a;独立CIO一般有比较丰富的信息化管理经历&#xff0c;具有新的想法和思路&#xff0c;视野也更加开阔&#xff0c;能够以局外人的身份冷静、客观地分析企业战略&#xff1b;同时&#xff0c;这…

提高单片机设计的10个细节

前言1 干扰对单片机应用系统的影响1.1测量数据误差加大1.2 控制系统失灵1.3 影响单片机RAM存储器和E2PROM等1.4 程序运行失常2 如何提高我们设备的抗干扰能力2.1 解决来自电源端的干扰2.2 模拟信号采样抗干扰技术2.3 数字信号传输通道的抗干扰技术2.4 硬件监控电路2.5 PCB电路合…

bzoj 2653 洛谷 P2839 [国家集训队] middle

2653: middle Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2381 Solved: 1340[Submit][Status][Discuss]Description 一个长度为n的序列a&#xff0c;设其排过序之后为b&#xff0c;其中位数定义为b[n/2]&#xff0c;其中a,b从0开始标号,除法取下整。给你一个长度为n的序…

linux统计单拷贝基因家族,为什么要进行基因家族分析?

原标题&#xff1a;为什么要进行基因家族分析&#xff1f;某物种基因组被测序后&#xff0c;大部分课题组都会发表一些基因家族分析的文章&#xff0c;此举常常被误解为“灌水”&#xff0c;其实不然&#xff0c;理清基因组内基因家族成员分类组成&#xff0c;是挖掘和物种特性…

童继龙:论ERP顾问的创新分享与专业精神

童继龙&#xff1a;论ERP顾问的创新分享与专业精神出处:51CTO博客 文: 童继龙 评论( 0 )条 论坛 博客导读&#xff1a;公司的核心价值观中有一部分为“持续创新”&#xff0c;对实施同事的行为态度考核中有两项为“创新分享”和“专业精神”&#xff0c;因为上海实施部的新同事…

图解分析 Linux 网络包发送过程

大家好&#xff0c;下面的文章转发一个鹅厂同学的文章&#xff0c;这篇文章从应用到内核&#xff0c;写的非常不错&#xff0c;希望大家分析某个技术也可以从这方面入手。-----大家好&#xff0c;我是飞哥!半年前我以源码的方式描述了网络包的接收过程。之后不断有粉丝提醒我还…

linux下shell编程课程设计,Linux下shell编程实例

1. 推断一文件是不是块或字符设备文件。假设是将其复制到 /dev 文件夹下read -p "input a file:" filenameif [ -b $filename -o -c $filename ]thencp $filename /dev/fi2.编写一个脚本。进行简单的减法运算。要求提示输入变量#!/bin/bashread -p "input a num…

[Pku 2774] 字符串(六) {后缀数组的构造}

{ 从这一篇开始介绍后缀数组 一个强大的字符串处理工具 可以先研读罗穗骞的论文 后缀数组——处理字符串的有力工具 再行阅读本文 本文仅作参考和补充 } 字符串的后缀很好理解 譬如对于字符串"aabaaaab" 后缀有{"b","ab","aab","…

使用ReflectionToStringBuilder实现toString方法

org.apache.commons.lang.builder.ReflectionToStringBuilder是commons-lang里的一个类。 import org.apache.commons.lang3.builder.ReflectionToStringBuilder; Overridepublic String toString() {return ReflectionToStringBuilder.toString(this); } 如果需要排除某些字段…

linux下I2C驱动发送IO时序,笔记四:linux下IO口模拟实现I2C协议

一、i2c总线是什么&#xff1f;1、i2c总线是一种物理总线及实实在在的总线&#xff0c;通过板子pcb等图能看到。2、i2c总线是一种主从结构。3、i2c总线是一种通信协议。4、i2c总线是两线制半双工串行总线&#xff1a;两线制&#xff1a;数据线(SDA)——>数据传输、时钟线(SC…