父节点
f977daa527
当前提交
44947e157a
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
二进制文件未显示。
@ -0,0 +1,476 @@ |
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/lvr.dwt" codeOutsideHTMLIsLocked="false" --> |
||||
<head><script src="//archive.org/includes/analytics.js?v=cf34f82" type="text/javascript"></script> |
||||
<script type="text/javascript">window.addEventListener('DOMContentLoaded',function(){var v=archive_analytics.values;v.service='wb';v.server_name='wwwb-app18.us.archive.org';v.server_ms=583;archive_analytics.send_pageview({});});</script><script type="text/javascript" src="/static/js/wbhack.js?v=1525205731.0" charset="utf-8"></script> |
||||
|
||||
<script type="text/javascript"> |
||||
__wbhack.init('https://web.archive.org/web'); |
||||
</script> |
||||
<link rel="stylesheet" type="text/css" href="/static/css/banner-styles.css?v=1525205731.0" /> |
||||
<link rel="stylesheet" type="text/css" href="/static/css/iconochive.css?v=1525205731.0" /> |
||||
|
||||
<!-- End Wayback Rewrite JS Include --> |
||||
<link rel="shortcut icon" href="/web/20110226031619im_/http://www.lvr.com/favicon.ico"> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> |
||||
<meta name="Author" content="Jan Axelson"/> |
||||
<meta name="GENERATOR" content=""/> |
||||
<!-- InstanceBeginEditable name="doctitle" --> |
||||
<title>Jan Axelson's Lakeview Research</title> |
||||
<!-- InstanceEndEditable --> |
||||
<script src="/web/20110226031619js_/http://www.lvr.com/SpryAssets/SpryMenuBar.js" type="text/javascript"></script> |
||||
<link href="/web/20110226031619cs_/http://www.lvr.com/SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css"/> |
||||
<link href="/web/20110226031619cs_/http://www.lvr.com/styles/lvr.css" rel="stylesheet" type="text/css"/> |
||||
<!-- InstanceBeginEditable name="head" --> |
||||
|
||||
<meta http-equiv="Description" content="Information and tools relating to design and programming FOR THE UNIVERSAL SERIAL BUS (USB).."/> |
||||
<meta http-equiv="Keywords" content="USB, UNIVERSAL SERIAL BUS, HID, HUMAN INTERFACE DEVICE, CYPRESS SEMICONDUCTOR, CY763000, DIRECTX, DIRECT INPUT"/> |
||||
<meta name="Author" content="Jan Axelson"/> |
||||
<meta name="GENERATOR" content=""/> |
||||
|
||||
|
||||
<link rel="stylesheet" href="/web/20110226031619cs_/http://www.lvr.com/styles/lvr.css" type="text/css"/> |
||||
|
||||
<!-- InstanceEndEditable --> |
||||
</head> |
||||
|
||||
<body><!-- BEGIN WAYBACK TOOLBAR INSERT --> |
||||
<script type="text/javascript" src="/static/js/timestamp.js?v=1525205731.0" charset="utf-8"></script> |
||||
<script type="text/javascript" src="/static/js/graph-calc.js?v=1525205731.0" charset="utf-8"></script> |
||||
<script type="text/javascript" src="/static/js/auto-complete.js?v=1525205731.0" charset="utf-8"></script> |
||||
<script type="text/javascript" src="/static/js/toolbar.js?v=1525205731.0" charset="utf-8"></script> |
||||
|
||||
<style type="text/css"> |
||||
body { |
||||
margin-top:0 !important; |
||||
padding-top:0 !important; |
||||
/*min-width:800px !important;*/ |
||||
} |
||||
.wb-autocomplete-suggestions { |
||||
text-align: left; cursor: default; border: 1px solid #ccc; border-top: 0; background: #fff; box-shadow: -1px 1px 3px rgba(0,0,0,.1); |
||||
position: absolute; display: none; z-index: 2147483647; max-height: 254px; overflow: hidden; overflow-y: auto; box-sizing: border-box; |
||||
} |
||||
.wb-autocomplete-suggestion { position: relative; padding: 0 .6em; line-height: 23px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 1.02em; color: #333; } |
||||
.wb-autocomplete-suggestion b { font-weight: bold; } |
||||
.wb-autocomplete-suggestion.selected { background: #f0f0f0; } |
||||
</style> |
||||
<div id="wm-ipp" lang="en" style="display:none;direction:ltr;"> |
||||
<div style="position:fixed;left:0;top:0;right:0;"> |
||||
<div id="wm-ipp-inside"> |
||||
<div style="position:relative;"> |
||||
<div id="wm-logo" style="float:left;width:130px;padding-top:10px;"> |
||||
<a href="/web/" title="Wayback Machine home page"><img src="/static/images/toolbar/wayback-toolbar-logo.png" alt="Wayback Machine" width="110" height="39" border="0" /></a> |
||||
</div> |
||||
<div class="r" style="float:right;"> |
||||
<div id="wm-btns" style="text-align:right;height:25px;"> |
||||
<div id="wm-save-snapshot-success">success</div> |
||||
<div id="wm-save-snapshot-fail">fail</div> |
||||
<a href="#" |
||||
onclick="__wm.saveSnapshot('http://www.lvr.com/mass_storage_faq.htm', '20110226031619')" |
||||
title="Share via My Web Archive" |
||||
id="wm-save-snapshot-open" |
||||
> |
||||
<span class="iconochive-web"></span> |
||||
</a> |
||||
<a href="https://archive.org/account/login.php" |
||||
title="Sign In" |
||||
id="wm-sign-in" |
||||
> |
||||
<span class="iconochive-person"></span> |
||||
</a> |
||||
<span id="wm-save-snapshot-in-progress" class="iconochive-web"></span> |
||||
<a href="http://faq.web.archive.org/" title="Get some help using the Wayback Machine" style="top:-6px;"><span class="iconochive-question" style="color:rgb(87,186,244);font-size:160%;"></span></a> |
||||
<a id="wm-tb-close" href="#close" onclick="__wm.h(event);return false;" style="top:-2px;" title="Close the toolbar"><span class="iconochive-remove-circle" style="color:#888888;font-size:240%;"></span></a> |
||||
</div> |
||||
<div id="wm-share" style="text-align:right;"> |
||||
<a href="#" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=https://web.archive.org/web/20110226031619/http://www.lvr.com:80/mass_storage_faq.htm', '', 'height=400,width=600'); return false;" title="Share on Facebook" style="margin-right:5px;" target="_blank"><span class="iconochive-facebook" style="color:#3b5998;font-size:160%;"></span></a> |
||||
<a href="#" onclick="window.open('https://twitter.com/intent/tweet?text=https://web.archive.org/web/20110226031619/http://www.lvr.com:80/mass_storage_faq.htm&via=internetarchive', '', 'height=400,width=600'); return false;" title="Share on Twitter" style="margin-right:5px;" target="_blank"><span class="iconochive-twitter" style="color:#1dcaff;font-size:160%;"></span></a> |
||||
</div> |
||||
</div> |
||||
<table class="c" style=""> |
||||
<tbody> |
||||
<tr> |
||||
<td class="u" colspan="2"> |
||||
<form target="_top" method="get" action="/web/submit" name="wmtb" id="wmtb"><input type="text" name="url" id="wmtbURL" value="http://www.lvr.com/mass_storage_faq.htm" onfocus="this.focus();this.select();" /><input type="hidden" name="type" value="replay" /><input type="hidden" name="date" value="20110226031619" /><input type="submit" value="Go" /></form> |
||||
</td> |
||||
<td class="n" rowspan="2" style="width:110px;"> |
||||
<table> |
||||
<tbody> |
||||
<!-- NEXT/PREV MONTH NAV AND MONTH INDICATOR --> |
||||
<tr class="m"> |
||||
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20100923185500/http://lvr.com/mass_storage_faq.htm" title="23 Sep 2010"><strong>Sep</strong></a></td> |
||||
<td class="c" id="displayMonthEl" title="You are here: 03:16:19 Feb 26, 2011">FEB</td> |
||||
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20110704035219/http://www.lvr.com:80/mass_storage_faq.htm" title="04 Jul 2011"><strong>Jul</strong></a></td> |
||||
</tr> |
||||
<!-- NEXT/PREV CAPTURE NAV AND DAY OF MONTH INDICATOR --> |
||||
<tr class="d"> |
||||
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20100923185500/http://lvr.com/mass_storage_faq.htm" title="18:55:00 Sep 23, 2010"><img src="/static/images/toolbar/wm_tb_prv_on.png" alt="Previous capture" width="14" height="16" border="0" /></a></td> |
||||
<td class="c" id="displayDayEl" style="width:34px;font-size:24px;white-space:nowrap;" title="You are here: 03:16:19 Feb 26, 2011">26</td> |
||||
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20110704035219/http://www.lvr.com:80/mass_storage_faq.htm" title="03:52:19 Jul 04, 2011"><img src="/static/images/toolbar/wm_tb_nxt_on.png" alt="Next capture" width="14" height="16" border="0" /></a></td> |
||||
</tr> |
||||
<!-- NEXT/PREV YEAR NAV AND YEAR INDICATOR --> |
||||
<tr class="y"> |
||||
<td class="b" nowrap="nowrap"><a href="https://web.archive.org/web/20100130091232/http://www.lvr.com:80/mass_storage_faq.htm" title="30 Jan 2010"><strong>2010</strong></a></td> |
||||
<td class="c" id="displayYearEl" title="You are here: 03:16:19 Feb 26, 2011">2011</td> |
||||
<td class="f" nowrap="nowrap"><a href="https://web.archive.org/web/20120513143107/http://lvr.com/mass_storage_faq.htm" title="13 May 2012"><strong>2012</strong></a></td> |
||||
</tr> |
||||
</tbody> |
||||
</table> |
||||
</td> |
||||
</tr> |
||||
<tr> |
||||
<td class="s"> |
||||
<div id="wm-nav-captures"> |
||||
<a class="t" href="/web/20110226031619*/http://www.lvr.com/mass_storage_faq.htm" title="See a list of every capture for this URL">54 captures</a> |
||||
<div class="r" title="Timespan for captures of this URL">27 Dec 2005 - 30 Mar 2017</div> |
||||
</div> |
||||
</td> |
||||
<td class="k"> |
||||
<a href="" id="wm-graph-anchor"> |
||||
<div id="wm-ipp-sparkline" title="Explore captures for this URL" style="position: relative"> |
||||
<canvas id="wm-sparkline-canvas" width="575" height="27" border="0"></canvas> |
||||
</div> |
||||
</a> |
||||
</td> |
||||
</tr> |
||||
</tbody> |
||||
</table> |
||||
<div style="position:absolute;bottom:0;right:2px;text-align:right;"> |
||||
<a id="wm-expand" class="wm-btn wm-closed" href="#expand" onclick="__wm.ex(event);return false;"><span id="wm-expand-icon" class="iconochive-down-solid"></span> <span style="font-size:80%">About this capture</span></a> |
||||
</div> |
||||
</div> |
||||
<div id="wm-capinfo" style="border-top:1px solid #777;display:none; overflow: hidden"> |
||||
<div style="background-color:#666;color:#fff;font-weight:bold;text-align:center">COLLECTED BY</div> |
||||
<div style="padding:3px;position:relative" id="wm-collected-by-content"> |
||||
<div style="display:inline-block;vertical-align:top;width:50%;"> |
||||
<span class="c-logo" style="background-image:url(https://archive.org/services/img/alexacrawls);"></span> |
||||
Organization: <a style="color:#33f;" href="https://archive.org/details/alexacrawls" target="_new"><span class="wm-title">Alexa Crawls</span></a> |
||||
<div style="max-height:75px;overflow:hidden;position:relative;"> |
||||
<div style="position:absolute;top:0;left:0;width:100%;height:75px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 90%,rgba(255,255,255,255) 100%);"></div> |
||||
Starting in 1996, <a href="http://www.alexa.com/">Alexa Internet</a> has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the <a href="http://web.archive.org/">Wayback Machine</a> after an embargo period. |
||||
</div> |
||||
</div> |
||||
<div style="display:inline-block;vertical-align:top;width:49%;"> |
||||
<span class="c-logo" style="background-image:url(https://archive.org/services/img/alexacrawls)"></span> |
||||
<div>Collection: <a style="color:#33f;" href="https://archive.org/details/alexacrawls" target="_new"><span class="wm-title">Alexa Crawls</span></a></div> |
||||
<div style="max-height:75px;overflow:hidden;position:relative;"> |
||||
<div style="position:absolute;top:0;left:0;width:100%;height:75px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 90%,rgba(255,255,255,255) 100%);"></div> |
||||
Starting in 1996, <a href="http://www.alexa.com/">Alexa Internet</a> has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the <a href="http://web.archive.org/">Wayback Machine</a> after an embargo period. |
||||
</div> |
||||
</div> |
||||
</div> |
||||
<div style="background-color:#666;color:#fff;font-weight:bold;text-align:center" title="Timestamps for the elements of this page">TIMESTAMPS</div> |
||||
<div> |
||||
<div id="wm-capresources" style="margin:0 5px 5px 5px;max-height:250px;overflow-y:scroll !important"></div> |
||||
<div id="wm-capresources-loading" style="text-align:left;margin:0 20px 5px 5px;display:none"><img src="/static/images/loading.gif" alt="loading" /></div> |
||||
</div> |
||||
</div></div></div></div><script type="text/javascript"> |
||||
__wm.bt(575,27,25,2,"web","http://www.lvr.com/mass_storage_faq.htm","2011-02-26",1996); |
||||
</script> |
||||
<!-- END WAYBACK TOOLBAR INSERT --> |
||||
|
||||
<div id="container_all"> |
||||
|
||||
<div id="container_header"> |
||||
|
||||
<div id="title"> |
||||
|
||||
<a href="index.html"><img src="/web/20110226031619im_/http://www.lvr.com/images/lvr_logo.jpg" alt="Jan Axelson's Lakeview Research" width="346" height="64" hspace="1" vspace="0" border="0"/></a> |
||||
|
||||
</div> <!-- title --> |
||||
|
||||
<div id="search"> |
||||
|
||||
<form class="float_right" method="get" action="https://web.archive.org/web/20110226031619/http://www.google.com/search"> |
||||
|
||||
<!--<div style="border:none;padding:4px; float:right;">--> |
||||
<table border="0" cellpadding="5"> |
||||
<tr align="right"> |
||||
|
||||
<td> |
||||
<input type="text" name="q" size="30" maxlength="127" value=""/> |
||||
<input type="submit" value="Google Search"/> |
||||
</td> |
||||
</tr> |
||||
|
||||
<tr align="right" style="font-size:90%"> |
||||
<td> |
||||
<input type="checkbox" name="sitesearch" value="Lvr.com" checked="checked"/> |
||||
search this site only |
||||
</td> |
||||
</tr> |
||||
</table> |
||||
</form> |
||||
|
||||
</div> <!-- search --> |
||||
|
||||
<div id="menubar_utilities"> |
||||
|
||||
<ul id="MenuBar1" class="MenuBarHorizontal"> |
||||
<li><a href="index.html">Home</a></li> |
||||
<li><a href="quicklinks.htm">Site Map</a></li> |
||||
<li><a href="ordering.htm">Buy Books</a> </li> |
||||
<li class="last"><a href="about_lakeview_research.htm">About Lakeview Research</a> </li> |
||||
</ul> |
||||
|
||||
</div> <!-- menubar_utilities --> |
||||
|
||||
<div id="menubar_main"> |
||||
|
||||
<ul id="MenuBar3" class="MenuBarHorizontal"> |
||||
<li class="background"><a href="usb.htm">USB </a> |
||||
<ul> |
||||
<li class="background"><a href="usb.htm">USB Main Page</a></li> |
||||
|
||||
<li class="background"><a href="usbchips.htm">Chips</a></li> |
||||
<li><a href="development_tools.htm">Development Tools</a></li> |
||||
<li><a href="usbcode.htm">Device Code</a></li> |
||||
<li><a href="usb_device_hardware.htm">Device Hardware</a></li> |
||||
<li><a href="embedded_host.htm">Embedded Host & OTG</a></li> |
||||
<li><a href="usb_host_software.htm">Host Software</a></li> |
||||
<li><a href="hidpage.htm">Human Interface Devices</a></li> |
||||
<li><a href="mass_storage.htm">Mass Storage</a></li> |
||||
<li><a href="winusb.htm">WinUSB</a></li> |
||||
</ul> |
||||
</li> |
||||
|
||||
<li><a href="serport.htm">Serial Ports</a> </li> |
||||
<li><a href="mass_storage.htm">Mass Storage</a></li> |
||||
<li><a href="ethernet.htm">Ethernet</a></li> |
||||
<li><a href="parport.htm">Parallel Port</a></li> |
||||
<li><a href="https://web.archive.org/web/20110226031619/http://www.lvr.com/forum/index.php">PORTS Forum</a></li> |
||||
<li class="last"><a href="sitemap.htm">More </a> |
||||
<ul> |
||||
<li><a href="microc.htm">8052-Basic</a></li> |
||||
<li><a href="pcbs.htm">Printed Circuit Boards</a></li> |
||||
<li><a href="articles.htm">Articles</a></li> |
||||
<li><a href="press.htm">News Releases</a></li> |
||||
|
||||
</ul> |
||||
|
||||
</ul> |
||||
|
||||
|
||||
</div> <!-- menubar_main --> |
||||
|
||||
</div> <!-- header --> |
||||
|
||||
|
||||
|
||||
<div id="container_main"> |
||||
<div id="content"> |
||||
<!-- InstanceBeginEditable name="Content" --> |
||||
|
||||
|
||||
|
||||
<p><a href="index.html">Home</a> > <a href="usb.htm">USB Central </a>> <a href="usbms.htm">Mass Storage Page</a> > |
||||
Mass Storage FAQ</p><p></p> |
||||
<h1> Mass Storage FAQ</h1> |
||||
<h4>Also see:</h4> |
||||
<p><a href="mass_storage.htm">Mass |
||||
storage page</a> |
||||
|
||||
</p> |
||||
<h2 align="left">General</h2> |
||||
<blockquote> |
||||
<p align="left"><strong>How long can a device return NAK in a mass-storage |
||||
bulk transfer?</strong></p> |
||||
<p align="left">The mass-storage specification doesn't define a timeout |
||||
value. Hosts typically will wait 20-30 seconds.</p> |
||||
<p align="left"> <strong>Can my device's firmware read and store files when |
||||
the device isn't attached to a host?</strong></p> |
||||
<p align="left">Yes, if the firmware supports a file system such as FAT16 |
||||
or FAT32. Note that the mass-storage device should have only one mass-storage |
||||
master at a time. When the device is attached to and configured by a USB |
||||
host, the firmware shouldn't attempt to read or write to files on its |
||||
own. </p> |
||||
</blockquote> |
||||
<h2 align="left">SCSI</h2> |
||||
<blockquote> |
||||
<p align="left"><strong>What is the SCSI transparent command set?</strong></p> |
||||
<p align="left">In the <a href="https://web.archive.org/web/20110226031619/http://www.usb.org/developers/devclass_docs">Mass Storage Class Specification Overview</a>, Table |
||||
2.1 says that devices with subclass code 06h implement the "SCSI |
||||
transparent command set." The SCSI specifications are available from |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.t10.org/drafts.htm#SCSI3_Family">t10.org</a>, but these documents don't |
||||
mention a transparent command set.</p> |
||||
<p align="left"><a href="https://web.archive.org/web/20110226031619/https://lists.one-eyed-alien.net/pipermail/usb-storage/2004-September/000795.html">According |
||||
to the inventor of the subclass</a>, subclass 06h means that the host should determine |
||||
the device type by issuing a SCSI INQUIRY command. In the returned INQUIRY |
||||
data, bits 4..0 of byte 0 specify a peripheral device type (PDT). The |
||||
SCSI Primary Commands (SPC) specification defines various PDTs and the |
||||
specifications they should comply with. </p> |
||||
<p align="left"><strong>What value should I use for bInterfaceSubClass in |
||||
the interface descriptor?</strong></p> |
||||
<p align="left">New designs should use bInterfaceSubClass = 06h (SCSI transparent |
||||
command set). The device's response to a SCSI INQUIRY command is then |
||||
the single source where the device declares its command set (via the PERIPHERAL |
||||
DEVICE TYPE (PDT) and VERSION codes). A device should use a different |
||||
bInterfaceSubClass only if it must for some reason adhere to a command |
||||
set that has no PDT code (such as SFF-8070i). See the SPC document for |
||||
a list of PDTs. </p> |
||||
<p align="left"><strong>What commands should my device support?</strong></p> |
||||
<p align="left">In the response to a SCSI INQUIRY command, a device returns |
||||
a PERIPHERAL DEVICE TYPE code and a VERSION code. For hard drives, flash |
||||
drives, and similar devices, PERIPHERAL DEVICE TYPE = 00h (direct access |
||||
block device) and VERSION = 04h (SPC-2) or 05h (SPC-3). The code in the |
||||
VERSION corresponds to a command set, and the command set's specification |
||||
lists mandatory commands.</p> |
||||
<p align="left">In some cases, additional INQUIRY data can provide more |
||||
information, including vendor-specific data, but not every host will retrieve |
||||
more than the first 36 bytes of the response. </p> |
||||
<p align="left">The SPC specification documents the INQUIRY command. Also |
||||
see the specification for your device type for any device-specific information |
||||
about the INQUIRY response.</p> |
||||
<p align="left">In practice, many devices don't implement every mandatory |
||||
command and just concentrate on the commands used by any hosts the device |
||||
is likely to connect to.</p> |
||||
<p align="left">The <a href="https://web.archive.org/web/20110226031619/http://www.usb.org/developers/devclass_docs/MSC-compliance-0_9a.pdf">Mass |
||||
Storage Class Compliance Test Specification</a> names required and optional |
||||
commands for different PDTs that want to pass USB-IF's mass-storage compliance |
||||
tests.</p> |
||||
<p align="left"><strong>What is command 0x23 (23h)? I can't find it in the |
||||
SPC or SBC documents.</strong></p> |
||||
<p align="left">Command 23h is READ FORMAT CAPACITIES in the <a href="https://web.archive.org/web/20110226031619/http://www.t10.org/drafts.htm">Multimedia |
||||
Commands (MMC) specification</a> from t10.org.</p> |
||||
</blockquote> |
||||
<h2 align="left">Windows Specific</h2> |
||||
<blockquote> |
||||
<p align="left"><strong>Can my device use the Reduced Block Command (RBC) |
||||
set?</strong></p> |
||||
<p align="left">Windows doesn't support RBC (bInterfaceSubClass 01h or 06h |
||||
and PDT = 0Eh), so if you design an RBC device, you'll need to provide |
||||
a driver for the host. The USB mass storage overview document from usb.org |
||||
incorrectly says that flash drives typically use RBC. Flash drives use |
||||
bInterfaceSubClass 06h (SCSI transparent command set) with PDT = 00h (direct-access |
||||
block device), the same as hard drives.</p> |
||||
<p align="left"><strong>How can I determine the drive letter Windows has |
||||
assigned to a USB drive?</strong></p> |
||||
<p align="left">Three options:</p> |
||||
<p align="left">1. <a href="files/find_drive_letter.txt">Example code</a> from Marc Reinig.</p> |
||||
<p align="left">2. <a href="https://web.archive.org/web/20110226031619/http://www.codeproject.com/w2k/usbdisks.asp">How |
||||
to get the usbdisk's drive letter properly</a>. Using DeviceIoControl |
||||
to get a USB drive's letter. From f22_storm.</p> |
||||
<p align="left">3. Usenet thread <a href="https://web.archive.org/web/20110226031619/http://groups.google.com/group/microsoft.public.development.device.drivers/browse_thread/thread/47322a079ae87adc/09e0c366cacda5c0?q=%22How%2Bto%2Bmatch%2Bbetween%2Bphysical%2Busb%2Bdevice%2Band%2Bits%2Bdrive%2Bletter%22&_done=%2Fgroups%3Fas_q%3D%22How%2Bto%2Bmatch%2Bbetween%2Bphysical%2Busb%2Bdevice%2Band%2Bits%2Bdrive%2Bletter%22%26safe%3Dimages%26lr%3D%26hl%3Den%26&_doneTitle=Back%2Bto%2BSearch&&d&pli=1">How |
||||
to match between physical usb device and its drive letter</a>.</p> |
||||
</blockquote> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- InstanceEndEditable --> |
||||
</div> <!-- content --> |
||||
|
||||
<div id="rightside"><!-- #BeginLibraryItem "/Library/sponsored.lbi" --> <link rel="stylesheet" href="/web/20110226031619cs_/http://www.lvr.com/styles/lvr.css" type="text/css"> |
||||
<p><strong>Partner Links</strong></p> |
||||
|
||||
|
||||
<p><strong><a href="https://web.archive.org/web/20110226031619/http://www.absolute-software.co.uk/">Embedded Programming</a></strong><br> |
||||
Experts in embedded software development. Microchip Certified Consults.<br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.absolute-software.co.uk/">absolute-software.co.uk</a></p> |
||||
<p><strong><a href="https://web.archive.org/web/20110226031619/http://www.ellisys.com/">USB Protocol Analyzers</a></strong><br> |
||||
ELLISYS protocol analyzers, generators, automated compliance solutions.<br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.ellisys.com/">www.ellisys.com</a></p> |
||||
<p><strong><a href="https://web.archive.org/web/20110226031619/http://www.sysnucleus.com/">USBTrace - USB Analyzer</a></strong><br> |
||||
Software-based USB Protocol Analyzer. Easy-to-use and affordable.<br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.sysnucleus.com/">www.sysnucleus.com</a></p> |
||||
<p><strong><a href="https://web.archive.org/web/20110226031619/http://www.totalphase.com/solutions/apps/usb_analyzer_guide/?tclid=8DD6902647060BC8">Powerful USB Analyzer</a></strong><br> |
||||
Real-time USB 2.0 display & class decoding. See a video demo now. <br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.totalphase.com/solutions/apps/usb_analyzer_guide/?tclid=8DD6902647060BC8">www.totalphase.com</a></p> |
||||
|
||||
<p><a href="https://web.archive.org/web/20110226031619/http://www.eltima.com/products/usb-over-ethernet/"><strong>USB to Ethernet Connector</strong></a><br> |
||||
Share & access USB devices over local network or even Internet!<br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.eltima.com/products/usb-over-ethernet/">www.eltima.com</a></p> |
||||
|
||||
<p><strong><a href="https://web.archive.org/web/20110226031619/http://www.premiumusb.com/catalog/usb-duplicators_23.htm">USB Duplicator</a></strong><br> |
||||
Copy up to 77 USB Drives at once with a stand-alone USB Duplicator.<br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://www.premiumusb.com/catalog/usb-duplicators_23.htm">www.premiumusb.com</a></p> |
||||
<p><a href="https://web.archive.org/web/20110226031619/http://creativeusb.com/"><strong>Creative Promo USB Drives</strong></a><br> |
||||
Custom designed promotional drives w/ branded printing and duplication.<br> |
||||
<a href="https://web.archive.org/web/20110226031619/http://creativeusb.com/">www.CreativeUSB.com</a></p> |
||||
<p><script language="javascript"> |
||||
<!-- |
||||
var contact = "Ask about advertising on this site" |
||||
var email = "jan" |
||||
var emailHost = "Lvr.com" |
||||
document.write("<a href=" + "mail" + "to:" + email + "@" + emailHost+ ">" + contact + "</a>") |
||||
//--> |
||||
</script> |
||||
</p> |
||||
<!-- #EndLibraryItem --><!-- #BeginLibraryItem "/Library/google.lbi" --> |
||||
<p> |
||||
<script type="text/javascript"><!-- |
||||
google_ad_client = "pub-9614272375919933"; |
||||
google_ad_width = 120; |
||||
google_ad_height = 600; |
||||
google_ad_format = "120x600_as"; |
||||
google_color_border = "000000"; |
||||
google_color_bg = "F0F0F0"; |
||||
google_color_link = "0000FF"; |
||||
google_color_url = "008000"; |
||||
google_color_text = "000000"; |
||||
//--></script> |
||||
|
||||
<script type="text/javascript" src="https://web.archive.org/web/20110226031619js_/http://pagead2.googlesyndication.com/pagead/show_ads.js"> |
||||
</script> |
||||
</p> |
||||
|
||||
|
||||
<p> |
||||
<script type="text/javascript"><!-- |
||||
google_ad_client = "pub-9614272375919933"; |
||||
google_ad_width = 120; |
||||
google_ad_height = 600; |
||||
google_ad_format = "120x600_as"; |
||||
google_color_border = "000000"; |
||||
google_color_bg = "F0F0F0"; |
||||
google_color_link = "0000FF"; |
||||
google_color_url = "008000"; |
||||
google_color_text = "000000"; |
||||
//--></script> |
||||
|
||||
<script type="text/javascript" src="https://web.archive.org/web/20110226031619js_/http://pagead2.googlesyndication.com/pagead/show_ads.js"> |
||||
</script> |
||||
</p><!-- #EndLibraryItem --></div> |
||||
<!-- rightside --> |
||||
</div> |
||||
<!-- container_main --> |
||||
</div> |
||||
<!-- container_all --> |
||||
|
||||
|
||||
<script type="text/javascript"> |
||||
<!-- |
||||
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"}); |
||||
var MenuBar3 = new Spry.Widget.MenuBar("MenuBar3", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"}); |
||||
//--> |
||||
</script> |
||||
|
||||
</body> |
||||
<!-- InstanceEnd --></html> |
||||
<!-- |
||||
FILE ARCHIVED ON 03:16:19 Feb 26, 2011 AND RETRIEVED FROM THE |
||||
INTERNET ARCHIVE ON 12:38:43 May 12, 2018. |
||||
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. |
||||
|
||||
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. |
||||
SECTION 108(a)(3)). |
||||
--> |
||||
<!-- |
||||
playback timings (ms): |
||||
LoadShardBlock: 361.029 (3) |
||||
esindex: 0.006 |
||||
captures_list: 440.984 |
||||
CDXLines.iter: 13.301 (3) |
||||
PetaboxLoader3.datanode: 174.01 (4) |
||||
exclusion.robots.fetch: 60.68 (4) |
||||
exclusion.robots: 61.326 |
||||
exclusion.robots.policy: 0.266 |
||||
RedisCDXSource: 0.835 |
||||
PetaboxLoader3.resolve: 287.178 (2) |
||||
load_resource: 117.605 |
||||
--> |
||||
@ -1,7 +1,366 @@ |
||||
@online{foo, |
||||
title = {Foo Bar}, |
||||
url = {https://foo.bar}, |
||||
urldate = {2016-05-08}, |
||||
language = {english} |
||||
% USB tutorials and articles |
||||
|
||||
@string{USBIF = {{USB Implementers Forum, Inc.}}} |
||||
@string{MSFT = {{Microsoft Corporation}}} |
||||
@string{STM = {{ST Microelectronics}}} |
||||
|
||||
@online{usb-nutshell, |
||||
title = {USB in a NutShell}, |
||||
author = {Craig Peacock}, |
||||
url = {https://www.beyondlogic.org/usbnutshell}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usb-made-simple, |
||||
title = {USB Made Simple}, |
||||
author = {{MQP Electronics Ltd.}}, |
||||
url = {http://www.usbmadesimple.co.uk/}, |
||||
year = {2008}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{tty-usb-acm, |
||||
title = {What is the difference between /dev/ttyUSB and /dev/ttyACM?}, |
||||
author = {Samuel Tardieu}, |
||||
url = {https://rfc1149.net/blog/2013/03/05/what-is-the-difference-between-devttyusbx-and-devttyacmx/}, |
||||
year = {2013}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usb-tscsi, |
||||
title = {Mass Storage FAQ}, |
||||
author = {Jan Axelson}, |
||||
url = {http://janaxelson.com/mass_storage_faq.htm}, |
||||
year = {2013}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
@online{usb-tscsi-wtf, |
||||
title = {Discussion in a USB storage driver development mailing list (site defunct, archived via Archive.org)}, |
||||
url = {https://web.archive.org/web/20071108121822/https://lists.one-eyed-alien.net/pipermail/usb-storage/2004-September/000795.html}, |
||||
year = {2004}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usb-function, |
||||
title = {Windows 2000 Professional Resource Kit / USB Functions}, |
||||
author = MSFT, |
||||
url = {https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc939102(v%3dtechnet.10)}, |
||||
year = {2008}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
|
||||
@online{usb-class-list, |
||||
title = {USB Class Codes}, |
||||
author = USBIF, |
||||
url = {http://www.usb.org/developers/defined_class}, |
||||
year = {2016}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
% USB specification |
||||
|
||||
@online{usbif-spec, |
||||
title = {Universal Serial Bus Specification}, |
||||
author = USBIF, |
||||
url = {http://www.usb.org/developers/docs/usb20_docs/}, |
||||
year = {2000}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usbif-msco, |
||||
title = {USB Mass Storage Class, Specification Overview}, |
||||
author = USBIF, |
||||
url = {http://www.usb.org/developers/docs/devclass_docs/Mass_Storage_Specification_Overview_v1.4_2-19-2010.pdf}, |
||||
year = {2010}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usbif-bot, |
||||
title = {USB Mass Storage Class, Bulk-Only Transport}, |
||||
author = USBIF, |
||||
url = {http://www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf}, |
||||
year = {1999}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usbif-cdc, |
||||
title = {Class definitions for Communication Devices 1.2}, |
||||
author = USBIF, |
||||
url = {http://www.usb.org/developers/docs/devclass_docs/CDC1.2_WMC1.1_012011.zip}, |
||||
year = {2010}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{usbif-iad, |
||||
title = {USB Interface Association Descriptor, Device Class Code and Use Model}, |
||||
author = USBIF, |
||||
url = {http://www.usb.org/developers/docs/whitepapers/iadclasscode_r10.pdf}, |
||||
year = {2003}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
% Virtual FS |
||||
|
||||
@online{ms-fat, |
||||
title = {How FAT Works}, |
||||
author = MSFT, |
||||
url = {https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc776720(v=ws.10)}, |
||||
year = {2009}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{daplink, |
||||
title = {Arm Mbed DAPLink source code repository}, |
||||
author = {{Arm Mbed}}, |
||||
url = {https://github.com/ARMmbed/DAPLink}, |
||||
year = {2018}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{fat16-brainy, |
||||
title = {FAT16 Structure Information}, |
||||
author = {Jack Dobiash}, |
||||
url = {http://home.teleport.com/~brainy/fat16.htm}, |
||||
year = {1999}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{fat16-maverick, |
||||
title = {FAT16 File System}, |
||||
author = {{LKT Software}}, |
||||
url = {http://www.maverick-os.dk/FileSystemFormats/FAT16_FileSystem.html}, |
||||
year = {1999}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{fat16-phobos, |
||||
title = {A tutorial on the FAT file system}, |
||||
author = {Bob Eager}, |
||||
url = {http://www.tavi.co.uk/phobos/fat.html}, |
||||
year = {2017}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@book{freertos-book, |
||||
title = {Mastering the FreeRTOS™ Real Time Kernel}, |
||||
subtitle = {A Hands-On Tutorial Guide}, |
||||
author = {Richard Barry}, |
||||
publisher= {Real Time Engineers Ltd.}, |
||||
url = {https://www.freertos.org/Documentation/161204_Mastering_the_FreeRTOS_Real_Time_Kernel-A_Hands-On_Tutorial_Guide.pdf}, |
||||
year = {2016}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@manual{freertos-rm, |
||||
title = {The FreeRTOS™ Reference Manual}, |
||||
author = {{Real Time Engineers Ltd.}}, |
||||
publisher= {Real Time Engineers Ltd.}, |
||||
url = {https://www.freertos.org/Documentation/FreeRTOS_Reference_Manual_V10.0.0.pdf}, |
||||
year = {2018}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@article{fat-lfn, |
||||
author = {{vinDaci}}, |
||||
title = {Long Filename Specification}, |
||||
year = {1998}, |
||||
url = {http://home.teleport.com/~brainy/lfn.htm}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@techreport{fat-whitepaper, |
||||
author = MSFT, |
||||
title = {FAT: General Overview of On-Disk Format}, |
||||
url = {https://staff.washington.edu/dittrich/misc/fatgen103.pdf}, |
||||
year = {2000}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
% STM32 |
||||
|
||||
@techreport{stm-timer-coockbook, |
||||
author = STM, |
||||
title = {AN4776: General-purpose timer cookbook}, |
||||
year = {2017}, |
||||
url = {http://www.st.com/resource/en/application_note/dm00236305.pdf}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@techreport{stm-tsc-training, |
||||
author = STM, |
||||
title = {STM32L4 training: Touch Sensing Controller}, |
||||
year = {2017}, |
||||
url = {http://www.st.com/resource/en/product_training/stm32l4_peripheral_touchsense.pdf}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
% (couldnt find a proper link) |
||||
@techreport{stm-tsc-ppt, |
||||
author = STM, |
||||
title = {Touch Sensing Controller (TSC) presentation}, |
||||
year = {2015}, |
||||
url = {https://wenku.baidu.com/view/8472044a6137ee06eef9180c.html?re=view}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@techreport{stm-tsc-an1, |
||||
author = STM, |
||||
title = {AN4299: Guidelines to improve conducted noise robustness on STM32F0 Series, STM32F3 Series, STM32L0 Series and STM32L4 Series touch sensing applications}, |
||||
year = {2018}, |
||||
url = {http://www.st.com/resource/en/application_note/dm00085385.pdf}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@techreport{stm-tsc-an2, |
||||
author = STM, |
||||
title = {AN4310: Sampling capacitor selection guide for MCU based touch sensing |
||||
applications}, |
||||
year = {2015}, |
||||
url = {http://www.st.com/resource/en/application_note/dm00087593.pdf}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@techreport{stm-tsc-an3, |
||||
author = STM, |
||||
title = {AN4312: Guidelines for designing touch sensing applications |
||||
with surface sensors}, |
||||
year = {2017}, |
||||
url = {http://www.st.com/resource/en/application_note/dm00087990.pdf}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@techreport{stm-tsc-an4, |
||||
author = STM, |
||||
title = {AN4316: Tuning a STMTouch-based application}, |
||||
year = {2015}, |
||||
url = {http://www.st.com/resource/en/application_note/dm00088471.pdf}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
% other articles |
||||
@article{all-about-dds, |
||||
title={All about direct digital synthesis}, |
||||
author={Eva Murphy, Colm Slattery}, |
||||
series={Ask The Application Engineer}, |
||||
volume={33}, |
||||
url={http://www.analog.com/media/en/analog-dialogue/volume-38/number-3/articles/all-about-direct-digital-synthesis.pdf}, |
||||
year={2004} |
||||
} |
||||
|
||||
@techreport{understanding-i2c, |
||||
author = {Jonathan Valdez, Jared Becker}, |
||||
title = {Understanding the I2C Bus}, |
||||
year = {2015}, |
||||
url = {http://www.ti.com/lit/an/slva704/slva704.pdf}, |
||||
urldate = {2018-05-12}, |
||||
organization = {Texas Instruments} |
||||
} |
||||
|
||||
@manual{i2c-spec, |
||||
title = {I2C-bus specification and user manual}, |
||||
author = {{NXP Semiconductors}}, |
||||
url = {https://www.nxp.com/docs/en/user-guide/UM10204.pdf}, |
||||
year = {2014}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@manual{nrf-manual, |
||||
title = {nRF24L01+ Single Chip 2.4GHz Transceiver Product Specification v1.0}, |
||||
author = {{Nordic Semiconductor}}, |
||||
url = {http://www.nordicsemi.com/eng/content/download/2726/34069/file/nRF24L01P_Product_Specification_1_0.pdf}, |
||||
year = {2008}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@manual{semtech-manual, |
||||
title = {SX1276/77/78/79 datasheet}, |
||||
author = {{Semtech Corporation}}, |
||||
url = {https://www.semtech.com/uploads/documents/DS_SX1276-7-8-9_W_APP_V5.pdf}, |
||||
year = {2016}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
@manual{f072-rm, |
||||
title = {RM0091: STM32F0x1/STM32F0x2/STM32F0x8 reference manual}, |
||||
author = STM, |
||||
url = {http://www.st.com/resource/en/reference_manual/dm00031936.pdf}, |
||||
year = {2017}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@manual{f072-ds, |
||||
title = {STM32F072x8/STM32F072xB datasheet}, |
||||
author = STM, |
||||
url = {http://www.st.com/resource/en/datasheet/stm32f072c8.pdf}, |
||||
year = {2017}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
@manual{f103-rm, |
||||
title = {RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx reference manual}, |
||||
author = STM, |
||||
url = {http://www.st.com/resource/en/reference_manual/cd00171190.pdf}, |
||||
year = {2009}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@manual{f103-ds, |
||||
title = {STM32F103x8/STM32F103xB datasheet}, |
||||
author = STM, |
||||
url = {http://www.st.com/resource/en/datasheet/CD00161566.pdf}, |
||||
year = {2015}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{pidcodes, |
||||
title = {pid.codes, a registry of USB PID codes for open source hardware projects}, |
||||
url = {http://pid.codes/}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{eev-gpio-pu, |
||||
author = {{EEVblog Electronics Community Forum}}, |
||||
title = {pid.codes, a registry of USB PID codes for open source hardware projects}, |
||||
url = {https://www.eevblog.com/forum/projects/driving-the-1k5-usb-pull-up-resistor-on-d/}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
% Figure sources |
||||
|
||||
@online{buspirate-product-page, |
||||
author = {{Seeed Technology Co.,Ltd.}}, |
||||
title = {Bus Pirate v4 product page}, |
||||
url = {https://www.seeedstudio.com/Bus-Pirate-v4-p-740.html}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{nidevice1, |
||||
author = {{National Instruments}}, |
||||
title = {I²C/SPI Interface Device product page}, |
||||
url = {https://www.ni.com/en-gb/shop/select/i2c-spi-interface-device}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{nidevice2, |
||||
author = {{National Instruments}}, |
||||
title = {USB-6008 product page}, |
||||
url = {http://www.ni.com/en-gb/support/model.usb-6008.html}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
@online{tphasedevice, |
||||
author = {{Total Phase, Inc.}}, |
||||
title = {USB-6008 product page}, |
||||
url = {https://www.totalphase.com/products/aardvark-i2cspi/}, |
||||
urldate = {2018-05-12} |
||||
} |
||||
|
||||
|
||||
二进制文件未显示。
正在加载...
在新工单中引用