气质,源于心灵的自信!
全部博文(204)
发布时间:2013-01-13 13:32:55
下面看下三大控制器的配合: /*在设备控制器注册的最后,调用了msm_otg_set_peripheral ()*/static int msm_otg_set_peripheral(struct otg_transceiver *xceiv, struct usb_gadget *gadget){ struct msm_otg *dev = container_of(xceiv, struct msm_otg, otg); .................... dev->otg.gadget = gadget;//初始化收发器 pr_i......【阅读全文】
发布时间:2013-01-12 22:57:09
三大控制器已经分析一个啦,下面接着第一篇分析,这篇分析下usb主机控制器设备与驱动的注册: //代码路径Devices-msm8x60.c (arch\arm\mach-msm)//主机控制器平台设备的注册#define IORESOURCE_MEM 0x00000200#define IORESOURCE_IRQ 0x00000400 static u64 dma_mask = 0xffffffffULL;#ifdef CONFIG_USB_EHCI_MSM_72Kstatic struct resource resources_hsusb_host[] ......【阅读全文】
发布时间:2013-01-12 21:55:17
该系列博文是基于高通8260,android版本为相对较新的Android4.0.4,由于高通的整个android usb子系统是一个整体,所以有一个框架支撑着整个体系结构。下面先大致说下该框架的结构: 该框架有以下三部分组成: 1、otg控制器。 2、主机控制器。 3、设备控制器。 三个控制器中,其中otg控制器是核心,控制着整个的调度过程,决定在某个时候,是启动主机控制器还是设备控制器。 1、当启动主机控制器的时候,就是我们的设备作为主机,例如:我们的手机上面可以接U盘,数码相机等,直接可以读取U盘上面的数据。 2、当启动设备控制器的时候,就是我们的设备作为外设,例如: 我......【阅读全文】
shangbaogen2015-07-27 22:29
jeff_gang:大牛,我最近再看Linux驱动,看懂了Linus设备驱动模型,看了看i2c子系统、dm9000驱动等等。对内核也有一定的了解,现在想从事这方面的工作,有点担心没这方面的项目经验,我之前是做单片机开发的,现在用stm32跑跑小系统,比如ucosii、freertos,工作中要用到freertos,我该再学点什么东西才能顺利的转到驱动上呢?
建议你深入的学习linux内核,如果你的基础不够好的话,可以跟着韦东山的那套免费视频教程(还有书嵌入式linux完全开发手册)先把基础打牢!说实话,学linux这玩意没啥捷径,看的东西多,慢慢时间久了就理解啦。
推荐你一本书《深入linux内核驱动机制》,陈学松写的,现在正在写第二版,等过一段该出版啦,第一版网上你可以下到pdf,我认为他算是国内linux写书写的最好的啦!还有毛德操的那本《linux内核情景分析》也是国内难得的好书,就是版本老了一点,不过对于内核的基本原理还是没变。
haijian01142013-11-27 09:52
shangbaogen:usb本身的传输速率估计优化不了啦,因为都是usb spec规定好的,最快的也就是等时(isochronous)传输,不用应答。如果是大容量存储的话你可以试图优化块设备读写的流程,来提高速率
一般从PC拷贝文件到mass storage的话 速率为4MBps算正常吗
回复 | 举报shangbaogen2013-11-26 17:49
haijian0114:老大 知道如何提高USB的传输速率吗
usb本身的传输速率估计优化不了啦,因为都是usb spec规定好的,最快的也就是等时(isochronous)传输,不用应答。如果是大容量存储的话你可以试图优化块设备读写的流程,来提高速率
回复 | 举报