linux-usb软件系统架构
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
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
重新编译后,可以把U盘插到开发板中去。
- mount /dev/uba /mnt/
出错了,暂时找不到原因。估计和yaffs文件系统有关系:
点击(此处)折叠或打开
- yaffs: dev is 188743680 name is "uba"
- yaffs: passed flags ""
- yaffs: Attempting MTD mount on 180.0, "uba"
- yaffs: dev is 188743680 name is "uba"
- yaffs: passed flags ""
- yaffs: Attempting MTD mount on 180.0, "uba"
- 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)
这只好后需要重新编译内核的模块
- make ARCH=arm CROSS_COMPILE=arm-linux-
- make uImage ARCH=arm CROSS_COMPILE=arm-linux-
在开发板中设置usb的网络IP
- ifconfig usb0 192.168.1.30
在虚拟机中能PING通。
linux-usb软件系统架构的更多相关文章
- Linux usb子系统(一):子系统架构
一.USB协议基础知识 前序:USB概念概述 USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB) USB2.0版本速度480Mbps(高速USB). ...
- Linux USB驱动学习总结(一)---- USB基本概念及驱动架构
USB,Universal Serial Bus(通用串行总线),是一个外部总线标准,用于规范电脑与外部设备的连接和通讯.是应用在PC领域的接口技术.USB接口支持设备的即插即用和热插拔功能.USB是 ...
- 【转】USB协议架构及驱动架构
1. USB协议 1.1 USB主机系统 在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器.USB主机控制器包含硬件.软件和固件一部分. 1.2 USB设备系统 ...
- linux i2c驱动架构-dm368 i2c驱动分析
linux i2c驱动架构-dm368 i2c驱动分析 在阅读本文最好先熟悉一种i2c设备的驱动程序,并且浏览一下i2c-core.c以及芯片提供商的提供的i2c总线驱动(i2c-davinc ...
- [国嵌攻略][163][linux-usb软件系统架构]
软件系统架构 1.主机端软件架构 USB设备驱动->USB核心->USB主控制器驱动->USB主控制器 2.设备端软件架构 Gadget驱动->Gadget API->U ...
- linux USB 编程
Linux USB架构 可以看出一个USB体系需要4个驱动:USB设备驱动(主要编写这部分),USB主控制器驱动,Gadget驱动,UDC驱动. USB主要有4个功能: MassStorage:大容量 ...
- 【转帖】Linux 内核系统架构
Linux 内核系统架构 描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...
- linux usb驱动记录(一)
一.linux 下的usb驱动框架 在linux系统中,usb驱动可以从两个角度去观察,一个是主机侧,一个是设备侧.linux usb 驱动的总体框架如下图所示: 从主机侧看usb驱动可分为四层: ...
- 【Linux开发】Linux V4L2驱动架构解析与开发导引
Linux V4L2驱动架构解析与开发导引 Andrew按:众所周知,linux中可以采用灵活的多层次的驱动架构来对接口进行统一与抽象,最低层次的驱动总是直接面向硬件的,而最高层次的驱动在linux中 ...
随机推荐
- java-设计原则
七大设计原则 单一职责原则: 尽可能的功能细分(类细分,方法细分):如一个类由于某变量而细分方法,该细分方法再细分,需要重构(最好细分类) 接口隔离原则:(C类实现A接口全部方法,而D,B类依赖于A接 ...
- php chop()函数 语法
php chop()函数 语法 chop()函数是什么意思? php chop函数是rtrim函数的别名,作用与rtrim函数是相同的,删除字符串右边的空格或其他预定义字符,语法是chop(strin ...
- vue项目git
https://github.com/renrenio/renren-fast-vue https://github.com/hzlshen/vue-project
- AcWing 313. 花店橱窗 (线性DP)打卡
题目:https://www.acwing.com/problem/content/315/ 题意:有一个矩阵,你需要在每一行选择一个数,必须保证前一行的数的下标选择在下一行的左边,即下标有单调性,然 ...
- Gym10198-Mediocre String Problem-2018南京ICPC现场赛
目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog @ Problem:传送门 Portal 原题目描述在最下面. Solu ...
- GH001 on github
remote: warning: GH001: Large files detected. You may want to try Git Large File Storage - https://g ...
- 像这样玩C#【转】,觉得文章写的不错就转来啦!版权不在我
我们玩技术,不是被技术玩.Coding是快乐的,而非苦逼的..Net/C# 这个神器竟然天天有人吐槽.看不下去鸟. 在top10语言中,C#是最优美的语言,没有之一.在top10语言中,C#所可用的标 ...
- Windows-Windows下使用Linux系统(WSL)
Install Windows Subsystem for Linux (WSL) on on Windows 10 | Microsoft Docs WSL(Windows Subsystem fo ...
- jQuery:unbind方法的使用详解
一.概述: unbind方法只能解绑用jQuery的bind方法以及用jQuery方法注册的事件处理程序.比如:$(‘a’).click(function(){})可以通过unbind解绑.用原生ad ...
- 进程管理工具-Supervisord 使用
简介 Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动.重启(自动重启程序).关闭进程(不仅仅是 Pytho ...