如何实现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 ...
- 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学习笔记-STM32+FLASH实现U盘
一.内容概述 采用STM32内部自带USB控制器外加大页NAND FLASH K9F1G08U0A实现一个128M的U盘. 1.STM32的USB控制器 STM32F103的MCU自带USB从控制器 ...
- 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++----练习--string 从文件中一个一个单词的读直到文件尾
从文件中读取单词.并每行显示一个: 1. #include<iostream> #include<string> #include<vector> int main ...
- Primo Ramdisk配置教程
首先感谢xiaohu在太平洋电脑网上发表的“将内存当硬盘用!Primo Ramdisk图文教程”,本文主要是将其图文整理了一下,以方便以后使用. 原文地址:http://fashion.pconlin ...
- load Event
document.addEventListener("DOMContentLoaded");------------------load document.body.addEven ...
- android style="@[package:]style/style_name" ----------styles.xml
android.widget ----XML attribute |____style="@[package:]style/style_name"
- 从Qt4到Qt5的,主要的进化有三(对于QtWidget的精简和优化会很有限)
从Qt4到Qt5的,主要的进化有三:1 语言的进化,原来是基于C++(qtwidget)和XML(.ui),现在添加了QML(QtQuick)+JS(v8)的架构.2 绘图系统的进化,原先基于QPai ...
- HtmlNodeType枚举
HtmlNodeType是一个枚举,用于说明一个节点的类型. 源代码如下所示: public enum HtmlNodeType { Document = 0, Element = 1, Commen ...
- MFC radio button 绑定变量用法
我们在对话框中拖动一个radio button控件,然后点击类向导,结果却发现在Member Variables里看不到Radio控件的ID.这是为什么? 2.1 三个Radio Button,ID分 ...
- Eclipse/IDEA中使用Maven创建Web项目报错
Eclipse中的错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp-1.0.jar:R ...
- js 行列操作
function insertRow() { var tbl = document.getElementById("tbCarModel"); var rowLen = tbl.c ...
- Android使用NumberPicker控件实现选择城市,生日
本人菜鸟一枚,第一次写技术博客,有点小紧张,加上代码很乱,求不喷. 先放效果图: 界面就这么简单. 然后放上代码: package com.example.dialog; import java.ut ...
