Prep for NuttX-5.17
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3267 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
bc5634d2ad
commit
2ae6b79306
@ -1418,7 +1418,7 @@
|
||||
* drivers/usbhost -- Add a USB host class driver for the (Bulk-Only) USB
|
||||
Mass Storage Class.
|
||||
|
||||
5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
5.17 2011-01-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
* include/nuttx/usb -- rename usb_storage.h to storage.h.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
|
||||
@ -1436,4 +1436,6 @@
|
||||
* configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the
|
||||
USB host HID keyboard class driver test for the LPC17xx.
|
||||
* Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and
|
||||
fixed several errors in the code identified by the tool.
|
||||
fixed several errors in the code identified by the tool.
|
||||
|
||||
5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
@ -800,153 +800,31 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p><b>nuttx-5.16 Release Notes</b>:
|
||||
|
||||
<p><b>nuttx-5.17 Release Notes</b>:
|
||||
<p>
|
||||
The 63<sup>rd</sup> release of NuttX, Version 5.16, was made on January 10, 2010 and is available for download from the
|
||||
The 64<sup>th</sup> release of NuttX, Version 5.17, was made on January 19, 2010 and is available for download from the
|
||||
<a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website.
|
||||
The change log associated with the release is available <a href="#currentrelease">here</a>.
|
||||
Unreleased changes after this release are available in CVS.
|
||||
These unreleased changes are listed <a href="#pendingchanges">here</a>.
|
||||
</p>
|
||||
<p>
|
||||
This release includes initial support for USB host in NuttX.
|
||||
The USB host infrstruture is new to NuttX.
|
||||
This initial USB host release is probably only beta quality;
|
||||
it is expected the some bugs remain in the logic and that the functionality requires extension.
|
||||
</p>
|
||||
This release follows close on the heels of the 5.16 release and extends the USB host capabilities first introduced in that version.
|
||||
<p>
|
||||
Below is a summary of the NuttX USB host implementation as extracted from the
|
||||
<a href="NuttxPortingGuide.html">NuttX Porting Guide</a>:
|
||||
</p>
|
||||
<ul>
|
||||
<h3>6.3.9 USB Host-Side Drivers</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<b><code>include/nuttx/usb/usbhost.h</code></b>.
|
||||
All structures and APIs needed to work with USB host-side drivers are provided in this header file.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<b><code>struct usbhost_driver_s</code></b>.
|
||||
Each USB host controller driver must implement an instance of <code>struct usbhost_driver_s</code>.
|
||||
This structure is defined in <code>include/nuttx/usb/usbhost.h</code>.
|
||||
</p>
|
||||
<p>
|
||||
<b>Examples</b>:
|
||||
<code>arch/arm/src/lpc17xx/lpc17_usbhost.c</code>.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<b><code>struct usbhost_class_s</code></b>.
|
||||
Each USB host class driver must implement an instance of <code>struct usbhost_class_s</code>.
|
||||
This structure is also defined in <code>include/nuttx/usb/usbhost.h</code>.
|
||||
</p>
|
||||
<p>
|
||||
<b>Examples</b>:
|
||||
<code>drivers/usbhost/usbhost_storage.c</code>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<b>USB Host Class Driver Registry</b>.
|
||||
The NuttX USB host infrastructure includes a <i>registry</i>.
|
||||
During its initialization, each USB host class driver must call the interface, <code>usbhost_registerclass()</code>
|
||||
in order add its interface to the registery.
|
||||
Later, when a USB device is connected, the USB host controller will look up the USB host class driver that is needed to support the connected device in this registry.
|
||||
</p>
|
||||
<p>
|
||||
<b>Examples</b>:
|
||||
<code>drivers/usbhost/usbhost_registry.c</code>, <code>drivers/usbhost/usbhost_registerclass.c</code>, and <code>drivers/usbhost/usbhost_findclass.c</code>,
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<b>Detection and Enumeration of Connected Devices</b>.
|
||||
Each USB host device controller supports two methods that are used to detect and enumeration newly connected devices
|
||||
(and also detect disconnected devices):
|
||||
</p>
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<code>int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected);</code>
|
||||
</p>
|
||||
<p>
|
||||
Wait for a device to be connected or disconnected.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<code>int (*enumerate)(FAR struct usbhost_driver_s *drvr);</code>
|
||||
</p>
|
||||
<p>
|
||||
Enumerate the connected device.
|
||||
As part of this enumeration process, the driver will
|
||||
(1) get the device's configuration descriptor,
|
||||
(2) extract the class ID info from the configuration descriptor,
|
||||
(3) call <code>usbhost_findclass(</code>) to find the class that supports this device,
|
||||
(4) call the <code>create()</code> method on the <code>struct usbhost_registry_s interface</code> to get a class instance, and
|
||||
finally (5) call the <code>connect()</code> method of the <code>struct usbhost_class_s</code> interface.
|
||||
After that, the class is in charge of the sequence of operations.
|
||||
</p>
|
||||
</ul>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<b>Binding USB Host-Side Drivers</b>.
|
||||
USB host-side controller drivers are not normally directly accessed by user code,
|
||||
but are usually bound to another, higher level USB host class driver.
|
||||
The class driver exports the standard NuttX device interface so that the connected USB device can be accessed just as with other, similar, on-board devices.
|
||||
For example, the USB host mass storage class driver (<code>drivers/usbhost/usbhost_storage.c</code>) will register a standard, NuttX block driver interface (like <code>/dev/sda</code>)
|
||||
that can be used to mount a file system just as with any other other block driver instance.
|
||||
In general, the binding sequence is:
|
||||
</p>
|
||||
<p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>
|
||||
Each USB host class driver includes an intialization entry point that is called from the
|
||||
application at initialization time.
|
||||
This driver calls <code>usbhost_registerclass()</code> during this initialization in order to makes itself available in the event the the device that it supports is connected.
|
||||
</p>
|
||||
<p>
|
||||
<b>Examples</b>:
|
||||
The function <code>usbhost_storageinit()</code> in the file <code>drivers/usbhost/usbhost_storage.c</code>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
Each application must include a <i>waiter</i> thread thread that (1) calls the USB host controller driver's <code>wait()</code> to detect the connection of a device, and then
|
||||
(2) call the USB host controller driver's <code>enumerate</code> method to bind the registered USB host class driver to the USB host controller driver.
|
||||
</p>
|
||||
<p>
|
||||
<b>Examples</b>:
|
||||
The function <code>nsh_waiter()</code> in the file <code>configs/nucleus2g/src/up_nsh.c</code> and
|
||||
the function <code>nsh_waiter()</code> in the file <code>configs/olimex-lpc1766stk/src/up_nsh.c</code>.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
As part of its operation during the binding operation, the USB host class driver will register an instances of a standard NuttX driver under the <code>/dev</code> directory.
|
||||
To repeat the above example, the USB host mass storage class driver (<code>drivers/usbhost/usbhost_storage.c</code>) will register a standard, NuttX block driver interface (like <code>/dev/sda</code>)
|
||||
that can be used to mount a file system just as with any other other block driver instance.
|
||||
</p>
|
||||
<p>
|
||||
<b>Examples</b>:
|
||||
See the call to <code>register_blockdriver()</code> in the function <code>usbhost_initvolume()</code> in the file <code>drivers/usbhost/usbhost_storage.c</code>.
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<li>
|
||||
The LPC17xx USB host controller driver was extended to (1) add support for low-speed devices,
|
||||
(2) handle multiple concurrent transfers on different endpoints (still only one TD per endpoint), and
|
||||
(3) handle periodic interrupt endpoint types.
|
||||
</li>
|
||||
<li>
|
||||
Add a USB host HID keyboard class driver.
|
||||
Now you can connect a standard USB keyboard to NuttX and receive keyboard input for an application.
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
And other changes as detailed in the ChangeLog.
|
||||
</p>
|
||||
|
||||
<table width ="100%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
@ -1394,9 +1272,17 @@
|
||||
</p>
|
||||
<p>
|
||||
<b>Nucleus2G LPC1768</b>.
|
||||
Some initial files for the LPC17xx family were released in NuttX 5.6, but the first
|
||||
functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with some
|
||||
additional enhancements through NuttX-5.9.
|
||||
<ul>
|
||||
<li>
|
||||
Some initial files for the LPC17xx family were released in NuttX 5.6, but
|
||||
</li>
|
||||
<li>
|
||||
The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with
|
||||
Some additional enhancements through NuttX-5.9.
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
That initial, 5.6, basic release included <i>timer</i> interrupts and a <i>serial console</i> and was
|
||||
verified using the NuttX OS test (<code>examples/ostest</code>).
|
||||
Configurations available include include a verified NuttShell (NSH) configuration
|
||||
@ -1408,21 +1294,43 @@
|
||||
</p>
|
||||
<p>
|
||||
<b>mbed LPC1768</b>.
|
||||
Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11.
|
||||
<ul>
|
||||
<li>
|
||||
Support for the mbed board was contributed by Dave Marples and released in NuttX-5.11.
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
This port includes a NuttX OS test configuration (see <code>examples/ostest</code>).
|
||||
</p>
|
||||
<p>
|
||||
<b>Olimex LPC1766-STK</b>.
|
||||
Support for that Olimex-LPC1766-STK board was added to NuttX 5.13.
|
||||
The NuttX-5.14 release extended that support with an <i>Ethernet driver</i>.
|
||||
The NuttX-5.15 release further extended the support with a functional <i>USB device driver</i> and <i>SPI-based micro-SD</i>.
|
||||
And the NuttX-5.16 release added a functional <i>USB host driver</i>.
|
||||
<ul>
|
||||
<li>
|
||||
Support for that Olimex-LPC1766-STK board was added to NuttX 5.13.
|
||||
</li>
|
||||
<li>
|
||||
The NuttX-5.14 release extended that support with an <i>Ethernet driver</i>.
|
||||
</li>
|
||||
<li>
|
||||
The NuttX-5.15 release further extended the support with a functional <i>USB device driver</i> and <i>SPI-based micro-SD</i>.
|
||||
</li>
|
||||
<li>
|
||||
The NuttX-5.16 release added a functional <i>USB host controller driver</i> and <i>USB host mass storage class driver</i>.
|
||||
</li>
|
||||
<li>
|
||||
The NuttX-5.17 released added support for low-speed USB devicers, interrupt endpoints, and a <i>USB host HID keyboard class driver</i>.
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
Verified configurations are now available for the NuttX OS test,
|
||||
for the NuttShell with networking and microSD support(NSH, see the <a href="ttp://www.nuttx.org/NuttShell.html">NSH User Guide</a>),
|
||||
for the NuttX network test, for the <a href="http://acme.com/software/thttpd">THTTPD</a> webserver,
|
||||
and for USB serial and USB storage examples.
|
||||
for USB serial deive and USB storage devices examples, and for the USB host HID keyboard driver.
|
||||
Support for the USB host mass storage device can optionally be configured for the NSH example.
|
||||
A driver for the <i>Nokia 6100 LCD</i> and an NX graphics configuration for the Olimex LPC1766-STK have been added.
|
||||
However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.15 release.
|
||||
However, neither the LCD driver nor the NX configuration have been verified as of the the NuttX-5.17 release.
|
||||
</p>
|
||||
<p>
|
||||
<b>Development Environments:</b>
|
||||
@ -2058,18 +1966,25 @@ Other memory:
|
||||
</table>
|
||||
|
||||
<ul><pre>
|
||||
nuttx-5.16 2011-01-10 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
nuttx-5.17 2011-01-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
* include/nuttx/usb -- Created new directory. Moved all usb-related header
|
||||
files to this new directory. Created a skeleton for a new USB host header
|
||||
file
|
||||
* drivers/usbhost -- Add USB host "registry" where connect devices can be
|
||||
matched with the correct USB class driver.
|
||||
* arc/arc/src/lpc17xx/lpc17_usbhost.c -- Add a simple USB host driver for
|
||||
the NXP lpc17xx.
|
||||
* drivers/usbhost -- Add generic USB device enumeration logic.
|
||||
* drivers/usbhost -- Add a USB host class driver for the (Bulk-Only) USB
|
||||
Mass Storage Class.
|
||||
* include/nuttx/usb -- rename usb_storage.h to storage.h.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
|
||||
* drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers
|
||||
* include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- New
|
||||
files for HID keyboard support.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple
|
||||
concurrent transfers on different endpoints (still only one TD per
|
||||
endpoint). All methods are protected from re-entrancy; lots of re-
|
||||
structuring in preparation for interrupt endpoint support.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for periodic
|
||||
interrupt transfers.
|
||||
* examples/hidkbd - Added a simple test for the USB host HID keyboard
|
||||
class driver.
|
||||
* configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the
|
||||
USB host HID keyboard class driver test for the LPC17xx.
|
||||
* Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and
|
||||
fixed several errors in the code identified by the tool.
|
||||
|
||||
pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
@ -2099,25 +2014,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
|
||||
</table>
|
||||
|
||||
<ul><pre>
|
||||
nuttx-5.17 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
* include/nuttx/usb -- rename usb_storage.h to storage.h.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for low-speed devices.
|
||||
* drivers/usbhost/usbhost_skeleton.c -- Template for new class drivers
|
||||
* include/nuttx/usb/hid.h and drivers/usbhost/usbhost_hidkbd.c -- New
|
||||
files for HID keyboard support.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Will now handle multiple
|
||||
concurrent transfers on different endpoints (still only one TD per
|
||||
endpoint). All methods are protected from re-entrancy; lots of re-
|
||||
structuring in preparation for interrupt endpoint support.
|
||||
* arch/arm/src/lpc17xx/lpc17_usbhost.c -- Add support for periodic
|
||||
interrupt transfers.
|
||||
* examples/hidkbd - Added a simple test for the USB host HID keyboard
|
||||
class driver.
|
||||
* configs/olimex-lpc1766stk/hidkbd - Added a configuration to build the
|
||||
USB host HID keyboard class driver test for the LPC17xx.
|
||||
* Ran the tool CppCheck (http://sourceforge.net/apps/mediawiki/cppcheck) and
|
||||
fixed several errors in the code identified by the tool.
|
||||
nuttx-5.18 2011-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
|
||||
|
18
ReleaseNotes
18
ReleaseNotes
@ -1654,3 +1654,21 @@ the NuttX Porting Guide:
|
||||
block driver instance.
|
||||
Examples: See the call to register_blockdriver() in the function
|
||||
usbhost_initvolume() in the file drivers/usbhost/usbhost_storage.c.
|
||||
|
||||
nuttx-5.17
|
||||
^^^^^^^^^^
|
||||
|
||||
The 64th release of NuttX, Version 5.17, was made on January 19, 2010 and is
|
||||
available for download from the SourceForge website. This release follows
|
||||
close on the heels of the 5.16 release and extends the USB host capabilities
|
||||
first introduced in that version.
|
||||
|
||||
1. The LPC17xx USB host controller driver was extended to (1) add support
|
||||
for low-speed devices, (2) handle multiple concurrent transfers on
|
||||
different endpoints (still only one TD per endpoint), and (3) handle
|
||||
periodic interrupt endpoint types.
|
||||
2. Add a USB host HID keyboard class driver. Now you can connect a
|
||||
standard USB keyboard to NuttX and receive keyboard input for an
|
||||
application.
|
||||
|
||||
And other changes as detailed in the ChangeLog.
|
||||
|
Loading…
Reference in New Issue
Block a user