关于kernel2.6中USB host controller driver 的问题

RT-Thread USB Host驱动U盘:从硬件配置到文件系统挂载全解析 USB(通用串行总线)是嵌入式系统中实现设备扩展和数据交换的核心接口技术,其主机(Host)模式允许微控制器作为主设备管理外设。在RT-Thread实时操作系统中,USB主机协议栈通过分层架构(硬件驱动层、协议栈层、中间件层)实现了对USB大容量存储设备的支持。这项技术的核心价值在于为资源受限的嵌入式设备提供了便捷的外部存储扩展能力,无需依赖PC即可直接读写U盘、SD卡等设备,极大提升了数据采集、固件更新和媒体播放等应用的灵活性。典型的应用场景包括工业数据日志存储、设备现场固件升级和车载音频系统。本文聚焦于 阅读详情

2.6在s3c2410上usb host不工作的直接结果就是提示110错误:
usb 1-1: device descriptor read/64, error -110

追踪错误代码,我们来看看能不能找到导致这个错误的线索。

include/asm-generic/errno.h
#define EPROTO 71 /* Protocol error */
#define EILSEQ 84 /* Illegal byte sequence */
#define ETIMEDOUT 110 /* Connection timed out */

Documentation/usb/error-codes.txt
-EPROTO (*, **) a) bitstuff error
b) no response packet received within the
prescribed bus turn-around time
c) unknown USB error

-EILSEQ (*, **) a) CRC mismatch
b) no response packet received within the
prescribed bus turn-around time
c) unknown USB error

-ETIMEDOUT (**) No response packet received within the prescribed
bus turn-around time. This error may instead be
reported as -EPROTO or -EILSEQ.

由此我们可以判断,这个错误与 usb 设备的超时有关。报告这个错误的地方在drivers/usb/core/hub.c中的hub_port_init部分,由于 usb_get_device_descriptor获取 usb 设备信息的时候产生了超时。这样基本可以确定三种情况,1、usb 设备及接口有问题;2、usb core有问题;3、usb driver有问题。
我们可以很容易地排除1和2的可能性,问题应该在usb driver implement部分造成的。2.6的usb driver把usb规范中对usb接口的操作集中到了core里面,针对不同设备的implement分别归为host、gadget、storage 等。基本确定问题就在ohci-s3c2410.c里。

跟踪进入ohci-s3c2410.c,这里面主要完成s3c2410 usb host设备的初始化工作,包括电源、时钟、寄存器等。

其实很多问题在互联网上已经被遇到和解决,我们要做的就是多参考别人的成功经验,这样可以节省时间,同时能够帮助我们找到一些思路。借助google这双强大的翅膀,我们来看看能找到什么:

http://www.linux-usb.org/FAQ.html#ts6

Q: Why doesn’t USB work at all? I get “device not accepting address”.

