Merge in the Documentation submodule
@@ -0,0 +1,3 @@
|
||||
/TODO.txt
|
||||
/ChangeLog.txt
|
||||
/NuttXConfigVariables.*
|
||||
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,388 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>NFS Client How-To</title>
|
||||
</head>
|
||||
<body background="backgd.gif">
|
||||
<hr><hr>
|
||||
|
||||
<table width ="100%">
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NFS Client How-To</i></font></big></h1>
|
||||
<p>Last Updated: June 18, 2012</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr><hr>
|
||||
|
||||
<table width ="100%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1>Table of Contents</h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<center><table width ="80%">
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
|
||||
<td>
|
||||
<a href="#nfsconfiguration">Adding NFS to the NuttX Configuration</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
|
||||
<td>
|
||||
<a href="#mountinterface">Mount Interface</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
|
||||
<td>
|
||||
<a href="#nfsmount">NFS Mount Command</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top" width="22"><img height="20" width="20" src="favicon.ico"></td>
|
||||
<td>
|
||||
<a href="#serverconfig">Configuring the NFS server (Ubuntu)</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table></center>
|
||||
|
||||
<table width ="100%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<a name="nfsconfiguration"><h1>Adding NFS to the NuttX Configuration</h1></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
The NFS client is easily added to your configuration:
|
||||
You simply need to add <code>CONFIG_NFS</code> to your <code>nuttx/.config</code> file.
|
||||
There are, however, a few dependencies on other system settings:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
First, there are number of things that you must configure in order to be able to use any file system:
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<code>CONFIG_NFILE_DESCRIPTORS > 0</code>. You must include support for file descriptors.
|
||||
</li>
|
||||
<li>
|
||||
<code>CONFIG_DISABLE_MOUNTPOINT=n</code>. You must include support for mount points in the pseudo-file system.
|
||||
</li>
|
||||
</ul>
|
||||
<li>
|
||||
And there are several dependencies on the networking configuration.
|
||||
At a minimum, you need to have the following selections:
|
||||
</li>
|
||||
<ul>
|
||||
<li>
|
||||
<code>CONFIG_NET=y</code>. General networking support.
|
||||
</li>
|
||||
<li>
|
||||
<code>CONFIG_NET_UDP=y</code>. Support for UDP.
|
||||
</li>
|
||||
</ul>
|
||||
</ol>
|
||||
|
||||
<table width ="100%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<a name="mountinterface"><h1>Mount Interface</h1></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
A low-level, C-callable interface is provided to mount a file system.
|
||||
That interface is called <code>mount()</code> and is mentioned in the <a href="NuttxPortingGuide.html#NxFileSystem"><code>porting guide</code></a> and is prototyped in the header file <code>include/sys/mount.h</code>:
|
||||
</p>
|
||||
<ul><pre>
|
||||
int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data);
|
||||
</pre></ul>
|
||||
<p>
|
||||
<b>Synopsis</b>:
|
||||
<code>mount()</code> attaches the filesystem specified by the <code>source</code> block device name into the root file system at the path specified by <code>target</code>.
|
||||
</p>
|
||||
<p>
|
||||
<b>Input Paramters</b>:
|
||||
<ul>
|
||||
<li><code>source</code>. A null-terminated string providing the fill path to a block driver in the NuttX pseudo-file system.
|
||||
<li><code>target</code>. The location in the NuttX pseudo-file system where the volume will be mounted.
|
||||
<li><code>filesystemtype</code>. A string identifying the type of file system to use.
|
||||
<li><code>mountflags</code>. Various flags that can be used to qualify how the file system is mounted.
|
||||
<li><code>data</code>. Opaque data that is passed to the file system with the mount occurs.
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
<b>Returned Values</b>
|
||||
Zero is returned on success; -1 is returned on an error and <code>errno</code> is set appropriately:
|
||||
<ul>
|
||||
<li><code>EACCES</code>.
|
||||
A component of a path was not searchable or mounting a read-onlyfilesystem was attempted without giving the <code>MS_RDONLY</code> flag.
|
||||
</li>
|
||||
<li><code>EBUSY</code>.
|
||||
<code>source</code> is already mounted.
|
||||
</li>
|
||||
<li><code>EFAULT</code>.
|
||||
One of the pointer arguments points outside the user address space.
|
||||
</li>
|
||||
<li><code>EINVAL</code>.
|
||||
<code>source</code> had an invalid superblock.
|
||||
</li>
|
||||
<li><code>ENODEV</code>.
|
||||
<code>filesystemtype</code> not configured
|
||||
</li>
|
||||
<li><code>ENOENT</code>.
|
||||
A pathname was empty or had a nonexistent component.
|
||||
</li>
|
||||
<li><code>ENOMEM</code>.
|
||||
Could not allocate a memory to copy filenames or data into.
|
||||
</li>
|
||||
<li><code>ENOTBLK</code>.
|
||||
<code>source</code> is not a block device
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
This same interface can be used to mount a remote, NFS file system using some special parameters.
|
||||
The NFS mount differs from the <i>normal</i> file system mount in that: (1) there is no block driver for the NFS file system, and (2) special parameters must be passed as <code>data</code> to describe the remote NFS server.
|
||||
Thus the following code snippet might represent how an NFS file system is mounted:
|
||||
</p>
|
||||
<ul><pre>
|
||||
#include <sys/mount.h>
|
||||
#include <nuttx/fs/nfs.h>
|
||||
|
||||
struct nfs_args data;
|
||||
char *mountpoint;
|
||||
|
||||
ret = mount(NULL, mountpoint, string "nfs", 0, (FAR void *)&data);
|
||||
</pre></ul>
|
||||
<p>
|
||||
NOTE that: (1) the block driver parameter is <code>NULL</code>.
|
||||
The <code>mount()</code> is smart enough to know that no block driver is needed with the NFS file system.
|
||||
(2) The NFS file system is identified with the simple string "nfs"
|
||||
(3) A reference to <code>struct nfs_args</code> is passed as an NFS-specific argument.
|
||||
</p>
|
||||
<p>
|
||||
The NFS-specific interface is described in the file <code>include/nuttx/fs/nfs.h</code>.
|
||||
There you can see that <code>struct nfs_args</code> is defined as:
|
||||
</p>
|
||||
<ul><pre>
|
||||
struct nfs_args
|
||||
{
|
||||
uint8_t addrlen; /* Length of address */
|
||||
uint8_t sotype; /* Socket type */
|
||||
uint8_t flags; /* Flags, determines if following are valid: */
|
||||
uint8_t timeo; /* Time value in deciseconds (with NFSMNT_TIMEO) */
|
||||
uint8_t retrans; /* Times to retry send (with NFSMNT_RETRANS) */
|
||||
uint16_t wsize; /* Write size in bytes (with NFSMNT_WSIZE) */
|
||||
uint16_t rsize; /* Read size in bytes (with NFSMNT_RSIZE) */
|
||||
uint16_t readdirsize; /* readdir size in bytes (with NFSMNT_READDIRSIZE) */
|
||||
char *path; /* Server's path of the directory being mount */
|
||||
struct sockaddr_storage addr; /* File server address (requires 32-bit alignment) */
|
||||
};
|
||||
</pre></ul>
|
||||
|
||||
<table width ="100%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<a name="nfsmount"><h1>NFS Mount Command</h1></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
The <a href="NuttShell.html">NuttShell (NSH)</a> also supports a command called <code>nfsmount</code>
|
||||
that can be used to mount a remote file system via the NSH command line.
|
||||
</p>
|
||||
<p>
|
||||
<b>Command Syntax:</b>
|
||||
</p>
|
||||
<ul><pre>
|
||||
nfsmount <server-address> <mount-point> <remote-path>
|
||||
</pre></ul>
|
||||
<p>
|
||||
<b>Synopsis</b>.
|
||||
The <code>nfsmount</code> command mounts a network file system in the NuttX pseudo filesystem.
|
||||
The <code>nfsmount</code> will use NFSv3 UDP protocol to mount the remote file system.
|
||||
</p>
|
||||
<p>
|
||||
<b>Command Line Arguments</b>.
|
||||
The <code>nfsmount</code> takes three arguments:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
The <code><server-address></code> is the IP address of the server exporting the file system you wish to mount.
|
||||
This implementation of NFS for the NuttX RTOS is only for a local area network, so the server and client must be in the same network.
|
||||
</li>
|
||||
<li>
|
||||
The <code><mount-point ></code> is the location in the NuttX pseudo filesystem where the mounted volume will appear.
|
||||
This mount point can only reside in the NuttX pseudo filesystem.
|
||||
By convention, this mount point is a subdirectory under <code>/mnt</code>.
|
||||
The mount command will create whatever pseudo directories that may be needed to complete the full path (but the full path must not already exist).
|
||||
</li>
|
||||
<li>
|
||||
The <code><remote-path></code> is the file system <code>/</code> directory being exported from server.
|
||||
This <code>/</code> directory must have been configured for exportation on the server before when the NFS server was set up.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
After the volume has been mounted in the NuttX pseudo filesystem, it may be access in the same way as other objects in the file system.
|
||||
</p>
|
||||
<p>
|
||||
<b>Example</b>.
|
||||
Suppose that the NFS server has been configured to export the directory <code>/export/shared</code>.
|
||||
The the following command would mount that file system (assuming that the target also has privileges to mount the file system).
|
||||
</p>
|
||||
<ul><pre>
|
||||
NuttShell (NSH)
|
||||
nsh> ls /mnt
|
||||
/mnt:
|
||||
nsh: ls: no such directory: /mnt
|
||||
nsh> nfsmount 10.0.0.1 /mnt/nfs /export/shared
|
||||
nsh> ls -l /mnt/nfs
|
||||
/mnt/nfs:
|
||||
drwxrwxrwx 4096 ..
|
||||
drwxrwxrwx 4096 testdir/
|
||||
-rw-rw-rw- 6 ctest.txt
|
||||
-rw-r--r-- 15 btest.txt
|
||||
drwxrwxrwx 4096 .
|
||||
nsh> echo "This is a test" >/mnt/nfs/testdir/testfile.txt
|
||||
nsh> ls -l /mnt/nfs/testdir
|
||||
/mnt/nfs/testdir:
|
||||
-rw-rw-rw- 21 another.txt
|
||||
drwxrwxrwx 4096 ..
|
||||
drwxrwxrwx 4096 .
|
||||
-rw-rw-rw- 16 testfile.txt
|
||||
nsh> cat /mnt/nfs/testdir/testfile.txt
|
||||
This is a test
|
||||
</pre></ul>
|
||||
|
||||
<table width ="100%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<a name="serverconfig"><h1>Configuring the NFS server (Ubuntu)</h1></a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Setting up the server will be done in two steps:
|
||||
First, setting up the configuration file for NFS, and then starting the NFS services.
|
||||
But first, you need to install the nfs server on Ubuntu with the these two commands:
|
||||
</p>
|
||||
<ul><pre>
|
||||
# sudo apt-get install nfs-common</FONT>
|
||||
# sudo apt-get install nfs-kernel-server</FONT>
|
||||
</pre></ul>
|
||||
|
||||
<p>
|
||||
After that, we need to make or choose the directory we want to export from the NFS server.
|
||||
In our case, we are going to make a new directory called <code>/export</code>.
|
||||
</p>
|
||||
<ul><pre>
|
||||
# sudo mkdir /export
|
||||
</pre></ul>
|
||||
<p>
|
||||
It is important that <code>/export</code> directory allow access to everyone (777 permissions) as we will be accessing the NFS share from the client with no authentication.
|
||||
</p>
|
||||
<ul><pre>
|
||||
# sudo chmod 777 /export
|
||||
</pre></ul>
|
||||
<p>
|
||||
When all this is done, we will need to edit the configuration file to set up an NFS server: <code>/etc/exports</code>.
|
||||
This file contains a list of entries;
|
||||
each entry indicates a volume that is shared and how it is shared.
|
||||
For more information for a complete description of all the setup options for this file you can check in the man pages (<code>man export</code>).</p>
|
||||
An entry in <code>/etc/exports</code> will typically look like this:
|
||||
</p>
|
||||
<ul><pre>
|
||||
directory machine1(option11,option12)
|
||||
</pre></ul>
|
||||
<p>
|
||||
So for our example we export <coce>/export</code> to the client 10.0.0.2 add the entry:
|
||||
</p>
|
||||
<ul><pre>
|
||||
/export 10.0.0.2(rw)
|
||||
</pre></ul>
|
||||
<p>
|
||||
In our case we are using all the default options except for the <code>ro</code> that we replaced with <code>rw</code> so that our client will have read and write access to the directory that we are exporting.
|
||||
</p>
|
||||
</p>
|
||||
After we do all the require configurations, we are ready to start the server with the next command:
|
||||
</p>
|
||||
<ul><pre>
|
||||
# sudo /etc/init.d/nfs-kernel-server start
|
||||
</pre></ul>
|
||||
</p>
|
||||
Note: If you later decide to add more NFS exports to the /etc/exports file, you will need to either restart NFS daemon
|
||||
or run command exportfs.
|
||||
</p>
|
||||
<ul><pre>
|
||||
# sudo /etc/init.d/nfs-kernel-server start
|
||||
</pre></ul>
|
||||
<p>Or</p>
|
||||
<ul><pre>
|
||||
# exportfs -ra
|
||||
</pre></ul>
|
||||
<p>
|
||||
Now we can check if the export directory and our mount point is properly set up.
|
||||
</p>
|
||||
<ul><pre>
|
||||
# sudo showmount -e
|
||||
# sudo showmount -a
|
||||
</pre></ul>
|
||||
<p>
|
||||
And also we can verify if NFS is running in the system with:
|
||||
</p>
|
||||
<P STYLE="margin-left: 0.49in; margin-bottom: 0in; line-height: 100%">
|
||||
<ul><pre>
|
||||
# rpcinfo –p</FONT>
|
||||
program vers proto port
|
||||
100000 2 tcp 111 portmapper
|
||||
100000 2 udp 111 portmapper
|
||||
100011 1 udp 749 rquotad
|
||||
100011 2 udp 749 rquotad
|
||||
100005 1 udp 759 mountd
|
||||
100005 1 tcp 761 mountd
|
||||
100005 2 udp 764 mountd
|
||||
100005 2 tcp 766 mountd
|
||||
100005 3 udp 769 mountd
|
||||
100005 3 tcp 771 mountd
|
||||
100003 2 udp 2049 nfs
|
||||
100003 3 udp 2049 nfs
|
||||
300019 1 tcp 830 amd
|
||||
300019 1 udp 831 amd
|
||||
100024 1 udp 944 status
|
||||
100024 1 tcp 946 status
|
||||
100021 1 udp 1042 nlockmgr
|
||||
100021 3 udp 1042 nlockmgr
|
||||
100021 4 udp 1042 nlockmgr
|
||||
100021 1 tcp 1629 nlockmgr
|
||||
100021 3 tcp 1629 nlockmgr
|
||||
100021 4 tcp 1629 nlockmgr
|
||||
</pre></ul>
|
||||
<p>
|
||||
Now your NFS sever is sharing <code>/export</code> directory to be accessed.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,25 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>NuttX Getting Started</title>
|
||||
</head>
|
||||
|
||||
<body background="backgd.gif">
|
||||
<hr><hr>
|
||||
<table width ="100%">
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>Getting Started with NuttX</i></font></big></h1>
|
||||
<p>Last Updated: December 31, 2011</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr><hr>
|
||||
<p><b>Getting Started</b>.
|
||||
There is no "Getting Started" Guide for NuttX yet.
|
||||
However, most everything that you need to get started with NuttX can be found in the <code>README.txt</code> file located in the top-level NuttX directory.
|
||||
That <code>README.txt</code> can also be read online in the NuttX GIT repository
|
||||
<a href="https://bitbucket.org/nuttx/nuttx/src/master/README.txt" target="_blank">here</a>.
|
||||
Just click on "Links to HEAD: (view)" on that page.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 5.7 KiB |
@@ -0,0 +1,75 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>NxWidgets</title>
|
||||
</head>
|
||||
<body background="backgd.gif">
|
||||
<hr><hr>
|
||||
<table width ="100%">
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NxWidgets</i></font></big></h1>
|
||||
<p>Last Updated: March 27, 2012</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h1>NXWidgets</h1>
|
||||
<p>
|
||||
In order to better support NuttX based platforms, a special graphical userinterface has been created called NXWidgets.
|
||||
NXWidgets is written in C++ and integrates seamlessly with the NuttX <a href="NXGraphicsSubsystem.html">NX graphics subsystem</a> in order to provide graphic objects, or "widgets," in the NX Graphics Subsystem
|
||||
</p>
|
||||
<p>
|
||||
Some of the features of NXWidgets include:
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>Conservative C++</b>.
|
||||
NXWidgets is written entirely in C++ but using only selected "embedded friendly" C++ constructs that are fully supported under NuttX.
|
||||
No additional C++ support libraries are required.
|
||||
</li>
|
||||
<li><b>NX Integration</b>.
|
||||
NXWidgets integrate seamlessly with the <a href="NXGraphicsSubsystem.html">NX graphics subsystem</a>.
|
||||
Think of the X server under Linux … the NX graphics system is like a tiny X server that provides windowing under NuttX.
|
||||
By adding NXWidgets, you can support graphics objects like buttons and text boxes in the NX windows and toolbars.
|
||||
</li>
|
||||
<li><b>Small Footprint</b>.
|
||||
NXWidgets is tailored for use MCUs in embedded applications.
|
||||
It is ideally suited for mid- and upper-range of most MCU families.
|
||||
A complete NXWidgets is possible in as little as 40K of FLASH and maybe 4K of SRAM.
|
||||
</li>
|
||||
<li><b>Output Devices</b>.
|
||||
NXWidgets will work on the high-end frame buffer devices as well as on LCDs connected via serial or parallel ports to a small MCU.
|
||||
</li>
|
||||
<li><b>Input Devices</b>.
|
||||
NXWidgets will accept position and selection inputs from a mouse or a touchscreen.
|
||||
It will also support character input from a keyboard such as a USB keyboard.
|
||||
NXWidgets supports on very special widget called CKeypad that will provide keyboard input via an on-screen keypad that can be operated via mouse or touchscreen inputs.
|
||||
</li>
|
||||
<li><b>Many Graphic Objects</b>.
|
||||
Some of the graphic objects supported by NXWidgets include labels, buttons, text boxes, button arrays, check boxes, cycle buttons, images, sliders, scrollable list boxes, progress bars, and more.
|
||||
</li>
|
||||
<li><b>DOxygen Documentation</b>
|
||||
DOxygen documentation is available.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Note: Many of the fundamental classed in NxWidgets derive from the Antony
|
||||
Dzeryn's "Woopsi" project: http://woopsi.org/ which also has a BSD style
|
||||
license. See the COPYING file for details.
|
||||
</p>
|
||||
<h1>NXWidgets DOxygen Documentation</h1>
|
||||
<p>
|
||||
Release notes, DOxygen documentation, as well as downloads for the latest NxWidgets releases are available online:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<b>NxWidgets-1.15</b>:
|
||||
<a href="http://nuttx.org/nxwidgets_v1_15/index.html">Documentation</a>,
|
||||
<a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.15/">Release notes</a>, and
|
||||
<a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.15/">Downloads</a>
|
||||
</li>
|
||||
</p>
|
||||
<p>
|
||||
Thanks go to Jose Pablo Carballo for contributing this!
|
||||
</p>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,429 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>README Files</title>
|
||||
</head>
|
||||
<body background="backgd.gif">
|
||||
<hr><hr>
|
||||
<table width ="100%">
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX README Files</i></font></big></h1>
|
||||
<p>Last Updated: March 25, 2016</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
Additional information can be found in the <code>Documentation/</code> directory and
|
||||
also in <code>README</code> files that are scattered throughout the source tree.
|
||||
Below is a guide to the available <code>README</code> files.
|
||||
Some <code>README</code> files contain more important information than others.
|
||||
The key <code>README</code> files are shown in <code><i><b>BOLDFACE/ITALIC</i></b></code> below.
|
||||
</p>
|
||||
<p>
|
||||
Below is a guide to the available README files in the NuttX source tree:
|
||||
</p>
|
||||
|
||||
<ul><pre>
|
||||
nuttx/
|
||||
|- <a href="https://bitbucket.org/nuttx/nuttx/src/master/README.txt" target="_blank"><b>README.txt</b></a>
|
||||
|- arch/
|
||||
| |
|
||||
| |- arm/
|
||||
| | `- src
|
||||
| | `- <a href="https://bitbucket.org/nuttx/arch/src/master/arm/src/lpc214x/README.txt" target="_blank">lpc214x/README.txt</a>
|
||||
| |- sh/
|
||||
| | |- include/
|
||||
| | | `-<a href="https://bitbucket.org/nuttx/arch/src/master/sh/include/README.txt" target="_blank">README.txt</a>
|
||||
| | |- src/
|
||||
| | | `-<a href="https://bitbucket.org/nuttx/arch/src/master/sh/src/README.txt" target="_blank">README.txt</a>
|
||||
| |- x86/
|
||||
| | |- include/
|
||||
| | | `-<a href="https://bitbucket.org/nuttx/arch/src/master/x86/include/README.txt" target="_blank">README.txt</a>
|
||||
| | `- src/
|
||||
| | `-<a href="https://bitbucket.org/nuttx/arch/src/master/x86/src/README.txt" target="_blank">README.txt</a>
|
||||
| |- z80/
|
||||
| | |- src/z80
|
||||
| | | `- <a href="https://bitbucket.org/nuttx/arch/src/master/z80/src/z80/README.txt" target="_blank">README.txt</a>
|
||||
| | `- src/z180
|
||||
| | |- <a href="https://bitbucket.org/nuttx/arch/src/master/z80/src/z180/README.txt" target="_blank">README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/arch/src/master/z80/src/z180/z180_mmu.txt" target="_blank">z180_mmu.txt</a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/arch/src/master/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- binfmt/
|
||||
| |- libpcode/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/binfmt/libpcode/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- audio/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/audio/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- configs/
|
||||
| |- amber/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/amber/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- arduino-mega2560/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/arduino-mega2560/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- arduino-due/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/arduino-due/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- avr32dev1/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/avr32dev1/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- c5471evm/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/c5471evm/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- cc3200-launchpad/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/cc3200-launchpad/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- cloudctrl/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/cloudctrl/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- compal_e86/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/compal_e86/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- compal_e88/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/compal_e88/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- compal_e99/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/compal_e99/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- demo9s12ne64/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/demo9s12ne64/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- dk-tm4c129x/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/dk-tm4c129x/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ea3131/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ea3131/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ea3152/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ea3152/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- eagle100/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/eagle100/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- efm32-g8xx-stk/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/efm32-g8xx-stk/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- efm32gg-stk3700/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/efm32gg-stk3700/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ekk-lm3s9b96/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ekk-lm3s9b96/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ez80f910200kitg/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200kitg/ostest/README.txt" target="_blank">ostest/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200kitg/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ez80f910200zco/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/ostest/README.txt" target="_blank">dhcpd/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/httpd/README.txt" target="_blank">httpd/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/nettest/README.txt" target="_blank">nettest/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/nsh/README.txt" target="_blank">nsh/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/ostest/README.txt" target="_blank">ostest/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/poll/README.txt" target="_blank">poll/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ez80f910200zco/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- fire-stm32v2/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/fire-stm32v2/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- freedom-kl25z/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/freedom-kl25z/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- freedom-kl26z/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/freedom-kl26z/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- hymini-stm32v/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/hymini-stm32v/RIDE/README.txt" target="_blank">RIDE/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/hymini-stm32v/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- kwikstik-k40/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/kwikstik-k40/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- launchxl-tms57004/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/launchxl-tms57004/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lincoln60/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/lincoln60/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lm3s6432-s2e/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/lm3s6432-s2e/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lm3s6965-ek/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/lm3s6965-ek/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lm3s8962-ek/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/lm3s8962-ek/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lpc4330-xplorer/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/llpc4330-xplorer/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lpc4337-ws/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/llpc4337-ws/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lpc4357-evb/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/llpc4357-evb/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lpc4370-link2/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/llpc4370-link2/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lpcxpresso-lpc1115/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/lpcxpresso-lpc1115/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lpcxpresso-lpc1768/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/lpcxpresso-lpc1768/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- maple/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/maple/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mbed/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/mbed/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mcu123-lpc214x/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/mcu123-lpc214x/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- micropendous3/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/micropendous3/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mikroe-stm32f4/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/mikroe-stm32f4/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mirtoo/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/mirtoo/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mt-db-x3//
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/mt-db-x3//README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- moteino-mega/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/moteino-mega/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mx1ads/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/mx1ads/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ne64badge/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ne64badge/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ntosd-dm320/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/ntosd-dm320/doc/README.txt" target="_blank">doc/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ntosd-dm320/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- nucleo-f4x1re/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/nucleo-f4x1re/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- nucleus2g/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/nucleus2g/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- nutiny-nuc120/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/nutiny-nuc120/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-efm32g880f129-stk/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-efm32g880f129-stk/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-lpc1766stk/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-lpc1766stk/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-lpc2378/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-lpc2378/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-lpc-h3131/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-lpc-h3131/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-stm32-h405/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-stm32-h405/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-stm32-h407/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-stm32-h407/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-stm32-p107/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-stm32-p107/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-stm32-p207/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-stm32-p207/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- olimex-strp711/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/olimex-strp711/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- open1788/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/open1788/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- p112/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/p112/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- pcblogic-pic32mx/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/pcblogic-pic32mx/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- pcduino-a10/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/pcduino-pic32mx/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- pic32mx-starterkit/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/pic32mx-starterkit/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- pic32mx7mmb/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/pic32mx7mmb/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- pic32mz-starterkit/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/pic32mz-starterkit/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- pirelli_dpl10/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/pirelli_dpl10/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- qemu-i486/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/qemu-i486/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- rgmp/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/rgmp/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sabre-6quad/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sabre-6quad/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sama5d2-xult/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sama5d2-xult/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sama5d3x-ek/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sama5d3x-ek/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sama5d3-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sama5d3-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sama5d4-ek/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sama5d4-ek/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- samd20-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/samd20-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- samd21-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/samd21-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- saml21-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/saml21-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sam3u-ek/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sam3u-ek/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sam4e-ek/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sam4e-ek/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sam4l-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sam4l-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sam4s-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sam4s-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sam4s-xplained-pro/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sam4s-xplained-pro/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- same70-xplained/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/same70-xplained/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- samv71-xult/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/samv71-xult/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- shenzhou/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/shenzhou/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sim/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/sim/include/README.txt" target="_blank"><b><i>include/README.txt</i></b></a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sim/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- skp16c26/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/skp16c26/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- spark/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/spark/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm3210e-eval/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/stm3210e-eval/RIDE/README.txt" target="_blank">RIDE/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm3210e-eval/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm3220g-eval/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm3220g-eval/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm3240g-eval/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm3240g-eval/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32_tiny/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32_tiny/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32f3discovery/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32f3discovery/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32f4discovery/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32f4discovery/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32f429i-disco/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32f429i-disco/ltdc/README.txt" target="_blank"><b><i>ltdc/README.txt</i></b></a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32f429i-disco/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32f746g-disco/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32f746g-disco/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32l476vg-disco/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32l476vg-disco/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32ldiscovery/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32ldiscovery/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- stm32vldiscovery/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/stm32vldiscovery/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sure-pic32mx/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/sure-pic32mx/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- teensy-2.0/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/teensy-2.0/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- teensy-3.1/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/teensy-3.1/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- teensy-lc/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/teensy-lc/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- tm4c123g-launchpad/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/tm4c123g-launchpad/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- tm4c1294-launchpad/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/tm4c1294-launchpad/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- twr-k60n512/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/twr-k60n512/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- "u-blox-c027/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/u-blox-c027/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- ubw32/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/ubw32/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- us7032evb1/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/us7032evb1/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- viewtool-stm32f107/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/viewtool-stm32f107/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- xtrs/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/xtrs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- z16f2800100zcog/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/xtrs/ostest/README.txt" target="_blank">ostest/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/xtrs/pashello/README.txt" target="_blank">pashello/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/xtrs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- z80sim/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/z80sim/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- z8encore000zco/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/z8encore000zco/ostest/README.txt" target="_blank">ostest/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/z8encore000zco/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- z8f64200100kit/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/boards/src/master/z8f64200100kit/ostest/README.txt" target="_blank">ostest/README.txt</a>
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/z8f64200100kit/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- zkit-arm-1769/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/zkit-arm-1769/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- zp214xpa/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/boards/src/master/zp214xpa/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/boards/src/master/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- drivers/
|
||||
| |- eeprom/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/eeprom/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- lcd/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/lcd/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mtd/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/mtd/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- sensors/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/sensors/README.txt" target="_blank">README.txt</a>
|
||||
| |- sercomm/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/sercomm/README.txt" target="_blank">README.txt</a>
|
||||
| |- syslog/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/syslog/README.txt" target="_blank">README.txt</a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/drivers/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- fs/
|
||||
| |- binfs/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/fs/binfs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- mmap/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/fs/mmap/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- nxffs/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/fs/nxffs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- smartfs/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/fs/smartfs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| |- procfs/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/fs/procfs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| `- unionfs/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/fs/unionfs/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- graphics/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/graphics/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- lib/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/lib/README.txt" target="_blank">README.txt</a>
|
||||
|- libc/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/libc/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- libnx/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/libnx/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- libxx/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/libxx/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- mm/
|
||||
| |- shm/
|
||||
| | `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/mm/shm/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/mm/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- net/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/net/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- syscall/
|
||||
| `- <a href="https://bitbucket.org/nuttx/nuttx/src/master/syscall/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
`- tools/
|
||||
`- <a href="https://bitbucket.org/nuttx/nuttx/src/master/tools/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
</pre></ul>
|
||||
|
||||
<p>
|
||||
Below is a guide to the available README files in the semi-optional <code>apps/</code> source tree:
|
||||
</p>
|
||||
|
||||
<ul><pre>
|
||||
apps/
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/README.txt" target="_blank"><b>README.txt</b></a>
|
||||
|- examples/
|
||||
| |- <a href="https://bitbucket.org/nuttx/apps/src/master/examples/bastest/README.txt" target="_blank">bastest/README.txt</a>
|
||||
| |- <a href="https://bitbucket.org/nuttx/apps/src/master/examples/json/README.txt" target="_blank">json/README.txt</a>
|
||||
| |- <a href="https://bitbucket.org/nuttx/apps/src/master/examples/pashello/README.txt" target="_blank">pashello/README.txt</a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/examples/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- gpsutils/
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/gpsutils/minmea/README.txt" target="_blank">"<b><i>minmea/README.txt</i></b></a>
|
||||
|- graphics/
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/graphics/tiff/README.txt" target="_blank">"<b><i>tiff/README.txt</i></b></a>
|
||||
|- interpreters/
|
||||
| |- <a href="https://bitbucket.org/nuttx/apps/src/master/interpreters/bas/README.txt" target="_blank"><b><i>bas/README.txt</i></b></a>
|
||||
| |- <a href="https://bitbucket.org/nuttx/apps/src/master/interpreters/ficl/README.txt" target="_blank"><b><i>ficl/README.txt</i></b></a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/interpreters/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- modbus/
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/modbus/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- netutils/
|
||||
| | |- <a href="https://bitbucket.org/nuttx/apps/src/master/netutils/discover/README.txt" target="_blank">discover/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/apps/src/master/netutils/ftpc/README.txt" target="_blank">ftpc/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/apps/src/master/netutils/json/README.txt" target="_blank">json/README.txt</a>
|
||||
| | |- <a href="https://bitbucket.org/nuttx/apps/src/master/netutils/telnetd/README.txt" target="_blank">telnetd/README.txt</a>
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/netutils/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- nshlib/
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/nshlib/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- NxWidgets/
|
||||
| `- <a href="https://bitbucket.org/nuttx/apps/src/master/NxWidgets/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
`- system/
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/cdcacm/README.txt" target="_blank"><b><i>cdcacm/README.txt</i></b></a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/i2c/README.txt" target="_blank"><b><i>i2c/README.txt</i></b></a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/inifile/README.txt" target="_blank">inifile/README.txt</a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/install/README.txt" target="_blank">install/README.txt</a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/nxplayer/README.txt" target="_blank"><b><i>nxplayer/README.txt</i></b></a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/symtab/README.txt" target="_blank"><b><i>symtab/README.txt</i></b></a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/usbmsc/README.txt" target="_blank">usbmsc/README.txt</a>
|
||||
|- <a href="https://bitbucket.org/nuttx/apps/src/master/system/zmodem/README.txt" target="_blank">zmodem/README.txt</a>
|
||||
`- <a href="https://bitbucket.org/nuttx/apps/src/master/system/zoneinfo/README.txt" target="_blank">zoneinfo/README.txt</a>
|
||||
</pre></ul>
|
||||
|
||||
<p>
|
||||
Additional README.txt files in the other, related repositories:
|
||||
</p>
|
||||
|
||||
<ul><pre>
|
||||
NxWidgets
|
||||
|- Doxygen
|
||||
| `- <a href="https://bitbucket.org/nuttx/nxwidgets/src/master/Doxygen/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- tools
|
||||
| `- <a href="https://bitbucket.org/nuttx/nxwidgets/src/master/tools/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|- UnitTests
|
||||
| `- <a href="https://bitbucket.org/nuttx/nxwidgets/src/master/UnitTests/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
`- <a href="https://bitbucket.org/nuttx/nxwidgets/src/master/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|
||||
buildroot/
|
||||
`- <a href="https://bitbucket.org/nuttx/buildroot/src/master/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|
||||
tools/
|
||||
`- <a href="https://bitbucket.org/nuttx/tools/src/master/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|
||||
uClibc++/
|
||||
`- <a href="https://bitbucket.org/nuttx/uclibc/src/master/README.txt" target="_blank"><b><i>README.txt</i></b></a>
|
||||
|
||||
pascal/
|
||||
`- <a href="https://bitbucket.org/nuttx/pascal/src/master/README" target="_blank"><b><i>README</i></b></a>
|
||||
|
||||
</pre></ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,452 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>NuttX USB Trace Capability</title>
|
||||
</head>
|
||||
|
||||
<body background="backgd.gif">
|
||||
<hr><hr>
|
||||
<table width ="100%">
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX USB Device Trace</i></font></big></h1>
|
||||
<p>Last Updated: March 20, 2011</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr><hr>
|
||||
<p><b>USB Device Tracing Controls</b>.
|
||||
The NuttX USB device subsystem supports a fairly sophisticated tracing facility.
|
||||
The basic trace cabability is controlled by these NuttX configuration settings:
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>CONFIG_USBDEV_TRACE</code>: Enables USB tracing</li>
|
||||
<li><code>CONFIG_USBDEV_TRACE_NRECORDS</code>: Number of trace entries to remember</li>
|
||||
</ul>
|
||||
<p><b>Trace IDs</b>.
|
||||
The trace facility works like this:
|
||||
When enabled, USB events that occur in either the USB device driver or in the USB class driver are logged.
|
||||
These events are described in <code>include/nuttx/usb/usbdev_trace.h</code>.
|
||||
The logged events are identified by a set of event IDs:
|
||||
</p>
|
||||
<ul><table>
|
||||
<tr>
|
||||
<td><code>TRACE_INIT_ID</code></td>
|
||||
<td>Initialization events</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_EP_ID</code></td>
|
||||
<td>Endpoint API calls</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_DEV_ID</code></td>
|
||||
<td>USB device API calls</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_CLASS_ID</code></td>
|
||||
<td>USB class driver API calls</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_CLASSAPI_ID</code></td>
|
||||
<td>Other class driver system API calls</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_CLASSSTATE_ID</code></td>
|
||||
<td>Track class driver state changes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_INTENTRY_ID</code></td>
|
||||
<td>Interrupt handler entry</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_INTDECODE_ID</code></td>
|
||||
<td>Decoded interrupt event</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_INTEXIT_ID</code></td>
|
||||
<td>Interrupt handler exit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_OUTREQQUEUED_ID</code></td>
|
||||
<td>Request queued for OUT endpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_INREQQUEUED_ID</code></td>
|
||||
<td>Request queued for IN endpoint</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_READ_ID</code></td>
|
||||
<td>Read (OUT) action</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_WRITE_ID</code></td>
|
||||
<td>Write (IN) action</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_COMPLETE_ID</code></td>
|
||||
<td>Request completed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_DEVERROR_ID</code></td>
|
||||
<td>USB controller driver error event</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>TRACE_CLSERROR_ID</code></td>
|
||||
<td>USB class driver error event</td>
|
||||
</tr>
|
||||
</table></ul>
|
||||
<p><b>Logged Events</b>.
|
||||
Each logged event is 32-bits in size and includes
|
||||
</p>
|
||||
<ol>
|
||||
<li>8-bits of the trace ID (values associated with the above)</li>
|
||||
<li>8-bits of additional trace ID data, and</li>
|
||||
<li>16-bits of additonal data.</li>
|
||||
</ol>
|
||||
<p><b>8-bit Trace Data</b>
|
||||
The 8-bit trace data depends on the specific event ID. As examples,
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
For the USB serial and mass storage class, the 8-bit event data is provided in <code>include/nuttx/usb/usbdev_trace.h</code>.
|
||||
</li>
|
||||
<li>
|
||||
For the USB device driver, that 8-bit event data is provided within the USB device driver itself.
|
||||
So, for example, the 8-bit event data for the LPC1768 USB device driver is found in <code>arch/arm/src/lpc17xx/lpc17_usbdev.c</code>.
|
||||
</li>
|
||||
</ul>
|
||||
<p><b>16-bit Trace Data</b>.
|
||||
The 16-bit trace data provided additional context data relevant to the specific logged event.
|
||||
</p>
|
||||
<p><b>Trace Control Interfaces</b>.
|
||||
Logging of each of these kinds events can be enabled or disabled using the interfaces described in <code>include/nuttx/usb/usbdev_trace.h</code>.
|
||||
</p>
|
||||
<p><b>Enabling USB Device Tracing</b>.
|
||||
USB device tracing will be configured if <code>CONFIG_USBDEV</code> and either of the following are set in the NuttX configuration file:
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>CONFIG_USBDEV_TRACE</code>, or</li>
|
||||
<li><code>CONFIG_DEBUG and CONFIG_DEBUG_USB</code></li>
|
||||
</ul>
|
||||
<p><b>Log Data Sink</b>.
|
||||
The logged data itself may go to either (1) an internal circular buffer, or (2) may be provided on the console.
|
||||
If <code>CONFIG_USBDEV_TRACE</code> is defined, then the trace data will go to the circular buffer.
|
||||
The size of the circular buffer is determined by <code>CONFIG_USBDEV_TRACE_NRECORDS</code>.
|
||||
Otherwise, the trace data goes to console.
|
||||
<p>
|
||||
<p><b>Example</b>.
|
||||
Here is an example of USB trace output using <code>apps/examples/usbserial</code> for an LPC1768 platform with the following NuttX configuration settings:
|
||||
</p>
|
||||
<ul>
|
||||
<li><code>CONFIG_DEBUG</code>, <code>CONFIG_DEBUG_VERBOSE</code>, <code>CONFIG_USB</code>
|
||||
<li><code>CONFIG_EXAMPLES_USBSERIAL_TRACEINIT</code>, <code>CONFIG_EXAMPLES_USBSERIAL_TRACECLASS</code>,
|
||||
<code>CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS</code>, <code>CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER</code>,
|
||||
<code>CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS</code>
|
||||
</ul>
|
||||
<p>Console Output:</p>
|
||||
<ul><table>
|
||||
<tr>
|
||||
<td align="center"> </td>
|
||||
<td align="left"><code>ABDE</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"> </td>
|
||||
<td align="left"><code>usbserial_main: Registering USB serial driver</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"> </td>
|
||||
<td align="left"><code>uart_register: Registering /dev/ttyUSB0</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"> </td>
|
||||
<td align="left"><code>usbserial_main: Successfully registered the serial driver</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">1</td>
|
||||
<td align="left"><code>Class API call 1: 0000</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">2</td>
|
||||
<td align="left"><code>Class error: 19:0000</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"> </td>
|
||||
<td align="left"><code>usbserial_main: ERROR: Failed to open /dev/ttyUSB0 for reading: 107</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"> </td>
|
||||
<td align="left"><code>usbserial_main: Not connected. Wait and try again.</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">3</td>
|
||||
<td align="left"><code>Interrupt 1 entry: 0039</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">4</td>
|
||||
<td align="left"><code>Interrupt decode 7: 0019</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">5</td>
|
||||
<td align="left"><code>Interrupt decode 32: 0019</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">6</td>
|
||||
<td align="left"><code>Interrupt decode 6: 0019</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">7</td>
|
||||
<td align="left"><code>Class disconnect(): 0000</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">8</td>
|
||||
<td align="left"><code>Device pullup(): 0001</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">9</td>
|
||||
<td align="left"><code>Interrupt 1 exit: 0000</code></td>
|
||||
</tr>
|
||||
</table></ul>
|
||||
<p>
|
||||
The numbered items are USB USB trace output.
|
||||
You can look in the file <code>drivers/usbdev/usbdev_trprintf.c</code> to see examctly how each output line is formatted.
|
||||
Here is how each line should be interpreted:
|
||||
</p>
|
||||
<ul><table>
|
||||
<tr>
|
||||
<th align="center"> </th>
|
||||
<td align="left">USB EVENT ID</td>
|
||||
<td align="right">8-bit<br>EVENT<br>DATA</td>
|
||||
<td align="left">MEANING</td>
|
||||
<td align="left">16-bit<br>EVENT<br>DATA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">1</td>
|
||||
<td align="left"><code>TRACE_CLASSAPI_ID</code><sup>1</sup></td>
|
||||
<td align="right">1</td>
|
||||
<td align="left"><code>USBSER_TRACECLASSAPI_SETUP</code><sup>1</sup></td>
|
||||
<td align="left">0000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">2</td>
|
||||
<td align="left"><code>TRACE_CLSERROR_ID</code><sup>1</sup></td>
|
||||
<td align="right">19</td>
|
||||
<td align="left"><code>USBSER_TRACEERR_SETUPNOTCONNECTED</code><sup>1</sup></td>
|
||||
<td align="left">0000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">3</td>
|
||||
<td align="left"><code>TRACE_INTENTRY_ID</code><sup>1</sup></td>
|
||||
<td align="right">1</td>
|
||||
<td align="left"><code>LPC17_TRACEINTID_USB</code><sup>2</sup></td>
|
||||
<td align="left">0039</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">4</td>
|
||||
<td align="left"><code>TRACE_INTDECODE_ID</code><sup>2</sup></td>
|
||||
<td align="right">7</td>
|
||||
<td align="left"><code>LPC17_TRACEINTID_DEVSTAT</code><sup>2</sup></td>
|
||||
<td align="left">0019</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">5</td>
|
||||
<td align="left"><code>TRACE_INTDECODE_ID</code><sup>2</sup></td>
|
||||
<td align="right">32</td>
|
||||
<td align="left"><code>LPC17_TRACEINTID_SUSPENDCHG</code><sup>2</sup></td>
|
||||
<td align="left">0019</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">6</td>
|
||||
<td align="left"><code>TRACE_INTDECODE_ID</code><sup>2</sup></td>
|
||||
<td align="right">6</td>
|
||||
<td align="left"><code>LPC17_TRACEINTID_DEVRESET</code><sup>2</sup></td>
|
||||
<td align="left">0019</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">7</td>
|
||||
<td align="left"><code>TRACE_CLASS_ID</code><sup>1</sup></td>
|
||||
<td align="right">3</td>
|
||||
<td align="left"><code>(See TRACE_CLASSDISCONNECT</code><sup>1</sup>)</td>
|
||||
<td align="left">0000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">8</td>
|
||||
<td align="left"><code>TRACE_DEV_ID</code><sup>1</sup></td>
|
||||
<td align="right">6</td>
|
||||
<td align="left"><code>(See TRACE_DEVPULLUP</code><sup>1</sup>)</td>
|
||||
<td align="left">0001</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">9</td>
|
||||
<td align="left"><code>TRACE_INTEXIT_ID</code><sup>1</sup></td>
|
||||
<td align="right">1</td>
|
||||
<td align="left"><code>LPC17_TRACEINTID_USB</code><sup>2</sup></td>
|
||||
<td align="left">0000</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p><small><b>NOTES</b>:<br>
|
||||
<sup>1</sup>See <code>include/nuttx/usb/usbdev_trace.h</code><br>
|
||||
<sup>2</sup><code>See arch/arm/src/lpc17xx/lpc17_usbdev.c</code>
|
||||
</small></p>
|
||||
</ul>
|
||||
<p>
|
||||
In the above example you can see that:
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>1</b>.
|
||||
The serial class USB setup method was called for the USB serial class.
|
||||
This is the corresponds to the following logic in <code>drivers/usbdev/pl2303.c</code>:
|
||||
<ul><pre>
|
||||
static int pl2303_setup(FAR struct uart_dev_s *dev)
|
||||
{
|
||||
...
|
||||
usbtrace(PL2303_CLASSAPI_SETUP, 0);
|
||||
...
|
||||
</pre></ul>
|
||||
</li>
|
||||
<li><b>2</b>.
|
||||
An error occurred while processing the setup command because no configuration has yet been selected by the host.
|
||||
This corresponds to the following logic in <code>drivers/usbdev/pl2303.c</code>:
|
||||
<ul><pre>
|
||||
static int pl2303_setup(FAR struct uart_dev_s *dev)
|
||||
{
|
||||
...
|
||||
/* Check if we have been configured */
|
||||
|
||||
if (priv->config == PL2303_CONFIGIDNONE)
|
||||
{
|
||||
usbtrace(TRACE_CLSERROR(USBSER_TRACEERR_SETUPNOTCONNECTED), 0);
|
||||
return -ENOTCONN;
|
||||
}
|
||||
...
|
||||
</pre></ul>
|
||||
<li><b>3-6</b>.
|
||||
Here is a USB interrupt that suspends and resets the device.
|
||||
</li>
|
||||
<li><b>7-8</b>.
|
||||
During the interrupt processing the serial class is disconnected
|
||||
</li>
|
||||
<li><b>9</b>.
|
||||
And the interrupt returns
|
||||
</li>
|
||||
</ul>
|
||||
<p><b>USB Monitor</b>.
|
||||
The <i>USB monitor</i> is an application in the <code>apps/system/usbmonitor</code> that provides a convenient way to get debug trace output.
|
||||
If tracing is enabled, the USB device will save encoded trace output in in-memory buffer;
|
||||
if the USB monitor is also enabled, that trace buffer will be periodically emptied and dumped to the
|
||||
system logging device (the serial console in most configurations).
|
||||
The following are some of the relevant configuration options:
|
||||
</p>
|
||||
<ul>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td colspan="2" align="left" valign="top" bgcolor="#e4e4e4">
|
||||
<i>Device Drivers -> USB Device Driver Support</i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_USBDEV_TRACE=y</code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Enable USB trace feature
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_USBDEV_TRACE_NRECORDS=<i>nnnn</i></code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Buffer <i>nnnn</i> records in memory.
|
||||
If you lose trace data, then you will need to increase the size of this buffer
|
||||
(or increase the rate at which the trace buffer is emptied).
|
||||
</td>
|
||||
</tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_USBDEV_TRACE_STRINGS=y</code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Optionally, convert trace ID numbers to strings.
|
||||
This feature may not be supported by all drivers.
|
||||
</td>
|
||||
<tr>
|
||||
<td colspan="2" align="left" valign="top" bgcolor="#e4e4e4">
|
||||
<i>Application Configuration -> NSH LIbrary</i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_NSH_USBDEV_TRACE=n</code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Make sure that any built-in tracing from NSH is disabled.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_NSH_ARCHINIT=y</code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Enable this option <i>only</i> if your board-specific logic has logic to automatically start the USB monitor.
|
||||
Otherwise the USB monitor can be started or stopped with the <code>usbmon_start</code> and <code>usbmon_stop</code> commands from the NSH console.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="left" valign="top" bgcolor="#e4e4e4">
|
||||
<i>Application Configuration -> System NSH Add-Ons</i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_SYSTEM_USBMONITOR=y</code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Enable the USB monitor daemon
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_STACKSIZE=<i>nnnn</i></code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Sets the USB monitor daemon stack size to <i>nnnn</i>.
|
||||
The default is 2KiB.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_PRIORITY=50</code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Sets the USB monitor daemon priority to <i>nnnn</i>.
|
||||
This priority should be low so that it does not interfere with other operations, but not so low that you cannot dump the buffered USB data sufficiently rapidly.
|
||||
The default is 50.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_INTERVAL=<i>nnnn</i></code>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Dump the buffered USB data every <i>nnnn</i> seconds.
|
||||
If you lose buffered USB trace data, then dropping this value will help by increasing the rate at which the USB trace buffer is emptied.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="30%" align="left" valign="top">
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_TRACEINIT=y</code><br>
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y</code><br>
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y</code><br>
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y</code><br>
|
||||
<code>CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y</code><br>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
Selects which USB event(s) that you want to be traced.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</ul>
|
||||
<p>
|
||||
NOTE: If USB debug output is also enabled, both outputs will appear on the serial console.
|
||||
However, the debug output will be asynchronous with the trace output and, hence, difficult to interpret.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,57 @@
|
||||
AIC Advanced Interrupt Controller (Atmel SAM)
|
||||
ADC Analog to Digital Conversion
|
||||
ARP Address Resolution Protocol (networking)
|
||||
BCH Block to Character
|
||||
BINFMT Binary Format (Dynamic Loader)
|
||||
CAN Controller Area Network
|
||||
CP15 Coprocessor 15 (ARM)
|
||||
DEVIF Device Interface (networking)
|
||||
DAC Digital to Analog Conversion
|
||||
DEV Device
|
||||
DMA Direct Memory Access (hardware)
|
||||
DMAC DMA Controller (hardware)
|
||||
DRAM Dynamic RAM
|
||||
FAT File Allocation Table (file systems)
|
||||
FTL FLASH Translation Layer (MTD)
|
||||
HSMCI High Speed Memory Card Interface (Atmel)
|
||||
I/O Input/Output
|
||||
IP Internet Protocol (version 4?) (networking)
|
||||
IPv6 Internet Protocol Version 6 (networking)
|
||||
IRQ Interrupt Request
|
||||
I2C Inter-Integrated Circuit
|
||||
I2S Inter IC Sound
|
||||
ICMP Internet Control Message Protocol (networking)
|
||||
IOB I/O Buffer (networking)
|
||||
LIBC The "C" Library
|
||||
MCI Memory Card Interface
|
||||
MM Memory Management/Manager
|
||||
MMAP Memory Map
|
||||
MMC Multi-Media Card
|
||||
MMCSD See MMC and SD
|
||||
MTD Memory Technology Device
|
||||
NFS Network File System
|
||||
NETDEV Network Device (networking)
|
||||
NSH NuttShell
|
||||
NX NuttX, the NuttX Graphics server (graphics)
|
||||
NXFFS NuttX Flash File System
|
||||
NXWM The NuttX Window Manager (graphics)
|
||||
PID Peripheral ID (Atmel SAM)
|
||||
PWM Pulse Width Modulation
|
||||
PKT "Raw" Packet socket (networking)
|
||||
RAM Random Access Memory
|
||||
RTC Real Time Clock
|
||||
RTCC Real Time Clock/Calendar
|
||||
SAIC Secure Advanced Interrupt Controller (Atmel SAM)
|
||||
SD Secure Digital
|
||||
SDIO Secure Digital I/O
|
||||
SMC Static Memory Controller (hardware)
|
||||
SPI Serial Periperhal Interface
|
||||
TCP Transmission Control Protocol (networking)
|
||||
TSC Touchscreen Controller
|
||||
TWI Two-Wire Interface
|
||||
UDP User Datagram Protocol (networking)
|
||||
UART Universal Asynchronous Receiver/Transmitter
|
||||
USB Universal Serial Bus
|
||||
USART Universal Synchronous/Asynchronous Receiver/Transmitter
|
||||
WDT Watchdog Timer
|
||||
XDMAC Extended DMA Controller (Atmel)
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,20 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>The NuttX RTOS</title>
|
||||
<meta http-equiv="REFRESH" content="5;url=http://nuttx.org"></HEAD>
|
||||
<body background="backgd.gif">
|
||||
<table width ="100%">
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>The NuttX RTOS</i></font></big></h1>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr><hr>
|
||||
<big><center>
|
||||
The NuttX RTOS web site has moved to <a href="http://nuttx.org">nuttx.org</a>.
|
||||
Please update your bookmarks and wait while you are redirected there.
|
||||
</center></big>
|
||||
</body>
|
||||
</html>
|
||||