aboutsummaryrefslogtreecommitdiff
path: root/apps/examples/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'apps/examples/README.txt')
-rw-r--r--apps/examples/README.txt1928
1 files changed, 0 insertions, 1928 deletions
diff --git a/apps/examples/README.txt b/apps/examples/README.txt
deleted file mode 100644
index 03d43f1a0..000000000
--- a/apps/examples/README.txt
+++ /dev/null
@@ -1,1928 +0,0 @@
-examples
-^^^^^^^^
-
- appconfig and CONFIG_APPS
-
- The examples directory contains several sample applications that
- can be linked with NuttX. The specific example is selected in the
- configs/<board-name>/appconfig file via the CONFIGURED_APPS setting.
- This setting provides the path to the directory containing the
- application Makefile (this path is a relative to the apps/ top-
- level directory). For example,
-
- CONFIGURE_APPS += examples/ostest
-
- Selects the examples/ostest example.
-
- Built-In functions
-
- Some of the examples may be built as "built-in" functions that
- can be executed at run time (rather than as NuttX "main" programs).
- These "built-in" examples can be also be executed from the NuttShell
- (NSH) command line. In order to configure these built-in NSH
- functions, you have to set up the following:
-
- - CONFIG_NSH_BUILTIN_APPS - Enable support for external registered,
- "named" applications that can be executed from the NSH
- command line (see apps/README.txt for more information).
- - CONFIG_EXAMPLES_XYZ_BUILTIN -- Build the XYZ example as a "built-in"
- that can be executed from the NSH command line (where XYZ is
- the specific example. See the following for examples that
- support this option).
-
-examples/adc
-^^^^^^^^^^^^
-
- A mindlessly simple test of an ADC devices. It simply reads from the
- ADC device and dumps the data to the console forever.
-
- This test depends on these specific ADC/NSH configurations settings (your
- specific ADC settings might require additional settings).
-
- CONFIG_ADC - Enabled ADC support
- CONFIG_NSH_BUILTIN_APPS - Build the ADC test as an NSH built-in function.
- Default: Built as a standalone problem
-
- Specific configuration options for this example include:
-
- CONFIG_EXAMPLES_ADC_DEVPATH - The default path to the ADC device. Default: /dev/adc0
- CONFIG_EXAMPLES_ADC_NSAMPLES - If CONFIG_NSH_BUILTIN_APPS
- is defined, then the number of samples is provided on the command line
- and this value is ignored. Otherwise, this number of samples is
- collected and the program terminates. Default: Samples are collected
- indefinitely.
- CONFIG_EXAMPLES_ADC_GROUPSIZE - The number of samples to read at once.
- Default: 4
-
-examples/buttons
-^^^^^^^^^^^^^^^^
-
- This is a simple configuration that may be used to test the board-
- specific button interfaces. Configuration options:
-
- CONFIG_ARCH_BUTTONS - Must be defined for button support
- CONFIG_EXAMPLES_BUTTONS_MIN - Lowest button number (MIN=0)
- CONFIG_EXAMPLES_BUTTONS_MAX - Highest button number (MAX=7)
-
- CONFIG_ARCH_IRQBUTTONS - Must be defined for interrupting button support
- CONFIG_EXAMPLES_IRQBUTTONS_MIN - Lowest interrupting button number (MIN=0)
- CONFIG_EXAMPLES_IRQBUTTONS_MAX - Highest interrupting button number (MAX=7)
-
- Name strings for buttons:
-
- CONFIG_EXAMPLES_BUTTONS_NAME0, CONFIG_EXAMPLES_BUTTONS_NAME1,
- CONFIG_EXAMPLES_BUTTONS_NAME2, CONFIG_EXAMPLES_BUTTONS_NAME3,
- CONFIG_EXAMPLES_BUTTONS_NAME4, CONFIG_EXAMPLES_BUTTONS_NAME5,
- CONFIG_EXAMPLES_BUTTONS_NAME6, CONFIG_EXAMPLES_BUTTONS_NAME7,
-
- Additional architecture-/board- specific configuration settings may also
- be required.
-
- NOTE: This test exercises internal button driver interfaces. As such, it
- relies on internal OS interfaces that are not normally available to a
- user-space program. As a result, this example cannot be used if a
- NuttX is built as a protected, supervisor kernel (CONFIG_NUTTX_KERNEL).
-
-examples/can
-^^^^^^^^^^^^
-
- If the CAN device is configured in loopback mode, then this example can
- be used to test the CAN device in loop back mode. It simple sinces a
- sequence of CAN messages and verifies that those messages are returned
- exactly as sent.
-
- This test depends on these specific CAN/NSH configurations settings (your
- specific CAN settings might require additional settings).
-
- CONFIG_CAN - Enables CAN support.
- CONFIG_CAN_LOOPBACK - A CAN driver may or may not support a loopback
- mode for testing. The STM32 CAN driver does support loopback mode.
- CONFIG_NSH_BUILTIN_APPS - Build the CAN test as an NSH built-in function.
- Default: Built as a standalone problem
-
- Specific configuration options for this example include:
-
- CONFIG_EXAMPLES_CAN_DEVPATH - The path to the CAN device. Default: /dev/can0
- CONFIG_EXAMPLES_CAN_NMSGS - If CONFIG_NSH_BUILTIN_APPS
- is defined, then the number of loops is provided on the command line
- and this value is ignored. Otherwise, this number of CAN message is
- collected and the program terminates. Default: If built as an NSH
- built-in, the default is 32. Otherwise messages are sent and received
- indefinitely.
-
- The default behavior assumes loopback mode. Messages are sent, then read
- and verified. The behavior can be altered for other kinds of testing where
- the test only sends or received (but does not verify) can messages.
-
- CONFIG_EXAMPLES_CAN_READONLY - Only receive messages
- CONFIG_EXAMPLES_CAN_WRITEONLY - Only send messages
-
-examples/cdcacm
-^^^^^^^^^^^^^^^
-
- This very simple example shows how a USB CDC/ACM serial can be dynamically
- connected and disconnected from a host. This example can only be used as
- an NSH built-int command. If built-in, then two new NSH commands will be
- supported:
-
- 1. sercon - Connect the CDC/ACM serial device
- 2. serdis - Disconnect the CDC/ACM serial device
-
- Configuration prequisites (not complete):
-
- CONFIG_USBDEV=y : USB device support must be enabled
- CONFIG_CDCACM=y : The CDC/ACM driver must be built
- CONFIG_NSH_BUILTIN_APPS : NSH built-in application support must be enabled
-
- Configuration options specific to this example:
-
- CONFIG_EXAMPLES_CDCACM_DEVMINOR : The minor number of the CDC/ACM device.
- : i.e., the 'x' in /dev/ttyACMx
-
- If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB, or
- CONFIG_USBDEV_TRACE), then the example code will also initialize the USB trace
- output. The amount of trace output can be controlled using:
-
- CONFIG_EXAMPLES_CDCACM_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_CDCACM_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_CDCACM_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_CDCACM_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_CDCACM_TRACEINTERRUPTS
- Show interrupt-related events.
-
- Note: This example is only enables or disable USB CDC/ACM via the NSH
- 'sercon' and 'serdis' command. It will enable and disable tracing per
- the settings before enabling and after disabling the CDC/ACM device. It
- will not, however, monitor buffered trace data in the interim. If
- CONFIG_USBDEV_TRACE is defined (and the debug options are not), other
- application logic will need to monitor the buffered trace data.
-
-examples/composite
-^^^^^^^^^^^^^^^^^^
-
- This example test a USB composite device. The only supported composite is
- CDC/ACM serial with a USB mass storage device.
-
- Required overall configuration:
-
- CONFIG_USBDEV=y - USB device support
- CONFIG_USBDEV_COMPOSITE=y - USB composite device support
- CONFIG_COMPOSITE_IAD=y - Interface associate descriptor needed
-
- CONFIG_CDCACM=y - USB CDC/ACM serial device support
- CONFIG_CDCACM_COMPOSITE=y - USB CDC/ACM serial composite device support
- CONFIG_CDCACM_IFNOBASE=0 - CDC/ACM interfaces start with number 0
- CONFIG_CDCACM_STRBASE=4 - Base of string numbers (not really needed)
- CONFIG_CDCACM_EPINTIN=1 - Endpoint numbers must be unique
- CONFIG_CDCACM_EPBULKIN=2
- CONFIG_CDCACM_EPBULKOUT=3
-
- CONFIG_USBMSC - USB mass storage device support
- CONFIG_USBMSC_COMPOSITE=y - USB mass storage composite device support
- CONFIG_USBMSC_IFNOBASE=2 - USB mass storage interfaces start with number 2
- CONFIG_USBMSC_STRBASE=4 - Base of string numbers (needed)
- CONFIG_USBMSC_EPBULKOUT=4 - Endpoint numbers must be unique
- CONFIG_USBMSC_EPBULKIN=5
-
- CONFIG_NSH_BUILTIN_APPS
- This example can be built as two NSH "built-in" commands if this option
- is selected: 'conn' will connect the USB composite device; 'msdis'
- will disconnect the USB composite device.
-
- Configuration options unique to this example:
-
- CONFIG_EXAMPLES_COMPOSITE_DEBUGMM
- Enables some debug tests to check for memory usage and memory leaks.
-
- CONFIG_EXAMPLES_COMPOSITE_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_EXAMPLES_COMPOSITE_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_EXAMPLES_COMPOSITE_DEVPATH1
- The full path to the registered block driver. Default is "/dev/mmcsd0"
- CONFIG_EXAMPLES_COMPOSITE_DEVMINOR2 and CONFIG_EXAMPLES_COMPOSITE_DEVPATH2
- Similar parameters that would have to be provided if CONFIG_EXAMPLES_COMPOSITE_NLUNS
- is 2 or 3. No defaults.
- CONFIG_EXAMPLES_COMPOSITE_DEVMINOR3 and CONFIG_EXAMPLES_COMPOSITE_DEVPATH2
- Similar parameters that would have to be provided if CONFIG_EXAMPLES_COMPOSITE_NLUNS
- is 3. No defaults.
- CONFIG_EXAMPLES_COMPOSITE_BUFLEN. Default 256.
-
- CONFIG_EXAMPLES_COMPOSITE_TTYUSB - The minor number of the USB serial device.
- Default is zero (corresponding to /dev/ttyUSB0 or /dev/ttyACM0). Default is zero.
- CCONFIG_EXAMPLES_COMPOSITE_SERDEV - The string corresponding to
- CONFIG_EXAMPLES_COMPOSITE_TTYUSB. The default is "/dev/ttyUSB0" (for the PL2303
- emulation) or "/dev/ttyACM0" (for the CDC/ACM serial device).
- CONFIG_EXAMPLES_COMPOSITE_BUFSIZE - The size of the serial I/O buffer in
- bytes. Default 256 bytes.
-
- If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
- the example code will also manage the USB trace output. The amount of trace output
- can be controlled using:
-
- CONFIG_EXAMPLES_COMPOSITE_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_COMPOSITE_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_COMPOSITE_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_COMPOSITE_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_COMPOSITE_TRACEINTERRUPTS
- Show interrupt-related events.
-
-examples/cxxtest
-^^^^^^^^^^^^^^^^
-
- This is a test of the C++ standard library. At present a port of the uClibc++
- C++ library is available. Due to licensinging issues, the uClibc++ C++ library
- is not included in the NuttX source tree by default, but must be installed
- (see misc/uClibc++/README.txt for installation).
-
- The NuttX setting that are required include:
-
- CONFIG_HAVE_CXX=y
- CONFIG_HAVE_CXXINITIALIZE=y
- CONFIG_UCLIBCXX=y
-
- Additional uClibc++ settings may be required in your build environment.
-
- The uClibc++ test includes simple test of:
-
- - iostreams,
- - STL,
- - RTTI, and
- - Exceptions
-
-examples/dhcpd
-^^^^^^^^^^^^^^
-
- This examples builds a tiny DCHP server for the target system.
-
- NOTE: For test purposes, this example can be built as a
- host-based DHCPD server. This can be built as follows:
-
- cd examples/dhcpd
- make -f Makefile.host TOPDIR=<nuttx-directory>
-
- NuttX configuration settings:
-
- CONFIG_NET=y - Of course
- CONFIG_NSOCKET_DESCRIPTORS - And, of course, you must allocate some
- socket descriptors.
- CONFIG_NET_UDP=y - UDP support is required for DHCP
- (as well as various other UDP-related
- configuration settings)
- CONFIG_NET_BROADCAST=y - UDP broadcast support is needed.
-
- CONFIG_EXAMPLES_DHCPD_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLES_DHCPD_IPADDR - Target IP address
- CONFIG_EXAMPLES_DHCPD_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLES_DHCPD_NETMASK - Network mask
-
- See also CONFIG_NETUTILS_DHCPD_* settings described elsewhere
- and used in netutils/dhcpd/dhcpd.c. These settings are required
- to described the behavior of the daemon.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
-
-examples/discover
-^^^^^^^^^^^^^^^^^
-
- This example exercises netutils/discover utility. This example initializes
- and starts the UDP discover daemon. This daemon is useful for discovering
- devices in local networks, especially with DHCP configured devices. It
- listens for UDP broadcasts which also can include a device class so that
- groups of devices can be discovered. It is also possible to address all
- classes with a kind of broadcast discover.
-
- This example will automatically be built as an NSH built-in if
- CONFIG_NSH_BUILTIN_APPS is selected. Otherwise, it will be a standalone
- program with entry point "discover_main".
-
- NuttX configuration settings:
-
- CONFIG_EXAMPLES_DISCOVER_DHCPC - DHCP Client
- CONFIG_EXAMPLES_DISCOVER_NOMAC - Use canned MAC address
- CONFIG_EXAMPLES_DISCOVER_IPADDR - Target IP address
- CONFIG_EXAMPLES_DISCOVER_DRIPADDR - Router IP address
- CONFIG_EXAMPLES_DISCOVER_NETMASK - Network Mask
-
-examples/elf
-^^^^^^^^^^^^
-
- This example builds a small ELF loader test case. This includes several
- test programs under examples/elf tests. These tests are build using
- the relocatable ELF format and installed in a ROMFS file system. At run time,
- each program in the ROMFS file system is executed. Requires CONFIG_ELF.
- Other configuration options:
-
- CONFIG_EXAMPLES_ELF_DEVMINOR - The minor device number of the ROMFS block
- driver. For example, the N in /dev/ramN. Used for registering the RAM
- block driver that will hold the ROMFS file system containing the ELF
- executables to be tested. Default: 0
-
- CONFIG_EXAMPLES_ELF_DEVPATH - The path to the ROMFS block driver device. This
- must match EXAMPLES_ELF_DEVMINOR. Used for registering the RAM block driver
- that will hold the ROMFS file system containing the ELF executables to be
- tested. Default: "/dev/ram0"
-
- NOTES:
-
- 1. CFLAGS should be provided in CELFFLAGS. RAM and FLASH memory regions
- may require long allcs. For ARM, this might be:
-
- CELFFLAGS = $(CFLAGS) -mlong-calls
-
- Similarly for C++ flags which must be provided in CXXELFFLAGS.
-
- 2. Your top-level nuttx/Make.defs file must also include an approproate definition,
- LDELFFLAGS, to generate a relocatable ELF object. With GNU LD, this should
- include '-r' and '-e main' (or _main on some platforms).
-
- LDELFFLAGS = -r -e main
-
- If you use GCC to link, you make also need to include '-nostdlib' or
- '-nostartfiles' and '-nodefaultlibs'.
-
- 3. This example also requires genromfs. genromfs can be build as part of the
- nuttx toolchain. Or can built from the genromfs sources that can be found
- at misc/tools/genromfs-0.5.2.tar.gz. In any event, the PATH variable must
- include the path to the genromfs executable.
-
- 4. ELF size: The ELF files in this example are, be default, quite large
- because they include a lot of "build garbage". You can greatly reduce the
- size of the ELF binaries are using the 'objcopy --strip-unneeded' command to
- remove un-necessary information from the ELF files.
-
- 5. Simulator. You cannot use this example with the the NuttX simulator on
- Cygwin. That is because the Cygwin GCC does not generate ELF file but
- rather some Windows-native binary format.
-
- If you really want to do this, you can create a NuttX x86 buildroot toolchain
- and use that be build the ELF executables for the ROMFS file system.
-
- 6. Linker scripts. You might also want to use a linker scripts to combine
- sections better. An example linker script is at nuttx/binfmt/libelf/gnu-elf.ld.
- That example might have to be tuned for your particular linker output to
- position additional sections correctly. The GNU LD LDELFFLAGS then might
- be:
-
- LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/libelf/gnu-elf.ld
-
-examples/ftpc
-^^^^^^^^^^^^^
-
- This is a simple FTP client shell used to exercise the capabilities
- of the FTPC library (apps/netutils/ftpc). This example is configured
- to that it will only work as a "built-in" program that can be run from
- NSH when CONFIG_NSH_BUILTIN_APPS is defined.
-
- From NSH, the startup command sequence is as follows. This is only
- an example, your configration could have different mass storage devices,
- mount paths, and FTP directories:
-
- nsh> mount -t vfat /dev/mmcsd0 /tmp # Mount the SD card at /tmp
- nsh> cd /tmp # cd into the /tmp directory
- nsh> ftpc xx.xx.xx.xx[:pp] # Start the FTP client
- nfc> login <name> <password> # Log into the FTP server
- nfc> help # See a list of FTP commands
-
- where xx.xx.xx.xx is the IP address of the FTP server and pp is an
- optional port number.
-
- NOTE: By default, FTPC uses readline to get data from stdin. So your
- appconfig file must have the following build path:
-
- CONFIGURED_APPS += system/readline
-
- NOTE: If you use the ftpc task over a telnet NSH connection, then you
- should set the following configuration item:
-
- CONFIG_EXAMPLES_FTPC_FGETS=y
-
- By default, the FTPC client will use readline() to get characters from
- the console. Readline includes and command-line editor and echos
- characters received in stdin back through stdout. Neither of these
- behaviors are desire-able if Telnet is used.
-
- You may also want to define the following in your configuration file.
- Otherwise, you will have not feeback about what is going on:
-
- CONFIG_DEBUG=y
- CONFIG_DEBUG_VERBOSE=y
- CONFIG_DEBUG_FTPC=y
-
-examples/ftpd
-^^^^^^^^^^^^^^
-
- This example exercises the FTPD daemon at apps/netuils/ftpd. Below are
- configurations specific to the FTPD example (the FTPD daemon itself may
- require other configuration options as well).
-
- CONFIG_EXAMPLES_FTPD_PRIO - Priority of the FTP daemon.
- Default: SCHED_PRIORITY_DEFAULT
- CONFIG_EXAMPLES_FTPD_STACKSIZE - Stack size allocated for the
- FTP daemon. Default: 2048
- CONFIG_EXAMPLES_FTPD_NONETINIT - Define to suppress configuration of the
- network by apps/examples/ftpd. You would need to suppress network
- configuration if the network is configuration prior to running the
- example.
-
- NSH always initializes the network so if CONFIG_NSH_BUILTIN_APPS is
- defined, so is CONFIG_EXAMPLES_FTPD_NONETINIT (se it does not explicitly
- need to be defined in that case):
-
- CONFIG_NSH_BUILTIN_APPS - Build the FTPD daemon example test as an
- NSH built-in function. By default the FTPD daemon will be built
- as a standalone application.
-
- If CONFIG_EXAMPLES_FTPD_NONETINIT is not defined, then the following may
- be specified to customized the network configuration:
-
- CONFIG_EXAMPLES_FTPD_NOMAC - If the hardware has no MAC address of its
- own, define this =y to provide a bogus address for testing.
- CONFIG_EXAMPLES_FTPD_IPADDR - The target IP address. Default 10.0.0.2
- CONFIG_EXAMPLES_FTPD_DRIPADDR - The default router address. Default
- 10.0.0.1
- CONFIG_EXAMPLES_FTPD_NETMASK - The network mask. Default: 255.255.255.0
-
- Other required configuration settings: Of course TCP networking support
- is required. But here are a couple that are less obvious:
-
- CONFIG_DISABLE_PTHREAD - pthread support is required
- CONFIG_DISABLE_POLL - poll() support is required
-
- Other FTPD configuration options thay may be of interest:
-
- CONFIG_FTPD_VENDORID - The vendor name to use in FTP communications.
- Default: "NuttX"
- CONFIG_FTPD_SERVERID - The server name to use in FTP communications.
- Default: "NuttX FTP Server"
- CONFIG_FTPD_CMDBUFFERSIZE - The maximum size of one command. Default:
- 512 bytes.
- CONFIG_FTPD_DATABUFFERSIZE - The size of the I/O buffer for data
- transfers. Default: 2048 bytes.
- CONFIG_FTPD_WORKERSTACKSIZE - The stacksize to allocate for each
- FTP daemon worker thread. Default: 2048 bytes.
-
- The appconfig file (apps/.config) should include:
-
- CONFIGURED_APPS += examples/ftpd
- CONFIGURED_APPS += netutils/uiplib
- CONFIGURED_APPS += netutils/ftpd
-
-examples/hello
-^^^^^^^^^^^^^^
-
- This is the mandatory, "Hello, World!!" example. It is little more
- than examples/null with a single printf statement. Really useful only
- for bringing up new NuttX architectures.
-
- * CONFIG_NSH_BUILTIN_APPS
- Build the "Hello, World" example as an NSH built-in application.
-
-examples/helloxx
-^^^^^^^^^^^^^^^^
-
- This is C++ version of the "Hello, World!!" example. It is intended
- only to verify that the C++ compiler is functional, that basic C++
- library suupport is available, and that class are instantiated
- correctly.
-
- NuttX configuration prerequisites:
-
- CONFIG_HAVE_CXX -- Enable C++ Support
-
- Optional NuttX configuration settings:
-
- CONFIG_HAVE_CXXINITIALIZE -- Enable support for static constructors
- (may not be available on all platforms).
-
- NuttX configuration settings specific to this examp;le:
-
- CONFIG_EXAMPLES_HELLOXX_BUILTIN -- Build the helloxx example as a
- "built-in" that can be executed from the NSH command line.
- CONFIG_EXAMPLES_HELLOXX_NOSTACKCONST - Set if the system does not
- support construction of objects on the stack.
-
- Also needed:
-
- CONFIG_HAVE_CXX=y
-
- And you may have to tinker with the following to get libxx to compile
- properly:
-
- CONFIG_CXX_NEWLONG=y or =n
-
- The argument of the 'new' operators should take a type of size_t. But size_t
- has an unknown underlying. In the nuttx sys/types.h header file, size_t
- is typed as uint32_t (which is determined by architecture-specific logic).
- But the C++ compiler may believe that size_t is of a different type resulting
- in compilation errors in the operator. Using the underlying integer type
- Instead of size_t seems to resolve the compilation issues.
-
-examples/hidkbd
-^^^^^^^^^^^^^^^^
-
- This is a simple test to debug/verify the USB host HID keyboard class
- driver.
-
- CONFIG_EXAMPLES_HIDKBD_DEFPRIO - Priority of "waiter" thread. Default:
- 50
- CONFIG_EXAMPLES_HIDKBD_STACKSIZE - Stacksize of "waiter" thread. Default
- 1024
- CONFIG_EXAMPLES_HIDKBD_DEVNAME - Name of keyboard device to be used.
- Default: "/dev/kbda"
- CONFIG_EXAMPLES_HIDKBD_ENCODED - Decode special key press events in the
- user buffer. In this case, the example coded will use the interfaces
- defined in include/nuttx/input/kbd_codec.h to decode the returned
- keyboard data. These special keys include such things as up/down
- arrows, home and end keys, etc. If this not defined, only 7-bit print-
- able and control ASCII characters will be provided to the user.
- Requires CONFIG_HIDKBD_ENCODED && CONFIG_LIB_KBDCODEC
-
-endif
-examples/igmp
-^^^^^^^^^^^^^
-
- This is a trivial test of the NuttX IGMP capability. It present it
- does not do much of value -- Much more is needed in order to verify
- the IGMP features!
-
- * CONFIG_EXAMPLES_IGMP_NOMAC
- Set if the hardware has no MAC address; one will be assigned
- * CONFIG_EXAMPLES_IGMP_IPADDR
- Target board IP address
- * CONFIG_EXAMPLES_IGMP_DRIPADDR
- Default router address
- * CONFIG_EXAMPLES_IGMP_NETMASK
- Network mask
- * CONFIG_EXAMPLES_IGMP_GRPADDR
- Multicast group address
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
-
-examples/json
-^^^^^^^^^^^^^
-
- This example exercises the cJSON implementation at apps/netutils/json.
- This example contains logic taken from the cJSON project:
-
- http://sourceforge.net/projects/cjson/
-
- The example corresponds to SVN revision r42 (with lots of changes for
- NuttX coding standards). As of r42, the SVN repository was last updated
- on 2011-10-10 so I presume that the code is stable and there is no risk
- of maintaining duplicate logic in the NuttX repository.
-
-examples/keypadtest
-^^^^^^^^^^^^^^^^^^^
-
- This is a generic keypad test example. It is similar to the USB hidkbd
- example, but makes no assumptions about the underlying keyboard interface.
- It uses the interfaces of include/nuttx/input/keypad.h.
-
- CONFIG_EXAMPLES_KEYPADTEST - Selects the keypadtest example (only need
- if the mconf/Kconfig tool is used.
-
- CONFIG_EXAMPLES_KEYPAD_DEVNAME - The name of the keypad device that will
- be opened in order to perform the keypad test. Default: "/dev/keypad"
-
-examples/lcdrw
-^^^^^^^^^^^^^^
-
- This example may be used to verify if you can or cannot read data
- correctly from an LCD interface. At present, this supports only LCDs
- with RGB565 color format.
-
- * CONFIG_EXAMPLES_LDCRW_DEVNO
- LCD device number. Default: 0
- * CONFIG_EXAMPLES_LDCRW_XRES
- LCD X resolution. Default: 240
- * CONFIG_EXAMPLES_LDCRW_YRES
- LCD Y resolution. Default: 320
-
- NOTE: This test exercises internal lcd driver interfaces. As such, it
- relies on internal OS interfaces that are not normally available to a
- user-space program. As a result, this example cannot be used if a
- NuttX is built as a protected, supervisor kernel (CONFIG_NUTTX_KERNEL).
-
-examples/mm
-^^^^^^^^^^^
-
- This is a simplified version of the "built-in" memory manager test of
- mm/mm_test.c. It is simplified because it does not have access to the
- internals of the memory manager as does mm/mm_test.c, but it has the
- advantage that it runs in the actual NuttX tasking environment (the
- mm/mm_test.c only runs in a PC simulation environment).
-
-examples/modbus
-^^^^^^^^^^^^^^^
-
- This is a port of the FreeModbus Linux demo. It derives from the
- demos/LINUX directory of the FreeModBus version 1.5.0 (June 6, 2010)
- that can be downloaded in its entirety from http://developer.berlios.de/project/showfiles.php?group_id=6120.
-
- CONFIG_EXAMPLES_MODBUS_PORT, Default 0 (for /dev/ttyS0)
- CONFIG_EXAMPLES_MODBUS_BAUD, Default B38400
- CONFIG_EXAMPLES_MODBUS_PARITY, Default MB_PAR_EVEN
-
- CONFIG_EXAMPLES_MODBUS_REG_INPUT_START, Default 1000
- CONFIG_EXAMPLES_MODBUS_REG_INPUT_NREGS, Default 4
- CONFIG_EXAMPLES_MODBUS_REG_HOLDING_START, Default 2000
- CONFIG_EXAMPLES_MODBUS_REG_HOLDING_NREGS, Default 130
-
- The FreeModBus library resides at apps/modbus. See apps/modbus/README.txt
- for additional configuration information.
-
-examples/mount
-^^^^^^^^^^^^^^
-
- This contains a simple test of filesystem mountpoints.
-
- * CONFIG_EXAMPLES_MOUNT_DEVNAME
- The name of the user-provided block device to mount.
- If CONFIG_EXAMPLES_MOUNT_DEVNAME is not provided, then
- a RAM disk will be configured.
-
- * CONFIG_EXAMPLES_MOUNT_NSECTORS
- The number of "sectors" in the RAM disk used when
- CONFIG_EXAMPLES_MOUNT_DEVNAME is not defined.
-
- * CONFIG_EXAMPLES_MOUNT_SECTORSIZE
- The size of each sectors in the RAM disk used when
- CONFIG_EXAMPLES_MOUNT_DEVNAME is not defined.
-
- * CONFIG_EXAMPLES_MOUNT_RAMDEVNO
- The RAM device minor number used to mount the RAM disk used
- when CONFIG_EXAMPLES_MOUNT_DEVNAME is not defined. The
- default is zero (meaning that "/dev/ram0" will be used).
-
-examples/nettest
-^^^^^^^^^^^^^^^^
-
- This is a simple network test for verifying client- and server-
- functionality in a TCP/IP connection.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
-
-examples/nsh
-^^^^^^^^^^^^
-
- This directory provides an example of how to configure and use
- the NuttShell (NSH) application. NSH is a simple shell
- application. NSH is described in its own README located at
- apps/nshlib/README.txt
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += nshlib
-
- NOTE: If the NSH serial console is used, then following is also
- required to build the readline() library:
-
- CONFIGURED_APPS += system/readline
-
- And if networking is included:
-
- CONFIGURED_APPS += uiplib
- CONFIGURED_APPS += dhcpc
- CONFIGURED_APPS += resolv
- CONFIGURED_APPS += tftp
- CONFIGURED_APPS += webclient
-
- If the Telnet console is enabled, then the appconfig file (apps/.config)
- should also include:
-
- CONFIGURED_APPS += netutils/telnetd
-
- Also if the Telnet console is enabled, make sure that you have the
- following set in the NuttX configuration file or else the performance
- will be very bad (because there will be only one character per TCP
- transfer):
-
- CONFIG_STDIO_BUFFER_SIZE - Some value >= 64
- CONFIG_STDIO_LINEBUFFER=y
-
-examples/nx
-^^^^^^^^^^^
-
- This directory contains a simple test of a subset of the NX APIs
- defined in include/nuttx/nx/nx.h. The following configuration options
- can be selected:
-
- CONFIG_EXAMPLES_NX_BUILTIN -- Build the NX example as a "built-in"
- that can be executed from the NSH command line
- CONFIG_EXAMPLES_NX_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NX_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NX_BGCOLOR -- The color of the background. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_COLOR1 -- The color of window 1. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_COLOR2 -- The color of window 2. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_TBCOLOR -- The color of the toolbar. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_FONTID - Selects the font (see font ID numbers in
- include/nuttx/nx/nxfonts.h)
- CONFIG_EXAMPLES_NX_FONTCOLOR -- The color of the fonts. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_BPP -- Pixels per pixel to use. Valid options
- include 2, 4, 8, 16, 24, and 32. Default is 32.
- CONFIG_EXAMPLES_NX_RAWWINDOWS -- Use raw windows; Default is to
- use pretty, framed NXTK windows with toolbars.
- CONFIG_EXAMPLES_NX_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
- This test can be performed with either the single-user version of
- NX or with the multiple user version of NX selected with CONFIG_NX_MULTIUSER.
- If CONFIG_NX_MULTIUSER is defined, then the following configuration
- options also apply:
-
- CONFIG_EXAMPLES_NX_STACKSIZE -- The stacksize to use when creating
- the NX server. Default 2048
- CONFIG_EXAMPLES_NX_CLIENTPRIO -- The client priority. Default: 100
- CONFIG_EXAMPLES_NX_SERVERPRIO -- The server priority. Default: 120
- CONFIG_EXAMPLES_NX_LISTENERPRIO -- The priority of the event listener
- thread. Default 80.
- CONFIG_EXAMPLES_NX_NOTIFYSIGNO -- The signal number to use with
- nx_eventnotify(). Default: 4
-
- If CONFIG_NX_MULTIUSER is defined, then the example also expects the
- following settings and will generate an error if they are not as expected:
-
- CONFIG_DISABLE_MQUEUE=n
- CONFIG_DISABLE_SIGNALS=n
- CONFIG_DISABLE_PTHREAD=n
- CONFIG_NX_BLOCKING=y
-
-examples/nxconsole
-^^^^^^^^^^^^^^^^^^
-
- This directory contains yet another version of the NuttShell (NSH). This
- version uses the NX console device defined in include/nuttx/nx/nxconsole.h
- for output. the result is that the NSH input still come from the standard
- console input (probably a serial console). But the text output will go to
- an NX winbdow. Prerequisite configuration settings for this test include:
-
- CONFIG_NX=y -- NX graphics must be enabled
- CONFIG_NXCONSOLE=y -- The NX console driver must be built
- CONFIG_NX_MULTIUSER=y -- NX multi-user support must be enabled.
- CONFIG_DISABLE_MQUEUE=n -- Message queue support must be available.
- CONFIG_DISABLE_SIGNALS=n -- Signals are needed
- CONFIG_DISABLE_PTHREAD=n -- pthreads are needed
- CONFIG_NX_BLOCKING=y -- pthread APIs must be blocking
- CONFIG_NSH_CONSOLE=y -- NSH must be configured to use a console.
-
- The following configuration options can be selected to customize the
- test:
-
- CONFIG_EXAMPLES_NXCON_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NXCON_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NXCON_BGCOLOR -- The color of the background. Default
- Default is a darker royal blue.
- CONFIG_EXAMPLES_NXCON_WCOLOR -- The color of the window. Default is a light
- slate blue.
- CONFIG_EXAMPLES_NXCON_FONTID -- Selects the font (see font ID numbers in
- include/nuttx/nx/nxfonts.h)
- CONFIG_EXAMPLES_NXCON_FONTCOLOR -- The color of the fonts. Default is
- black.
- CONFIG_EXAMPLES_NXCON_BPP -- Pixels per pixel to use. Valid options
- include 2, 4, 8, 16, 24, and 32. Default is 32.
- CONFIG_EXAMPLES_NXCON_TOOLBAR_HEIGHT -- The height of the toolbar.
- Default: 16
- CONFIG_EXAMPLES_NXCON_TBCOLOR -- The color of the toolbar. Default is
- a medium grey.
- CONFIG_EXAMPLES_NXCON_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
- CONFIG_EXAMPLES_NXCON_MINOR -- The NX console device minor number.
- Default is 0 corresponding to /dev/nxcon0
- CONFIG_EXAMPLES_NXCON_DEVNAME -- The quoated, full path to the
- NX console device corresponding to CONFIG_EXAMPLES_NXCON_MINOR.
- Default: "/dev/nxcon0"
- CONFIG_EXAMPLES_NXCONSOLE_PRIO - Priority of the NxConsole task.
- Default: SCHED_PRIORITY_DEFAULT
- CONFIG_EXAMPLES_NXCONSOLE_STACKSIZE - Stack size allocated for the
- NxConsole task. Default: 2048
-
- The following configuration settings determine how to set up the NX
- server (CONFIG_NX_MULTIUSER):
-
- CONFIG_EXAMPLES_NXCON_STACKSIZE -- The stacksize to use when creating
- the NX server. Default 2048
- CONFIG_EXAMPLES_NXCON_CLIENTPRIO -- The client priority. Default: 100
- CONFIG_EXAMPLES_NXCON_SERVERPRIO -- The server priority. Default: 120
- CONFIG_EXAMPLES_NXCON_LISTENERPRIO -- The priority of the event listener
- thread. Default 80.
- CONFIG_EXAMPLES_NXCON_NOTIFYSIGNO -- The signal number to use with
- nx_eventnotify(). Default: 4
-
-examples/nxffs
-^^^^^^^^^^^^^^
-
- This is a test of the NuttX NXFFS FLASH file system. This is an NXFFS
- stress test and beats on the file system very hard. It should only
- be used in a simulation environment! Putting this NXFFS test on real
- hardware will most likely destroy your FLASH. You have been warned.
-
-examples/nxflat
-^^^^^^^^^^^^^^^
-
- This example builds a small NXFLAT test case. This includes several
- test programs under examples/nxflat tests. These tests are build using
- the NXFLAT format and installed in a ROMFS file system. At run time,
- each program in the ROMFS file system is executed. Requires CONFIG_NXFLAT.
-
-examplex/nxhello
-^^^^^^^^^^^^^^^^
-
- A very simple graphics example that just says "Hello, World!" in the
- center of the display.
-
- The following configuration options can be selected:
-
- CONFIG_EXAMPLES_NXHELLO_BUILTIN -- Build the NXHELLO example as a "built-in"
- that can be executed from the NSH command line
- CONFIG_EXAMPLES_NXHELLO_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NXHELLO_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NXHELLO_BGCOLOR -- The color of the background. Default
- depends on CONFIG_EXAMPLES_NXHELLO_BPP.
- CONFIG_EXAMPLES_NXHELLO_FONTID - Selects the font (see font ID numbers in
- include/nuttx/nx/nxfonts.h)
- CONFIG_EXAMPLES_NXHELLO_FONTCOLOR -- The color of the fonts used in the
- background window. Default depends on CONFIG_EXAMPLES_NXHELLO_BPP.
- CONFIG_EXAMPLES_NXHELLO_BPP -- Pixels per pixel to use. Valid options
- include 2, 4, 8, 16, 24, and 32. Default is 32.
- CONFIG_EXAMPLES_NXHELLO_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
-examples/nximage
-^^^^^^^^^^^^^^^^
-
- This is a simple example that just puts the NuttX logo image in the center
- of the display. This only works for RGB23 (888), RGB16 (656), RGB8 (332),
- and 8-bit greyscale for now.
-
- CONFIG_EXAMPLES_NXIMAGE_BUILTIN -- Build the NXIMAGE example as a "built-in"
- that can be executed from the NSH command line
- CONFIG_EXAMPLES_NXIMAGE_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NXIMAGE_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NXIMAGE_BPP -- Pixels per pixel to use. Valid options
- include 8, 16, and 24. Default is 16.
- CONFIG_EXAMPLES_NXIMAGE_XSCALEp5, CONFIG_EXAMPLES_NXIMAGE_XSCALE1p5,
- CONFIG_EXAMPLES_NXIMAGE_XSCALE2p0 -- The logo image width is 160 columns.
- One of these may be defined to rescale the image horizontally by .5, 1.5,
- or 2.0.
- CONFIG_EXAMPLES_NXIMAGE_YSCALEp5, CONFIG_EXAMPLES_NXIMAGE_YSCALE1p5,
- CONFIG_EXAMPLES_NXIMAGE_YSCALE2p0 -- The logo image height is 160 rows.
- One of these may be defined to rescale the image vertically by .5, 1.5,
- or 2.0.
- CONFIG_EXAMPLES_NXIMAGE_GREYSCALE -- Grey scale image. Default: RGB.
- CONFIG_EXAMPLES_NXIMAGE_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
- How was that run-length encoded image produced?
-
- a. I used GIMP output the image as a .c file.
- b. I added som C logic to palette-ize the RGB image in the GIMP .c file
- c. Then I add some simple run-length encoding to palette-ized image.
-
- NOTE: As of this writing, most of the pixel depth, scaling options, and
- combinations thereof have not been tested.
-
-examplex/nxlines
-^^^^^^^^^^^^^^^^
-
- A very simple graphics example that just exercised the NX line drawing
- logic.
-
- The following configuration options can be selected:
-
- CONFIG_EXAMPLES_NXLINES_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NXLINES_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NXLINES_BGCOLOR -- The color of the background. Default
- depends on CONFIG_EXAMPLES_NXLINES_BPP.
- CONFIG_EXAMPLES_NXLINES_LINEWIDTH - Selects the width of the lines in
- pixels (default: 16)
- CONFIG_EXAMPLES_NXLINES_LINECOLOR -- The color of the central lines drawn
- in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
- (there really is no meaningful default).
- CONFIG_EXAMPLES_NXLINES_BORDERWIDTH -- The width of the circular border
- drawn in the background window. (default: 16).
- CONFIG_EXAMPLES_NXLINES_BORDERCOLOR -- The color of the circular border
- drawn in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
- (there really is no meaningful default).
- CONFIG_EXAMPLES_NXLINES_CIRCLECOLOR -- The color of the circular region
- filled in the background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP
- (there really is no meaningful default).
- CONFIG_EXAMPLES_NXLINES_BORDERCOLOR -- The color of the lines drawn in the
- background window. Default depends on CONFIG_EXAMPLES_NXLINES_BPP (there
- really is no meaningful default).
-
- CONFIG_EXAMPLES_NXLINES_BPP -- Pixels per pixel to use. Valid options
- include 2, 4, 8, 16, 24, and 32. Default is 16.
- CONFIG_EXAMPLES_NXLINES_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
- CONFIG_NSH_BUILTIN_APPS - Build the NX lines examples as an NSH built-in
- function.
-
-examples/nxtext
-^^^^^^^^^^^^^^^
-
- This directory contains another simple test of a subset of the NX APIs
- defined in include/nuttx/nx/nx.h. This text focuses on text displays on
- the dispaly background combined with pop-up displays over the text.
- The text display will continue to update while the pop-up is visible.
-
- NOTE: This example will *only* work with FB drivers and with LCD
- drivers that support reading the contents of the internal LCD memory
- *unless* you define CONFIG_EXAMPLES_NXTEXT_NOGETRUN. If you notice
- garbage on the display or a failure at the point where the display
- should scroll, it is probably because you have an LCD driver that is
- write-only.
-
- The following configuration options can be selected:
-
- CONFIG_EXAMPLES_NXTEXT_BUILTIN -- Build the NXTEXT example as a "built-in"
- that can be executed from the NSH command line
- CONFIG_EXAMPLES_NXTEXT_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NXTEXT_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NXTEXT_BGCOLOR -- The color of the background. Default
- depends on CONFIG_EXAMPLES_NXTEXT_BPP.
- CONFIG_EXAMPLES_NXTEXT_BGFONTID - Selects the font to use in the
- background text (see font ID numbers in include/nuttx/nx/nxfonts.h)
- CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR -- The color of the fonts used in the
- background window. Default depends on CONFIG_EXAMPLES_NXTEXT_BPP.
- CONFIG_EXAMPLES_NXTEXT_PUCOLOR -- The color of the pop-up window. Default
- depends on CONFIG_EXAMPLES_NXTEXT_BPP.
- CONFIG_EXAMPLES_NXTEXT_PUFONTID - Selects the font to use in the pop-up
- windows (see font ID numbers in include/nuttx/nx/nxfonts.h)
- CONFIG_EXAMPLES_NXTEXT_PUFONTCOLOR -- The color of the fonts used in the
- background window. Default depends on CONFIG_EXAMPLES_NXTEXT_BPP.
- CONFIG_EXAMPLES_NXTEXT_BPP -- Pixels per pixel to use. Valid options
- include 2, 4, 8, 16, 24, and 32. Default is 32.
- CONFIG_EXAMPLES_NXTEXT_NOGETRUN -- If your display is read-only OR if
- reading is not reliable, then select this configuration to avoid
- reading from the display.
- CONFIG_EXAMPLES_NXTEXT_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
- CONFIG_EXAMPLES_NXTEXT_BMCACHE - The maximum number of characters that
- can be put in the background window. Default is 128.
- CONFIG_EXAMPLES_NXTEXT_GLCACHE - The maximum nuber of pre-rendered
- fonts that can be retained for the background window.
-
- This test can be performed with either the single-user version of
- NX or with the multiple user version of NX selected with CONFIG_NX_MULTIUSER.
- If CONFIG_NX_MULTIUSER is defined, then the following configuration
- options also apply:
-
- CONFIG_EXAMPLES_NXTEXT_STACKSIZE -- The stacksize to use when creating
- the NX server. Default 2048
- CONFIG_EXAMPLES_NXTEXT_CLIENTPRIO -- The client priority. Default: 100
- CONFIG_EXAMPLES_NXTEXT_SERVERPRIO -- The server priority. Default: 120
- CONFIG_EXAMPLES_NXTEXT_LISTENERPRIO -- The priority of the event listener
- thread. Default 80.
- CONFIG_EXAMPLES_NXTEXT_NOTIFYSIGNO -- The signal number to use with
- nx_eventnotify(). Default: 4
-
- If CONFIG_NX_MULTIUSER is defined, then the example also expects the
- following settings and will generate an error if they are not as expected:
-
- CONFIG_DISABLE_MQUEUE=n
- CONFIG_DISABLE_SIGNALS=n
- CONFIG_DISABLE_PTHREAD=n
- CONFIG_NX_BLOCKING=y
-
-examples/null
-^^^^^^^^^^^^^
-
- This is the do nothing application. It is only used for bringing
- up new NuttX architectures in the most minimal of environments.
-
-examples/ostest
-^^^^^^^^^^^^^^^
-
- This is the NuttX 'qualification' suite. It attempts to exercise
- a broad set of OS functionality. Its coverage is not very extensive
- as of this writing, but it is used to qualify each NuttX release.
-
- The behavior of the ostest can be modified with the following
- settings in the configs/<board-name>/defconfig file:
-
- * CONFIG_EXAMPLES_OSTEST_BUILTIN
- Build the OS test example as an NSH built-in application.
- * CONFIG_EXAMPLES_OSTEST_LOOPS
- Used to control the number of executions of the test. If
- undefined, the test executes one time. If defined to be
- zero, the test runs forever.
- * CONFIG_EXAMPLES_OSTEST_STACKSIZE
- Used to create the ostest task. Default is 8192.
- * CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS
- Specifies the number of threads to create in the barrier
- test. The default is 8 but a smaller number may be needed on
- systems without sufficient memory to start so many threads.
- * CONFIG_EXAMPLES_OSTEST_RR_RANGE
- During round-robin scheduling test two threads are created. Each of the threads
- searches for prime numbers in the configurable range, doing that configurable
- number of times.
- This value specifies the end of search range and together with number of runs
- allows to configure the length of this test - it should last at least a few
- tens of seconds. Allowed values [1; 32767], default 10000
- * CONFIG_EXAMPLES_OSTEST_RR_RUNS
- During round-robin scheduling test two threads are created. Each of the threads
- searches for prime numbers in the configurable range, doing that configurable
- number of times.
-
-examples/pashello
-^^^^^^^^^^^^^^^^^
-
- This is "Hello, World" implemented via the Pascal P-Code interpreter. In
- order to use this example, you must first download and install the
- NuttX pascal module. After unpacking the pascal module, you can find
- installation instructions in pascal/nuttx/README.txt.
-
- The correct install location for the NuttX examples and build files is
- apps/interpreters.
-
-examples/pipe
-^^^^^^^^^^^^^
-
- A test of the mkfifo() and pipe() APIs.
-
- * CONFIG_EXAMPLES_PIPE_STACKSIZE
- Sets the size of the stack to use when creating the child tasks.
- The default size is 1024.
-
-examples/poll
-^^^^^^^^^^^^^
-
- A test of the poll() and select() APIs using FIFOs and, if available,
- stdin, and a TCP/IP socket. In order to build this test, you must the
- following selected in your NuttX configuration file:
-
- CONFIG_NFILE_DESCRIPTORS - Defined to be greater than 0
- CONFIG_DISABLE_POLL - NOT defined
-
- In order to use the TCP/IP select test, you have also the following
- additional things selected in your NuttX configuration file:
-
- CONFIG_NET - Defined for general network support
- CONFIG_NET_TCP - Defined for TCP/IP support
- CONFIG_NSOCKET_DESCRIPTORS - Defined to be greater than 0
- CONFIG_NET_NTCP_READAHEAD_BUFFERS - Defined to be greater than zero
-
- CONFIG_EXAMPLES_POLL_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLES_POLL_IPADDR - Target IP address
- CONFIG_EXAMPLES_POLL_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLES_POLL_NETMASK - Network mask
-
- In order to for select to work with incoming connections, you
- must also select:
-
- CONFIG_NET_TCPBACKLOG - Incoming connections pend in a backlog until accept() is called.
-
- In additional to the target device-side example, there is also
- a host-side application in this directory. It can be compiled under
- Linux or Cygwin as follows:
-
- cd examples/usbserial
- make -f Makefile.host TOPDIR=<nuttx-directory> TARGETIP=<target-ip>
-
- Where <target-ip> is the IP address of your target board.
-
- This will generate a small program called 'host'. Usage:
-
- 1. Build the examples/poll target program with TCP/IP poll support
- and start the target.
-
- 3. Then start the host application:
-
- ./host
-
- The host and target will exchange are variety of small messages. Each
- message sent from the host should cause the select to return in target.
- The target example should read the small message and send it back to
- the host. The host should then receive the echo'ed message.
-
- If networking is enabled, applications using this example will need to
- provide an appconfig file in the configuration driver with instruction
- to build applications like:
-
- CONFIGURED_APPS += uiplib
-
-examples/posix_spawn
-^^^^^^^^^^^^^^^^^^^^
-
- This is a simple test of the posix_spawn() API. The example derives from
- examples/elf. As a result, these tests are built using the relocatable
- ELF format installed in a ROMFS file system. At run time, the test program
- in the ROMFS file system is spawned using posix_spawn().
-
- Requires:
-
- CONFIG_BINFMT_DISABLE=n - Don't disable the binary loader
- CONFIG_ELF=y - Enable ELF binary loader
- CONFIG_LIBC_EXECFUNCS=y - Enable support for posix_spawn
- CONFIG_EXECFUNCS_SYMTAB="exports" - The name of the symbol table
- created by the test.
- CONFIG_EXECFUNCS_NSYMBOLS=10 - Value does not matter, it will be
- corrected at runtime.
- CONFIG_POSIX_SPAWN_STACKSIZE=768 - This default setting.
-
- Test-specific configuration options:
-
- CONFIG_EXAMPLES_POSIXSPAWN_DEVMINOR - The minor device number of the ROMFS
- block. driver. For example, the N in /dev/ramN. Used for registering the
- RAM block driver that will hold the ROMFS file system containing the ELF
- executables to be tested. Default: 0
-
- CONFIG_EXAMPLES_POSIXSPAWN_DEVPATH - The path to the ROMFS block driver
- device. This must match EXAMPLES_POSIXSPAWN_DEVMINOR. Used for
- registering the RAM block driver that will hold the ROMFS file system
- containing the ELF executables to be tested. Default: "/dev/ram0"
-
- NOTES:
-
- 1. CFLAGS should be provided in CELFFLAGS. RAM and FLASH memory regions
- may require long allcs. For ARM, this might be:
-
- CELFFLAGS = $(CFLAGS) -mlong-calls
-
- Similarly for C++ flags which must be provided in CXXELFFLAGS.
-
- 2. Your top-level nuttx/Make.defs file must also include an approproate
- definition, LDELFFLAGS, to generate a relocatable ELF object. With GNU
- LD, this should include '-r' and '-e main' (or _main on some platforms).
-
- LDELFFLAGS = -r -e main
-
- If you use GCC to link, you make also need to include '-nostdlib' or
- '-nostartfiles' and '-nodefaultlibs'.
-
- 3. This example also requires genromfs. genromfs can be build as part of the
- nuttx toolchain. Or can built from the genromfs sources that can be found
- at misc/tools/genromfs-0.5.2.tar.gz. In any event, the PATH variable must
- include the path to the genromfs executable.
-
- 4. ELF size: The ELF files in this example are, be default, quite large
- because they include a lot of "build garbage". You can greatly reduce the
- size of the ELF binaries are using the 'objcopy --strip-unneeded' command to
- remove un-necessary information from the ELF files.
-
- 5. Simulator. You cannot use this example with the the NuttX simulator on
- Cygwin. That is because the Cygwin GCC does not generate ELF file but
- rather some Windows-native binary format.
-
- If you really want to do this, you can create a NuttX x86 buildroot toolchain
- and use that be build the ELF executables for the ROMFS file system.
-
- 6. Linker scripts. You might also want to use a linker scripts to combine
- sections better. An example linker script is at nuttx/binfmt/libelf/gnu-elf.ld.
- That example might have to be tuned for your particular linker output to
- position additional sections correctly. The GNU LD LDELFFLAGS then might
- be:
-
- LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/libelf/gnu-elf.ld
-
-examples/pwm
-^^^^^^^^^^^^
-
- A test of a PWM device driver. It simply enables a pulsed output for
- a specified frequency and duty for a specified period of time. This
- example can ONLY be built as an NSH built-in function.
-
- This test depends on these specific PWM/NSH configurations settings (your
- specific PWM settings might require additional settings).
-
- CONFIG_PWM - Enables PWM support.
- CONFIG_EXAMPLES_PWM_COUNT - Enabled PWM pulse count support (if the
- hardware supports it).
- CONFIG_NSH_BUILTIN_APPS - Build the PWM test as an NSH built-in function.
- Default: Not built! The example can only be used as an NSH built-in
- application
-
- Specific configuration options for this example include:
-
- CONFIG_EXAMPLES_PWM_DEVPATH - The path to the default PWM device. Default: /dev/pwm0
- CONFIG_EXAMPLES_PWM_FREQUENCY - The initial PWM frequency. Default: 100 Hz
- CONFIG_EXAMPLES_PWM_DUTYPCT - The initial PWM duty as a percentage. Default: 50%
- CONFIG_EXAMPLES_PWM_DURATION - The initial PWM pulse train duration in seconds.
- Used only if the current pulse count is zero (pulse count is only supported
- if CONFIG_PWM_PULSECOUNT is defined). Default: 5 seconds
- CONFIG_EXAMPLES_PWM_PULSECOUNT - The initial PWM pulse count. This option is
- only available if CONFIG_PWM_PULSECOUNT is non-zero. Default: 0 (i.e., use
- the duration, not the count).
-
-examples/qencoder
-^^^^^^^^^^^^^^^^^
-
- This example is a simple test of a Quadrature Encoder driver. It simply reads
- positional data from the encoder and prints it.,
-
- This test depends on these specific QE/NSH configurations settings (your
- specific PWM settings might require additional settings).
-
- CONFIG_QENCODER - Enables quadrature encoder support (upper-half driver).
- CONFIG_NSH_BUILTIN_APPS - Build the QE test as an NSH built-in function.
- Default: Built as a standalone progrem.
-
- Additional configuration options will mostly likely be required for the board-
- specific lower-half driver. See the README.txt file in your board configuration
- directory.
-
- Specific configuration options for this example include:
-
- CONFIG_EXAMPLES_QENCODER_DEVPATH - The path to the QE device. Default:
- /dev/qe0
- CONFIG_EXAMPLES_QENCODER_NSAMPLES - If CONFIG_NSH_BUILTIN_APPS
- is defined, then the number of samples is provided on the command line
- and this value is ignored. Otherwise, this number of samples is
- collected and the program terminates. Default: Samples are collected
- indefinitely.
- CONFIG_EXAMPLES_QENCODER_DELAY - This value provides the delay (in
- milliseonds) between each sample. If CONFIG_NSH_BUILTIN_APPS
- is defined, then this value is the default delay if no other delay is
- provided on the command line. Default: 100 milliseconds
-
-examples/relays
-^^^^^^^^^^^^^^^
-
- Requires CONFIG_ARCH_RELAYS.
- Contributed by Darcy Gong.
-
- NOTE: This test exercises internal relay driver interfaces. As such, it
- relies on internal OS interfaces that are not normally available to a
- user-space program. As a result, this example cannot be used if a
- NuttX is built as a protected, supervisor kernel (CONFIG_NUTTX_KERNEL).
-
-examples/rgmp
-^^^^^^^^^^^^^
-
- RGMP stands for RTOS and GPOS on Multi-Processor. RGMP is a project for
- running GPOS and RTOS simultaneously on multi-processor platforms. You can
- port your favorite RTOS to RGMP together with an unmodified Linux to form a
- hybrid operating system. This makes your application able to use both RTOS
- and GPOS features.
-
- See http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further
-
- At present, the RGMP example folder contains only an empty rgmp_main.c file.
-
-examples/romfs
-^^^^^^^^^^^^^^
-
- This example exercises the romfs filesystem. Configuration options
- include:
-
- * CONFIG_EXAMPLES_ROMFS_RAMDEVNO
- The minor device number to use for the ROM disk. The default is
- 1 (meaning /dev/ram1)
-
- * CONFIG_EXAMPLES_ROMFS_SECTORSIZE
- The ROM disk sector size to use. Default is 64.
-
- * CONFIG_EXAMPLES_ROMFS_MOUNTPOINT
- The location to mount the ROM disk. Deafault: "/usr/local/share"
-
-examples/sendmail
-^^^^^^^^^^^^^^^^^
-
- This examples exercises the uIP SMTP logic by sending a test message
- to a selected recipient. This test can also be built to execute on
- the Cygwin/Linux host environment:
-
- cd examples/sendmail
- make -f Makefile.host TOPDIR=<nuttx-directory>
-
- Settings unique to this example include:
-
- CONFIG_EXAMPLES_SENDMAIL_NOMAC - May be defined to use software assigned MAC (optional)
- CONFIG_EXAMPLES_SENDMAIL_IPADDR - Target IP address (required)
- CONFIG_EXAMPLES_SENDMAIL_DRIPADDR - Default router IP addess (required)
- CONFIG_EXAMPLES_SENDMAILT_NETMASK - Network mask (required)
- CONFIG_EXAMPLES_SENDMAIL_RECIPIENT - The recipient of the email (required)
- CONFIG_EXAMPLES_SENDMAIL_SENDER - Optional. Default: "nuttx-testing@example.com"
- CONFIG_EXAMPLES_SENDMAIL_SUBJECT - Optional. Default: "Testing SMTP from NuttX"
- CONFIG_EXAMPLES_SENDMAIL_BODY - Optional. Default: "Test message sent by NuttX"
-
- NOTE: This test has not been verified on the NuttX target environment.
- As of this writing, unit-tested in the Cygwin/Linux host environment.
-
- NOTE 2: This sendmail example only works for the simplest of
- environments. Virus protection software on your host may have
- to be disabled to allow you to send messages. Only very open,
- unprotected recipients can be used. Most will protect themselves
- from this test email because it looks like SPAM.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
- CONFIGURED_APPS += smtp
-
-examples/serloop
-^^^^^^^^^^^^^^^^
-
- This is a mindlessly simple loopback test on the console. Useful
- for testing new serial drivers. Configuration options include:
-
- * CONFIG_EXAMPLES_SERLOOP_BUFIO
- Use C buffered I/O (getchar/putchar) vs. raw console I/O
- (read/read).
-
-examples/telnetd
-^^^^^^^^^^^^^^^^
-
- This directory contains a functional port of the tiny uIP shell. In
- the NuttX environment, the NuttShell (at apps/nshlib) supercedes this
- tiny shell and also supports telnetd.
-
- CONFIG_EXAMPLES_TELNETD_DAEMONPRIO - Priority of the Telnet daemon.
- Default: SCHED_PRIORITY_DEFAULT
- CONFIG_EXAMPLES_TELNETD_DAEMONSTACKSIZE - Stack size allocated for the
- Telnet daemon. Default: 2048
- CONFIG_EXAMPLES_TELNETD_CLIENTPRIO- Priority of the Telnet client.
- Default: SCHED_PRIORITY_DEFAULT
- CONFIG_EXAMPLES_TELNETD_CLIENTSTACKSIZE - Stack size allocated for the
- Telnet client. Default: 2048
- CONFIG_EXAMPLES_TELNETD_NOMAC - If the hardware has no MAC address of its
- own, define this =y to provide a bogus address for testing.
- CONFIG_EXAMPLES_TELNETD_IPADDR - The target IP address. Default 10.0.0.2
- CONFIG_EXAMPLES_TELNETD_DRIPADDR - The default router address. Default
- 10.0.0.1
- CONFIG_EXAMPLES_TELNETD_NETMASK - The network mask. Default: 255.255.255.0
-
- The appconfig file (apps/.config) should include:
-
- CONFIGURED_APPS += examples/telnetd
- CONFIGURED_APPS += netutils/uiplib
- CONFIGURED_APPS += netutils/telnetd
-
- Also, make sure that you have the following set in the NuttX configuration
- file or else the performance will be very bad (because there will be only
- one character per TCP transfer):
-
- CONFIG_STDIO_BUFFER_SIZE - Some value >= 64
- CONFIG_STDIO_LINEBUFFER=y
-
-examples/thttpd
-^^^^^^^^^^^^^^^
-
- An example that builds netutils/thttpd with some simple NXFLAT
- CGI programs. see configs/README.txt for most THTTPD settings.
- In addition to those, this example accepts:
-
- CONFIG_EXAMPLES_THTTPD_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLES_THTTPD_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLES_THTTPD_NETMASK - Network mask
-
- Applications using this example will need to provide an appconfig
- file in the configuration directory with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
- CONFIGURED_APPS += thttpd
-
-examples/tiff
-^^^^^^^^^^^^^
-
- This is a simple unit test for the TIFF creation library at apps/graphic/tiff.
- It is configured to work in the Linux user-mode simulation and has not been
- tested in any other environment. Since the example also depends on some
- other logic to mount a file system, currently it will only work as an NSH
- built-on, i.e., if the following is defined:
-
- CONFIG_NSH_BUILTIN_APPS=y
- CONFIG_EXAMPLES_TIFF_BUILTIN=y
-
- At a miniumum, to run in an embedded environment, you will probably have to
- change the configured paths to the TIFF files defined in the example.
-
- CONFIG_EXAMPLES_TIFF_OUTFILE - Name of the resulting TIFF file. Default is
- "/tmp/result.tif"
- CONFIG_EXAMPLES_TIFF_TMPFILE1/2 - Names of two temporaries files that
- will be used in the file creation. Defaults are "/tmp/tmpfile1.dat" and
- "/tmp/tmpfile2.dat"
-
- The following must also be defined in your apps/ configuration file:
-
- CONFIGURED_APPS += examples/tiff
- CONFIGURED_APPS += graphics/tiff
-
-examples/touchscreen
-^^^^^^^^^^^^^^^^^^^^
-
- This configuration implements a simple touchscreen test at
- apps/examples/touchscreen. This test will create an empty X11 window
- and will print the touchscreen output as it is received from the
- simulated touchscreen driver.
-
- CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN - Build the touchscreen test as
- an NSH built-in function. Default: Built as a standalone problem
- CONFIG_EXAMPLES_TOUCHSCREEN_MINOR - The minor device number. Minor=N
- correspnds to touchscreen device /dev/input0. Note this value must
- with CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH. Default 0.
- CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH - The path to the touchscreen
- device. This must be consistent with CONFIG_EXAMPLES_TOUCHSCREEN_MINOR.
- Default: "/dev/input0"
- CONFIG_EXAMPLES_TOUCHSCREEN_NSAMPLES - If CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN
- is defined, then the number of samples is provided on the command line
- and this value is ignored. Otherwise, this number of samples is
- collected and the program terminates. Default: Samples are collected
- indefinitely.
-
- The following additional configurations must be set in the NuttX
- configuration file:
-
- CONFIG_INPUTP=y
- (Plus any touchscreen-specific settings).
-
- The following must also be defined in your apps configuration file:
-
- CONFIGURED_APPS += examples/tiff
- CONFIGURED_APPS += graphics/tiff
-
- The board-specific logic must provide the following interfaces that will
- be called by the example in order to initialize and uninitialize the
- touchscreen hardware:
-
- int arch_tcinitialize(int minor);
- int arch_tcuninitialize(void);
-
-examples/udp
-^^^^^^^^^^^^
-
- This is a simple network test for verifying client- and server-
- functionality over UDP.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
-
-examples/uip
-^^^^^^^^^^^^
-
- This is a port of uIP tiny webserver example application. Settings
- specific to this example include:
-
- CONFIG_EXAMPLES_UIP_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLES_UIP_IPADDR - Target IP address
- CONFIG_EXAMPLES_UIP_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLES_UIP_NETMASK - Network mask
- CONFIG_EXAMPLES_UIP_DHCPC - Select to get IP address via DHCP
-
- If you use DHCPC, then some special configuration network options are
- required. These include:
-
- CONFIG_NET=y - Of course
- CONFIG_NSOCKET_DESCRIPTORS - And, of course, you must allocate some
- socket descriptors.
- CONFIG_NET_UDP=y - UDP support is required for DHCP
- (as well as various other UDP-related
- configuration settings).
- CONFIG_NET_BROADCAST=y - UDP broadcast support is needed.
- CONFIG_NET_BUFSIZE=650 - Per RFC2131 (p. 9), the DHCP client must be
- (or larger) prepared to receive DHCP messages of up to
- 576 bytes (excluding Ethernet, IP, or UDP
- headers and FCS).
-
- Other configuration items apply also to the selected webserver net utility.
- Additional relevant settings for the uIP webserver net utility are:
-
- CONFIG_NETUTILS_HTTPDSTACKSIZE
- CONFIG_NETUTILS_HTTPDFILESTATS
- CONFIG_NETUTILS_HTTPDNETSTATS
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
- CONFIGURED_APPS += dhcpc
- CONFIGURED_APPS += resolv
- CONFIGURED_APPS += webserver
-
- NOTE: This example does depend on the perl script at
- nuttx/tools/mkfsdata.pl. You must have perl installed on your
- development system at /usr/bin/perl.
-
-examples/usbserial
-^^^^^^^^^^^^^^^^^^
-
- TARGET CONFIGURATION:
-
- This is another implementation of "Hello, World" but this one uses
- a USB serial driver. Configuration options can be used to simply
- the test. These options include:
-
- CONFIG_EXAMPLES_USBSERIAL_INONLY
- Only verify IN (device-to-host) data transfers. Default: both
- CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- Only verify OUT (host-to-device) data transfers. Default: both
- CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL
- Send only small, single packet messages. Default: Send large and small.
- CONFIG_EXAMPLES_USBSERIAL_ONLYBIG
- Send only large, multi-packet messages. Default: Send large and small.
-
- If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
- the example code will also manage the USB trace output. The amount of trace output
- can be controlled using:
-
- CONFIG_EXAMPLES_USBSERIAL_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_USBSERIAL_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS
- Show interrupt-related events.
-
- Error results are always shown in the trace output
-
- HOST-SIDE TEST PROGRAM
-
- In additional to the target device-side example, there is also a
- host-side application in this directory. This host side application
- must be executed on a Linux host in order to perform the USBSERIAL
- test. The host application can be compiled under Linux (or Cygwin?)
- as follows:
-
- cd examples/usbserial
- make -f Makefile.host TOPDIR=<nuttx-directory>
-
- RUNNING THE TEST
-
- This will generate a small program called 'host'. Usage:
-
- 1. Build the examples/usbserial target program and start the target.
-
- 2. Wait a bit, then do enter:
-
- dmesg
-
- At the end of the dmesg output, you should see the serial
- device was successfully idenfied and assigned to a tty device,
- probably /dev/ttyUSB0 or /dev/ttyACM0 (depending on the configured
- USB serial driver).
-
- 3. Then start the host application:
-
- ./host [<tty-dev>]
-
- Where:
-
- <tty-dev> is the USB TTY device to use. The default is
- "/dev/ttyUSB0" (for the PL2303 emulation) or "/dev/ttyACM0" (for
- the CDC/ACM serial device).
-
- The host and target will exchange are variety of very small and very large
- serial messages.
-
-examples/usbstorage
-^^^^^^^^^^^^^^^^^^^
-
- This example registers a block device driver, then exports the block
- the device using the USB storage class driver. In order to use this
- example, your board-specific logic must provide the function:
-
- void usbmsc_archinitialize(void);
-
- This function will be called by the example/usbstorage 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_EXAMPLES_USBMSC_BUILTIN
- This example 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_EXAMPLES_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_EXAMPLES_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_EXAMPLES_USBMSC_DEVPATH1
- The full path to the registered block driver. Default is "/dev/mmcsd0"
- CONFIG_EXAMPLES_USBMSC_DEVMINOR2 and CONFIG_EXAMPLES_USBMSC_DEVPATH2
- Similar parameters that would have to be provided if CONFIG_EXAMPLES_USBMSC_NLUNS
- is 2 or 3. No defaults.
- CONFIG_EXAMPLES_USBMSC_DEVMINOR3 and CONFIG_EXAMPLES_USBMSC_DEVPATH3
- Similar parameters that would have to be provided if CONFIG_EXAMPLES_USBMSC_NLUNS
- is 3. No defaults.
- CONFIG_EXAMPLES_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 example code will also manage the USB trace output. The amount of trace output
- can be controlled using:
-
- CONFIG_EXAMPLES_USBMSC_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_USBMSC_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_USBMSC_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_USBMSC_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_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_EXAMPLES_USBMSC_BUILTIN=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 test exercises 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 example cannot be used if a
- NuttX is built as a protected, supervisor kernel (CONFIG_NUTTX_KERNEL).
-
-examples/usbterm
-^^^^^^^^^^^^^^^^
-
- This example implements a little USB terminal.. more of a USB "chat"
- edited lines are received from the remote host connected via USB
- serial and echoed out the target serial console. Edited lines from
- the local target serial console are received and forwarded to the
- remote host via USB serial.
-
- Usage:
- - Build the example and load into the target FLASH
- - Connect on terminal to the target RS-232 connect and configure
- for 115200 8N1. For example, suppose this Tera Term on a Windows
- box.
- - Power up the target board
- - Connect the USB to a Linux box. Use the Linux dmesg command to
- assure that the connect was successful. The USB CDC ACM device
- should appear as /dev/ttyACM0
- - On the Linux box, open minicom with tty=/dev/ttyACM0.
- Configure minicom so that (1) local characters are echoed and (2)
- so that no CR is required.
- - Now what you type on the target Tera Term window should echo on
- the Linux minicom window and, conversely, what you type on the
- minicom winow should be echo in the target Tera Term window.
-
- Configuration options:
-
- CONFIG_EXAMPLES_USBTERM_BUILTIN - Build the usbterm example as an NSH
- built-in command. NOTE: This is not fully functional as of this
- writing.. It should work, but there is no mechanism in place yet
- to exit the USB terminal program and return to NSH.
- CONFIG_EXAMPLES_USBTERM_DEVINIT - If defined, then the example will
- call a user provided function as part of its initialization:
- int usbterm_devinit(void);
- And another user provided function at termination:
- void usbterm_devuninit(void);
- CONFIG_EXAMPLES_USBTERM_BUFLEN - The size of the input and output
- buffers used for receiving data. Default 256 bytes.
-
- If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB, or
- CONFIG_USBDEV_TRACE), then the example code will also manage the USB trace
- output. The amount of trace output can be controlled using:
-
- CONFIG_EXAMPLES_USBTERM_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_USBTERM_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_USBTERM_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_USBTERM_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_USBTERM_TRACEINTERRUPTS
- Show interrupt-related events.
-
- NOTE: By default, USBterm uses readline to get data from stdin. So your
- appconfig file must have the following build path:
-
- CONFIGURED_APPS += system/readline
-
- NOTE: If you use the USBterm task over a telnet NSH connection, then you
- should set the following configuration item:
-
- CONFIG_EXAMPLES_USBTERM_FGETS=y
-
- By default, the USBterm client will use readline() to get characters from
- the console. Readline includes and command-line editor and echos
- characters received in stdin back through stdout. Neither of these
- behaviors are desire-able if Telnet is used.
-
- Error results are always shown in the trace output
-
- Other relevant configuration options: CONFIG_CDCACM selected by the
- Prolifics emulation (not defined) and the CDC serial implementation
- (when defined). CONFIG_USBDEV_TRACE_INITIALIDSET.
-
-examples/watchdog
-^^^^^^^^^^^^^^^^^
-
- A simple test of a watchdog timer driver. Initializes starts the watchdog
- timer. It pings the watchdog timer for a period of time then lets the
- watchdog timer expire... resetting the CPU is successful. This
- example can ONLY be built as an NSH built-in function.
-
- This test depends on these specific Watchdog/NSH configurations settings (your
- specific watchdog hardware settings might require additional settings).
-
- CONFIG_WATCHDOG- Enables watchdog timer support support.
- CONFIG_NSH_BUILTIN_APPS - Build the watchdog time test as an NSH
- built-in function. Default: Not built! The example can only be used
- as an NSH built-in application
-
- Specific configuration options for this example include:
-
- CONFIG_EXAMPLES_WATCHDOG_DEVPATH - The path to the Watchdog device.
- Default: /dev/watchdog0
- CONFIG_EXAMPLES_WATCHDOG_PINGTIME - Time in milliseconds that the example
- will ping the watchdog before letting the watchdog expire. Default: 5000
- milliseconds
- CONFIG_EXAMPLES_WATCHDOG_PINGDELAY - Time delay between pings in
- milliseconds. Default: 500 milliseconds.
- CONFIG_EXAMPLES_WATCHDOG_TIMEOUT - The watchdog timeout value in
- milliseconds before the watchdog timer expires. Default: 2000
- milliseconds.
-
-examples/wget
-^^^^^^^^^^^^^
-
- A simple web client example. It will obtain a file from a server using the HTTP
- protocol. Settings unique to this example include:
-
- CONFIG_EXAMPLES_WGET_URL - The URL of the file to get
- CONFIG_EXAMPLES_WGET_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLES_WGET_IPADDR - Target IP address
- CONFIG_EXAMPLES_WGET_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLES_WGET_NETMASK - Network mask
-
- This example uses netutils/webclient. Additional configuration settings apply
- to that code as follows (but built-in defaults are probably OK):
-
- CONFIG_WEBCLIENT_GETMIMETYPE, CONFIG_WEBCLIENT_MAXHTTPLINE,
- CONFIG_WEBCLIENT_MAXMIMESIZE, CONFIG_WEBCLIENT_MAXHOSTNAME,
- CONFIG_WEBCLIENT_MAXFILENAME
-
- Of course, the example also requires other settings including CONFIG_NET and
- CONFIG_NET_TCP. The example also uses the uIP resolver which requires CONFIG_UDP.
-
- WARNNG: As of this writing, wget is untested on the target platform. At present
- it has been tested only in the host-based configuration described in the following
- note. The primary difference is that the target version will rely on the also
- untested uIP name resolver.
-
- NOTE: For test purposes, this example can be built as a host-based wget function.
- This can be built as follows:
-
- cd examples/wget
- make -f Makefile.host
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS += uiplib
- CONFIGURED_APPS += resolv
- CONFIGURED_APPS += webclient
-
-examples/wget
-^^^^^^^^^^^^^
-
- Uses wget to get a JSON encoded file, then decodes the file.
-
- CONFIG_EXAMPLES_WDGETJSON_MAXSIZE - Max. JSON Buffer Size
- CONFIG_EXAMPLES_EXAMPLES_WGETJSON_URL - wget URL
-
-examples/xmlrpc
-^^^^^^^^^^^^^^^
-
- This example exercises the "Embeddable Lightweight XML-RPC Server" which
- is discussed at:
-
- http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364
-
- Configuration options:
-
- CONFIG_EXAMPLES_XMLRPC_BUFFERSIZE - HTTP buffer size. Default 1024
- CONFIG_EXAMPLES_XMLRPC_DHCPC - Use DHCP Client. Default n. Ignored
- if CONFIG_NSH_BUILTIN_APPS is selected.
- CONFIG_EXAMPLES_XMLRPC_NOMAC - Use Canned MAC Address. Defaul n. Ignored
- if CONFIG_NSH_BUILTIN_APPS is selected.
- CONFIG_EXAMPLES_XMLRPC_IPADDR - Target IP address. Default 0x0a000002.
- Ignored if CONFIG_NSH_BUILTIN_APPS is selected.
- CONFIG_EXAMPLES_XMLRPC_DRIPADDR - Default Router IP address (Gateway).
- Default 0x0a000001. Ignored if CONFIG_NSH_BUILTIN_APPS is selected.
- CONFIG_EXAMPLES_XMLRPC_NETMASK - Network Mask. Default 0xffffff00
- Ignored if CONFIG_NSH_BUILTIN_APPS is selected.