2009-10-18 21:52:21 +08:00
|
|
|
README
|
|
|
|
^^^^^^
|
|
|
|
|
|
|
|
This directory contains various device drivers -- both block and
|
|
|
|
character drivers as well as other more specialized drivers.
|
|
|
|
|
2011-01-20 04:31:20 +08:00
|
|
|
Contents:
|
|
|
|
- Files in this directory
|
|
|
|
- Subdirectories of this directory
|
|
|
|
- Skeleton files
|
|
|
|
|
|
|
|
Files in this directory
|
2009-10-18 21:52:21 +08:00
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
2019-03-18 03:42:44 +08:00
|
|
|
dev_null.c and dev_zero.c
|
|
|
|
These files provide the standard /dev/null and /dev/zero devices. See
|
2020-07-17 01:31:53 +08:00
|
|
|
include/nuttx/drivers/drivers.h for prototypes of functions that should
|
2019-03-18 03:42:44 +08:00
|
|
|
be called if you want to register these devices (devnull_register()
|
|
|
|
and devzero_register()).
|
2009-10-18 21:52:21 +08:00
|
|
|
|
|
|
|
ramdisk.c
|
2012-03-25 06:39:52 +08:00
|
|
|
Can be used to set up a block of memory or (read-only) FLASH as
|
2019-08-20 01:30:12 +08:00
|
|
|
a block driver that can be mounted as a file system. See
|
2016-07-21 04:02:18 +08:00
|
|
|
include/nuttx/drivers/ramdisk.h.
|
2009-10-18 21:52:21 +08:00
|
|
|
|
2011-04-20 21:32:49 +08:00
|
|
|
rwbuffer.c
|
2019-08-20 01:30:12 +08:00
|
|
|
A facility that can be used by any block driver in-order to add
|
2012-03-25 06:39:52 +08:00
|
|
|
writing buffering and read-ahead buffering.
|
2011-04-20 21:32:49 +08:00
|
|
|
|
2009-10-18 21:52:21 +08:00
|
|
|
Subdirectories of this directory:
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
2011-08-26 00:44:11 +08:00
|
|
|
analog/
|
2012-03-25 06:39:52 +08:00
|
|
|
This directory holds implementations of analog device drivers.
|
|
|
|
This includes drivers for Analog to Digital Conversion (ADC) as
|
|
|
|
well as drivers for Digital to Analog Conversion (DAC).
|
|
|
|
See include/nuttx/analog/*.h for registration information.
|
2011-08-26 00:44:11 +08:00
|
|
|
|
2014-12-16 09:01:40 +08:00
|
|
|
audio/
|
|
|
|
Audio device drivers. See include/nuttx/audio/audio.h for interface
|
|
|
|
definitions. See also the audio subsystem at nuttx/audio/.
|
|
|
|
|
2009-10-18 21:52:21 +08:00
|
|
|
bch/
|
2012-03-25 06:39:52 +08:00
|
|
|
Contains logic that may be used to convert a block driver into
|
|
|
|
a character driver. This is the complementary conversion as that
|
|
|
|
performed by loop.c. See include/nuttx/fs/fs.h for registration
|
|
|
|
information.
|
2009-10-18 21:52:21 +08:00
|
|
|
|
2017-05-12 23:04:52 +08:00
|
|
|
can/
|
|
|
|
This is the CAN drivers and logic support. See include/nuttx/can/can.h
|
|
|
|
for usage information.
|
|
|
|
|
2016-09-01 00:58:08 +08:00
|
|
|
contactless/
|
|
|
|
Contactless devices are related to wireless devices. They are not
|
|
|
|
communication devices with other similar peers, but couplers/interfaces
|
|
|
|
to contactless cards and tags.
|
|
|
|
|
2018-08-27 21:14:01 +08:00
|
|
|
crypto/
|
2019-03-18 03:42:44 +08:00
|
|
|
Contains crypto drivers and support logic, including the /dev/urandom
|
|
|
|
device.
|
2018-08-27 21:14:01 +08:00
|
|
|
|
2014-12-16 09:01:40 +08:00
|
|
|
eeprom/
|
|
|
|
An EEPROM is a form of Memory Technology Device (see drivers/mtd).
|
|
|
|
EEPROMs are non-volatile memory like FLASH, but differ in underlying
|
|
|
|
memory technology and differ in usage in many respects: They may not
|
|
|
|
be organized into blocks (at least from the standpoint of the user)
|
|
|
|
and it is not necessary to erase the EEPROM memory before re-writing
|
|
|
|
it. In addition, EEPROMs tend to be much smaller than FLASH parts,
|
|
|
|
usually only a few kilobytes vs megabytes for FLASH. EEPROM tends to
|
|
|
|
be used to retain a small amount of device configuration information;
|
|
|
|
FLASH tends to be used for program or massive data storage. For these
|
|
|
|
reasons, it may not be convenient to use the more complex MTD
|
|
|
|
interface but instead use the simple character interface provided by
|
|
|
|
the EEPROM drivers.
|
|
|
|
|
2016-01-26 23:58:18 +08:00
|
|
|
i2c/
|
2016-01-30 22:00:16 +08:00
|
|
|
I2C drivers and support logic. See include/nuttx/i2c/i2c_master.h
|
2016-01-26 23:58:18 +08:00
|
|
|
|
2018-08-27 21:26:22 +08:00
|
|
|
i2s/
|
|
|
|
I2S drivers and support logic. See include/nuttx/audio/i2s.h
|
|
|
|
|
2012-03-25 06:39:52 +08:00
|
|
|
input/
|
2014-12-17 00:18:44 +08:00
|
|
|
This directory holds implementations of human input device (HID)
|
|
|
|
drivers. This includes such things as mouse, touchscreen, joystick,
|
|
|
|
keyboard and keypad drivers. See include/nuttx/input/*.h for
|
|
|
|
registration information.
|
|
|
|
|
|
|
|
Note that USB HID devices are treated differently. These can be
|
|
|
|
found under usbdev/ or usbhost/.
|
2011-08-26 00:44:11 +08:00
|
|
|
|
2010-05-16 02:57:24 +08:00
|
|
|
lcd/
|
2012-03-25 06:39:52 +08:00
|
|
|
Drivers for parallel and serial LCD and OLED type devices. These
|
|
|
|
drivers support interfaces as defined in include/nuttx/lcd/lcd.h
|
2010-05-16 02:57:24 +08:00
|
|
|
|
2015-12-15 22:05:10 +08:00
|
|
|
leds/
|
|
|
|
Various LED-related drivers including discrete as well as PWM-
|
|
|
|
driven LEDs.
|
|
|
|
|
2015-11-26 06:23:19 +08:00
|
|
|
loop/
|
|
|
|
Supports the standard loop device that can be used to export a
|
|
|
|
file (or character device) as a block device. See losetup() and
|
|
|
|
loteardown() in include/nuttx/fs/fs.h.
|
|
|
|
|
2009-10-18 21:52:21 +08:00
|
|
|
mmcsd/
|
2012-03-25 06:39:52 +08:00
|
|
|
Support for MMC/SD block drivers. MMC/SD block drivers based on
|
|
|
|
SPI and SDIO/MCI interfaces are supported. See include/nuttx/mmcsd.h
|
|
|
|
and include/nuttx/sdio.h for further information.
|
2009-10-18 21:52:21 +08:00
|
|
|
|
2009-10-19 01:45:31 +08:00
|
|
|
mtd/
|
2012-03-25 06:39:52 +08:00
|
|
|
Memory Technology Device (MTD) drivers. Some simple drivers for
|
|
|
|
memory technologies like FLASH, EEPROM, NVRAM, etc. See
|
2013-11-16 01:22:23 +08:00
|
|
|
include/nuttx/mtd/mtd.h
|
2009-10-19 01:45:31 +08:00
|
|
|
|
2012-03-25 06:39:52 +08:00
|
|
|
(Note: This is a simple memory interface and should not be
|
|
|
|
confused with the "real" MTD developed at infradead.org. This
|
|
|
|
logic is unrelated; I just used the name MTD because I am not
|
|
|
|
aware of any other common way to refer to this class of devices).
|
2009-10-19 01:45:31 +08:00
|
|
|
|
2009-10-18 21:52:21 +08:00
|
|
|
net/
|
2012-03-25 06:39:52 +08:00
|
|
|
Network interface drivers. See also include/nuttx/net/net.h
|
2009-10-18 21:52:21 +08:00
|
|
|
|
|
|
|
pipes/
|
2012-03-25 06:39:52 +08:00
|
|
|
FIFO and named pipe drivers. Standard interfaces are declared
|
|
|
|
in include/unistd.h
|
2009-10-18 21:52:21 +08:00
|
|
|
|
2012-03-25 06:39:52 +08:00
|
|
|
power/
|
|
|
|
Power management (PM) driver interfaces. These interfaces are used
|
|
|
|
to manage power usage of a platform by monitoring driver activity
|
|
|
|
and by placing drivers into reduce power usage modes when the
|
|
|
|
drivers are not active.
|
2011-09-05 06:16:10 +08:00
|
|
|
|
2018-08-27 21:17:34 +08:00
|
|
|
pwm/
|
|
|
|
Provides the "upper half" of a pulse width modulation (PWM) driver.
|
|
|
|
The "lower half" of the PWM driver is provided by device-specific
|
2019-09-02 21:53:52 +08:00
|
|
|
logic. See include/nuttx/timers/pwm.h for usage information.
|
2018-08-27 21:17:34 +08:00
|
|
|
|
2011-04-20 21:32:49 +08:00
|
|
|
sensors/
|
2014-12-16 09:01:40 +08:00
|
|
|
Drivers for various sensors. A sensor driver differs little from
|
2019-08-20 01:30:12 +08:00
|
|
|
other types of drivers other than they are use to provide measurements
|
|
|
|
of things in environment like temperature, orientation, acceleration,
|
2014-12-16 09:01:40 +08:00
|
|
|
altitude, direction, position, etc.
|
2012-03-25 06:39:52 +08:00
|
|
|
|
2014-12-16 21:51:50 +08:00
|
|
|
DACs might fit this definition of a sensor driver as well since they
|
|
|
|
measure and convert voltage levels. DACs, however, are retained in
|
|
|
|
the analog/ sub-directory.
|
|
|
|
|
2009-10-18 21:52:21 +08:00
|
|
|
serial/
|
2012-03-25 06:39:52 +08:00
|
|
|
Front-end character drivers for chip-specific UARTs. This provide
|
|
|
|
some TTY-like functionality and are commonly used (but not required for)
|
|
|
|
the NuttX system console. See also include/nuttx/serial/serial.h
|
2009-10-18 21:52:21 +08:00
|
|
|
|
2014-12-16 09:01:40 +08:00
|
|
|
spi/
|
2016-01-26 23:58:18 +08:00
|
|
|
SPI drivers and support logic. See include/nuttx/spi/spi.h
|
2014-12-16 09:01:40 +08:00
|
|
|
|
|
|
|
syslog/
|
|
|
|
System logging devices. See include/syslog.h and include/nuttx/syslog/syslog.h
|
|
|
|
|
2015-11-26 06:23:19 +08:00
|
|
|
timers/
|
|
|
|
Includes support for various timer devices including:
|
|
|
|
|
|
|
|
- An "upper half" for a generic timer driver. See
|
|
|
|
include/nuttx/timers/timer.h for more information.
|
|
|
|
|
|
|
|
- An "upper half" for a generic watchdog driver. See
|
|
|
|
include/nuttx/timers/watchdog.h for more information.
|
|
|
|
|
|
|
|
- RTC drivers
|
|
|
|
|
2009-10-18 21:52:21 +08:00
|
|
|
usbdev/
|
2012-03-25 06:39:52 +08:00
|
|
|
USB device drivers. See also include/nuttx/usb/usbdev.h
|
2009-10-18 21:52:21 +08:00
|
|
|
|
2011-01-02 00:56:59 +08:00
|
|
|
usbhost/
|
2012-03-25 06:39:52 +08:00
|
|
|
USB host drivers. See also include/nuttx/usb/usbhost.h
|
2011-01-20 04:31:20 +08:00
|
|
|
|
2014-12-16 09:01:40 +08:00
|
|
|
video/
|
2019-08-20 01:30:12 +08:00
|
|
|
Video-related drivers. See include/nuttx/video/.
|
2014-12-16 09:01:40 +08:00
|
|
|
|
2011-08-26 00:44:11 +08:00
|
|
|
wireless/
|
2012-03-25 06:39:52 +08:00
|
|
|
Drivers for various wireless devices.
|
2011-08-26 00:44:11 +08:00
|
|
|
|
2011-01-20 04:31:20 +08:00
|
|
|
Skeleton Files
|
|
|
|
^^^^^^^^^^^^^^
|
|
|
|
|
2019-08-20 01:30:12 +08:00
|
|
|
Skeleton files are "empty" frameworks for NuttX drivers. They are provided to
|
2011-01-20 04:31:20 +08:00
|
|
|
give you a good starting point if you want to create a new NuttX driver.
|
|
|
|
The following skeleton files are available:
|
|
|
|
|
2012-03-25 06:39:52 +08:00
|
|
|
drivers/lcd/skeleton.c -- Skeleton LCD driver
|
|
|
|
drivers/mtd/skeleton.c -- Skeleton memory technology device drivers
|
|
|
|
drivers/net/skeleton.c -- Skeleton network/Ethernet drivers
|
|
|
|
drivers/usbhost/usbhost_skeleton.c -- Skeleton USB host class driver
|