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. 【KeepAlive】Http--Keep-Alive及Tcp--Keepalive

    Keep-Alive模式: Http协议采用“请求-应答”模式,当使用普通模式,即非Keep-Alive模式时,每个请求/应答,客户端和服务器都要新建一个连接,完成之后立即断开连接:当使用Keep-A ...

  2. 进程管理工具uptime,top,htop

    进程管理工具uptime,top,htop 一uptime 显示当前时间,系统已启动的时间.当前上线人数,系统平均负载(1.5.10分钟的平均负载,一般不会超过1) 系统平均负载:指在特定时间间隔内运 ...

  3. LeetCode算法题

    1.给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 时间复杂度待优化 class Solution { public int findLength(int[] A, in ...

  4. flutter网格布局之GridView组件

    前面总结了使用ListView来实现列表,但是,有的时候,数据量很大,需要使用矩阵方式排列才能更清晰的展示数据,在flutter中,可以使用网格列表组件GridView来实现这个布局. GridVie ...

  5. C#后台获取post参数

    public static string GetQueryString(string key) { if (HttpContext.Current.Request[key] == null) retu ...

  6. php与js互相调用

    php中调用js <?php echo '<script>var yearid=$("#yearId").val()</script>'; echo ...

  7. Bootstrap 学习笔记3 路径分页标签和徽章组件

  8. FileInputStream_FileOutputStream

    Writer的基本方法 //向输出流中写入一个字符数据,该字节数据为参数b的低16位 void write(int c) throws IOException //将一个字符类型的数组中的数据写入输出 ...

  9. 零基础如何快速学习好Python网络爬虫?

    Python网络爬虫上手很快,能够尽早入门,可是想精通确实是需求些时间,需求达到爬虫工程师的级别更是需求煞费苦心了,接下来共享的学习道路是针对小白或许学习Python网络爬虫不久的同伴们. 学习网络爬 ...

  10. /etc/fstab自动挂载文件

    装了Windows 10和Ubuntu双系统,想把win10下的“文娱“盘自动开机挂载到Ubuntu上. 首先你看一下/etc/fstab这个文件喽: 依葫芦画瓢呗.首先看看你要挂载的硬盘是哪一块: ...