实现Linux下的U盘(USB Mass Storage)驱动
如何实现Linux下的U盘(USB Mass Storage)驱动
版本:v0.7
How to Write Linux USB MSC (Mass Storage Class) Driver
Crifan Li
摘要
本文主要介绍了USB Mass Storage的相关的各种协议之间的关系,以及如何在Linux的USB驱动框架下实现U盘驱动
2013-09-05
| 修订历史 | ||
|---|---|---|
| 修订 0.4 | 2011-07-01 | crl |
|
||
| 修订 0.7 | 2013-09-05 | crl |
|
||
版权 © 2013 Crifan, http://crifan.com
目录
- 缩略词
- 正文之前
- 1. USB基本知识
- 2. USB Mass Storage大容量存储的基本知识
-
- 2.1. USB Mass Storage相关的协议
-
- 2.1.1. USB Mass Storage相关协议简介
-
- 2.1.1.1. USB MSC Control/Bulk/Interrupt (CBI) Transport
- 2.1.1.2. USB MSC Bulk-Only (BBB) Transport
- 2.1.1.3. USB MSC UFI Command Specification
- 2.1.1.4. USB MSC Bootability Specification
- 2.1.1.5. USB MSC Compliance Test Specification
- 2.1.1.6. USB Lockable Storage Devices Feature Specification
- 2.1.1.7. USB MSC USB Attached SCSI Protocol (UASP)
- 2.1.2. USB MSC的各个协议之间关系总结
- 2.1.3. U盘与USB中的Class,Subclass和Protocol的对应关系
- 2.2. USB Mass Storage相关的软件实现
- 3. 实现U盘驱动的整个流程是什么样的
- 4. Linux系统下,USB驱动的框架已经做了哪些事情
- 5. Linux下实现U盘驱动,自己需要做哪些事情以及如何做
- 参考书目
插图清单
- 1. U盘
- 2.1. USB Mass Storage Framework
- 2.2. PC和U盘
- 2.3. PC和U盘的芯片内部结构
- 2.4. PC和U盘的内部逻辑框图
- 2.5. PC和USB MSC设备
- 2.6. USB MSC的分类
- 2.7. USB Storage Class Protocol Relation
- 2.8. SubClass Codes Mapped to Command Block Specifications
- 2.9. Mass Storage Transport Protocol
- 3.1. USB数据流向图
实现Linux下的U盘(USB Mass Storage)驱动的更多相关文章
- 如何实现Linux下的U盘(USB Mass Storage)驱动
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Cri ...
- USB Mass Storage学习笔记-STM32+FLASH实现U盘
一.内容概述 采用STM32内部自带USB控制器外加大页NAND FLASH K9F1G08U0A实现一个128M的U盘. 1.STM32的USB控制器 STM32F103的MCU自带USB从控制器 ...
- linux下挂载U盘
转:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html linux下挂载U盘 一.Linux挂载U盘: 1.插入u盘到计算机, ...
- Linux下用FFMPEG采集usb摄像头到RTMP
Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务 ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 ...
- usb mass storage之旅
前面总结了usb hid keyboard,现在总结usb mass storage,在枚举阶段没什么好总结的,hid和mass storage差不多,都是同样的枚举过程,但是在他们的配置描述符.接口 ...
- USB mass storage协议
这一节主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析. 一.背景知识 1.USB Mass Storage类规范概述 USB 组织在univers ...
- USB Mass Storage协议分析
目录 简介 指令数据和状态协议 CBW指令格式 CSWCommand Status Wrapper状态格式 SCSI命令集 Format Unit Inquiry MODE SELECT 简介 USB ...
- USB Mass Storage大容量存储的基本知识
http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html 目录 2.1. US ...
- Android USB Connections Explained: MTP, PTP, and USB Mass Storage
Android USB Connections Explained: MTP, PTP, and USB Mass Storage Older Android devices support USB ...
随机推荐
- C++----练习
1.完成一个C++实现的加法程序: #include<iostream> int main() { std::cout<<"可以输入两个加数,本程序完成加法...&q ...
- django第二个项目--使用模板
第一步: 创建新项目secondproject cd /tmp/django-admin startproject secondeproject 第二步: 创建一个用于放置模板文件夹 cd /tmp/ ...
- Linux下,连接器ld链接顺序的总结
原来ld对于链接一系列的库的顺序是很敏感的,不然会报undefined referenced 的函数符号错误,意思就是未找到函数定义.实际上库是能正确打开的.如果库libA.a依赖于库libB.a,那 ...
- grep搜索当前目录和递归搜索子目录中文本文件的特定pattern
一般在windows上文本编辑器notepad++,UE这些都有这些功能,Linux下就换了一种方式,用grep来完成文件中信息查找的方式. grep -R -n --include="*. ...
- cf472B Design Tutorial: Learn from Life
B. Design Tutorial: Learn from Life time limit per test 1 second memory limit per test 256 megabytes ...
- 有序线性搜索(Sorted/Ordered Linear Search)
如果数组元素已经排过序(升序),那我们搜索某个元素就不必遍历整个数组了.在下面给出的算法代码中,到任何一点,假设当前的arr[i]值大于搜索的值data,就可以停止搜索了. #include<s ...
- poj 1020 Anniversary Cake(切正方形蛋糕+搜索)
...
- 基于MFC与第三方类CWebPage的百度地图API开发范例
在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地 ...
- Android消息机制不完全解析(上)
Handler和Message是Android开发者常用的两个API,我一直对于它的内部实现比较好奇,所以用空闲的时间,阅读了一下他们的源码. 相关的Java Class: androi ...
- 徐汉彬:亿级Web系统搭建—单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...