A: You may have some problem with your PCI setup that’s preventing your USB host controller from getting hardware interrupts. When Linux submits a request, but never hears back from the controller, this is the diagnostic you’ll see. To see if this is the problem, look at /proc/interrupts to see if the interrupt count for your host controller driver ever goes up. If it doesn’t, this is the problem: either your BIOS isn’t telling the truth to Linux (ACPI sometimes confuses these things, or set

Marin说PCB之LPDDR5的布线注意事项--01 以上就是本期所有内容了,有些是通用的LPDDR5的设计准则,有的是针对单板的设计规则,严格意义说是没有哪一种规则是完全适用的LPDDR5的 通用规则的,不同的单板可能板厚,板材,层数,SOC以及DDR的型号都是不同的,一般的做法就是严格按照SOC手册上的LPDDR5的要求加上仿真同事给的建议修改优化就好了,我们下期文章不见不散。我们知道想要做好一个LPDDR颗粒,需要考虑的是因素有很多例如,电源完整性,信号完整性,层叠的设计,布局的摆放,布线的合理规划,去耦电容的摆放等等。 阅读详情

相关推荐

【气动弹性实战】基于Nastran与Patran的机翼颤振仿真:从模态分析到临界速度预测

本文详细介绍了基于Nastran与Patran的机翼颤振仿真全流程,从气动弹性问题解析、机翼建模技巧到模态分析与临界速度预测。通过实战案例展示如何利用SOL 145求解器进行颤振分析,并分享网格划分、材料属性设置等工程经验,帮助工程师有效解决飞行器设计中的气动弹性耦合问题

weixin_33725722的博客 558

热插拔USB 设备出现usb 1-1: device descriptor read/64, error -110错误

设备名:中兴MF190     Linux Kernel版本:3.4     错误名:usb 1-1: device descriptor read/64, error -110                     usb 1-1: device not accepting address 33, error -110                     usb 1-1: devi

huangxiaohu_coder的专栏 4万+

最新更新!!地级市+省级地方债务余额统计数据(2006-2023年)

## 01、数据简介省级地方债务余额是省级政府及其所属机构在某一特定时点(如年末)所欠的债务总额。这些债务通常源于地方政府的各类经济活动和项目发展,如基础设施建设、公共服务提供等,当这些活动所需的资金超出地方政府的自有资金能力时,就会通过发行债券、向银行贷款等方式筹集资金,形成债务。地区(市级)地方债务余额是市级政府及其所属机构在某一特定时点所欠的债务总额。这些债务同样源于地方政府的各类经济活动和项目发展,但相对于省级政府的债务规模可能较小,但其债务风险也可能更为突出。参考文献:[1]钱一蕾,陈姗姗,钟宁桦,等.地方政府债券对城投债券发行规模与定价的影响[J].财贸经济,2023,44(07):22-38.[2]段勤勤,冷雨晴.地方政府债务风险评估[J].华北金融,2023,(11):82-93.[3]程昊,阎晚晴.关于化解地方债务问题的政策建议[J].国际金融,2022,(05):47-51.数据名称:地级市+省级地方债务余额统计数据数据年份:2006-2023年## 02、相关数据地级市 年份 地方政府债-债券数量(只) 地方政府债-债券余额(亿) 地方政府债-债券余额占比(%) 城投债-债券数量(只) 城投债-债券余额(亿) 城投债-债券余额占比(%) “总计-债券数量(只) ” 总计-债券余额(亿) GDP(亿) 公共财政收入(亿) 公共财政支出(亿) 债务负担(%) 负债率(%) 财政自给率(%)省份 年份 地方政府债-债券数量(只) 地方政府债-债券余额(亿) 地方政府债-债券余额占比(%) 城投债-债券数量(只) 城投债-债券余额(亿) 城投债-债券余额占比(%) “总计-债券数量(只) ” 总计-债券余额(亿) GDP 公共财政收入 公共财政支出 债务负担(%) 负债率(%) 财政自给率(%) GDP(亿元)

centos6.5最小化安装后,登陆报:centos usb 1-1.2:device descriptor read/64 error-110

使用华硕HB85的主板+ssd+i5 4460,安装centos 6.5 最小化安装后,登陆报:centos usb 1-1.2:device descriptor read/64 error-110 问题发生的可能原因:USB相关的模块是ehci_hcd模块没有加载正常,也就是说操作系统在识别USB缺少主板BIOS程序的识别支持处理方案,进入BIOS的设置,把关于USB设置中关于EHCI参数启用

maweiba163的专栏 6758

ubuntu启动非常慢,报device descriptor read/64, error -110 的解决办法

每次启动很慢,卡在黑屏界面,很久才能进入登陆界面。 解决方法: 关机,拔掉电源,插上电源,开机,OK了 非常奇怪的问题,不知道怎么被我遇到了

bbfavorites的博客 9367

suspend to ram过程中报错usb - device descriptor read/64

usb - device descriptor read/64, error -110 - Stack Overflowhttps://stackoverflow.com/questions/13653692/device-descriptor-read-64-error-110从网上描述来看大概率是因为休眠过程中供电不足导致

sg656720274的博客 1366

USB-HOST调试纪实

Linux下的硬件驱动——USB设备(上)(驱动配置部分) http://www.ibm.com/developerworks/cn/linux/l-usb/index1.html Linux下的硬件驱动——USB设备(下)(驱动开发部分) http://www.ibm.com/developerworks/cn/linux/l-usb/index2.html

gokingc的技术岛 1万+

linux usb host复位,Linux USB Host-Controller的初始化代码框架分析

Linux USB Host-Controller的初始化代码框架分析http://blog.csdn.net/zkamiusb_hcd_omap_probe (const struct hc_driver *driver) (dev/ohci/ohci-omap.c)在模块初始化时被platform_driver_register()调用,用来初始化与ohci_hcd_omap_driver相匹...

weixin_28713299的博客 586

linux usb代码,Linux USB Host Controller的初始化代码框架分析

usb_hcd_omap_probe (const struct hc_driver *driver) (dev/ohci/ohci-omap.c)在模块初始化时被platform_driver_register()调用,用来初始化与ohci_hcd_omap_driver相匹配的usb主控制器.->usb_create_hcd(driver); 创建一个代表host-controller...

weixin_29533233的博客 320

【notes8】usb

USB2.0协议中枚举过程:一个高速 USB 设备刚插上时,先假装自己是全速设备,然后通过一段"暗号"(Chirp)和主机确认彼此都支持高速后,再切换到真正的高速模式。如下是typec接口,usb2.0协议只关心红色的框。

持续更新ing... 26

Linux usb 4. Device 详解

文章目录1. 简介2. Platform Layer2.1 Platform Device2.2 Platform Driver3. UDC/Gadget Layer3.1 Gadget Bus3.2 Gadget Device3.2.1 Endpoint Alloc3.2.2 EndPoint Access3.2.3 UDC Control3.3 Gadget Driver (Configfs)3.3.1 configfs 使用3.3.2 configfs 层次结构3.3.3 gadget driver3

pwl999的博客 6689

Linux USB Host-Controller的初始化代码框架分析【转】

转自:http://blog.csdn.net/zkami/article/details/2496770 usb_hcd_omap_probe (const struct hc_driver *driver) (dev/ohci/ohci-omap.c)在模块初始化时被platform_driver_register()调用,用来初始化与ohci_hcd_omap_driver相匹配的usb...

weixin_34159110的博客 111

linux usb drivers开发

Linux下的硬件驱动——USB设备(上)(驱动配置部分) http://www.ibm.com/developerworks/cn/linux/l-usb/index1.html   Linux下的硬件驱动——USB设备(下)(驱动开发部分) http://www.ibm.com/developerworks/cn/linux/l-usb/index2.html

ljzcom的专栏 1万+

USB 设备识别错误

一步一步解决 kernel 2.6 usb host driver 发布时间:2007-01-01 23:21:00  来源: ChinaUnix博客    作者: ChinaUnix博客    点击:291 (以下讨论基于kernel 2.6.11,ARMArray s3c2410,arm-linux-gcc 3.4.1 ) ===============================...

... 2346

usb device address error 110

ubuntu失灵了,怎么都起不来,报一堆错误usb device descriptor read/64, error 110......重启,换kvm的接口,usb键盘鼠标。。。终于在试了下面这个方法之后,Ubuntu成功的启动登陆进入正常轨道。特转载整篇文章留作纪念: How to fix "device not accepting address" error ←→ If L...

weixin_30527551的博客 1113

usb linux110错误,qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1...

上位机:ubuntu14.04 64bit下位机:qq2440交叉编译器:arm-linux-gcc 3.4.1下位机使用的linux内核版本:kernel2.6.131.插入u盘时错误信息如下:[root@FriendlyARM /home]# usb 1-1: new full speed USB device using s3c2410-ohci and address 6usb 1-1: ...

weixin_28686771的博客 1153

device descriptor read/64, error -71 - USB problem

[SOLVED] device descriptor read/64, error -71 - USB problem 在插入SD卡时,无法识别,出现如下错误:  device descriptor read/64, error -71 解决方法: 1.设置old_scheme_first     echo Y > /sys/module/usbcore/paramete

kenny的专栏 2万+
上一篇: linux内核调试指南
下一篇: ohci-s3c2410代码注释解析
willand1981
博客等级 码龄17年 136粉丝 31原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值