summaryrefslogtreecommitdiff
path: root/apps/system/usbmsc/README.txt
blob: 9207dfb6be8bf5905a3705f6cd30d9d04cfefb97 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
system/usbmsc
^^^^^^^^^^^^^^^

  This add-on registers a block device driver, then exports the block
  the device using the USB storage class driver.  In order to use this
  add-on, your board-specific logic must provide the function:

    void usbmsc_archinitialize(void);

  This function will be called by the system/usbmsc in order to
  do the actual registration of the block device drivers.  For examples
  of the implementation of usbmsc_archinitialize() see
  configs/mcu123-lpc124x/src/up_usbmsc.c or
  configs/stm3210e-eval/src/usbmsc.c

  Configuration options:

  CONFIG_NSH_BUILTIN_APPS
    This add-on can be built as two NSH "built-in" commands if this option
    is selected: 'msconn' will connect the USB mass storage device; 'msdis'
    will disconnect the USB storage device.
  CONFIG_SYSTEM_USBMSC_NLUNS
    Defines the number of logical units (LUNs) exported by the USB storage
    driver.  Each LUN corresponds to one exported block driver (or partition
    of a block driver).  May be 1, 2, or 3.  Default is 1.
  CONFIG_SYSTEM_USBMSC_DEVMINOR1
    The minor device number of the block driver for the first LUN. For
    example, N in /dev/mmcsdN.  Used for registering the block driver. Default
    is zero.
  CONFIG_SYSTEM_USBMSC_DEVPATH1
    The full path to the registered block driver.  Default is "/dev/mmcsd0"
  CONFIG_SYSTEM_USBMSC_DEVMINOR2 and CONFIG_SYSTEM_USBMSC_DEVPATH2
    Similar parameters that would have to be provided if CONFIG_SYSTEM_USBMSC_NLUNS
    is 2 or 3.  No defaults.
  CONFIG_SYSTEM_USBMSC_DEVMINOR3 and CONFIG_SYSTEM_USBMSC_DEVPATH3
    Similar parameters that would have to be provided if CONFIG_SYSTEM_USBMSC_NLUNS
    is 3.  No defaults.
  CONFIG_SYSTEM_USBMSC_DEBUGMM
    Enables some debug tests to check for memory usage and memory leaks.

  If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
  the code will also manage the USB trace output.  The amount of trace output
  can be controlled using:

  CONFIG_SYSTEM_USBMSC_TRACEINIT
    Show initialization events
  CONFIG_SYSTEM_USBMSC_TRACECLASS
    Show class driver events
  CONFIG_SYSTEM_USBMSC_TRACETRANSFERS
    Show data transfer events
  CONFIG_SYSTEM_USBMSC_TRACECONTROLLER
    Show controller events
  CONFIG_SYSTEM_USBMSC_TRACEINTERRUPTS
    Show interrupt-related events.

  Error results are always shown in the trace output

  NOTE 1: When built as an NSH add-on command (CONFIG_NSH_BUILTIN_APPS=y),
  Caution should be used to assure that the SD drive (or other storage device) is
  not in use when the USB storage device is configured.  Specifically, the SD
  driver should be unmounted like:

  nsh> mount -t vfat /dev/mmcsd0 /mnt/sdcard # Card is mounted in NSH
  ...
  nsh> umount /mnd/sdcard                    # Unmount before connecting USB!!!
  nsh> msconn                                # Connect the USB storage device
  ...
  nsh> msdis                                 # Disconnect USB storate device
  nsh> mount -t vfat /dev/mmcsd0 /mnt/sdcard # Restore the mount

  Failure to do this could result in corruption of the SD card format.

  NOTE 2: This add-on used internal USB device driver interfaces.  As such,
  it relies on internal OS interfaces that are not normally available to a
  user-space program.  As a result, this add-on cannot be used if a
  NuttX is built as a protected, supervisor kernel (CONFIG_BUILD_PROTECTED
  or CONFIG_BUILD_KERNEL).