1.软件系统架构



USB主控制器,芯片里面自带了得。为了让USB主控制器运行,所有有USB主控制器驱动。

USB核心,内核提供好的USB协议之类的。USB设备驱动是针对插到接口的设备去工作的软件。

主机插得是HOST接口





开发板插的是SLAVE接口

Gadget驱动:让USB设备工作成特殊的状态(网卡,串口等)



2.USB-MassStorage驱动体验

在tq2440-kernel中选择Device Drivers -> USB support ->support for host…->OSCI HCD support(usb1.0的协议)

加载上U盘的驱动->USB Mass Storage support(USB设备驱动)



因为U盘比较特殊,我们还需要配置一些其他信息:General setup --->[*] Configure standard kernel features (for small systems) --->[*] Support for hot-pluggable devices (NEW)

hot-pluggable热插拔



U盘属于块设备、磁盘设备,选择支持块设备选项:Device Drivers --->Block devices ---><*> Low Performance USB Block driver

同时选择SCCI选项:Device Drivers --->SCSI device support ---><*> SCSI device support<*> SCSI disk support<*> SCSI generic support



U盘必须还要有文件系统的支持:File systems --->DOS/FAT/NT Filesystems --->

   <*> MSDOS fs support 

   <*> VFAT (Windows-95) fs support 

   (936) Default codepage for FAT 

   (cp936) Default iocharset for FAT
Partition Types --->
  [*] PC BIOS (MSDOS partition tables) support
Native Language Support --->
 <*> Simplified Chinese charset (CP936, GB2312)
 <*> NLS UTF8

重新编译后,可以把U盘插到开发板中去。

  1. mount /dev/uba /mnt/

出错了,暂时找不到原因。估计和yaffs文件系统有关系:

点击(此处)折叠或打开

  1. yaffs: dev is 188743680 name is "uba"
  2. yaffs: passed flags ""
  3. yaffs: Attempting MTD mount on 180.0, "uba"
  4. yaffs: dev is 188743680 name is "uba"
  5. yaffs: passed flags ""
  6. yaffs: Attempting MTD mount on 180.0, "uba"
  7. mount: mounting /dev/uba on /mnt failed: Invalid argument

3.RNDIS驱动体验

把USB口模拟成网口

Device Drivers ->USB support ->USB gadget support(设备控制器驱动)

USB Gadget Drivers

Ethernet Gadget (with CDC Ethernet support)

这只好后需要重新编译内核的模块

  1. make ARCH=arm CROSS_COMPILE=arm-linux-
  2. make uImage ARCH=arm CROSS_COMPILE=arm-linux-

在开发板中设置usb的网络IP

  1. ifconfig usb0 192.168.1.30

在虚拟机中能PING通。

linux-usb软件系统架构的更多相关文章

  1. Linux usb子系统(一):子系统架构

    一.USB协议基础知识   前序:USB概念概述 USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB)  USB2.0版本速度480Mbps(高速USB). ...

  2. Linux USB驱动学习总结(一)---- USB基本概念及驱动架构

    USB,Universal Serial Bus(通用串行总线),是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.是应用在PC领域的接口技术.USB接口支持设备的即插即用和热插拔功能.USB是 ...

  3. 【转】USB协议架构及驱动架构

    1. USB协议 1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器.USB主机控制器包含硬件.软件和固件一部分. 1.2 USB设备系统 ...

  4. linux i2c驱动架构-dm368 i2c驱动分析

      linux i2c驱动架构-dm368 i2c驱动分析   在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-davinc ...

  5. [国嵌攻略][163][linux-usb软件系统架构]

    软件系统架构 1.主机端软件架构 USB设备驱动->USB核心->USB主控制器驱动->USB主控制器 2.设备端软件架构 Gadget驱动->Gadget API->U ...

  6. linux USB 编程

    Linux USB架构 可以看出一个USB体系需要4个驱动:USB设备驱动(主要编写这部分),USB主控制器驱动,Gadget驱动,UDC驱动. USB主要有4个功能: MassStorage:大容量 ...

  7. 【转帖】Linux 内核系统架构

    Linux 内核系统架构   描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...

  8. linux usb驱动记录(一)

    一.linux 下的usb驱动框架 在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧.linux usb 驱动的总体框架如下图所示:   从主机侧看usb驱动可分为四层: ...

  9. 【Linux开发】Linux V4L2驱动架构解析与开发导引

    Linux V4L2驱动架构解析与开发导引 Andrew按:众所周知,linux中可以采用灵活的多层次的驱动架构来对接口进行统一与抽象,最低层次的驱动总是直接面向硬件的,而最高层次的驱动在linux中 ...

随机推荐

  1. iOS系统日历选择问题

    参考:https://blog.csdn.net/lg_sun/article/details/78913064 -(NSString *)getTimeToken{ NSDateFormatter ...

  2. PHP curl_multi_getcontent函数

    curl_multi_getcontent — 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的文本流 说明 string curl_multi_getcontent ( r ...

  3. 用闭包解决 js 循环中函数变量暂存问题

    需求:有一个数组,根据数组的值渲染对应的数字div,单击对应的div 在控制台打印对应的数字.如点击1,控制台打印1. 问题: 不管点击哪个值 打出来都是4 代码如下 <!DOCTYPE htm ...

  4. appium desktop 定位弹出框时报错

    今天在定位真机APP的时候,弹出框的内容死活定位不到,只能定位到背景的内容. 问题:appium desktop 定位弹出框时报错,定位不到,只能定位到背景的内容. 分析: 定位工具找不到弹出框的元素 ...

  5. python中%代表什么意思?

    http://zhidao.baidu.com/link?url=MQLeRPckNfavTJYvMQbVj_pdNn5SSadtFvfEk7nNCusPcPW4T1O45esIuttuBW3EnSB ...

  6. spring boot 尚桂谷学习笔记04 ---Web开始

    ------web开发------ 1.创建spring boot 应用 选中我们需要的模块 2.spring boot 已经默认将这些场景配置好了 @EnableAutoConfiguration ...

  7. ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

    https://blog.csdn.net/ztf312/article/details/50708302 报错原因: Numpy对逻辑表达式判别不清楚,它可以返回False如果等号两边两个式子是数值 ...

  8. linux 部署系统通过SecureCRT启动tomcat 控制台中文乱码

    查资料又是查了半天 首先 查看linux 当前系统字符集命令 echo $LANG 查看linux 当前系统语言 locale 网上说的又是下中文包,又是改临时语言,这些不能一概而论,我也觉得我不是中 ...

  9. Scrapy框架: 通用爬虫之CSVFeedSpider

    步骤01: 创建项目 scrapy startproject csvfeedspider 步骤02: 使用csvfeed模版 scrapy genspider -t csvfeed csvdata g ...

  10. Python开发简介

    年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 . 最新的TIOBE排行榜,Python已经占据世界第四名的位置, Python崇尚优美 ...