第九章 Mass Storage设备】的更多相关文章

9.1 Mass Storage设备介绍 USB的Mass Storage类是USB大容量储存设备类(Mass Storage Device Class).专门用于大容量存储设备,比如U盘.移动硬盘.USB CD-ROM.读卡器等.在日常生活中经常用到.USB Mass Storage设备开发相对简单. 9.2 MSC数据类型 usbdmsc.h中已经定义好MSC设备类中使用的所有数据类型和函数.下面介绍MSC设备类使用的数据类型. typedef enum { //设备加入 USBDMSC_M…
当需要使用usb bulk传输,想让设备像串口通讯那样和PC主机通信, 通常需要自己做一个PC端的驱动,比较麻烦. 为避免在pc上编写usb设备驱动的麻烦,可以将设备做成mass storage 类的设备,使用通用的驱动. 在通讯之前设备端需要先做两件事: 1,实现mass storage 类的描述符和类请求. 2,实现必要的SCSI命令,让PC认为该设备已正常运作. 我利用修改linux中的gadget zero设备做了一个简单的设备. 如果是在裸机程序下面做,应该也差不多,直接拿芯片厂商BS…
这一节主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析. 一.背景知识     1.USB Mass Storage类规范概述        USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独立的子类规范,即:        1. USB Mass Storage Class Control/B…
一.内容概述  采用STM32内部自带USB控制器外加大页NAND FLASH K9F1G08U0A实现一个128M的U盘. 1.STM32的USB控制器 STM32F103的MCU自带USB从控制器,符合USB规范的通信连接:PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问.这块专用数据缓冲区的大小,由所使用的端点数目和每个端点最大的数据分组大小所决定,每个端点最大可使用512字节缓冲区,最多可用于16个单向或8个双向端点.USB模块同P…
目录 简介 指令数据和状态协议 CBW指令格式 CSWCommand Status Wrapper状态格式 SCSI命令集 Format Unit Inquiry MODE SELECT 简介 USB Mass storage Device协议即海量存储设备协议适用于硬盘,U盘等大容量存储设备.协议使用的接口端点有BulkIn.BulkOut和Interrupt端点.该设备类又包含6个独立的子类以及3种传输协议. bInterfaceSubClass 命令集 描述 01h RBC 通常,Flas…
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第九章: 新兴分析-社交,移动和视频 网络在过去几年中发生了不可思议的发展变化:从单向对话到双向对话的转变; 由视频,Ajax和Flash提供的丰富的web体验; 和通过多渠道(如RSS和移动)的内容分发. 这些改变在让用户自行负责的同时,也改进了网站体验. 但是,这带来了一个小问题:你如何度量成功呢? 在这个令人兴奋的章节中,我将会介绍一些新兴的分析解决方案,以能够解决:Web如何从"所有内容在同一个地方" 以及…
第九章:四大组件之Broadcast Receiver   一.广播的功能和特征 广播的生命周期很短,经过调用对象-->实现onReceive-->结束,整个过程就结束了.从实现的复杂度和代码量来看,广播无疑是最迷你的Android 组件,实现往往只需几行代码.广播对象被构造出来后通常只执行BroadcastReceiver.onReceive方法,便结束了其生命周期.所以有的时候我们可以把它当做函数看也未必不可. Android中的四大组件是 Activity.Service.Broadca…
上章回顾 编码的规范和程序版式 版权管理和申明 头文件结构和作用 程序命名 程序注释和代码布局规范 assert断言函数的应用 与0或NULL值的比较 内存的分配和释放细节,避免内存泄露 常量特性 git@github.com:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.gitgit@github.com:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.git 第九章 第九…
第九章 容错 在当前,由于集群庞大的组织体系和复杂性,以及用户普遍要求低成本硬件,使得集群在运行过程中发生的错误概率,远远高于单一且性能稳定的小型机服务器,并且集群在运行过程中几乎是不允许停止的,这就更需要提供比单机环境复杂得多的错误管理方案.实际上,我们在产品设计.开发.运营的各个阶段,有相当大一部分精力,都是用来获取各种故障,和解决各种故障发生后的错误处理问题.对于这些错误处理,我们整体遵循这样一个思路来解决:首先由软件感知来发现和定位故障点,然后进行判断,如果属于软件可以解决的故障,那么通…
第九章 图标与Windows任务条 如果问一个非程序人员Windows最好的特色是什么,得到的答案应该是系统最有吸引力的图标.无论是Windows98现在支持的通用串行总线(USB)还是WDM(看上去有点像一个软件协会而不象普通的设备驱动体系结构的缩写),图标在人们的心目中仍然是亲切的.你必须承认,微软总是从它的图形族群中获得最大的利益. 要了解使用图标表述菜单命令背后的的简单(或不简单)概念,你需要的不是绘制激情也不是艺术欣赏,而是应该清楚,仅使用32X32像素和16种颜色的图块做这样的表述是…
前面总结了usb hid keyboard,现在总结usb mass storage,在枚举阶段没什么好总结的,hid和mass storage差不多,都是同样的枚举过程,但是在他们的配置描述符.接口描述符.端点描述符,也许还有之类描述符是不同的,需要按照usb mass storage的协议来配置,下面是列出usb的相关描述符. const usb_device_descriptor device_desc = { .length = USB_DEVICE_DESC_SIZE, .type =…
如何实现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盘驱动 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF…
如何实现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盘驱动 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF…
http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html 目录 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…
第九章 jQuery Mobile 一.HTML5.0简介 谈到Web设计,我们经常把Web分为三个层: (1)结构层:(2)表现层:(3)行为层. 对应的技术分别是: (1)HTML:(2)CSS:(3)JavaScript 二.jQuery Mobile简介 对于Web开发者来说,jQuery是非常流行JavaScript类库,而且一直以来它都是为Web浏览器设计的,并没有特别为移动应用程序设计.jQuery Mobile则是用来填补jQuery在移动设备应用上的缺憾的一个新项目.它基于jQ…
第九章 一.使用能力检测 能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.能力检测的基本模式如下: if ( object.propertyInQuestion ) { //使用object.propertyInQuestion } 二.怪癖检测 与能力检测类似,怪癖检测的目标是识别浏览器的特殊行为.但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷. 三.用户代理检测 用户代理检测技术: (1)识别呈现引擎 为了不在全局作用域中添加多余的变量,我们将使用模块…
Android群英传笔记--第九章:Android系统信息和安全机制 本书也正式的进入尾声了,在android的世界了,不同的软件,硬件信息就像一个国家的经济水平,军事水平,不同的配置参数,代表着一个android帝国的强弱,所以厂商喜欢打配置战,本节就要是讲 Android系统信息的获取 PackageManager的使用 ActivityManager的使用 Android安全机制 一. Android系统信息的获取 由于android手机的开源性,手机的配置各种各样,那些优化大师之类的东西…
8.4.服务的访问控制列表 TCPwrappers是RHEL7中默认启用的流量监控程序,能够对服务做出允许或拒绝. TCPwrappers服务由两个文件控制:  /etc/hosts.allow        //允许控制列表文件  /etc/hosts.deny        //拒绝控制列表文件 文件的写入格式:服务名称      [对象] 对象可以是单一主机,网段,DNS后缀,主机名称等. 先匹配允许文件,后匹配拒绝文件,一旦匹配,立即跳出,若都没有匹配上,则默认放行. 第九章 9.1.配…
视频链接,推荐看B站 土豆网:http://www.tudou.com/programs/view/XmMDbjJHJC8 B站:http://www.bilibili.com/video/av9664818/ 第九章呢主要讲了档案的属性和目录的配置,我们先来讲档案的属性,这里用到了三个命令chmod,chown,chgrp chmod是改文件权限的有两种方式,文件的权限分三组,对应字母u g o 1. chmod u+wx file 2. chmod 777 file chmod 就这两种方式…
http://blog.csdn.net/xgbing/article/details/7002558 USB Mass Storage 6.7 The Thirteen Class章节的理解 Case(1), case(6), case(12)状态下是正常的数据传输,被称为“The thin diagonal”.其它的状态是协议外的内容,是一些判断. 6.7.1 主机期望发起一次无数据传输的命令 CBW包中的dCBWDataTransferLength字段=0,Direction位不考虑. 主…
第九章方差分析 9.2 ANOVA 模型拟合 9.2.1 aov()函数 aov(formula, data = NULL, projections =FALSE, qr = TRUE, contrasts = NULL, ...) 9.2.2 表达式中各项的顺序 y ~ A + B + A:B 有三种类型的方法可以分解等式右边各效应对y所解释的方差.R默认类型I 类型I(序贯型) 效应根据表达式中先出现的效应做调整.A不做调整,B根据A调整,A:B交互项根据A和 B调整. 类型II(分层型)…
第九章 基于HTTP的功能追加协议 通过在HTTP的基础上添加新的功能来提高性能和功能. 一.消除HTTP瓶颈的SPDY SPDY(SPeeDY)目的是提高HTTP性能,缩短Web页面的加载时间(50%). 1.HTTP瓶颈 现代需求:实时更新海量用户公开发布的内容,服务器上一有内容更新,就会将这些内容反馈到客户端界面上. 若想实现上述需求,HTTP存在以下这些瓶颈(缺点): ①一条连接上只可发送一个请求. ②请求只能从客户端开始.客户端不可以接收除响应以外的指令. ③请求 / 响应首部未经压缩…
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第九章:贴图 代码工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 学习目标 学习如何定义将一个纹理映射到一个三角形上: 学习如何创建和启用纹理: 学习纹理如何被过滤后生产一个更加平滑的图像: 学习如何将一个纹理通过地址模式展开多次: 学习如何将多个纹理合并成一个新贴图和特殊效果: 学习一些基本的纹…
仅供个人学习使用,请勿转载. 9.纹理贴图 学习目标: 学习如何将局部纹理映射到网格三角形上 探究如何创建和启用纹理 学会如何通过纹理过滤来创建更加平滑的图像 探索如何使用寻址模式来进行多次纹理贴图 探索如何将多个纹理进行组合,从而创建出新的纹理和特效 学习如何通过纹理动画来创建一些基本效果 9.1.纹理与资源的回顾 我们在第四章的时候就开始使用纹理了.特别是深度缓冲区和后台缓冲区,他们都是通过ID3D12Resource接口来表示的.为了便于参考,我们将在这一节回顾一些和纹理相关的知识. 2D…
目录 Object-C 基础教程第九章,内存管理 前言: 对象生命周期 引用计数 RetainCount1项目例子 对象所有权 访问方法中的保留和释放 自动释放 所有对象放入池中 自动释放池的销毁时间 自动释放池的工作流程 Cocoa的内存管理规则 临时对象 拥有对象 垃圾回收 自动引用计数 iOS无法使用垃圾回收机制 ARC介绍 ARC条件 弱引用(Weak).强引用 拥有者权限 异常 与异常有关的关键字 捕捉不同类型的异常 抛出异常 异常也需要内存管理 异常和自动释放池 小结 Pwn菜鸡学习…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4255688.html 第九章      异常 57.      只针对异常的情况才使用异常 也许你在将来会碰到下面这样的代码,它是基本异常模式的循环: try{ int i = 0; while…
Android USB Connections Explained: MTP, PTP, and USB Mass Storage Older Android devices support USB mass storage for transferring files back and forth with a computer. Modern Android devices use the MTP or PTP protocols — you can choose which one you…
Problem adding USB host device to KVM Windows guest machine. Status: CLOSED CURRENTRELEASE   Aliases: None   Product: Fedora Component: qemu (Show other bugs) Version: 18 Hardware: x86_64 Unspecified   Priority unspecified Severity unspecified Target…
第八章 Activity和Activity调用栈分析 1.Activity生命周期理解生命周期就是两张图:第一张图是回字型的生命周期图第二张图是金字塔型的生命周期图 注意点(1)从stopped状态重新回到前台状态的时候会先调用onRestart方法,然后再调用后续的onStart等方法:(2)启动另一个Activity然后finish,先调用旧Activity的onPause方法,然后调用新的Activity的onCreate->onStart->onResume方法,然后调用旧Activi…
第九章 关联数组/哈希表 by flamephoenix 一.数组变量的限制二.定义三.访问关联数组的元素四.增加元素五.创建关联数组六.从数组变量复制到关联数组七.元素的增删八.列出数组的索引和值九.用关联数组循环十.用关联数组创建数据结构  1.(单)链表  2.结构  3.树 一.数组变量的限制    在前面讲的数组变量中,可以通过下标访问其中的元素.例如,下列语句访问数组@array的第三个元素:    $scalar = $array[2];    虽然数组很有用,但它们有一个显著缺陷…