AM335x USB 调试的经验小结

Yaoming

硬件调试

• 首先,将USB设备放到PC等设备上以确认该设备本身是否正常。

• 可以根据AM335x 的Schematics Check list进行第一步的检查:

– /index.php/AM335x_Schematic_Checklist#USB

• TI FAE 的经验总结:

– /question_answer/dsp_arm/sitara_arm/f/25/t/471

99.aspx

• 其他方法:

– 检查vbus是否上电,排除掉电源设计的问题。

– 查看ID脚是否配置正确。

– 串一个USB HUB到靠近AM335x侧,再进行测试。

• 一次可以初步判断是否是由于信号完整性的原因造成信号不稳定。

– Babble Event,一般为信号完整性问题,可以先用HUB进行调试,也可以通

过软件对USB降速(从USB 2.0 降到USB 1.1)进行调试。如果要从根本上

解决,一遍需要重新layout。

软件调试 -- Linux/Android/Starterware

一般调试流程:

– 首先,用最新的SDK进行调试,看是否问题已经解决。

– 获取USB driver的全部log

• 在Linux/Android中,可以在终端输入dmesg获取。

• 在Starterware中,没有log机制,所以是没有的,可以用JTAG 进行在线调试,可以

参考我以前的总结。

Log机制是进行初步判断问题再哪里的基本步骤。

– 判断是否是Babble Event。如果有,如前所述,需要硬件级的调试,或者绕

过去。

• 对于Linux,可以直接到dmesg 中查看是否有。

• 对于Starterware,需要连上JTAG,进行调试,是否状态为

USB_EVENT_BABBLE_ERROR。

• 主要的绕过方法:

– 可以尝试将USB 2.0降速到USB 1.1。

– 用PIO mode代替DMA mode。

– 用USB 总线分析仪进行调试。

• 这个方法主要是获取USB协议的实现情况的时序图,然后将其交个相应的专家进行

分析调试。

USB 2.0 降速到1.1的方法

• 在Linux/Android中:

– 在kernel/drivers/usb/musb/musb_core.c中

musb_writeb(regs, MUSB_POWER, MUSB_POWER_ISOUPDATE

| MUSB_POWER_SOFTCONN

- | MUSB_POWER_HSENAB

+ /*| MUSB_POWER_HSENAB */

/* ENSUSPEND wedges tusb */

/* | MUSB_POWER_ENSUSPEND */

);

• 在Starterware中:

– 可以参考/index.php/StarterWare_USB中:

Note: The MSC Host class is by default configured for Hi-Speed DMA transfer

mode. For Full-Speed mode, define 'USB_MODE_FULLSPEED' in 'Drivers',

'USBLib' and 'Application' make files.

USB DMA/PIO 模式切换的方法

• 对于Linux/Android

– 可在menuconfig中配置,可参考

/index.php/Usbgeneralpage

am335x usb linux配置,AM335xUSB调试的经验小结.PDF相关推荐

  1. am335x usb linux配置,AM335X Usb 配置设备 RNDIS

    首先:打开linux 内核配置菜单: $ make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm menuconfig 在主菜单选择 Device D ...

  2. linux coredump配置与调试

    linux coredump配置与调试 Linux Core Dump 配置与调试 1.core文件的生成开关和大小限制 --------------------------------- 1)使用u ...

  3. redhat7图形界面网卡设置_Redhat Linux Interprise基本网络配置与调试

    [实验4] Redhat Linux Interprise基本网络配置与调试 一.实验目的: 1) 熟练掌握Red Hat Linux 下的基本网络参数配置 2)熟练掌握Red Hat Linux 下 ...

  4. LINUX平台高级调试和优化(2018上海站)

    关于LINUX的资料浩如烟海,学习LINUX的途径也有很多,如何才能在比较短的时间里获得一个比较大的提升呢?<软件调试高级研习班>将与各位LINUX爱好者共同探索这个问题的最佳答案.本着生 ...

  5. pycharm 远程调试图文_Pycharm配置远程调试的图文步骤

    Pycharm配置远程调试方法总结 动机 一些bug由于本地环境和线上环境的不一致可能导致本地无法复现 本地依赖和线上依赖版本不一致也可以导致一些问题 有时一些bug跟数据相关,本地数据无法和线上数据 ...

  6. [Linux]core文件调试方法

    来源: shaovey的专栏 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行 ...

  7. clion 远程连接linux服务器 开发调试

    Linux 配置 为了使用CLion 进行开发调试Linux相关的软件版本推荐如下 Cmake 3.x 以上 gdb 7.8.x 以上 本次配置使用的Linux 版本为Centos 7.4 mini ...

  8. 我在学python-我在大学毕业后学习Linux、python的一些经验

    我在大学毕业后学习Linux.python的一些经验 掐指一算,自己已经毕业快半年了,这半年莫名其妙进外包圈子溜达了一圈,有幸退的早还是正常干一些事情吧,外包终究不是太适合刚入社会的毕业生,今天想把自 ...

  9. 我在大学毕业后学习Linux、python的一些经验

    我在大学毕业后学习Linux.python的一些经验 掐指一算,自己已经毕业快半年了,这半年莫名其妙进外包圈子溜达了一圈,有幸退的早还是正常干一些事情吧,外包终究不是太适合刚入社会的毕业生,今天想把自 ...

最新文章

  1. java.lang.NoSuchMethodException 错误
  2. ElasticSearch(3)-安装kibana
  3. Win32 控件篇(3)
  4. 新华三,定义服务器虚拟化市场新格局
  5. spring: 使用Spring提供的JDBC模板(使用profiles选择数据源/使用基于JDBC驱动的数据源)...
  6. matlab去除坏点,图像处理之坏点校正及源码实现
  7. 实现Profile购物车的匿名用户迁移
  8. python的render函数_带函数return的Flask render_模板
  9. reverse函数:反转容器内容
  10. CSS3弹性盒子Flex
  11. 入门机器学习(十二)--课后作业解析-偏差与方差(Python 实现)
  12. MySQL中幻读是如何解决的
  13. [论文导读]Restoring and attributing ancient texts using deep neural networks深度学习复原古希腊铭文
  14. 电总协议串口调试助手
  15. Hive分区修复命令MSCK介绍与使用
  16. ScriptManager.RegisterStartupScript()方法
  17. PCI总线---深入理解PCI总线
  18. 解决png图片在IE6下的透明问题
  19. 深入理解Java之线程池
  20. ffmpeg编解码应用

热门文章

  1. Vue学习总结(全)
  2. 最新QS世界大学排名揭榜!清华超越耶鲁、哥大
  3. C#写的esop系统电子作业指导书系统
  4. select动态绑定vue.js
  5. 计算机必须启动两次,为什么电脑必须开机2次才能正常启动该如何处理
  6. python画二次函数图像的顶点_二次函数的图像及画法
  7. BZOJ4304 : 道路改建
  8. 计算机会计核算要求有哪些内容,会计电算化核算软件操作有什么要求
  9. WEBRTC 录音与会议录音
  10. 计算机高新技术学什么,全国计算机信息高新技术证书是什么?如何考?