diff options
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/ChangeLog | 26 | ||||
-rw-r--r-- | nuttx/Documentation/NuttX.html | 1057 | ||||
-rw-r--r-- | nuttx/ReleaseNotes | 104 |
3 files changed, 673 insertions, 514 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 438d89a91..ef9e77132 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -3193,7 +3193,7 @@ speed/duplex. This does not work for certain PHYs. Still some unresolved issues (also from Kate). * tools/Config.mk, Makefile, configs/*/Make.defs: Add a new Makefile - fragement to de-quoate certain strings from the Kconfig logic that + fragment to de-quote certain strings from the Kconfig logic that need to be used at path segments (Richard Cochran). * arch/arm/src/stm32/stm32_usbotghost.c: The STM32 USB host driver only works with debug turned on. The problem appears to be that with debug @@ -3201,7 +3201,7 @@ reveals a variety of errors. This check in improves NAK robustness for control transfers but does not resolve all of the issues. * configs/stm3220g-eval/*/defconfig: Calibrated delay loop. It had - never been calibrated was was way off. + never been calibrated was way off. * sched/sem_holder.c: Add logic to handler some priority inheritance cases when sem_post() is called from an interrupt handler. The logic is clearly wrong, but it is not known if this is the @@ -3212,13 +3212,13 @@ CONFIG_LIBC_STRERROR_SHORT that can be used to output shortened strings by strerror(). * arch/arm/src/stm32/stm32_usbotghost.c: Finally... the USB OTG FS - appears to handle NAKing correctly is complete. + appears to handle NAKing correctly. * configs/stm32f4discovery/*: Added and verifed support for USB OTG FS host on the STM32F4Discovery board. * configs/*/defconfig: Remove configuration documentation from config files. It is redundant, error-prone, and difficult to maintain. Configuration documentation is available in configs/README.txt for - common configurations and in configs/*/README.txt for board and MCU_ + common configurations and in configs/*/README.txt for board and MCU- specific configurations. * configs/stm3240g-eval: Add USB host support. * sched/os_bring.c, configs/*/defconfig, tools/mkconfig.c, and others: Added @@ -3226,7 +3226,7 @@ the default entry from user_start to some other symbol. Contributed by Kate. NOTE: This change does introduce a minor backward incompatibility. For example, if your application uses NSH as its start-up program, then your - code will not fail because it will be unable to find "user_start". The fix + build will now fail because it will be unable to find "user_start". The fix for this link failure is to add the following to your configuration file: CONFIG_USER_ENTRYPOINT="nsh_main". * libs/stdio/lib_libfread.c and lib_*flush*.c: Correct a couple of @@ -3269,7 +3269,7 @@ CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex). * tools/configure.sh: Don't append the apps directory path setting if the correct setting is already in defined in the defconfig file. - * fs/fat/fs_utils.c: Improper constructed bool expression. This + * fs/fat/fs_utils.c: Improperly constructed bool expression. This would cause many unnecessary writes to FLASH (Thanks Ronen Vainish). * Kconfig: Verify configuration settings for the LPC43xx. This includes some corrections to configuration variable names and defconfig settings. @@ -3319,13 +3319,13 @@ in all places. * drivers/enc28j60.c, include/nuttx/net/enc28j60.h, and olimex-strp711/src/up_enc28j60.c: No longer passes IRQ number - as a parameters. Instead now passes a call table to manage + as a parameter. Instead now passes a call table to manage ENC28J60 GPIO interrupts. That is because GPIO interrupts are handled in different ways by different MCUs and some do not support IRQ numbers for GPIO interrupts. * mm/mm_gran* and include/nuttx/gran.h: Add a simple granule- based allocator. The intent of this allocator is to support - simple allocation of DMA I/O buffers. The initiali check-in + simple allocation of DMA I/O buffers. The initial check-in is code complete but untested (not event built into the mm/Makefile yet. * confgs/fire-stm32v2: The board port is basically functional. @@ -3352,7 +3352,7 @@ * arch/arm/include/armv7-m/irq.h: Fix a critical bug in irqsave(). It looks like sometimes the compile will re-order some instructions inapproapriately. This end result is that interrupts will get - stuff off. + stuck off. * drivers/mtd/w25.c: Beginning of a driver for the Windbond SPI FLASH family (W25x16, W25x32, and W25x64). The initial check-in is basically just the SST25 driver with some name changes. @@ -3372,7 +3372,7 @@ I2C reset logic to recover from locked devices on the bus. * configs/*/*/Make.defs, tools/Config.mk, Makefile: Refactor all common make definitions from the various Make.defs files into - the common tools/Make.mk. Add support for a verbosity options: + the common tools/Config.mk. Add support for a verbosity options: Specify V=1 on the make command line in order to see the exact commands used in the build (Contributed by Richard Cochran). * drivers/net/enc28j60.c: The ENC28J60 Ethernet driver is @@ -3400,17 +3400,17 @@ * configs/shenzhou/src/up_lcd.c: Oops. Shenzhou LCD does not have an SSD1289 controller. Its an ILI93xx. Ported the STM3240G-EVAL ILI93xx driver to work on the Shenzhou board. - * configs/shenzhou/nxwm: Added an NxWM configuratino for the + * configs/shenzhou/nxwm: Added an NxWM configuration for the Shenzhou board. This is untested on initial check-in. It will be used to verify the Shenzhou LCD driver (and eventually the touchscreen driver). * configs/shenzhou/src/up_touchscreen.c: Add ADS7843E touchscreen support for the Shenzhou board. The initial check-in is untested - and basically a clone of the the touchscreen support fro the SAM-3U. + and basically a clone of the the touchscreen support for the SAM-3U. * tools/cfgparser.c: There are some NxWidget configuration settings that must be de-quoted. * arch/arm/src/stm32/Kconfig: There is no SPI4. Some platforms - SPI3 and some do not (still not clear). + support SPI3 and some do not (still not clear). * nuttx/configs/shenzhou: Various fixes to build new NxWM configuration. * configs/shenzhou: Oops. The Shenzhou LCD is and SSD1289, diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 84e0024ef..0370a708d 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@ <tr align="center" bgcolor="#e4e4e4"> <td> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> - <p>Last Updated: August 25, 2012</p> + <p>Last Updated: September 29, 2012</p> </td> </tr> </table> @@ -480,6 +480,7 @@ <p> <li>Supports character and block drivers as well as specialized driver interfaces.</li> </p> + </td> </tr> <tr> <td><br></td> @@ -489,6 +490,7 @@ Network, USB (host), USB (device), serial, CAN, ADC, DAC, PWM, Quadrature Encoder, and watchdog timer driver architectures. </li> </p> + </td> </tr> <tr> <td><br></td> @@ -498,6 +500,7 @@ RAMDISK, pipes, FIFO, <code>/dev/null</code>, <code>/dev/zero</code>, and loop drivers. </li> </p> + </td> </tr> <tr> <td><br></td> @@ -505,6 +508,7 @@ <p> <li>Generic driver for SPI-based or SDIO-based MMC/SD/SDH cards.</li> </p> + </td> </tr> <tr> <td><br></td> @@ -512,6 +516,7 @@ <p> <li><a href="NuttXPortingGuide.html#pwrmgmt">Power management</a> sub-system.</li> </p> + </td> </tr> <tr> <td><br></td> @@ -519,6 +524,7 @@ <p> <li>ModBus support provided by built-in <a href="http://freemodbus.berlios.de/">FreeModBus</a> version 1.5.0.</li> </p> + </td> </tr> <tr> @@ -533,6 +539,7 @@ <p> <li>Fully integrated into the OS.</li> </p> + </td> </tr> <tr> @@ -547,6 +554,7 @@ <p> <li>TCP/IP, UDP, ICMP, IGMPv2 (client) stacks.</li> </p> + </td> </tr> <tr> <td><br></td> @@ -554,6 +562,7 @@ <p> <li>SLIP</li> </p> + </td> </tr> <tr> <td><br></td> @@ -561,6 +570,7 @@ <p> <li>Small footprint (based on uIP).</li> </p> + </td> </tr> <tr> <td><br></td> @@ -568,6 +578,7 @@ <p> <li>BSD compatible socket layer.</li> </p> + </td> </tr> <tr> <td><br></td> @@ -575,6 +586,7 @@ <p> <li>Networking utilities (DHCP server and client, SMTP client, TELNET client, FTP server and client, TFTP client, HTTP server and client). Inheritable TELNET sessions (as "controlling terminal")</li> </p> + </td> </tr> <tr> <td><br></td> @@ -584,6 +596,7 @@ NFS Client. Client side support for a Network File System (NFS, version 3, UDP). </li> </p> + </td> </tr> <tr> <td><br></td> @@ -594,6 +607,27 @@ integrated with <a href="NuttXNxFlat.html">NXFLAT</a> to provide true, embedded CGI. </li> </p> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li> + UDP Network Discover (Contributed by Richard Cochran). + </li> + </p> + </td> +</tr> +<tr> + <td><br></td> + <td> + <p> + <li> + XML RPC Server (Contributed by Richard Cochran). + </li> + </p> + </td> </tr> <tr> @@ -974,264 +1008,205 @@ </tr> </table> -<h2>NuttX-6.21 Release Notes</h2> +<h2>NuttX-6.22 Release Notes</h2> <p> - The 88<sup>th</sup> release of NuttX, Version 6.21, was made on August 25, 2012, and is available for download from the + The 89<sup>th</sup> release of NuttX, Version 6.22, was made on September 29, 2012, and is available for download from the <a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website. - Note that the release consists of two tarballs: <code>nuttx-6.21.tar.gz</code> and <code>apps-6.21.tar.gz</code>. + Note that the release consists of two tarballs: <code>nuttx-6.22.tar.gz</code> and <code>apps-6.22.tar.gz</code>. Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information) The change log associated with the release is available <a href="#currentrelease">here</a>. Unreleased changes after this release are available in SVN. These unreleased changes are also listed <a href="#pendingchanges">here</a>. </p> <p> - This release corresponds with SVN release number: r5052 + This release corresponds with SVN release number: r5206, + Note that all SVN information has been stripped from the tarballs. + If you need the SVN configuration, you should check out directly from SVN. + Revision r5206 should equivalent to release 6.22 of NuttX 6.22: </p> +<ul><pre> +svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code +</pre></ul> +<p>Or</p> +<ul><pre> +svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code +</pre></ul> + <p> <b>Additional new features and extended functionality</b> </p> <ul> - <li><b>Core</b> - <ul> - <li> - Add support for multiple registered <code>atexit()</code> functions. - </li> - <li> - Syslog extended: - Now any character driver may be used for the debug logging device. - Mountpoint traversal logic. - </li> - </ul> - </li> - <li><b>Common Drivers</b> - <ul> - <li> - Added support for the TI PGA112-7 amplifier/multiplexor. - </li> - </ul> - </li> - <li><b>NXP LPC43XX</b> - <ul> - <li> - Added clock ramp-up logic to run at 204 MHz. - </li> - </ul> - </li> - <li><b>NXP LPC43XX Drivers</b> - <ul> - <li> - SPIFI block driver - </li> - <li> - RS-485 support - </li> - <li> - Minimal termios support - </li> - <li> - Framework for USB0 device controller driver. - </li> - </ul> - </li> - <li><b>NXP LPC17XX Drivers</b> - <ul> - <li> - Minimal termios support - </li> - </ul> + <li> + <p> + <b>RTOS</b>: + Application entry point is no longer user_start, but can be configured using <code>CONFIG_USER_ENTRYPOINT</code>. + NuttX now supports two work queues: A lower priority work queue (for extended processing) and a higher priority work queue (for quick, high priority operations). + </p> </li> - <li><b>STM32</b> - <ul> - <li> - Support for STM32 F1 "Value Line" (contributed by Mike Smith). - </li> - <li> - Add support for STM32 F107 "Connectivity Line" (contributed by Max Holtzberg). - </li> - <li> - Clock restart logic needed for recovery from low power modes. - </li> - </ul> + <li> + <p> + <b>Memory Management</b>: + Added a new granule-based allocated that can be used to manage, aligned and quantized DMA memory. + </p> </li> - <li><b>STM32 Drivers</b> - <ul> - <li> - RTC alarm support. Usable for wakeup from sleep mode. - </li> - <li> - Minimal serial termios support. - </li> - <li> - USB OTG FS host driver (alpha). - </li> - </ul> + <li> + <p> + <b>File System</b>: + Add hooks to allocate I/O memory with and external allocated (need if required by DMA). + </p> </li> - <li><b>STM32 Boards</b> - <ul> - <li> - Add power management hooks for the STM32F4Discovery - </li> - <li> - Add support for the Olimex STM32-P107 (contributed by Max Holtzberg) - </li> - </ul> + <li> + <p> + <b>Networking</b>: + ENC28J60 driver is (finally) verified. + </p> </li> - <li><b>PIC32</b> - <ul> - <li> - Add support for the Pinguino MIPS toolchain - </li> - </ul> + <li> + <p> + <b>Drivers</b>: + Add hooks USB device drivers to allocate I/O memory with and external allocated (need if required by DMA). + Driver for the Windbond SPI FLASH family (W25x16, W25x32, W25x64, and others). + ADS7843E driver extended for TSC2046 and XPT2046 and verified. + </p> </li> - <li><b>PIC32 Drivers</b> - <ul> - <li> - GPIO driver now supports F1 analog regiaters (ANSEL) - </li> - </ul> + <li> + <p> + <b>ARMv7-M</b>: + Added logic to reset the MCU using the NVIC. + </p> </li> - <li><b>PIC32 Boards</b> - <ul> - <li> - Add support for the PGA117 on the Mirtoo module - </li> - </ul> + <li> + <p> + <b>STM32</b>: + Add support for STM32F103VET6. + </p> </li> - <li><b>Calypso</b> - <ul> - <li> - Add support for the SSD1783 LCD on the Compal E99 - </li> - </ul> + <li> + <p> + <b>STM32 Drivers</b>: + Add logic to re-initialize UARTs a second time to enable DMA (Mike Smith). + I2C driver error recovery (Mike Smith). + </p> </li> - - <li><b>Library</b> - <ul> - <li> - <code>cfsetispeed()</code>, <code>cfsetospeed()</code>, <code>tcflush()</code>, <code>memchr()</code>, and <code>memccpy()</code>. - </li> - </ul> + <li> + <p> + <b>STM32 boards</b>: + Support for USB host added add to several configurations (or at least explained in README files). + Support for the Shenzhou STM32F107 board (see www.armjishu.com). + Support for M3 Wildfire STM32F103 board (v2 and v3). + </p> </li> - <li><b>Applications</b> - <ul> - <li> - Port of freemodbus-v1.5.0. - </li> - <li> - Add support for testing devices with multiple ADC, PWM, and QE devices. - </li> - <li> - NSH <code>mount</code> command (with no arguments) will now show mounted volumes. - </li> - <li> - Added new NSH <code>df</code> command to show file system usage. - </li> - <li> - Extended NSH 'help' support. - </li> - <li> - NSH now catches the return value from spawned applications (provided by Mike Smith). - </li> - </ul> + <li> + <p> + <b>Build System:</b>: + Kconfig string de-quoting logic. + Remove comments from <code>defconfig</code> files (Kate). + Add tool to create NuttX-style symbol tables. + Numerous changes to configuration logic as needed for the new <code>mconf</code>-based configuration (much of this from Richard Cochran). + Refactor common <code>Make.defs</code> logic into <code>tools/Config.mk</code> (Richard Cochran). + </p> </li> - <li><b>Build System</b> - <ul> - <li> - <code>mkconfig</code> will not define <code>CONFIG_DRAM_END</code>. - </li> - <li> - A lot of progress has been made on the automated NuttX configuration logic (Thanks go to Richard Cochran). - </li> - </ul> + <li> + <p> + <b>Library</b>: + Configurable terse output from <code>strerror()</code>. + Added <code>perror()</code> (Kate). + Add <code>%n</code> format to <code>sscanf()</code> (Kate). + </p> </li> - <li><b>Documentation</b> - <ul> - <li> - Document ways to customize the behavior of NSH - </li> - </ul> + <li> + <p> + <b>Applications</b>: + Numerous changes and extensions to the old uIP web server (from Kate and Max Holtzberg, see the ChangeLog for specific extensions). + UDP network discovery utility (Max Holtzberg). + Embeddable Lightweight XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg). + </p> </li> </ul> - -<p><b>Bugfixes</b> (see the change log for details):</p> +<p> + <b>Bugfixes</b> (see the change log for details) + Some of these are very important (marked <b><i>critical</i></b>): +</p> <ul> - <li><b>Serial drivers (all)</b> - <ul> - <li> - Fix <code>ioctl()</code> return value. - </li> - <li> - Common "upper half" serial driver will now return with <code>EINTR</code> if a serial wait is interrupted by a signal. - </li> - </ul> + <li> + <p> + <b>RTOS</b>: + Fixes to priority inheritance logic (<b><i>critical</i></b>). + <code>waitpid()</code> critical section. + Assertion in <code>work_cancel()</code> (Mike Smith). + <code>mmap()</code> (Kate). + </p> </li> - <li><b>FAT</b> - <ul> - <li> - Fix statfs() file name length - </li> - </ul> + <li> + <p> + <b>FAT File System</b>: + Improper Boolean expression caused un-necessary writes and performance issues (<b><i>critical</i></b>, Ronen Vainish). + </p> </li> - <li><b>NXP LPC43xx</b> - <ul> - <li> - Clock configuration - </li> - </ul> + <li> + <p> + <b>Networking</b>: + Remove an un-necessary delay from <code>recvfrom()</code>. + This greatly improves network performance (<b><i>critical</i></b>, Max Holtzberg). + </p> </li> - <li><b>STM32</b> - <ul> - <li> - Pinmap fixes - </li> - <li> - SPI driver re-initialization - </li> - </ul> + <li> + <p> + <b>Graphics</b>: + NX parameter checking errors. + </p> </li> - <li><b>STM32 Boards</b> - <ul> - <li> - Correct and lower SDIO frequency for F2 and f4 boards - </li> - </ul> + <li> + <p> + <b>Drivers</b>: + Fix double release of memory in SDIO-based, MMC/SD driver (Ronen Vainish). + </p> </li> - <li><b>AVR</b> - <ul> - <li> - C++ build issues - </li> - </ul> + <li> + <p> + <b>LPC17xx</b>: + Ethernet driver fixes needed for certain PHYs (Kate). + </p> </li> - <li><b>Power Management (PM)</b> - <ul> - <li> - Fix a place where interrupts were not be re-enabled - </li> - </ul> + <li> + <p> + <b>AVR</b>: + Fix build error (Richard Cochran). + </p> </li> - <li><b>Applications</b> - <ul> - <li> - Fix NSH application start-up race condition - </li> - </ul> + <li> + <p> + <b>STM32</b>: + USB OTG FS host driver NAKing an retries. + Power management compilation errors (Diego Sanchez). + Missing SPI3 remap logic. + </p> </li> - <li><b>Library</b> - <ul> - <li> - Fieldwidth and justification for <code>%s</code> format. - </li> - <li> - Fixed several issues with presenting floating point numbers. - </li> - <li> - NULL definition for C++ - </li> - </ul> + <li> + <p> + <b>STM32 Drivers</b>: + Fix for Ethernet errata for STM32F107 (<b><i>critical</i></b>). + Ethernet buffer alignment check. + Add "kludge" to Ethernet driver to handle DM9161 PHY which (at least on the Shenzhou board), sometimes does not come up correctly. + </p> + </li> + <li> + <p> + <b>Applications</b>: + THTTPD (Kate). + NSH <code>ping</code> when IP address is on a different network (Darcy Gong). + </p> + </li> + <li> + <p> + <b>Library</b>: + <code>fread()</code>, <code>fflush()</code>, <code>fdopen()</code>: Fix error handling logic (Ronen Vainish). + Fix some field-width handling issues in <code>sscanf()</code> + </p> </li> </ul> <p> + As well as other, less critical bugs. See the <a href="#currentrelease">ChangeLog</a> for additional, detailed changes. </p> @@ -1450,8 +1425,8 @@ but only partially tested. Additional features are needed: USB driver, MMC integration, to name two (the slot on the board appears to accept on MMC card dimensions; I have only SD cards). - An SPI-based ENC29J60 Ethernet driver for add-on hardware is under development and - should be available in the NuttX 5.5 release. + An SPI-based ENC28J60 Ethernet driver for add-on hardware is available and + but has not been fully verified on the Olimex board (due to issues powering the ENC28J60 add-on board). </p> <p> <b>Development Environments:</b> @@ -3232,284 +3207,364 @@ Other memory: </table> <ul><pre> -nuttx-6.21 2012-08-25 Gregory Nutt <gnutt@nuttx.org> - - * configs/lpc4330-xplorer/up_nsh.c: Add support for a basic SPIFI block - driver for use by NSH. Does not work! Crashes on first SPIFI write. - * configs/lpc4330-xplorer/*/defconfig: Calibrate delay loops (this is - based on the current "slow" 72MHz M4 clock and will need to be - re-calibrated when this is increased). - * configs/stm3220g-eval/include/board.h and configs/stm3240g-eval/include/board.h: - The SDIOCLK frequency in the F2 and F4 derives for PLL48CLK and not HCLK - so that the SDIOCLK input frequency should always be 48MHz. - * sched/os_internal.h, sched_setupidlefiles.c, sched_setuptaskfiles.c, and - sched_setupidlefiles.c: Detangle some conditional compilation. Allow for - a perverse configuration that has socket descriptors and streams but no file - descriptors (sure, why not?). - * sched/: Stylistic clean-up of all files. Some of these files are pretty old - and do not follow current NuttX coding standards in detail. - * fs/: More stylistic file clean-up. - * mm/: More stylistic file clean-up. - * drivers/ and drivers/serial/: More stylistic file clean-up. - * arch/arm/src/lpc43xx/lpc43_clockconfig.c: Fix PLL1 bit manipulation logic. - Critical bugfix! This would often cause the LPC43xx to fail to boot. - * arch/arm/src/lpc43xx/lpc43_rgu.c: The soft reset logic called from the - beginning of __start seems cause problems. A magic delay seems to improve - the logic some. But I suspect that real fix is to get rid of all of the - soft reset logic. This would also be a critical bugfix if I believed - that it really fixed all of the issues. - * arch/arm/src/lpc43xx/chip/lpc43_cgu.h: Fix a bit mask in the PLL1 - control register. Critical bugfix. - * arch/arm/src/lpc43xx/lpc43_clockconfig.c and configs/lpc4330-xplorer/include/board.h: - Implement PLL1 ramp-up logic; Now the LPC43xx is running at 204MHz. - * configs/lpc4330-xplorer/*/defconfig: Re-calibrated delay loops using - the 204MHz clock. The LPC43xx ripping rips! This calibration was performed - with symbols enabled and all optimization disabled. It will need to be - better recalibrated again down the road. - * arch/arm/src/stm32/stm32_exti.c: Renamed to rch/arm/src/stm32/stm32_exti_gpio.c - to make a little room in the file name space. - * arch/arm/src/stm32/stm32_exti_alarm.c: Add initial logic to attached the - RTC alarm EXTI interrupt. This is work be performed mostly by Diego Sanchez. - * include/: More stylistic file clean-up. - * arch/arm/src/lpc43xx/lpc43_spifi.c, lpc43_spifi.h, and chip/lpc43_spifi.h: Add - logic to configure and initialize the SPIFI device (does not yet work). - * configs/lpc4330-xplorer/include/board.h: Reduce SPI SCLK value. - * arch/arm/src/lpc43xx/lpc43_spifi.c, lpc43_spifi.h, and chip/lpc43_spifi.h: - Logic completely redesigned. It now creates an MTD driver to access SPIFI... - but the driver still does not work. - * arch/arm/src/stm32 and arch/arm/include/stm32: Make name of RTC ALARM interrupt - common on STM32 F1,2,4 - * arch/arm/src/stm32 and arch/arm/include/stm32: Add support for the - STM32F100x "Value Line" devices. This includes changes to stm32F10xx_rcc.c that - add the ability to run the chip off the internal oscillator. There is no open - board configuration for this part yet (the STM32VLDiscovery would be a candidate). - Contributed by Mike Smith. - * arch/arm/src/stm32: Fixed typos in conditional compilation in the CAN and DMA - and some pin configuration. This would have caused problems for STM32 F107xx. - Typos noted by Mike Smith. - * arch/arm/src/lpc43xx/lpc43_serial.c: Add support for certain RS-485 features - * lib/termios/lib_cfsetispeed.c, lib_cfsetospeed.c, lib_tcflush.c: Add - simple implementations of cfsetispeed(), cfsetospeed(), and tcflush(). - * include/sys/str_tty.h, lib/lib_setspeed.c, lib_getspeed.c, and lib_resetspeed.c: - Add APIs to support setting non-standard BAUD values not supported by POSIX - termios. These are non-standard interfaces but have a precedence: There are - similar interfaces in AIX. - * include/sys/str_tty.h, lib/lib_setspeed.c, lib_getspeed.c, and lib_resetspeed.c: - Sigh... removed. We don't need any more almost standard interfaces! (SVN - revision 4968 if you want the short-lived code). - * include/termios.h and lib/termios/*: Open the existing, standard termios - interfaces to permit some non-standard baud settings. The new termios definitions - still supports the POSIX standard except that it does not strictly enforce - baud rate settings, permitting some non-portable, but useful baud rate settings - (this is what the short-lived AIX-like interfaces would have accomplished as well). - * include/termios.h and lib/termios/*: Redesigned yet again (this is getting - painful. NuttX now supports the BOTHER baud setting just as Linux does. termios - Bxxx definitions are again encoded; cf[set|get][o|i]speed now deal with only the - encoded values. If the encoded baud is set to BOTHER, then the values in the (non- - standard) c_ispeed and c_ospeed baud values may be accessed directly. - * arch/arm/src/stm32/stm32_serial.c: Add minimal termios support for the STM32 - (BOTHER style baud settings only). Contributed by Mike Smith. - * configs/lpc4343-xplorer/src: Clean up SPIFI-library based build to that it - actually works. - * arch/arm/src/lpc43xx/lpc43_spifi.c: Add support for verification to writes. - Add debug option to dump buffers. Several bugfixes... almost works. - * include/termios.h, lib/termios/*, and arch/arm/src/stm32/stm32_serial.c: : - BOTHER is gone again. - * arch/arm/src/stm32/stm32_sdio.c and chip/stm32f20xx_pinmap.h: STM32 F2 SDIO - fixes from Gary Teravskis and Scott Rondestvedt. - * include/termios.h and lib/termios/*: Replace cfsetispeed and cfsetospeed with - cfsetspeed (with definitions for the input/outputs in termios.h). - * configs/stm32f4discovery/src and configs/stm32f4discovery/pm: Add a power - management configuration for the STM32F4Discovery and supporting logic. This - check-in also includes some fixes for the F4 RTC alarm logic. - * drivers/input/pga11x.c and include/nuttx/input/pga11x.h: Add support for the - TI PGA112/3/6/7 amplifier/multiplexer parts. - * configs/mirtoo/README.txt, nsh/defconfig, and nxffs/defconfig: Add support - for the PGA117 on the Mirtoo module. - * drivers/analog/pga11x.c and include/nuttx/analog/pga11x.h: These belong in - the analog subdirectories, not input. - * configs/compal_e99/src/ssd1783.c and /ssd1783.h: Drivers for the SSD1783 - LCD found in the Motorola C155 telephone. The driver is specific to the C155 - because it uses the uwire transport. Contributed by Denis Carilki and - Alan Carvalho de Assis. - * drivers/power/pm_changestate.c. Correct a case where interrupts were not - being re-enabled. Found by Diego Sanchez. - * configs/mirtoo/nxffs/defconfig: This Mirtoo NXFFS configuration now uses the - open Pinguino toolchain by default. This is necessary because the free C32 - toolchain does not support any optimization and the unoptimized NXFFS image - hits the PIC32MX2 FLASH size (128K). There is plenty of room to grow using - the Pinguino toolchain with -O2 optimization. - * configs/mirtoo/src/up_adc.c. This is just a stub for now, but this is - where Mirtoo ADC logic will eventually need to go. - * arch/mips/src/pic32mx/pic32mx-gpio.c: Now supports the PIC32MX1/2 ANSEL - IOPORT register. - * lib/string/lib_memchr.c: Add support for memchr() (contributed by Mike Smith) - * lib/string/lib_memccpy.c: Add support for memccpy() - * arch/arm/src/lpc17xx/lpc17_serial.c: Now supports ioctl commands to change - the baud using tcsetattr() (contributed by Chris Taglia). - * arch/*/src/*_serial.c: Fix ioctl method return values. These methods - should return a negated errno value; they should not set the errno - variable. - * sched/on_exit.c, sched/task_exithook.c, and include/nuttx/sched.c: Add - support for multiple registered on_exit() functions if CONFIG_SCHED_ONEXIT_MAX - is defined. - * drivers/syslog/ramlog.c: Move the RAM SYSLOG device into drivers/syslog - so that it will be in the same directory as some new SYSLOGing devices - in the works. - * include/nuttx/syslog.h and drivers/syslog/ramlog.c: The SYSLOG putc function - now has a common name that is independent of the device that provides the - SYSLOG. - * include/nuttx/syslog.h and drivers/syslog/syslog.c: This is a new, generic - SYSLOG device that can redirect debug output to any character device or file. - So you can log debug output to a file or you can put the console on /dev/ttyS0 - and the debug output on /dev/ttyS1. - * arch/arm/src/lpc43xxl/lpc43_spifi.c: Correct an addressing error in the LPC43 - SPIFI MTD driver - * drivers/syslog/syslog.c and fs/fs_syslog.c: Moved the generic syslog logic - from drivers/syslog to fs/ where is belongs. Especially after realizing that - the syslog logic is going to have to some internal FS operations in order - to realize a totally thread-independent SYSLOG interface. - * arch/arm/src/stm32/stm32*_rcc.c and .h: If CONFIG_PM is defined, add a - function called stm32_clockenable() that can be used by PM logic to re-start - the PLL after re-awakening from deep sleep modes. - * fs/fs_foreachinode.c and fs/fs_foreachmountpoint.c: Add logic to traverse - inodes and mountpoints in the NuttX pseudo-file system. - * fs/fat/fs_fat32.c: Max. filename length reported by statfs() was wrong - if FAT long file names were enabled. - * lib/stdio/lib_libvsprintf.c: Fieldwidth and justification were not - supported for the %s format. As a result, %s, %12s, and %-12s all - produced the same output. - * lib/stdio/lib_libdtoa.c: Fix several issues with presenting floating - point numbers (conversions are fine, but presentation was bad). This - is a critical bug fix if you use printf or sprintf to deal with floating - point numbers. - * lib/stdio/lib_libdtoa.c and lib_libvsprintf.c: Correct some floating - point options. - * arch/arm/lpc43xx/lpc32_usb0dev.c: Add framework for development of - an USB0, device-side driver for the LPC43XX. The initial check-in, - however, is simply for the LPC31xx driver with name changes. The - LPC31xx has the same USB IP, but will require some additional initialization - (and lots of testing) before it can be used with the LPC43xx. - * nuttx/Documentation/NuttShell.html: Added a section covering ways to - customize the behavior of NSH. - * arch/arm/src/stm32/chip/stm32f1*_pinmap.h: STM32 CAN TX/RX pins reversed; - inconsistent conditional compilation. Reported by Max Holtzberg. - * arch/arm/*/stm32: Add support for STM32 F107 "Connectivity Line" - Ethernet (contributed by Max Holtzberg). - * configs/olimex-stm32-p107: Add board support for the Olimiex STM32-P107 - board (contributed by Max Holtzberg). - * arch/arm/src/stm32/stm32f2xx_dma.c, stm32f4xx_dma.c, stm32_serial.c, and - stm32_spic.c: DMA priority was getting zeroed by STM32 F2/F4 DMA drivers - so that all DMAs ran at the lowest priority. - * configs/stm3240g-eval/include/board.h and configs/stm3220: Drop SD card - frequency from 24 to 16 MHz. Apparently 24 MHz is too fast for the board. - This (plus the change to the STM32 DMA (above) fixes SDIO DMA on the - STM3240G-EVAL (and probably STM3220G-EVAL -- untested). - * arch/arm/src/stm32/stm32f2xx_dma.c and stm32f4xx_dma.c: Backed out the - DMA priority change just above. The reduced SD card frequency was - necessary and sufficient to resolve the problem. - * drivers/serial/serial.c: open, read, write, and poll methods may now - abort return EINTR (or a short transfer size) if a signal is received - while waiting to receive or send serial data. This behavior is required - by POSIX. - * include/sys/types.h: Define NULL to be (0) if __cplusplus is defined. - (contributed by Mike Smith) - * include/ctype.h: Remove a stray semi-colon in a definitions (Thanks - Mike Smith). - * configs/.../Make.defs. Fix C++ include path set-up in Make.defs file - for all 8-bit AVR platforms (Thanks Richard Cochran). - * lib/stdio/lib_*stream.c: Revised to handle new error return values from - serial.c. - * arch/arm/src/stm32/stm32_spi.c: SPI driver can now service re- - initialization (Mike Smith). - * tools/mkconfig.c: If CONFIG_DRAM_END is not specified, this tool - will provide default definition of (CONFIG_DRAM_START + CONFIG_DRAM_SIZE) - * arch/arm/src/stm32/stm32_otgfshost.c: Renamed from stm32_usbhost.c. - This is nearly code complete and, with any luck, will be available - in NuttX-6.21. - * configs/*/defconfig: Update all defconfig files to remove syntax - that is incompatible with the mconf configuration tool. - * arch/arm/src/stm32/stm32_otgfshost.c: This driver now appears to be - functional (although more testing is necesary). - -apps-6.21 2012-08-25 Gregory Nutt <gnutt@nuttx.org> - - * apps/include/: Stylistic clean-up of all header files. - * apps/modbus and apps/include/modbus: A port of freemodbus-v1.5.0 - has been added to the NuttX apps/ source tree. - * apps/examples/modbus: A port of the freemodbus-v1.5.0 "demo" - program that will be used to verify the FreeModBus port - * apps/modbus: Don't use strerror(). It is just too big. - * apps/modbus: Add CONFIG_MB_TERMIOS. If the driver doesn't support - termios ioctls, then don't bother trying to configure the baud, parity - etc. - * apps/nshlib: If waitpid() is supported, then NSH now catches the - return value from spawned applications (provided by Mike Smith) - * apps/nshlib: Lock the scheduler while starting built-in applications - in order to eliminate race conditions (also from Mike Smith). - * apps/examples/adc, pwm, and qencoder: Add support for testing - devices with multiple ADC, PWM, and QE devices. - * apps/nshlib/nsh_mntcmds.c: Separated mount-related commands out of - nsh_fscmds.c. Extended to the mount command so that if no arguments - are provided, then the current mountpoints are enumerated. - * apps/nshlib/nsh_mntcmds.c: Add an NSH df command to list the - properties of mounted file systems. - * apps/nshlib/nsh_parse.c: Extend help command options. 'help' with - no arguments outputs a short list of commands. With -v lists all - command line details. A command name can be added to just get - help on one command. - * system/readline.c: If character input/output is interrupted by a - signal, then readline() will try the read/write again. - * apps/*/Make.defs: Numerous fixes needed to use the automated - configuration (from Richard Cochran). - -NxWidgets-1.2 2012-06-15 Gregory Nutt <gnutt@nuttx.org> - - * NXWidgets::CCallback: callback arguement is now type CCallback and not - CWidgetControl; Added a method to redirect keyboard contacts to either - the widgets in the window (via CWidgetControl) or to an NxConsole (via - nxcon_kbdin()). - * NXWidgets::INxWindow, CBgWindow, CNxTkWindow, CNxToolbar, CNxWindow: - Now pass the CCallback intances as the callback argument instead of - the CWidgetControl instance. New method redirectNxConsole() will - support redirection of any window keyboard input to the NxConsole - (via CCallback). - * NxWM:CNxConsole: Configures the NxConsole window to redirection keyboard - input to the NxConsole; redirects standard input to the NxConsole - device driver. - * NxWM:CKeyboard: Add a new class that implements a keyboard listener - thread. This thread reads from /dev/console and injects the keyboard - input into NX. NX will determine which window is at the top of the - heirarchy and re-direct the keyboard input to only that top window. - This solves an important problem with, for example, running multiple - copies of the NxConsole: On the copy of the NxConsole at the top of - the heirarchy should get the keyboard input. - * UnitTests/nxwm/main.cxx: Now starts the keyboard thread if - CONFIG_NXWM_KEYBOARD is defined. - * NxWM::CTaskbar: After drawing the task bar, need to raise the - application window otherwise the taskbar will be on the top and - keyboard input will not be received by the top application. - * NxWM::CTaskbar: Bugfix... previous window should not be minimized - when a new window is started. It should stay in a maximized state - so that it will re-appear with the window above it is closed or - minimized. - * NxWM::CHexCalculator: Add a hexadecimal/decimal calculator - example. - * NXWidgets::CNxTkWindow: Back out height adjustment in the getSize() - method. The code was correct as it was before. - * NXWidgets::CButtonArray and NXWidgets::CGraphicsPort: There is - a kludge in there to handle the case where we cannot read the - background data because the LCD does not support read operations. - In that case, we just use the default background color. However, - that doesn't work either for the case where the background color - changes when the widget is selected. Then the background color - in the font is wrong. Fixed in CButtonArrary, but the problem - probably exists in other places as well. - * NxWM: Increase default spacing of icons on the Start Window. - * NxWM::CHexCalculator: Fix some non-standard calculator behavior - after = is pressed. Use upper case hex. Increase font size. - * nxwm/Makefile: Fix error that creapt in during some other - recent check-ins. +nuttx-6.22 2012-09-29 Gregory Nutt <gnutt@nuttx.org> + + * include/semaphore.h, sched/sem_holders.c, and lib/semaphore/sem_init.c: + Fix some strange (and probably wrong) list handling when + CONFIG_PRIORITY_INHERITANCE and CONFIG_SEM_PREALLOCHOLDERS are defined. + This list handling was probably causing errors reported by Mike Smith + * sched/sched_waitpid.c: Fix a possible issue with logic logic that + should be brought into a critical section (suggested by Mike Smith) + * sched/sched_setuptaskfiles.c: Should be 'struct socket' not + 'struct sockets'. How did this compile before? (found by Kate) + * syscall/syscall.csv: Fix prototype for usleep() and prctl() (also + from Kate). + * arch/arm/src/lpc17xx/lpc17_ethernet.c: Conditionally elide setting PHY + speed/duplex. This does not work for certain PHYs. Still some unresolved + issues (also from Kate). + * tools/Config.mk, Makefile, configs/*/Make.defs: Add a new Makefile + fragment to de-quote certain strings from the Kconfig logic that + need to be used at path segments (Richard Cochran). + * arch/arm/src/stm32/stm32_usbotghost.c: The STM32 USB host driver only + works with debug turned on. The problem appears to be that with debug + OFF, there are more NAKs occuring in more places than before and this + reveals a variety of errors. This check in improves NAK robustness + for control transfers but does not resolve all of the issues. + * configs/stm3220g-eval/*/defconfig: Calibrated delay loop. It had + never been calibrated was way off. + * sched/sem_holder.c: Add logic to handler some priority inheritance + cases when sem_post() is called from an interrupt handler. The + logic is clearly wrong, but it is not known if this is the + cause of any known bugs. + * lib/stdio/lib_perror(): Add perror(). Contributed by Kate. + * lib/string/lib_strerror(): Add option CONFIG_LIBC_STRERROR that + is now required to enabled strerror(). Add an option + CONFIG_LIBC_STRERROR_SHORT that can be used to output shortened + strings by strerror(). + * arch/arm/src/stm32/stm32_usbotghost.c: Finally... the USB OTG FS + appears to handle NAKing correctly. + * configs/stm32f4discovery/*: Added and verifed support for USB OTG FS + host on the STM32F4Discovery board. + * configs/*/defconfig: Remove configuration documentation from config + files. It is redundant, error-prone, and difficult to maintain. + Configuration documentation is available in configs/README.txt for + common configurations and in configs/*/README.txt for board and MCU- + specific configurations. + * configs/stm3240g-eval: Add USB host support. + * sched/os_bring.c, configs/*/defconfig, tools/mkconfig.c, and others: Added + configuration variable CONFIG_USER_ENTRYPOINT that may be used to change + the default entry from user_start to some other symbol. Contributed by + Kate. NOTE: This change does introduce a minor backward incompatibility. + For example, if your application uses NSH as its start-up program, then your + build will now fail because it will be unable to find "user_start". The fix + for this link failure is to add the following to your configuration file: + CONFIG_USER_ENTRYPOINT="nsh_main". + * libs/stdio/lib_libfread.c and lib_*flush*.c: Correct a couple of + error cases where the lib semaphore was not be released on error + exits (thanks Ronen Vainish). Also, improved some error reporting: + the generic ERROR was being used instead of the specific errno + value; the errno variable was not always set correctly. + * tools/mkfsdata.pl: The uIP web server CGI image making perl script was + moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl + (Part of a larger change submitted by Max Holtzberg). + * configs/stm3240g-eval/script/ld.script: All of the identical ld.script + files for the STM3240G-EVAL were replaced by one version in this directory. + * configs/stm3240g-eval/webserver: Configuration submitted by Max Holtzberg + for testing the changes to the uIP web server (see apps/ChangeLog.txt). + * lib/stdio/lib_perror.c: Remove CONFIG_LIBC_PERROR_DEVNAME. What was I + thinking? Arbitrary streams cannot be shared by different tasks. + * tools/mksyscall.c, csvparser.c, and csvparser.h: Separate CSV parsing + logic from mksyscall.c into files where it can be shared. + * tools/mksymtab.c: Add a tool that can be used to convert a CSV file + into a NuttX-style symbol table. + * sched/work_cancel.c: Fix a bad assertion (reported by Mike Smith) + * configs/stm3210e-eval/src/up_idle.c: Correct some power management + compilation errors (reported by Diego Sanchez). + * include/nuttx/wqueue.h, sched/work*, and others: Added logic to support + a second, lower priority work queue (CONFIG_SCHED_LPWORK). + * arch/arm/src/stm32/stm32_dma.c, chip/stm32*_memorymap.h: FSMC SRAM is + only 16-bits wide and the SDIO DMA must be set up differently. + * arch/arm/src/stm32/stm32_dma.c: Back out the 16-bit DMA change. It + is incorrect. + * configs/: Make use of UART4/5 vs USART4/5 consistent in all places. + * Kconfig: Serial 2STOP setting must be integer 0/1, not a boolean. + * lib/misc/sendfile.c and include/sys/sendfile.h: Add a Linux style + sendfile() (non-standard!) + * Kconfig: Refactor serial settings (moved from chip to drivers/serial). + AVR "teensy" now builds with Kconfig (contributed by Richard Cochran). + * Kconfig: Add configuration settings for the LPC17xx + * Kconfig: Add configuration settings for the LM3S (from Richard Cochran). + * Kconfig: Verify configuration settings for the STM32. This includes + changes in the way that the external SRAM is configured: Define + CONFIG_HEAP2_SIZE (decimal) instead of CONFIG_HEAP2_END (hex). + * tools/configure.sh: Don't append the apps directory path setting + if the correct setting is already in defined in the defconfig file. + * fs/fat/fs_utils.c: Improperly constructed bool expression. This + would cause many unnecessary writes to FLASH (Thanks Ronen Vainish). + * Kconfig: Verify configuration settings for the LPC43xx. This includes + some corrections to configuration variable names and defconfig settings. + * Kconfig: Add and verify configuration settings for the LPC31xx. + * arch/arm/src/stm32/stm32_uart.h and stm32_serial.c: Add logic to + re-initialize the console UART as needed to enable DMA on the + console UART (contributed by Mike Smith). + * net/recvfrom.c, net/Kconfig, include/nuttx/net/uipopt.h: Remove delay + after receiving data. That has historical reasons to be there (it + was needed before read-ahead buffering was added), but kills performance. + (Noted by Max Holtzberg). + * configs/shenzhou: Add beginnings of a board configuration for the + Shenzhou STM32107 board (see www.armjishu.com). Very little is in + place as of this initial check-in. + * QEMU: Fixes from Richard Cochran to build QEMU with Kconfig files. + * arch/*/src/Makefile: Remove some old logic that was kicked off + when CONFIG_BOOT_RUNFROMFLASH=y. The old logic used to use + objcopy to move sections. Newer logic changes the load position + of sections in the the linker script. As far as I can tell, there + is nothing in the source tree now that depends on the old way of + doing things (if I am wrong, they will need a change to the linker + script). + * configs/fire-stm32v2: Configuration for the M3 Wildfire board. I + don't know very much about this board other than is has an + STM32F103VET6 chip, LCD, touchscreen, and ENC28J60 network. Very + little is in place on the initial check-in. + * configs/shenzhou: Coding for the Shenzhou board port is complete, + but tested has been deferred until I get the right tools. + * arch/arc/include/stm32/chip.h and arch/arm/src/stm32/chip.h: + Add support for the STM32F103VET6. + * fs/fs_fdopen.c: Bad check for failure to allocate memory. (Noted + by Ronen Vainish). + * drivers/mmcsd/mmcsd_sdio.c: If the MMC/SD driver were ever + uninitialized then there would be a double release of memory + (Noted by Ronen Vainish). + * fs/mmap/fs_rammap.c: Fix logic error and errno check (contributed + by Kate). + * arch/avr/src: Fixes from AVR32 build errors that have crept in + over the time; incorporated Kconfig for AVR3 (Richard Cochran). + * fs/fat and include/nuttx/fs/fat.h: The FAT file system allocates + memory for sector I/O buffers used to exchange data with the + configured block driver. In some contexts, the block driver may + require DMA-capable memory. If CONFIG_FAT_DMAMEMORY is defined, + then the FAT FS will use platform-provided DMA memory allocators + to allocate the block driver I/O buffers. + * CONFIG_NET_ENC28J60 renamed CONFIG_ENC28J60 to be consistent + in all places. + * drivers/enc28j60.c, include/nuttx/net/enc28j60.h, and + olimex-strp711/src/up_enc28j60.c: No longer passes IRQ number + as a parameter. Instead now passes a call table to manage + ENC28J60 GPIO interrupts. That is because GPIO interrupts are + handled in different ways by different MCUs and some do not + support IRQ numbers for GPIO interrupts. + * mm/mm_gran* and include/nuttx/gran.h: Add a simple granule- + based allocator. The intent of this allocator is to support + simple allocation of DMA I/O buffers. The initial check-in + is code complete but untested (not event built into the + mm/Makefile yet. + * confgs/fire-stm32v2: The board port is basically functional. + Not all features have been verified. The ENC28J60 network + is not yet functional. + * configs/stm3240g-eval/discover: A configuration for testing + the UDP discovery utility. Contributed by Max Holtzberg. + * mm/README.txt: Add a new README file. + * include/nuttx/usb/usb.h, arch/*/src/*usb.c, and arch/*/src/*otg*.c: + Add hooks to to use common, external DMA buffer allocation + implementation. + * net/recvfrom.c: Don't block in recvfrom if (1) read-ahead buffering + is enabled and (2) some data was obtained from read-ahead buffers. + Blocking is a bad idea in that case because there is no timeout! + (submitted by Max Holtzberg). + * configs/stm3240g-eval/xmlrpc: An example configuration for the + Embeddable Lightweight XML-RPC Server at apps/examples/xmlrpc. + See http://www.drdobbs.com/web-development/\ + an-embeddable-lightweight-xml-rpc-server/184405364 for more info. + Contributed by Max Holtzberg. + * configs/*/nxwm/defconfig and sched/task_exithook.c: Fixes for + bugs that crept in during recent changes. (Submitted by Max + Holtzberg). + * arch/arm/include/armv7-m/irq.h: Fix a critical bug in irqsave(). + It looks like sometimes the compile will re-order some instructions + inapproapriately. This end result is that interrupts will get + stuck off. + * drivers/mtd/w25.c: Beginning of a driver for the Windbond SPI + FLASH family (W25x16, W25x32, and W25x64). The initial check-in + is basically just the SST25 driver with some name changes. + * arch/arm/include/armv7-m/irq.h and arch/arm/src/stm32/stm32_spi.c: + Back out the last change in irq.h. It is (most likely) fine the + way it was. The really interrupt related problem was in stm32_spi.c: + When SPI3 is not enabled, then the irqrestore() falls in the + else clause. + * include/nuttx/compiler.h and other files: Moved always_inline + and noinline __attributes__ here. Also replaced all occurrences + of explicit __atributes__ in other files with definitions from + this header file. + * drivers/mtd/w25.c: The Windbond SPI FLASH W25 FLASH driver is + code complete (but still untested). + * arch/arm/src/stm32/stm32_i2c.c: I2C improvements from Mike Smith. + Unified configuration logic; dynamic timeout calculations; + I2C reset logic to recover from locked devices on the bus. + * configs/*/*/Make.defs, tools/Config.mk, Makefile: Refactor all + common make definitions from the various Make.defs files into + the common tools/Config.mk. Add support for a verbosity options: + Specify V=1 on the make command line in order to see the exact + commands used in the build (Contributed by Richard Cochran). + * drivers/net/enc28j60.c: The ENC28J60 Ethernet driver is + now functional. + * configs/fire-stm32v2: Add support or the fire-stm32v3 board as + well (untested because I do not have a v3 board). + * lib/stdio/lib_sscanf.c: Add %n psuedo-format (from Kate). + * lib/stdio/lib_sscanf.c: There is an issue of handling input + when (1) no fieldwidth is provided and (2) there is no space + seperating the input values. No solutions is in place for this + case now (either space or a fieldwidth must be provided). But + at least some of the bad logic that attempted to handle this + case has been removed (noted by Kate). + * arch/arm/src/stm32/stm32_eth.c: DMA buffer sizes must be an + even multiple of 4, 8, or 16 bytes. + * arch/arm/src/stm32/stm32_idle.c: Fixes STM32F107 DMA issues: + We cannot go into sleep mode while Ethernet is actively DMAing. + * configs/shenzhou/src/up_ssd1289.c: Add infrastructure to support + SSD1289 LCD. Initial checkin is just a clone of the + STM32F4Discovery's FSMC-based LCD interface. The Shenzhou + will need a completely need bit-banging interface; this + initial check-in is only for the framework. + * configs/shenzhou/src/up_ssd1289.c: Bit-banging driver is + code complete. + * configs/shenzhou/src/up_lcd.c: Oops. Shenzhou LCD does not + have an SSD1289 controller. Its an ILI93xx. Ported the + STM3240G-EVAL ILI93xx driver to work on the Shenzhou board. + * configs/shenzhou/nxwm: Added an NxWM configuration for the + Shenzhou board. This is untested on initial check-in. It will + be used to verify the Shenzhou LCD driver (and eventually the + touchscreen driver). + * configs/shenzhou/src/up_touchscreen.c: Add ADS7843E touchscreen + support for the Shenzhou board. The initial check-in is untested + and basically a clone of the the touchscreen support for the SAM-3U. + * tools/cfgparser.c: There are some NxWidget configuration + settings that must be de-quoted. + * arch/arm/src/stm32/Kconfig: There is no SPI4. Some platforms + support SPI3 and some do not (still not clear). + * nuttx/configs/shenzhou: Various fixes to build new NxWM + configuration. + * configs/shenzhou: Oops. The Shenzhou LCD is and SSD1289, + not an ILI93xx. + * configs/shenzhou/src/up_ssd1289.c: The LCD is basically functional + on the Shenzhou board. + * graphics/nxmu: Correct some bad parameter checking that caused + failures when DEBUG was enabled. + * arch/arm/src/armv7-m/nvic.h: Add bit definitions for the AIRCR + register. + * drivers/input/ads7843.c: Need semaphore protection in logic + that samples the position. + * drivers/lcd/ssd1289.c: On some platforms we are unable to + read the device ID -- reason unknown; workaround in place. + * drivers/input/ads7843.c: Add thresholding options and an + option to swap X and Y positions. Fix some logic errors in + the SPI locking/selecting logic. + * arch/arm/src/armv7-m/up_systemreset.c: Add logic to reset + the Cortex-Mx using the AIRCR register. Contributed by Darcy + Gong. + * arch/arm/src/stm32/up_eth.c: Add logic specifically for the + DM9161 PHY. If the DM9161 failed to initialize, then use the + up_sysemreset() logic to reset the MCU. Contributed by Darcy + Gong. + * arch/arm/src/stm32/stm32_gpio.c: Add missing logic to set bit + for SPI3 remap. This fixes the XPT2046 touchscreen driver using + drivers/input/ads7843.c + * configs/shenzhou/src/up_ssd1289.c: Fix naming error in + conditional compilation. + * configs/shenzhou/nxwm/defconfig: Disable reading from the LCD. + This does not work. The hardware and the driver support the + capability, but there is some bug that causes memory corruption. + The work around for now: Just disable reading from the LCD. + * drivers/lcd/ssd1289.c: Add some logic to reduce the amount of + output when CONFIG_DEBUG_LCD is enabled. + * configs/shenzhou/nxwm/defconfig: Bug found and fixed... The + original configuration had too much stuff turned on. Reducing + stack sizes, some features, and buffer sizes made the + configuration reliable (Reading from the LCD is still disabled). + * net/uip/uip_icmpping.c: Fix problem that prevented ping from + going outside of local network. Submitted by Darcy Gong + +apps-6.22 2012-09-29 Gregory Nutt <gnutt@nuttx.org> + + * apps/netutils/thttpd/thttpd_cgi.c: Missing NULL in argv[] + list (contributed by Kate). + * apps/nshlib/nsh_parse.c: CONFIG_NSH_DISABLE_WGET not CONFIG_NSH_DISABLE_GET + in one location (found by Kate). + * apps/examples/ostest/prioinherit.c: Limit the number of test + threads to no more than 3 of each priority. Bad things happen + when the existing logic tried to created several hundred test + treads! + * apps/nshlib/nsh.h: Both CONFIG_LIBC_STRERROR and CONFIG_NSH_STRERROR + must be defined to use strerror() with NSH. + * apps/examples/*/*_main.c, system/i2c/i2c_main.c, and others: Added + configuration variable CONFIG_USER_ENTRYPOINT that may be used to change + the default entry from user_start to some other symbol. Contributed by + Kate. + * apps/netutils/webserver/httpd/c: Fix a typo that as introduced in + version r4402: 'lese' instead of 'else' (Noted by Max Holtzberg). + * tools/mkfsdata.pl: The uIP web server CGI image making perl script was + moved from apps/netutils/webserver/makefsdata to nuttx/tools/mkfsdata.pl + (Part of a larger change submitted by Max Holtzberg). + * apps/netutils/webserver, apps/examples/uip, and apps/include/netutils/httpd.h: + The "canned" version of the uIP web servers content that was at + netutils/webserver/httpd_fsdata.c has been replaced with a dynamically + built configuration located at apps/examples/uip (Contributed by + Max Holtzberg). + * apps/netutils/webserver: Several inenhancements from Kate including the + ability to elide scripting and SERVER headers and the ability to map + files into memory before transferring them. + * apps/netutils/webserver: Add ability to map a URL to CGI function. + Contributed by Kate. + * apps/nshlib/nsh_mntcmds.c: The changes of 6.21 introduced holes in the + error handling: Now the number of arguments to mount can be 0 or 4. + Additional parameter checking is required to prevent mysterious errors + (submiteed by Kate). + * apps/netutils/webserver/httpd_mmap.c: Fix errors when the mmap() + length is zero (submitted by Kate). + * apps/netutils/webserver/httpd_sendfile.c: Add and option, + CONFIG_NETUTILS_HTTPD_SENDFILE to transfer files using the NuttX + sendfile() interface. + * apps/netutils/discover: A UDP network discovery utility contributed + by Max Holtzberg. + * apps/examples/discover: A test example for the UDP network discovery + utility (also contribed by Max Holtzberg). + * apps/examples/*/main.c: Too many files called main.c. Each renamed + to something unique so that they will not collide in the archive. + * apps/netutils/xmlrpc: The Embeddable Lightweight XML-RPC Server + discussed at http://www.drdobbs.com/web-development/\ + an-embeddable-lightweight-xml-rpc-server/184405364. Contributed by + Max Holtzberg. + * apps/netutils/uip_listenon.c: Logic in uip_server.c that creates + the listening socket was moved to this new file to support re-use. + Contributed by Kate. + * apps/netutils/webserver/httpd.c: The option CONFIG_NETUTILS_HTTPD_SINGLECONNECT + can now be used to limit the server to a single thread. Option + CONFIG_NETUTILS_HTTPD_TIMEOUT can be used to generate HTTP 408 errors. + Both from Kate. + * apps/netutils/webserver/httpd.c: Improvements to HTTP parser from + Kate. + * apps/netutils/webserver/httpd.c: Add support for Keep-alive connections + (from Kate). + * apps/NxWidget/Kconfig: This is a kludge. I created this NxWidgets + directory that ONLY contains Kconfig. NxWidgets does not live in + either the nuttx/ or the apps/ source trees. This kludge makes it + possible to configure NxWidgets/NxWM without too much trouble (with + the tradeoff being a kind ugly structure and some maintenance issues). + * apps/examples/Make.defs: Missing support for apps/examples/watchdog. + * apps/NxWidgets/Kconfig: Add option to turn on the memory monitor + feature of the NxWidgets/NxWM unit tests. + +NxWidgets-1.3 2012-09-29 Gregory Nutt <gnutt@nuttx.org> + + * UnitTests/*/main.cxx: Change entry point name to be consistent + with with entry point naming conventions introduced in NuttX + 6.22. + * Kconfig: Added a mconfig configuration file. Eventually, NxWidgets + needs to get hooked into the NuttX mconf configuration. Still not + exactly sure how to do that. + * libnxwidgets/Makefile and NxWidgets/nxwm/Makefile: Need updates + for consistency with recent changes to NuttX build system (>= 6.22) + * Kconfig: Add option to turn on the memory monitor feature of the + NxWidgets/NxWM unit tests. pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org> diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes index 4d7211669..80362f5dd 100644 --- a/nuttx/ReleaseNotes +++ b/nuttx/ReleaseNotes @@ -3063,3 +3063,107 @@ Bugfixes (see the change log for details) : for C++ As well as other, less critical bugs (see the ChangeLog for details) + +NuttX-6.22 +^^^^^^^^^^ + +The 89th release of NuttX, Version 6.22, was made on September 29, 2012, +and is available for download from the SourceForge website. Note +that release consists of two tarballs: nuttx-6.22.tar.gz and +apps-6.22.tar.gz. Both may be needed (see the top-level nuttx/README.txt +file for build information). + +This release corresponds with SVN release number: r5206 + +Note that all SVN information has been stripped from the tarballs. If you +need the SVN configuration, you should check out directly from SVN. Revision +r5206 should equivalent to release 6.22 of NuttX 6.22: + + svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code + +Or + + svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code + +Additional new features and extended functionality: + + * RTOS: Application entry point is no longer user_start, but can be + configured using CONFIG_USER_ENTRYPOINT. NuttX now supports two work + queues: A lower priority work queue (for extended processing) and a + higher priority work queue (for quick, high priority operations). + + * Memory Management: Added a new granule-based allocated that can be + used to manage, aligned and quantized DMA memory. + + * File System: Add hooks to allocate I/O memory with and external + allocated (need if required by DMA). + + * Networking: ENC28J60 driver is (finally) verified. + + * Drivers: Add hooks USB device drivers to allocate I/O memory with and + external allocated (need if required by DMA). Driver for the Windbond + SPI FLASH family (W25x16, W25x32, W25x64, and others). ADS7843E driver + extended for TSC2046 and XPT2046 and verified. + + * ARMv7-M: Added logic to reset the MCU using the NVIC. + + * STM32: Add support for STM32F103VET6. + + * STM32 Drivers: Add logic to re-initialize UARTs a second time to + enable DMA (Mike Smith). I2C driver error recovery (Mike Smith). + + * STM32 boards: Support for USB host added add to several configurations + (or at least explained in README files). Support for the Shenzhou + STM32F107 board (see www.armjishu.com). Support for M3 Wildfire + STM32F103 board (v2 and v3). + + * Build System: Kconfig string de-quoting logic. Remove comments from + defconfig files (Kate). Add tool to create NuttX-style symbol tables. + Numerous changes to configuration logic as needed for the new mconf-based + configuration (much of this from Richard Cochran). Refactor common + Make.defs logic into tools/Config.mk (Richard Cochran). + + * Library: Configurable terse output from strerror(). Added perror() (Kate). + Add %n format to sscanf() (Kate). + + * Applications: Numerous changes and extensions to the old uIP web server + (from Kate and Max Holtzberg, see the ChangeLog for specific extensions). + UDP network discovery utility (Max Holtzberg). Embeddable Lightweight + XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg). + +Bugfixes (see the change log for details). Some of these are very important +(marked *critical*): + + * RTOS: Fixes to priority inheritance logic (*critical*). waitpid() + critical section. Assertion in work_cancel() (Mike Smith). mmap() (Kate). + + * FAT File System: Improper Boolean expression caused un-necessary writes + and performance issues (*critical*, Ronen Vainish). + + * Networking: Remove an un-necessary delay from recvfrom(). This greatly + improves network performance (*critical*, Max Holtzberg). + + * Graphics: NX parameter checking errors. + + * Drivers: Fix double release of memory in SDIO-based, MMC/SD driver + (Ronen Vainish). + + * LPC17xx: Ethernet driver fixes needed for certain PHYs (Kate). + + * AVR: Fix build error (Richard Cochran). + + * STM32: USB OTG FS host driver NAKing an retries. Power management + compilation errors (Diego Sanchez). Missing SPI3 remap logic. + + * STM32 Drivers: Fix for Ethernet errata for STM32F107 (*critical*). + Ethernet buffer alignment check. Add "kludge" to Ethernet driver to + handle DM9161 PHY which (at least on the Shenzhou board), sometimes + does not come up correctly. + + * Applications: THTTPD (Kate). NSH ping when IP address is on a different + network (Darcy Gong). + + * Library: fread(), fflush(), fdopen(): Fix error handling logic (Ronen + Vainish). Fix some field-width handling issues in sscanf() + +As well as other, less critical bugs (see the ChangeLog for details) |