Table of Contents |
---|
maxLevel | 3 |
---|
minLevel | 2 |
---|
indent | 20px |
---|
|
Overview
Figure - MSC Architecture shows the general architecture of a USB Host and a USB MSC Device.
Anchor |
---|
| Figure - MSC Architecture |
---|
| Figure - MSC Architecture |
---|
|
Panel |
---|
borderWidth | 0 |
---|
title | Figure - MSC Architecture |
---|
|
Image Added |
On the host side, the application communicates with the MSC device by interacting with the native mass storage drivers and SCSI drivers. In compliance with the BOT specification, the host utilizes the default control endpoint to enumerate the device and the Bulk IN/OUT endpoints to communicate with the device.
...
The storage layer shown in is Figure - MSC Architecture is the interface between the MSC and the storage medium. The storage layer is responsible for initializing the storage medium, performing read / write operations on it, as well as obtaining information regarding its capacity and status. The storage medium could be:
...
By default, Micrium will provide a storage layer implementation (named RAMDisk) by utilizing the hardware’s platform memory as storage medium. Aside from this implementation, you have the option to use Micrium’s µC/FS or even utilize your own file system referred as vendor-specific file system storage layer. In the event you use your own file system, you will need to create a storage layer port to communicate with the storage medium. Please refer to the Porting MSC to a Storage Layer page to learn how to implement this storage layer.
shows Figure - µC/FS Storage layer shows how the µC/FS storage layer interfaces with µC/FS.
Anchor |
---|
| Figure - µC/FS Storage layer |
---|
| Figure - µC/FS Storage layer |
---|
|
Panel |
---|
borderWidth | 0 |
---|
title | Figure - µC/FS Storage layer |
---|
|
Image Added |
µC/FS storage layer implementation has two main characteristics:
...
The MSC class supports multiple logical units. A logical unit designates usually an entire media type or a partition within the same media type. illustrates Figure - Example of Logical Units Configurations illustrates the different multiple logical units configurations supported.
Anchor |
---|
| Figure - Example of Logical Units Configurations |
---|
| Figure - Example of Logical Units Configurations |
---|
|
Panel |
---|
borderWidth | 0 |
---|
title | Figure - Example of Logical Units Configurations |
---|
|
Image Added |
Panel |
---|
|
(1) Configuration #1 is an example of single logical unit. The whole RAM region represents one unique logical unit. This configuration is a typical example of USB memory sticks. When the device is connected to a host, this one will display a media icon. (2) Configuration #2 is an example of multiple logical units within the same media. Each logical unit could be seen as a partition. This configuration is a typical example of USB external hard drive. When the device is connected to the host, this one will display three media icons. (3) Configuration #3 is an example of multiple logical units of different type. This configuration a a typical example of multi-card reader. |
Configurations #1 and #2 are supported by the RAMDisk storage layer. Configurations #1 and #3 are supported by the µC/FS storage layer. The configuration #2 is currently not supported by the µC/FS storage layer.
...