Advertisement

Android Linux开发中USB错误-device descriptor read/64, error -62的解决办法总结

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文档总结了在Android Linux环境下遇到的USB设备描述符读取错误(-62)问题,并提供详细的解决方案。 本段落讨论了在Android Linux开发过程中遇到的USB错误问题,特别是“device descriptor read/64, error -62”的解决方法。作者通过分析内核代码发现,该错误是由于USB Host Controller Driver(OHCI)在启动时无法正确初始化硬件导致的。为了解决这个问题,作者提出了一种修改OHCI驱动代码的方法:将s3c2410_start_hc函数的内容修改为static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd){ struct s3c2410_hcd_info *info = dev->dev platform_data; //====== unsigned long upllvalue = (0x3的代码。这种方法已经被证明可以有效地解决上述USB错误问题。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Android LinuxUSB-device descriptor read/64, error -62
    优质
    本文档总结了在Android Linux环境下遇到的USB设备描述符读取错误(-62)问题,并提供详细的解决方案。 本段落讨论了在Android Linux开发过程中遇到的USB错误问题,特别是“device descriptor read/64, error -62”的解决方法。作者通过分析内核代码发现,该错误是由于USB Host Controller Driver(OHCI)在启动时无法正确初始化硬件导致的。为了解决这个问题,作者提出了一种修改OHCI驱动代码的方法:将s3c2410_start_hc函数的内容修改为static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd){ struct s3c2410_hcd_info *info = dev->dev platform_data; //====== unsigned long upllvalue = (0x3的代码。这种方法已经被证明可以有效地解决上述USB错误问题。
  • 完全修复USB-device descriptor read/64, -62
    优质
    简介:本指南提供解决USB设备连接电脑时出现“Device Descriptor Read/64, Error -62”的故障方法,包括硬件检查、驱动程序更新及系统设置调整等步骤。 要彻底解决USB错误,在插入USB设备后会报如下错误: ``` / # usb 1-1: new full speed USB device using s3c2410-ohci and address 2 usb 1-1: device descriptor read/64, error -62 usb 1-1: device descriptor read/64, error -62 usb 1-1: new full speed USB device using s3c2410-ohci and address 3 usb 1-1: device descriptor read/64, error -62 usb 1-1: device descriptor read/64, error -62 usb 1-1: new full speed USB device using s3c2410-ohci and address 4 usb 1-1: device not accepting address 4, error -62 usb 1-1: new full speed USB device using s3c2410-ohci and address 5 usb 1-1: device not accepting address 5, error -62 hub 1-0:1.0: unable to enumerate USB device on port 1 ``` 以上是错误信息的具体内容,需要根据此信息来排查和解决USB设备连接问题。
  • TomcatError listenerStart
    优质
    本文章主要介绍在使用Apache Tomcat时遇到Error listenerStart错误的原因及解决方案。通过详细步骤帮助开发者快速定位并解决问题。 按照步骤来,这个问题就会解决。你懂的。
  • USB USB 1-1: 设备描述符读取/64 -62
    优质
    本教程提供了解决USB设备连接时遇到的“设备描述符读取”错误(代码-62)的具体步骤,帮助用户顺利识别并修复问题。 彻底解决USB错误:`usb 1-1: device descriptor read64, error -62` ### 问题概述 本段落详细分析并提供了解决一个常见于Linux系统中的USB错误——“device descriptor read64, error -62”的方法,该错误通常出现在使用s3c2410或s3c6410芯片组的设备上。此错误表明在读取USB设备描述符时发生了超时问题,并显示为-62(ETIMEOUT)。 ### 错误解析 根据提供的日志信息,在插入USB设备后,系统会报告以下错误: ``` usb 1-1: device descriptor read64, error -62 ``` 此错误代码表示定时器过期。具体而言,这意味着在规定的总线周转时间内未接收到响应包。依据Linux内核文档中的解释,这种类型的超时问题可能被报告为-EPROTO或-EILSEQ。 ### 解决方案 要解决这个问题,我们需要深入分析内核源码,并对相关驱动进行调整。以下是逐步解决问题的方法: #### 分析代码 首先定位到关键文件路径: - **目录**: `kernel26_hdriversusbhostohci-s3c2410.c` 接下来关注的是`ohci-s3c2410.c`中的`s3c2410_start_hc`函数。此函数的主要作用是在初始化前确保USB寄存器得到适当的高频率设置,之后恢复为标准的48MHz频率。 ```c static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd) { struct s3c2410_hcd_info *info = dev->dev.platform_data; unsigned long upll_value = (0x38 << 12) | (0x02 << 4) | (0x01); unsigned long upll_value1 = (0x38 << 12) | (0x02 << 4) | (0x02); dev_dbg(&dev->dev, s3c2410_start_hc:n); __raw_writel(upll_value, S3C2410_UPLLCON); mdelay(20); __raw_writel(upll_value1, S3C2410_UPLLCON); mdelay(20); clk_enable(clk); mdelay(10); if (info != NULL) { info->hcd = hcd; info->report_oc = s3c2410_hcd_oc; if (info->enable_oc != NULL) { (info->enable_oc)(info, 1); } } } ``` #### 修改建议 根据上述分析,可以推测问题可能出在USB主机时钟(48MHz)未能正确启动。因此可以通过以下方式尝试修复: 1. **检查时钟配置**: - 确保初始化之前设置了正确的时钟频率。 - 使用`__raw_writel`函数设置`S3C2410_UPLLCON`寄存器值。 2. **延时优化**: - 在更改时钟配置后增加适当的延时(`mdelay`),以确保时钟稳定后再继续执行后续操作。 3. **复审其他初始化步骤**: - 确认调用了正确的函数来启用时钟。 - 检查端口配置等是否正确完成。 ### 实施修改 根据上述分析,在`s3c2410_start_hc`函数中添加额外的日志记录,以便更好地理解问题。例如,可以增加每个关键步骤的状态日志,并确认时钟启用状态。 此外,还可以尝试延长延时时间以确保在继续执行其他操作前时钟已经稳定下来。比如将延时从20毫秒调整到50毫秒或更长。 ### 测试验证 完成上述修改后重新编译内核并在目标设备上测试USB功能。如果一切正常,错误-62应该不再出现,并且USB设备可以正常使用。 ### 总结 本段落详细分析了Linux系统中“usb 1-1: device descriptor read64, error -62”错误的原因及解决方案,通过仔细检查并修改相关内核驱动代码能够有效解决此类问题。这将有助于提高系统的稳定性和兼容性。
  • PHP语Parse error: syntax error, unexpected T_VAR
    优质
    本文提供了解决PHP中常见的“Parse error: syntax error, unexpected T_VAR”错误的方法和建议,帮助开发者快速定位并修复代码中的变量声明问题。 实际上这个问题很容易解决。最近我在学习JavaScript的时候学会了如何使用`var`关键字来声明变量。 在PHP里,并不需要用到`var`去声明变量的,不过当一个变量被定义为类的一个成员时,使用`var`是没问题的。但是,在外部尝试这样做会引发解析错误,比如下面的信息: ``` Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\pagep2\pageUtil.inc on line 34 ``` 这个问题发生在创建一个名为 `Person` 的类,并且该类包含一个叫做 `address` 的成员变量,它是一个 `Address` 类的对象。错误信息提示在第34行出现了语法错误。 #### 错误分析 这里给出的示例是在文件 person.php 中出现上述解析错误的情况。具体代码如下: ```php name.
    ; echo Road : .$this->address->road.
    ; } } var $p = new Person(); $p->address = new Address(); $p->address->setRoad(Changchun Road); $p->name = Shirdrn; $p->display(); ?> ``` #### 错误原因 错误的原因在于`person.php`中使用了 `var` 关键字来声明 `$p` 变量。在PHP里,变量的声明只需要用到美元符号($)即可,并不需要额外的关键词如 var 。因此,在类外部使用 `var $p = new Person();` 会导致语法错误。 #### 解决方案 为了修正这个问题,需要去掉多余的 `var` 关键字: ```php name.
    ; echo Road : .$this->address->road.
    ; } } $p = new Person(); $p->address = new Address(); $p->address->setRoad(Changchun Road); $p->name = Shirdrn; $p->display(); ?> ``` #### 其他建议 除了直接删除 `var` 关键字外,还有其他一些技巧可以帮助解决类似的问题: 1. **遵循代码规范**:确保你的编码风格一致。 2. **使用现代PHP特性**:考虑采用最新的 PHP 特性如类型声明、匿名函数等来优化你的代码。 3. **利用IDE工具**:通过集成开发环境(IDE)提供的语法高亮和错误检查功能,可以更早地发现这类问题。 #### 结论 在PHP中正确使用变量声明很重要。`var`关键字仅用于类成员的定义,并且即使在这种情况下也不是必须使用的。在外部环境中声明变量时应直接采用 `$` 符号来完成。遵循这些规则有助于避免“Parse error: syntax error, unexpected T_VAR”等错误,同时提高代码质量和可维护性。
  • Android常见9个
    优质
    本文章列举了在Android应用开发过程中常见的九种错误,并提供了详尽的解决方案和预防措施。适合开发者参考学习。 本段落主要介绍了Android开发过程中常见的九个错误及其解决方法,这些内容是通过整理各种资料并结合热心网友的讨论总结而来的。对于需要参考这类问题的开发者来说,这篇文章提供了有价值的指导信息。
  • VSCode Could not read source map for file...
    优质
    本文提供了解决Visual Studio Code中“Could not read source map for file...”错误的方法,帮助开发者快速定位和解决问题。 解决 VSCode 中出现的 Could not read source map for file... 报错的方法如下: 1. 确认源代码文件路径是否正确。 2. 检查是否有正确的 sourcemap 文件存在,并且其路径设置是正确的。 3. 尝试更新或重新安装相关的扩展,有时候问题可能出在这些工具上。 4. 清除 VSCode 的缓存数据或者尝试重启编辑器以排除临时性的问题。 以上步骤可以帮助解决该报错。如果仍然存在问题,可以查阅官方文档或其他技术社区寻求进一步的帮助。
  • Android 安装:INSTALL_FAILED_CONFLICTING_PROVIDER
    优质
    当在Android设备上安装应用程序时遇到INSTALL_FAILED_CONFLICTING_PROVIDER错误,这通常表示存在冲突的内容提供者。本文详细介绍了此问题的原因及有效的解决方案。 本段落主要介绍了如何解决Android安装过程中遇到的问题:INSTALL_FAILED_CONFLICTING_PROVIDER的解决方案。需要相关资料的朋友可以参考此内容。
  • 1935
    优质
    本文章提供了一种解决错误1935的有效方法,详细解释了产生该问题的原因以及具体的修复步骤。 本方法将解决软件安装过程中出现的error1935问题。谢谢。