STM32GENERIC/docs/usb_msc/index.html

285 lines
8.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="../img/favicon.ico">
<title>USB Mass Storage - STM32GENERIC</title>
<link href="../css/bootstrap-custom.min.css" rel="stylesheet">
<link href="../css/font-awesome-4.0.3.css" rel="stylesheet">
<link rel="stylesheet" href="../css/highlight.css">
<link href="../css/base.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script src="../js/jquery-1.10.2.min.js"></script>
<script src="../js/bootstrap-3.0.3.min.js"></script>
<script src="../js/highlight.pack.js"></script>
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="..">STM32GENERIC</a>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav">
<li >
<a href="..">Installation</a>
</li>
<li >
<a href="../upload/">Uploading</a>
</li>
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../menu_options/">Menu options</a>
</li>
<li >
<a href="../arduino_api/">Arduino API</a>
</li>
<li >
<a href="../spi/">SPI</a>
</li>
<li >
<a href="../i2c/">I2C</a>
</li>
<li >
<a href="../i2s/">I2S</a>
</li>
<li >
<a href="../sdio/">SDIO</a>
</li>
<li >
<a href="../uart/">UART Serial</a>
</li>
<li >
<a href="../usb_cdc/">USB Serial</a>
</li>
<li class="active">
<a href="./">USB Mass Storage</a>
</li>
<li >
<a href="../stm32_hal/">STM32 HAL</a>
</li>
</ul>
</li>
<li >
<a href="../libraries/">Libraries</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">STM32 Boards <b class="caret"></b></a>
<ul class="dropdown-menu">
<li >
<a href="../boards/">Boards list</a>
</li>
<li >
<a href="../add_board/">Adding a board</a>
</li>
<li >
<a href="../test/">Testing a board</a>
</li>
</ul>
</li>
<li >
<a href="../about/">About</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
<li>
<a href="#" data-toggle="modal" data-target="#mkdocs_search_modal">
<i class="fa fa-search"></i> Search
</a>
</li>
<li >
<a rel="next" href="../usb_cdc/">
<i class="fa fa-arrow-left"></i> Previous
</a>
</li>
<li >
<a rel="prev" href="../stm32_hal/">
Next <i class="fa fa-arrow-right"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
<ul class="nav bs-sidenav">
<li class="main active"><a href="#usb-mass-storage">USB: Mass Storage</a></li>
<li class="main "><a href="#this-library-is-in-beta">This library is in beta</a></li>
</ul>
</div></div>
<div class="col-md-9" role="main">
<h2 id="usb-mass-storage">USB: Mass Storage</h2>
<h2 id="this-library-is-in-beta"><strong>This library is in beta</strong></h2>
<ol>
<li>Select Mass Storage from the arduino tools/USB menu</li>
<li>Override the <code>BlockDevice.h</code> interface to provide implementation for reading / writing blocks</li>
<li>Include <code>MassStorage.h</code>, and implement the <code>BlockDevice *getMassStorage()</code> function</li>
</ol>
<p>There is RAM implementation of BlockDevice, called RamBlockDevice. Example usage:</p>
<pre><code class="c++">#include &quot;Arduino.h&quot;
#include &quot;RamBlockDevice.h&quot;
RamBlockDevice ramBlockDevice(100 /* x 512 blocks*/, true);
BlockDevice *getMassStorage() {
return &amp;ramBlockDevice;
}
void blinkOnRead(uint32_t block, size_t count) {
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void blinkOnWrite(uint32_t block, size_t count) {
digitalWrite(LED1_BUILTIN, !digitalRead(LED1_BUILTIN));
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(LED1_BUILTIN, OUTPUT);
ramBlockDevice.setReadListener(blinkOnRead);
ramBlockDevice.setWriteListener(blinkOnWrite);
}
void loop() {
}
</code></pre></div>
</div>
<footer class="col-md-12">
<hr>
<center>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</center>
</footer>
<script>var base_url = '..';</script>
<script data-main="../mkdocs/js/search.js" src="../mkdocs/js/require.js"></script>
<script src="../js/base.js"></script>
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="exampleModalLabel">Search</h4>
</div>
<div class="modal-body">
<p>
From here you can search these documents. Enter
your search terms below.
</p>
<form role="form">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query">
</div>
</form>
<div id="mkdocs-search-results"></div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
</body>
</html>