From ad1878e8fe6fa997672a83ffe8bbee9883649781 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 15 Mar 2013 18:07:34 +0000 Subject: Prep for 6.26 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5745 42af7a65-404d-4744-a932-0658087f49c3 --- NxWidgets/ChangeLog.txt | 4 +- NxWidgets/ReleaseNotes.txt | 72 +++ apps/ChangeLog.txt | 4 +- misc/buildroot/ChangeLog | 4 +- misc/buildroot/ReleaseNotes | 13 +- nuttx/ChangeLog | 10 +- nuttx/Documentation/NuttX.html | 1183 ++++++++++++++++------------------------ nuttx/ReleaseNotes | 240 ++++++++ nuttx/libc/stdio/lib_sscanf.c | 5 + 9 files changed, 817 insertions(+), 718 deletions(-) diff --git a/NxWidgets/ChangeLog.txt b/NxWidgets/ChangeLog.txt index 1d2abab4d..f5a5947b3 100644 --- a/NxWidgets/ChangeLog.txt +++ b/NxWidgets/ChangeLog.txt @@ -267,7 +267,7 @@ and panels below it. Pressing a button will select the corresponding panel. -1.6 2013-xx-xx Gregory Nutt +1.6 2013-03-15 Gregory Nutt * Type of argv[] has changed from const char ** to char * const * * NXWidgets::CNxWidget: Add an inline function to get the current style. @@ -327,3 +327,5 @@ - The work queue will add ~50 ms latency to input events. This is however configurable, and the delay is anyway short enough that it is unnoticeable. From Petteri Aimonen. + +1.7 2013-xx-xx Gregory Nutt diff --git a/NxWidgets/ReleaseNotes.txt b/NxWidgets/ReleaseNotes.txt index 3b3a8531d..d573311f0 100644 --- a/NxWidgets/ReleaseNotes.txt +++ b/NxWidgets/ReleaseNotes.txt @@ -187,3 +187,75 @@ Bugfixes: * CGraphicsPort::_drawText: Renamed from CGraphicsPort::drawText in order to eliminate some naming collisions when overloaded in some configurations (i.e., when both bool and nx_pixel_t are uint8_t). + +NxWidgets-1.6 +============= + +The 7th release of the NxWidgets package was made on March 15, 2013. This +release depends on NuttX-6.26 or above and should not be used with older +NuttX releases. This release corresponds to SVN revision r5745. + +Note: All of the changes between 1.5 and 1.6 were the result of the +efforts of Petteri Aimonen. + +Additional new features and extended functionality in Version 1.6: + +* NXWidgets::CNxWidget: Add an inline function to get the current style. +* NXWidgets::CCycleButton: Make CCycleButton change state in onPreRelease(). + This way the new value is already available when a listener gets the + action event. +* NxWidgets::CImage: Two enhancements: + 1) Allow changing the bitmap even after the control has been created. + 2) Allow giving 'null' to have the control draw no image at all. + +* NxWM::CTaskBar: Make a some methods of CTaskbar virtual to allow + customizations. +* NxWM::CTaskBar: Allow windows with null icon. This makes sense for e.g. + full screen windows. +* NxWM::CApplicationWindow: Add config options to override NxWM + stop/minimize icons. +* NwWM::CStartWindow, NxWM::CWindowMessenger: Get rid of the start window + thread. Instead, handle all events through the USRWORK work queue. + For me, this was necessary because I would open some files in button + handlers and close them in NxTimer handlers. If these belonged to + different tasks, the close operation would fail. Further benefits: + + Gets rid of one task and message queue. + + Reduces the amount of code required + + Decouples CStartWindow from everything else - now it is just a window + with application icons, not an integral part of the event logic. + + All events come from the same thread, which reduces the possibility of + multithreading errors in user code. + + The user code can also send events to USRWORK, so that everything gets + serialized nicely without having to use so many mutexes. + Drawbacks: + - Currently the work state structure is malloc()ed, causing one allocation + and free per each input event. Could add a memory pool for these later, but + the speed difference doesn't seem noticeable. + - The work queue will add ~50 ms latency to input events. This is however + configurable, and the delay is anyway short enough that it is unnoticeable. + +Bugfixes: + +* NxWidgets::CWidgetControl: Added another semaphore, boundssem, which + is set as soon as the screen bounds are known. This corrects two + problems: + 1) Due to the way nxgl_rectsize computes the size, it will never + be 0,0 like CWidgetControl expects. Therefore the size is considered + valid even though it has not been set yet. + 2) After the check is fixed to test for > 1, NxWM window creation will + hang. This is due to the fact that it uses the screen bounds for + determining window size. This was being blocked on geosem, which + is only posted after the size has been set. +* NxWidgets::CNxTimer: Previously repeated timers were re-enabled after + the timer action event. Consequently, if the action event handler tried + to stop the timer, the request would be ignored. Changes the order + so that the timer is re-enabled before the callback. There is still + no risk of re-entrancy, because everything executes on the USRWORK work + queue. +* NxWidgets::CLabel: Fix backward conditional compilation in the "flicker + free" logic. +* NxWidgets::CMultiLineTestBox: Fix text placement error. From Petteri + Aimonen. + +* NxWidgets/tools/bitmap_converter.py: Fix bitmap_converter.py so that + it works with indexed input images. diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt index a22d2184a..7d8333ca1 100644 --- a/apps/ChangeLog.txt +++ b/apps/ChangeLog.txt @@ -506,7 +506,7 @@ any returning special values when end-of-file or read errors occur (it would return an empty string which is not very useful). -6.26 2013-xx-xx Gregory Nutt +6.26 2013-03-15 Gregory Nutt * apps/builtin/exec_builtin.c: Now uses task_spawn() to start builtin applications. @@ -522,3 +522,5 @@ read is based on logic similar to getc. The value zero was being confused with a NUL. So if a NUL was received, the NSH session would terminate because it thought it was the end of file. + +6.27 2013-xx-xx Gregory Nutt diff --git a/misc/buildroot/ChangeLog b/misc/buildroot/ChangeLog index e6ad07646..b77808e93 100644 --- a/misc/buildroot/ChangeLog +++ b/misc/buildroot/ChangeLog @@ -127,9 +127,11 @@ buildroot-1.11 2011-11-05 past the end of allocated memory. Partial restoration of R_ARM_REL32 logic. There are lots of issues that I still do not understand here. -buildroot-1.12 2011-xx-xx +buildroot-1.12 2013-03-15 * Fix typo toolchain/gdb/Config.in that prevented GDB 7.4 from building (from Ken Bannister). * Add support for a Cortex-M0 toolchain based on GCC 4.6.3. +buildroot-1.13 2011-xx-xx + diff --git a/misc/buildroot/ReleaseNotes b/misc/buildroot/ReleaseNotes index 266354e63..6f3623bda 100644 --- a/misc/buildroot/ReleaseNotes +++ b/misc/buildroot/ReleaseNotes @@ -1,5 +1,5 @@ -ReleaseNotes v0.1.11 -==================== +ReleaseNotes v1.12 +================== Supported Toolchains -------------------- @@ -15,9 +15,12 @@ can be used to build the following NuttX-compatible toolchains: NXFLAT toolchain for use with the ARM7 and ARM9. - o arm-elf ARM Cortex-M3 (thumb2) toolchain needed for use with - the Luminary LM3Sxxx, NXP 17xxxx, Atmel SAM3u, and STMicro - STM32 ports provided with the NuttX releases. + o arm-eabi ARM Cortex-M0 toolchain needed for use with + the NUC120 ports provided with the NuttX releases. + + o arm-elf and arm-eabi ARM Cortex-M3 (thumb2) toolchain needed + for use with the Luminary LM3Sxxx, NXP 17xxx, Atmel SAM3u, and + STMicro STM32 ports provided with the NuttX releases. NXFLAT toolchain for use with the ARM Cortex-M3. diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 9cb94e79e..ae585ae33 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -4096,7 +4096,7 @@ STM32F4. Includes untested additions for the F1 implementation as well. From Petteri Aimonen. -6.26 2013-xx-xx Gregory Nutt +6.26 2013-03-15 Gregory Nutt * drivers/serial/serial.c: Correct some race conditions when checking for disconnection of a removable serial device. @@ -4175,7 +4175,7 @@ example "+-" would look weird. From Petteri Aimonen. * mm/mm_mallinfo.c: Take MM semaphore in mm_mallinfo. From Petteri Aimonen. - * configs/stm32f3discovery/nsh/defconfig: Disable SPI. It is nto + * configs/stm32f3discovery/nsh/defconfig: Disable SPI. It is not used. * drivers/mtd/sst39vf: Add a driver for the SST29VF NOR FLASH parts. * sched/os_start.c: Add an additional call-out to support board- @@ -4233,7 +4233,7 @@ * arch/arm/src/stm32f20xxx_dma.c and stm32f40xxx_dma.c: Fix a typo in assigned base register addresses for each DMA channel. From Yan T. - * Several build fixes from Mike Smithe were incorporated. These were + * Several build fixes from Mike Smith were incorporated. These were mostly compilation errors introduced into the system because of the large number of recent changes with broad scope (2013-03-04). * configs/zkit-arm-17969/src/up_can.c: Add CAN support to the @@ -4329,4 +4329,6 @@ heap in the flat build. But not in the kernel build: The base of the heap is elsewhere so the naming was wrong. (2013-03-13). * libc/stdlib/lib_itoa.c: Implementation of itoa() contributed by - Ryan Sundberg. (2013-03-14). \ No newline at end of file + Ryan Sundberg. (2013-03-14). + +6.27 2013-xx-xx Gregory Nutt diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 3d3782ab6..d7b797e83 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -8,7 +8,7 @@

NuttX RTOS

-

Last Updated: March 4, 2013

+

Last Updated: March 15, 2013

@@ -1064,30 +1064,29 @@ -

nuttx-6.25 Release Notes

+

NuttX-6.26 Release Notes

- The 92nd release of NuttX, Version 6.25, was made on February 1, 2013, and is available for download from the + The 93rd release of NuttX, Version 6.26, was made on March 15, 2013, and is available for download from the SourceForge website. - Note that the release consists of two tarballs: nuttx-6.25.tar.gz and apps-6.25.tar.gz. + Note that the release consists of two tarballs: nuttx-6.26.tar.gz and apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt file for build information) The change log associated with the release is available here. Unreleased changes after this release are available in SVN. These unreleased changes are also listed here.

- This release corresponds with SVN release number: r5595, + This release corresponds with SVN release number: r5745, 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 r5595 should equivalent to release 6.25 of NuttX: + Revision r5745 should equivalent to release 6.26 of NuttX:

    -svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
    +svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
     

Or (HTTP):

    -svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
    +svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
     
-

Additional new features and extended functionality

@@ -1098,407 +1097,308 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

  • - Removed support for CONFIG_BUILTIN_APP_START. - This is not really a useful feature and creates a violation of the OS layered architecture. + Add an additional call-out to support board-specific driver initialization during the boot-up phase (available with CONFIG_BOARD_INITIALIZE=y).
  • - Task Creation + Tasking

    • - Implement a simple vfork()). - In NuttX-6.25, this interface is available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 (PIC32MX) platforms. -
    • -
    • - exec() now sets the priority of the new task to the same priority as the parent task (instead of the arbirtrary value of 50). -
    • -
    • - New, partially complient implementations of execv() and execl(). - These are only partially compliant because they do not overlay any existing "process space" but rather create the new task and exit(). + New interface task_spawn() that is like posix_spawn(), but uses entry point addresses like ask_create().
    • - Add a complete implementation of posix_spawn(). - This standard interface is a better match for an MMU-less architecture than are vfork()) plus execv() or execl(). + Additional data restructuring as a continuation of the task group changes of NuttX 6.25. + These data structures were moved from the TCB structure into the task group: + pthread join data, atexit/on_exit callbacks, waitpiddata structures, message queues.
    • - Add a task start hook that will be called before the task main executes. - This can be used, for example, to schedule C++ static constructors to run automatically in the context of the new task. + TCBs for tasks and pthreads are now separate structures. + This saves a little memory since tasks do not have to carry the overhead for threads and vice versa.
  • - Task Parentage + Kernel Build

    • - Repartitioned tasking data structures. - All shared resources are now collected together in a "task group". - A "task group" includes the resource for the original task that are shared with all of the pthreads created by the task. + Extensive changes were made to support the kernel build mode. + In this mode, NuttX is built as a monolithic kernel. + NuttX is built as a separate kernel mode "blob" and the applications are built as a separate user mode "blob". + The kernel runs in kernel mode and the applications run in user mode (with the MPU restricting user + mode accesses). + Access to the kernel from the user blob is only via system calls (SVCalls).
    • - Added support for remember the parent "task group" when a new task is started. + Extensive changes were made to the syscall, SVCall, and trapping logic. + Many internal interfaces were renamed.
    • - Added optional support to record the membership of each thread in the "task group". + The memory manager was extended to support both kernel- and user-mode allocations. + Logic within the kernel needs to use the correct kernel- or user-space allocator, depending upon the user of the allocated memory.
    • - Implement support for retaining child task status in the "task group" after the child task exists. - This is behavior required by POSIX. - But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and CONFIG_SCHED_CHILD_STATUS. + The user-space blob now contains a header built in at the beginning of the block that provides the same information that was previously provided by a kludgy, auto-generated header file (user_map.h).
    • - Add internal logic to "reparent" a task. - This is useful, for example, where the child task is created through a trampoline task that redirects I/O. - Reparenting allows the caller of posix_spawn() to be reparented for the eventual child thread. + Basic support implemented for the ARMv7-M family with fragments also implemetned for the ARMv6-M and MIPS32 families.
    • - Added support for SIGCHLD. - Sent to all members of the parent "task group" when the finall member of the child task group exits. -
    • -
    • - If SIGCHLD and retention of child task exist status are enabled, then a more spec-compliant version of waitpid() is enabled. + Kernel build supported added for the LPC17xx Open1788 and for the Atmel SAM3U-EK board. + All testing is being performed on the Open1788 board.
    • +
    +
  • +
  • +

    + Signals +

    +
    • - New interfaces waitid() and wait() are also enabled when SIGCHLD is enabled. + Delivery of signals to threads within a task group is now compatible with the way that signals are delivered to threads within a process.
  • - File System + Drivers

    • - dup() and dup2() can new be used with opened files in a mounted file system. - This supports re-direction of output in NSH to files. + Add a driver for the SST29VF NOR FLASH parts.
    • - The binfs file system was moved from apps/builtin to fs/binfs. - The binfs file system was extended to support execution of "builtin applications" using exec(), execv(), execl(), or posix_spawn(). + USB device trace/debug feature extended to decode device-specific trace events to make the trace output more readable (from Petteri Aimonen).
    • - Added logic based on SIGCHLD to automatically unload and clean-up after running a task that was loaded into memory. + USB MSC device driver can not support names of differing sizes in the USB descriptor and the SCSI fields (from Petteri Aimonen). +
    • +
    • + Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on the same bus as other SPI devices. + Frequency is reset each time that the MMC/SD SPI has the bus locked. (from Petteri Aimonen).
  • - Binary Formats + ARMv6-M (Cortex-M0)

    • - Much of the logic for "builtin applications" was moved from apps/builtin to nuttx/binfmt/libbuiltin. - Includes some extensions contributed by Mike Smith. -
    • -
    • - A binary loader was added for builtin applications to support execution of "builtin applications" using exec(), execv(), execl(), or posix_spawn(). + Added support for the ARM Cortex-M0 family.
  • - Drivers + nuvoTon NUC120

    • - Added logic to marshal and serialized "out-of-band" keyboard commands (such as cursor controls and key release events) intermixed with normal ASCII keypress data. - The encoding is partially integrated in the HID keyboard driver and the decoding is fully integrated into the apps/examples hidkbd/ and keypadtest/ (the latter contributed by Denis Carlikli). -
    • -
    • - Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong. -
    • -
    • - Add support for removable serial devices (like USB serial). - This support is enabled by CONFIG_SERIAL_REMOVABLE. + Added support for the nuvoTon NUC120 MCU (Cortex-M0).
  • - ARMv7-M + nuvoTon NUC120 Boards

    • - Added an option to use the BASEPRI register to disable interrupts (instead of the PRIMASK register). - This eliminates some innocuous hardfaults that interfere with some debug tools. - You need to switch to the BASEPRI method only if you have such tool interference. + Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0).
  • - STM32 Drivers + LPC17xx

    • - Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 (contributed by Mike Smith). -
    • -
    • - Add support for USART single wire mode (Contributed by the PX4 team). -
    • -
    • - Updates to support for SPI DMA on the STM32 F1/F2/F4. - From Petteri Aimonen. + Added support for the LPC177x and LPC178x families. + Most of this is the work of Rommel Marcelo.
  • - STM32 Boards + LPC17xx Boards

    • - New configuration to support the UG-2864HSWEG01 OLED on the STM32F4Discovery board. + Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769. + From Rashid.
    • - Added a posix_spawn() test configuration for the STM32F4Discovery. + The port for the WaveShare Open1788 board is now functional. + Basic OS test and NuttShell (NSH) configurations are functional. + More driver development and testing is needed (from Rommel Marcelo).
  • - LM3S/LM4F + LPC17xx Drivers

    • - Files and directories repartitioned to support both LM3S and LM4F using the STM32 organization as a model. -
    • -
    • - Partial definitions for the LM4F contributed by Jose Pablo Carballo (this is still a work in progress). + Added an SD card MSI driver for the LPC178x. + The driver is marginally functional but requires DMA capability to be reliable.
  • - LM3S Boards + STM32

    • - Added scripts and documentation to use OpenOCD with the LM3S (from Jose Pablo Carballo). + Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like peripherals).
  • - LPC176x/LPC178x + STM32 Boards

    • - Files and directories repartitioned to support both LPC175x/LPC176x and the LPC177x/LPC178x families using the STM32 organization as a model. - The LPC1788 port is a work in progress by Rommel Marcelo. + Added support the STMicro STM32F3Discovery board (STM32 F3).
  • - LPC176x/LPC178x Boards + Stellaris LM3S/LM4F

    • - Added a configuration to support the Wave Share Open1788 board. - This is still a work in progress by Rommel Marcelo. + Basic support for the LM4F120 family is in place, but untested (mostly from Jose Pablo Carballo).
  • - LPC2148 Boards + Stellaris LM4F Boards

    • - Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 and the UG_2864AMBAG01 OLED). + Add support for the LM4F120 LaunchPad (untested).
    • -
    • - Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01). -
  • - Simulator + Networking

    • - Add an nxlines configuration for the simulator. + select() should now allocate a little less memory.
  • - Networking + Memory Management

    • - Add logic to work around delayed ACKs by splitting packets (contributed by Yan T.). + Extended to support multiple heaps. + This is used as part of the kernel build in order to support separater user- and kernel-mode heaps.
    • - Split net_poll() to create the internal interface psock_poll(). + The stand-alone memory manger test had to be removed. + It was too entangled and made extension of the memory manager nearly impossible. + This is a loss.
  • - LCDs + Build System

    • - Added support for LCD1602 alphanumeric LCD (HD4468OU controller). + Several configurations converted to use the kconfig-frontends configuration tool. + There are still many more that need to be converted.
  • - Graphics + C Library

    • - Added 5x8 monospace font. - This tiny font is useful for graph labels and for small bitmapped display. - Contributed by Petteri Aimonen. + Move the workqueue logic into the C library. + There is now a special user-space version of the work queue (which will only be used with a NuttX kernel build). +
    • +
    • + Implementation of itoa() contributed by Ryan Sundberg.
  • - Build System + Applications

    • - Add an options to better manage toolchain prefixes. + The NSH builtin task logic now uses task_spawn() to start builtin applications.
    • - Redesigned how the context targer works in the apps/ directory. - The old design caused lots of problems when changing configurations because there is no easy way to get the system to rebuild the context. - This change should solve most the problems and eliminate questions like "Why don't I see my builtin application in NSH?" + The OS test now includes a test cased to verify task_restart().
  • + +

    + Efforts In Progress. + The following are features that are partially implemented but present in this release. + Most are expected to be fully available in NuttX 6.27. +

    +
    • - Kconfig Files + LM4F120 LaunchPad port

      • -

        - There are several new configurations that use the kconfig-frontends tools and several older configurations that have been converted to use these tools. - There is still a long way to go before the conversion is complete: -

        -
          -
        • - configs/sim/nxwm -
        • -
        • - configs/sim/nsh -
        • -
        • - configs/stm3220g-eval/nxwm -
        • -
        • - configs/stm32f4discovery/posix_spawn -
        • -
        • - configs/olimex-lpc1766stk/nsh -
        • -
        • - configs/olimex-lpc1766stk/hidkbd -
        • -
        • - configs/olimex-lpc1766stk/nettest -
        • -
        • - configs/open1788/ostest -
        • -
        • - configs/stm32f4discovery/nsh -
        • -
        • - configs/stm32f4discovery/usbnsh -
        • -
        • - configs/lm326965-ek (all configurations) -
        • -
        • - configs/mcu123-214x/nsh -
        • -
        • - configs/ubw32/ostest -
        • -
        + Code is in place, but nothing has been tested.
    • - Tools + WaveShare Open1788 port

      • - tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell. -
      • -
      • - tools/configure.c: configure.c can be used to build a work-alike program as a replacement for configure.sh. - This work-alike program would be used in environments that do not support Bash scripting (such as the Windows native environment). -
      • -
      • - tools/configure.bat: configure.bat is a small Windows batch file that can be used as a replacement for configure.sh in a Windows native environment. - configure.bat is actually just a thin layer that executes configure.exe if it is available. - If configure.exe is not available, then configure.bat will attempt to build it first (assumes the MinGW-GCC is available). + This port as actually complete and functional. + However, there is still ongoing development and testing of drivers.
    • - Applications + Kernel Build

      • - New and modified examples: -

        -

          -
        • - apps/examples/wlan: Remove non-functional example. -
        • -
        • - apps/examples/ostest: Added a test of vfork()). - Extend signal handler test to catch death-of-child signals (SIGCHLD). - Add a test for waitpid(), waitid(), and wait(). -
        • -
        • - apps/exampes/posix_spawn: Added a test of posix_spawn(). -
        • -
        -

        -

      • -
      • - NSH: -

        -

          -
        • - NSH now supports re-direction of I/O to files (but still not from). -
        • -
        • - The block driver source argument to the mount command is now optional for file systems that do not require a block driver. -
        • -
        -

        -
      • -
      • - NSH can now execute a program from a file system using posix_spawn(). -
      • -
      • - Added support for a login script. - The init.d/rcS script will be executed once when NSH starts; - the .nshrc script will be executed for each session: - Once for a serial console, once for each USB connection, and once for each Telnet session. -
      • -
      • - Supports a new daemon that can be used to monitor USB trace outpout. + Much progress has been made, but there kernel build is not yet fully functional due to several user resources that are not yet properly disentangled from the kernel blob.
      • +
      +
    • +
    • +

      + kconfig-frontends +

      +
      • - Removed non-functional wlan example. + Conversion of old configurations to use the kconfig-frontends tool is an ongoing effort that will continue for some time.
    • @@ -1514,79 +1414,63 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

      • - Fixed a *critical* task exit bug. - Here is the failure scenario: - (1) sched_lock() is called increments the lockcount on the current TCB (i.e., the one at the head of the ready to run list), - (2) sched_mergepending() is called which may change the task at the head of the ready-to-run list, then - (3) sched_unlock() is called which decrements the lockcount on the wrong TCB. - The failure case that I saw was that pre-emption got disabled in the IDLE thread, locking up the whole system. + The wrong PID was being signalled with SIGCHILD. + It should be the PID of the task that create the task group, not the ID of the last thread to leave the task group.
      • -
      - -
    • -

      - Signals -

      -
      • - sigtimedwait() would return a bad signal number if the signal was already pending when the function was called. + Added logic so that some internal resources and states are recovered when tasks are deleted or restarted. + Handle cases where there are outstanding timed events pending when tasks are deleted or restarted.
    • - Drivers + ARMv7-M

      • - Some SD cards will appear busy until switched to SPI mode for first time. - Having a pull-up resistor on MISO may avoid this problem, but this fix from Petteri Aimonen makes it work also without pull-up. + Several fixes to the MPU control logic.
    • - STM32 Drivers + Drivers

      • - STM32 FLASH driver counting error (from Freddie Chopin). + Removable serial drivers race conditions fixed.
      • - STM32 F4 maximum SPI frequency was wrong (corrected by Petteri Aimonen). + MAX11802 timing bug (from Petteri Aimonen).
    • - STM32 Boards + STM32 Drivers

      • - Due to cloning of untested code, the logic to control on-board LEDs did not work on any STM32 boards. + Handle cases were SPI DMA logic fails if sem_wait() is awakened by a signal. + Need to clear error flags to prevent corruption of subsequent transfers. + Also, bit count should not be changed while the SPI peripheral is enabled (from Petteri Aimonen).
      • - Serial devices number /dev/ttyS0-5 is there is a serial console, but /dev/ttyS1-6 if there is no serial console. + Fixes to the OTG FS device driver from Petteri Aimonen.
      • -
      -
    • -
    • -

      - Binary Formats -

      -
      • - C++ static constructors execute now using a start taskhook so that they execute in the context of the child task (instead of in the context of the parent task). + Fix typos in DMA register header file (from Yan T.)
    • - File Systems + Graphics

      • - Several FAT-related bugs fixed by Petteri Aimonen. + Correction to the hyphen in the SANS 17x22 font (from Petteri Aimonen).
    • @@ -1596,27 +1480,19 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

      • - Fix poll/select issure reported by Qiang: poll_interrupt() must call net_lostconnection() when a loss of connection is reported. - Otherwise, the system will not remember that the connection has been lost and will hang waiting on a unconnected socket later. -
      • -
      • - Similar issues corrected for recvfrom() and send(). -
      • -
      • - Telnetd would hang in a loop if recv() ever returned a value <= 0. + Corrected errors in the socket poll/select logic. Additional + state logic was needed to detect if the socket is still connected + before starting the poll wait. (bug reported by Qiang Yu).
    • - Libraries + Memory Management

      • - fread() could hang on certain error conditions. -
      • -
      • - Can't handle SYSLOG output to a character device from the IDLE task (because the IDLE task can't block). + mallinfo() should hold the memory manager semaphore (from Petteri Aimonen.
    • @@ -1626,27 +1502,24 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code

      • - Serial was driver was not being built if there is no console device. - Obviously, the serial driver may be needed even in this case. + Resolved several build errors reported by Mike Smith.
    • - Additional Bugfixes + Applications

      • - sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic -
      • -
      • - ARM9 Compilation issue with low vectors. -
      • -
      • - readline() return value + Fixed an NSH memory leak: + Needed to detach after creating each pthread.
      • - As well as other, less critical bugs as detailed in the ChangeLog: HID keyboard, LPC17xx bit definitions, strndup(), PL2303, SYSLOG error handling, AT25, apps/examples. + readline() now returns EOF on any failure (instead of a negated errno value). + This is because the underlying read is based on logic similar to getc. + The value zero (meaning end-of-file) was being confused with a NUL. + So if a NUL was received, the NSH session would terminate because it thought it was the end of file.
    • @@ -1680,7 +1553,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
    • ARM926EJS (3)
    • ARM Cortex-M0 (1)
    • ARM Cortex-M3 (17)
    • -
    • ARM Cortex-M4 (6)
    • +
    • ARM Cortex-M4 (7)
  • Atmel AVR
      @@ -2546,7 +2419,7 @@ nsh> STATUS: This is still a work in progess. At present there is a working basic port with OS verification and Nuttshell (NSH) configurations. - This is stablilizing nicely now and the next steps will involve getting solid LCD support on the WaveShare board. + This is stablilizing nicely now and the next steps will involve getting solid driver support for the SD slot and the LCD on the WaveShare board.
    @@ -2750,6 +2623,27 @@ nsh>

    + +
    + +

    + TI Stellaris LM4F120. + This port uses the TI Stellaris LM4F120 LaunchPad. + Jose Pablo Carballo is doing this port. +

    +
      +

      + STATUS: + As of this writing, the basic port is code complete but still untested. + The fully verified LM4F120 LaunchPad port is expected in NuttX-6.27. +

      +
    + + + +
    +
    +
    @@ -3842,421 +3736,318 @@ Other memory:
      -nuttx-6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
      +nuttx-6.26 2013-05-15 Gregory Nutt <gnutt@nuttx.org>
       
      -    * graphics/: Adds 5x8 monospace font. This tiny font is useful for graph
      -      labels and for small bitmapped display.  Contributed by Petteri
      +    * drivers/serial/serial.c:  Correct some race conditions when checking
      +      for disconnection of a removable serial device.
      +    * sched/task_posixspawn.c, task_spawn.c, task_spawnparms.c and
      +      spawn_internal.h:  Create new interface task_spawn() that is
      +      like posix_spawn(), but uses entry point addresses like
      +      task_create().
      +    * Corrected all argv[] arguments. Should be char * const *, not
      +      const char **.
      +    * sched/pthread* and include/nuttx/sched: Move pthread join data
      +      and pthread key calculation data into the "task group" structure.
      +    * sched/atexit.c, on_exit.c, task_exithook.c and include/nuttx/sched.h:
      +      Move atexit and on_exit data structures to task group.  These
      +      callbacks are only issued now when the final member of the task
      +      group exits.
      +    * sched/waitpid.c, task_exithook.c and include/nuttx/sched.h:
      +      Move waitpid data data structures to task group.  Callers of
      +      of waitpid() are now only awakened whent he final thread of the
      +      task group exits.
      +    * sched/mq_descreate.c, mq_open.c, mq_remove.c, group_leave.c, and
      +      include/nuttx/sched.h:  Move list of opened message queues to
      +      the task group structures.  Now all message queues opened by
      +      members of the group are closed when the last member of the group
      +      exits.
      +    * includes/nuttx/sched.h and Lots of files:  Change name of _TCB to
      +      struct tcb_s so that (1) it is consitent with other NuttX naming and
      +      so that (2) the naming can handle some upcoming changes.
      +    * includes/nuttx/sched.h and sched/:  There are three TCB structures:
      +      struct tcb_s is a generic common version, struct task_tcb_s is a
      +      version for tasks and kernel threads and pthread_tcb_s is a version
      +      for pthreads.  By dividing the TCB structure into these variants,
      +      pthreads do not have to be burdened by task-specific data structures
      +      (and vice versa).
      +    * sched/task_exithook.c adn group_create.c:  Fix an error, the
      +      task within the task group may exit early leaving a pthread to
      +      exit the task group last.  In this case, we need to remember the
      +      the PID of the main task in the task group and use that PID for
      +      signalling SIGCHILD to the parent task group.
      +    * included/nuttx/sched.h and sched/sig*.c:  Numerous changes to the
      +      signal deliver logic so that the delivery of signals to threads
      +      within a task group will be compliant with delivery of signals
      +      to threads within a POSIX process.
      +    * sched/mq_recover.c and task_exithook.c:  Add logic to handle the
      +      case where a task is deleted (or pthread canceled) while it is
      +      waiting on a message queue.  task_delete() and pthread_cancel()
      +      are dangerous interfaces.  This is only one feeble recover measure
      +      of *many* that would be needed to do this safely.
      +    * sched/group_killchildren.c, task_recover.c, group_foreachchild.c,
      +      sched/restart.c, sched/task_delete.c, and others:  Beef up logic
      +      to better support task deletion and pthread cancellation.  Needed
      +      to pass need OS test case for task_restart().
      +    * sched/include/sched.h and all timed functions in sched/:  Move
      +      timer from local variables to TCB.  This is needed so that if a
      +      task is canceled or restarted while it is waiting for a timed
      +      event, we can gracefully recover.  We can't let the timer expire
      +      after the task has been deleted.
      +    * arch/arm/include/stm32 and arch/arm/src/stm32:  Add support for
      +      the STM32 F3 family (still missing some things).
      +    * configs/stm32f3discovery:  This will (eventually) be support for
      +      the STM32F3Discovery board.
      +    * STM32 F3 and STM32F3Discovery port is complete a ready for test.
      +    * arch/arm/src/lpc17xx: Add support for the Cortex-M4 FPU and
      +      Mikes "common vector" logic.  The LPC1788 is going to need
      +      these things.
      +    * arch/arm/src/stm32/stm32_spi.c:  Fix SPI DMA logic that does
      +      not work if sem_wait() is interrupt by a signal.  From Petteri
      +      Aimonen.
      +    * drivers/input/max11802.c: MAX11802: Fix a timing bug that
      +      corrupted coordinates.  From Petteri Aimonen.
      +    * drivers/mmcsd/mmcsd_spi.c:  Use SPI locking so that MMC/SD can
      +      exist on the same bus as other SPI devices.  From Petteri
      +      Aimonen.
      +    * graphics/nxfonts/nxfonts_sans17x22.h: Small mod to hyphen in
      +      sans17x22 font.  The hyphen did not have any space on its sides.
      +      This caused it to run together with other characters so that for
      +      example "+-" would look weird. From Petteri Aimonen.
      +    * mm/mm_mallinfo.c:  Take MM semaphore in mm_mallinfo. From Petteri
             Aimonen.
      -    * configs/stm3220g-eval/nxwm:  Converted to use the kconfig-frontends
      -      configuration tool.
      -    * configs/sim/nxwm:  Converted to use the kconfig-frontends configuration
      -      tool.
      -    * include/pthread.h:  In sys/prctl.h because it is needed by
      -      pthread_[set|get]name_np()
      -    * tools/kconfig.bat:  Kludge to run kconfig-frontends from a DOS shell.
      -    * sched/sig_timedwait.c:  Should always move the time up to the next
      -      largest number of system ticks.  The logic was rounding.  Noted by
      -      Petteri Aimonen.
      -    * arch/arm/src/up_head.S:  Fix backward conditional compilation.  NOTE
      -      there is a issue of ARM9 systems with low vectors and large memories
      -      that will have to be addressed in the future.
      -    * libc/misc/lib_kbdencode.c and lib_kbddecode.c:  Add logic to marshal
      -      and serialized "out-of-band" keyboard commands intermixed with normal
      -      ASCII data (not yet hooked into anything).
      -    * drivers/usbhost/usbhost_hidkbd.c:  If CONFIG_HIDKBD_ENCODED is
      -      defined, this driver will now use libc/misc/lib_kbdencode.c to
      -      encode special function keys.
      -    * configs/olimex-lpc1766stk/hidkbd:  This configuration has been
      -      converted to use the kconfig-frontends configuration tool.
      -    * drivers/lcd/ug-2864hsweg01.c and include/nuttx/lcd/ug-2864hsweg01.h:
      -      Driver for UG-2864HSWEG01 OLED contributed by Darcy Gong.
      -    * configs/stm32f4discovery/src/up_ug2864hsweg01.c: Support for the
      -      UG-2864HSWEG01 OLED for the STM32F4Discovery board.
      -    * drivers/usbhost/usbhost_hidkbd.c:  Correct a logic error in how
      -      tasks waiting for read data are awakened.
      -    * libc/misc/lib_kbdencode.c and lib_kbddecode.c:  Now handles keypress
      -      events too.  However, the USB HID keyboard driver has not yet been
      -      updated to detect key release events.  That is kind of tricky in
      -      the USB HID keyboard report data.
      -    * configs/mcu123-214x/nsh:  Converted to use the kconfig-frontends
      -      configuration tool.
      -    * configs/zp214xpa:  Add basic support for the The0.net ZP213x/4xPA
      -      board (with the LPC2148 and the UG_2864AMBAG01).
      -    * configs/sim/nxlines:  Add an nxlines configuration for the
      -      simulator.
      -    * configs/zp214xpa/nxlines:  Add an nxlines configuration for the
      -      ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01).  Working
      -      as of 2012-12-30.
      -    * configs/olimex-lpc1766stk/wlan:  Remove non-functional
      -      configuration.
      -    * configs/stm32f4discovery/src and nuttx/drivers/lcd/ug-2864hsweg01.c:
      -      Updates and correctinos for the UG-2864HSWEG01 from Darcy Gong.
      -    * configs/lm326965-ek:  All configurations converted to use the
      -      kconfig-frontends configuration tool.
      -    * configs/Kconfig: NSH_MMCSDSPIPORTNO should depend on MMCSD_SPI,
      -      not just SPI (from Jose Pablo Carballo).
      -    * arch/arm/src/arm/Kconfig and armv7m/Kconfig:  Add an option for
      -      buildroot toolchains:  They may be EABI or OABI.
      -    * include/nuttx/progmem and arch/arm/src/stm32/stm32_flash.c:
      -      Fix a counting bug plus change interface to use either relative
      -      or absolute FLASH addressing (from Freddie Chopin).
      -    * libc/misc/Make.defs:  Fix error in conditional for KBD CODEC.
      -    * libc/Kconfig and configs/*/defconfig (several):  The default
      -      setting should be CONFIG_LIB_KBDCODEC=n
      -    * tools/configure.c:  configure.c can be used to build a work-alike
      -      program as a replacement for configure.sh.  This work-alike
      -      program would be used in environments that do not support Bash
      -      scripting (such as the Windows native environment).
      -    * tools/configure.bat: configure.bat is a small Windows batch
      -      file that can be used as a replacement for configure.sh in a
      -      Windows native environment.  configure.bat is actually just a
      -      thin layer that executes configure.exe if it is available. If
      -      configure.exe is not available, then configure.bat will attempt
      -      to build it first.
      -    * arch/arm/src/lpc17xx/lpc17_syscon.h:  Correct some typos in bit
      -      definitions (from Rommel Marcelo).
      -    * libc/string/lib_strndup.c: strndup() should use strnlen(), not
      -      strlen(), to determine the size of the string.
      -    * sched/os_bringup.c:  Remove support for CONFIG_BUILTIN_APP_START.
      -      This is not really a useful feature and creates a violation of the
      -      OS layered architecture.
      -    * include/unistd.h, arch/arch/src/*:  Implement a simple vfork().
      -      On initial checkin, this API is available only for ARM platforms.
      -    * binfmt/binfmt_exec.c: exec() now sets the priority of the new task
      -      to the same priority as the current task (instead of the arbirtrary
      -      value of 50).
      -    * libc/unisted/lib_execv.c and lib_execl.c:  New, somewhat flawed,
      -      implementations of execv() and execl().
      -    * tools/cfgdefine.c:  Strips quotes from CONFIG_EXECFUNCS_SYMTAB
      -      value.
      -    * arch/arm/include/lm3s/chip.h:  Move chip definitions into
      -      public include area for compatibility with other architectures.
      -    * arch/arm/src/lm3s/chip:  Move register definition header files
      -      into a new chip/ sub-directory.
      -    * arch/arm/src/lm3s/lm3s_internal.h:  Broke up into several
      -      smaller header files.
      -    * arch/arm/src/lm:  Rename the arch/arm/src/lm3s directory to
      -      arch/arm/src/lm so that is can support other members of the
      -      Stellaris family.
      -    * libc/spawn:  Add file action interfaces needed by posix_spawn().
      -    * sched/clock_time2ticks.c:  Another case where time was being
      -      rounded down instead of up (from Mike Smith).
      -    * libc/spawn:  Implementation of posix_spawn() is complete but
      -      untested and undocumented.
      -    * drivers/usbdev/pl2303.c:  Fix typols in the PL2303 driver
      -      (from Max Holtzberg).
      -    * configs/stm32f4discovery/posix_spawn:  Added a configuration
      -      that can be used for testing posix_spawn().
      -    * arch/arm/src/stm32: Bring F1 support for general DMA and serial
      -      DMA in paricular up to parity with F2/F4 (from Mike Smith).
      -    * libc/stdio/lib_libfread.c:  Correct some error handling when
      -      lib_fread() was passed a bad stream.  Needed to move the
      -      releasing of a semaphore inside of some conditional logic
      -      (cosmetic).
      -    * include/nuttx/sched.h, sched/task_setup.c, and sched/task_exithook.c:
      -      Add support for remembering the parent task and sending
      -      SIGCHLD to the parent when the task exists.
      -    * sched/task_exithook.c:  Fixed a *critical* bug.  Here is
      -      the scenario: (1) sched_lock() is called increments the lockcount
      -      on the current TCB (i.e., the one at the head of the ready to run
      -      list), (2) sched_mergepending is called which may change the task
      -      at the head of the ready-to-run list, then (3) sched_unlock() is called
      -      which decrements the lockcount on the wrong TCB.  The failure case
      -      that I saw was that pre-emption got disabled in the IDLE thread,
      -      locking up the whole system.
      -    * sched/sched_waitpid.c:  Use SIGCHLD instead of a semaphore.  This
      -      is a much more spec-compliant implementation.  However, there are
      -      some issues with overruning signals because NuttX does not support
      -      queueing of signals (POSIX does not require it).  I think it may
      -      need to.
      -    * sched/sched_waitid.c and sched_wait.c:  Add support for waitid()
      -      and wait().  See issues with waitpid() above.
      -    * include/nuttx/fs/fs.h and fs/fs_files.c:  Add a dup() method to
      -      the struct mountpt_operations.  When dup'ing a file that resides
      -      on a mounted volume, let the file system's dup() method do the
      -      work.
      -    * fs/romfs/fs_romfs.c: Implemented the dup() method for the ROMFS
      -      file system.
      -    * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
      -      fs/nfs/nfs_vfsops.c:  Add hooks for dup() method (not yet
      -      implemented).
      -    * fs/romfs:  Remove the rf_open flag.  It looks good, but actually
      -      does nothing.
      -    * fs/fat:  Remove the ff_open flag.  Same story as for the ROMFS
      -      rf_open flag.
      -    * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
      -      fs/nfs/nfs_vfsops.c:  Completed implementation of the dup() methods.
      -      There is still no good test available.
      -    * sched/sig_timedwait.c:  sigtimedwait() would return a bad signal
      -      number if the signal was already pending when the function was
      -      called.
      -    * configs/ubw32/scripts:  All common linker scripts moved to this
      -      scripts sub-directory
      -    * configs/ubw32/ostest:  Configuration configured to use the
      -      kconfig-frontends tools.
      -    * arch/mips/src/mips32/up_vfork.c, up_vfork.h, and vfork.S:
      -      Implement vfork() for MIPS32 (no floating point support)
      -    * configs/ubw32/ostest: Enable the vfork() test.
      -    * fs/binfs:  Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
      -      CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
      -    * include/nuttx/binfmt/builtin.h:  Some of the content of
      -      apps/include/apps.h moved to include/nuttx/binfmt/builtin.h
      -    * binfmt/libbuiltin/libbuiltin_utils.c:  Move builtin
      -      utility functions from apps/builtin/exec_builtins.c to
      -      binfmt/libbuiltin/libbuiltin_utils.c
      -    * binfmt/builtin.c and binfmt/libbuiltin:  Add a binary "loader"
      -      that can be used to execute builtin programs from the BINFS
      -      file system.
      -    * configs/sim/nsh: Convert to use kconfig-frontends configuration
      -      tool.
      -    * binfmt/binfmt_schedunload.c:  Add logic based on SIGCHLD to
      -      automatically unload and clean-up after running a task that
      -      was loaded into memory.
      -    * binfmt/libbuiltin: Extensions from Mike Smith
      -    * sched/task_reparent.c:  Add internal interface to change the
      -      parent task.
      -    * sched/task_posixspawn():  Move libc/spawn/lib_ps.c to
      -      sched/task_posixspawn() now it requires internal, reparenting
      -      interfaces
      -    * include/nuttx/spawn():  Move libc/spawn.h to include/nuttx/spawn.h
      -    * arch/arm/include/lpc17xx/chip.h, irq178x.h:  Integrate Marcelo
      -      Rommel's LPC1788 definitions into the base LPC17xx.
      -    * configs/olimex-lpc1766stk/nsh:  Convert configuration to use
      -      the kconfig-frontends tools.
      -    * sched/task_reparent.c:  Simplify reparenting interface.
      -    * arch/arm/src/[many]: More LPC1788 definitions from Rommel
      -      Marcelo incorporated.
      -    * configs/open1788:  Board configuration for the Wave Share
      -      Open1788 board.  Still fragmentary (contributed by Rommel
      -      Marcelo, adapted to use kconfig-frontends.
      -    * net/send():  Add logic to work around delayed ACKs by splitting
      -      packets (contributed by Yan T.).
      -    * net/recvfrom():  Fix a bug.  When the host closes a connection
      -      (gracefully).  recv[from]() returned success and the closure
      -      was never detected.  Hmmm.. I don't know why the network monitor
      -      did not catch this event.  This is an important bug fix.
      -    * net/recvfrom():  Fix a introduced with the last bugfix.  If
      -      the peer does an orderly closure of the socket, report 0 not
      -      -ENOTCONN
      -    * configs/lm3s6965-ek/README.txt and tools/:  Add an OpenOCD
      -      configuration for the LM3S (from Jose Pablo Carballo).
      -    * nuttx/lcd/hd4478ou.h and configs/pcblogic-pic32mx/src/up_lcd1602:
      -      Start of support of LCD1602 alphanumeric LCD.  I need a few
      -      more parts before I can finish integrating this one.
      -    * arch/arm/src/*/chip.h and arch/arm/include/*/chip.h:  Move all
      -      priority ranges from the src to the include chip.h header file.
      -    * arch/arm/include/armv7-m/irq.h:  Add inline functions to enable
      -      and disable interrupts via the BASEPRI register.
      -    * arch/arm/Kconfig:  Add new option CONFIG_ARM7VM_USEBASEI
      -    * arch/arm/src/*/*_irq.c:  Set the priority of the SVCALL exception
      -      to the highest possible value.
      -    * arch/armv7-m/up_hardfault.c:  Fail if a hardfault occurs
      -      while CONFIG_ARM7VM_USEBASEPRI=y.
      -    * arch/arm/src/stm32/stm32_serial.c:  Add support for USART
      -      single wire mode (Contributed by the PX4 team).
      -    * sched/: Implement support for retaining child task status after
      -      the child task exists.  This is behavior required by POSIX.
      -      But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and
      -      CONFIG_SCHED_CHILD_STATUS
      -    * Add support for keyboard encode to the keypad test (from
      -      Denis Carikli).
      -    * configs/olimex-lpc1766stk/nettest:  Configuration converted to
      -      use the kconfig-frontends tools.
      -    * net/net_poll.c:  Split net_poll() to create psock_poll() too.
      -    * net/net_poll.c:  Fix poll/select issure reported by Qiang:
      -      poll_interrupt() must call net_lostconnection() when a
      -      loss of connection is reported.  Otherwise, the system will
      -      not know that the connection has been lost.
      -    * sched/group_create.c, group_join.c, and group_leave.c:  Add
      -      support for task groups.
      -    * sched/group_signal.c and task_exithook.c:  Send signal to all
      -      members for the parent task group.
      -    * include/nuttx/sched.h and sched/env_*.c:  Move environment
      -      variables into task group structure.
      -    * sched/: Lots of file changed.  Don't keep the parent task's
      -      task ID in the child task's TCB.  Instead, keep the parent
      -      task group IN the child task's task group.
      -    * fs/, sched/, include/nuttx/sched.h, and include/nutts/fs/fs.h:
      -      Move file data from the TCB to the task group structure.
      -    * libc/stdio/, sched/, include/nuttx/lib.h, and include/nutts/fs/fs.h:
      -      Move stream data from the TCB to the task group structure.
      -    * net/, sched/, and include/nuttx/net/net.h:  Move socket data
      -      from the TCB to the task group structure.
      -    * sched/task_starthook.c, sched/task_start.c, and include/nuttx/sched.h:
      -      Add a task start hook that will be called before the task main
      -      is started. This can be used to schedule C++ constructors to run
      -      automatically in the context of the new task.
      -    * binfmt/binfmt_execmodule: Execute constructors as a start hook.
      -    * sched/os_start.c: Fix ordering of group initialization.
      -    * configs/stm32f4discovery/usbnsh:  Add an NSH STM32F4Discovery
      -      configuration that uses USB CDC/ACM for the NSH console.
      -    * configs/stm32f4discovery/nsh: Converted to use the kconfig-frontends
      -      tools.
      -    * configs/*/src/up_userleds.c: Fix a error that was cloned into
      -      all STM32 user LED code.  The wrong definitions were being used
      -      to set LEDs on or off.
      -    * arch/*/common/up_internal.h and arch/*/common/up_initialize.c:
      -      Serial was driver was not being built if there is no console
      -      device.  Obviously, the serial driver may be needed even in
      -      this case.
      -    * arch/arm/src/stm32/stm32_serial.c: If there is a serial console,
      -      it would be ttyS0 and the others would be ttyS1-5.  If there
      -      is not serial console, was labeling them ttyS1-6; now labels them
      -      ttyS0-5.
      -    * fs/fs_syslog.c: Can't handle SYSLOG output to character device from
      -      the IDLE task (because it can't block). syslog_putc now returns EOF
      -      on failure and sets errno.  Fixed some errors in error handling.
      -    * libc/stdio/lib_syslogstream.c:  Checking of return value from
      -      syslog_putc was bogus.  Switching to EOF for all errors solves
      -      this.
      -    * arch/arm/src/lm/chip/lm4f_memorymap.h: More LM4F changes from
      -      Jose Pablo Carballo.
      -    * drivers/serial/serial.c, include/nuttx/serial/serial.h,
      -      drivers/usbdev/cdcacm.c, and drivers/pl2303.c: Add support for
      -      removable serial devices (like USB serial).  This support is enabled
      -      by CONFIG_SERIAL_REMOVABLE.
      -    * arch/*/src/*/Toolchain.defs: Change assignment so that we can
      -      override CROSSDEV with a make command line argument.
      -    * include/assert.h:  Mark assertion functions as non-returning.
      -    * arch/*/src/*/up_assert.h:  Mark _up_assert() as non-returning.
      -    * drivers/mtd/at25.c: When the AT25 device was not available the
      -      initialization did not fail like it should. From Petteri Aimonen.
      -    * fs/fat/fs_configfat.c:  Fix some errors in FAT formatting logic
      -      for large devices and for FAT32. From Petteri Aimonen.
      -    * fs/fat/fs_fat32util.c:  Fix an initialization error found by
      -      Petteri Aimonen.  freecount and next freecount initialization were
      -      reversed.
      -    * drivers/mmcsd/mmcsd_spi.c: Some SD cards will appear busy until
      -      switched to SPI mode for first time.  Having a pull-up resistor on
      -      MISO may avoid this problem, but this patch makes it work also
      -      without pull-up.  From Petteri Aimonen.
      -    * fs/fat/fs_fat32.c: Fix a compilation error when FAT_DMAMEMORY=y. 
      +    * configs/stm32f3discovery/nsh/defconfig:  Disable SPI.  It is not
      +      used.
      +    * drivers/mtd/sst39vf:  Add a driver for the SST29VF NOR FLASH parts.
      +    * sched/os_start.c:  Add an additional call-out to support board-
      +      specific driver initialization during the start phase:  If
      +      CONFIG_BOARD_INITIALIZE is defined, then an additioinal
      +      initialization function called board_initialize() will be called
      +      just after up_initialize() is called and just before the initial
      +      application is started.
      +    * arch/arm/src/stm32/stm32_otgfsdev.c, drivers/usbdev/usbdev_trprintf.c,
      +      and include/nuttx/usb/usbdev_trace.h:  Add logic to support decoding
      +      of device-specific trace events to make the trace ouput more readable.
             From Petteri Aimonen.
      -    * arch/arm/src/stm32/chip/stm32_spi.h: STM32F4 max SPI clock freq is
      -      37.5 MHz.  Patch from Petteri Aimonen.
      -    * arch/arm/src/stm32/stm32_spi.c: Fixes for SPI DMA work on the
      -      STM32F4. Includes untested additions for the F1 implementation as
      -      well.  From Petteri Aimonen.
      +    * arch/arm/src/stm32/stm32_otgfsdev.c:  Need to manually set CNAK in
      +      the case where we are waiting for a SETUP command with DATA.  Otherwise,
      +      the core may NAK further transactions.  From Petteri Aimonen.
      +    * arch/arm/src/stm32/stm32_otgfsdev.c: Add logic to prevent premature
      +      to IDLE state.  This change (plus the previous) was necessary to get
      +      the CDC/ACM driver working the certain STM32 F4 hardware (but not others).
      +      These changes appear to prevent certain race conditions that may or may
      +      not cause USB problems.  From Petteri Aimonen.
      +    * arch/arm/include/armv6-m and arch/arm/src/armv6-m: First cut at support
      +      for the Cortex-M0
      +    * configs/nutiny-nuc120, arch/arm/include/nu1xx, and arch/arm/src/nuc1xx:
      +      Support for Nuvoton NuTiny NUC120.
      +    * 2013-02-22:  the Cortex-M0, NuvoTron NUC1xx, and NuTiny-SDK-NUC120 port
      +      is code complete and ready for testing.
      +    * configs/ekk-lm3s9b96/ostest and nsh:  All EKK-LM3S9B96 configurations
      +      converted to use the mconf configuration tool.
      +    * configs/zkit-arm-1769:  Add support for Zilogic System's ARM development
      +      Kit, ZKIT-ARM-1769.  From Rashid.
      +    * configs/zkit-arm-1769/hello:  Add a "Hello, World!" configuration for
      +      the KBIT-ARM-1769 board.  From Rashid.
      +    * configs/zkit-arm-1769/thttpd:  Add a THTTPD configuration for the
      +      KBIT-ARM-1769 board.  From Rashid.
      +    * 2013-02-27: All configurations for the Cortex-M0 NuTINY-SDK-NUC120
      +      appear to be functional and stable.
      +    * configs/zkit-arm-1769/nsh:  Add an NSH configuration for the
      +      KBIT-ARM-1769 board.  From Rashid.
      +    * arch/arm/src/stm32/stm32_otgfsdev.c:  Fixes from Petterri Aimonen
      +      related to corner cases that can cause infinite interrupts.
      +    * drivers/usbdev/usbmsc_scsi.c:  Change to allow the full name in the
      +      USB descriptor but a truncated, 8-byte name in the SCSI field.
      +      From Petteri Aimonen.
      +    * arch/arm/src/stm32/stm32_spi.c: Need to clear error flags to prevent
      +      corruption of subsequent transfers.  Also, bit count should not be
      +      changed while the SPI peripheral is enabled.  From Petteri Aimonen.
      +    * drivers/mmcsd/mmcsd_spi.c:  When bus is shared, the speed has to be
      +      set every time.  Also SD cards require a few dummy clocks to react
      +      into CS release.  From Petteri Aimonen.
      +    * configs/lm4f120-launchpad: In initial configuration for testing
      +      the LM4F120 LaunchPad port.  This is to support testing only and
      +      is not yet a functional board port (as of 2013-03-01).
      +    * arch/arm/include/lm/lm4f_irq.h and arch/arm/src/lm/chip/lm4f_vector.h:
      +      Add interrupt vector/IRQ number definitions for the LM4F120.
      +    * arch/arm/src/stm32f20xxx_dma.c and stm32f40xxx_dma.c:  Fix a typo
      +      in assigned base register addresses for each DMA channel.  From
      +      Yan T.
      +    * Several build fixes from Mike Smith were incorporated.  These were
      +      mostly compilation errors introduced into the system because of the
      +      large number of recent changes with broad scope (2013-03-04).
      +    * configs/zkit-arm-17969/src/up_can.c:  Add CAN support to the
      +      Zilogics Technologies ZKIT-ARM-1769 board (From Rashid Fatah, (2013-03-04)).
      +    * arch/arm/src/lpc17/lpc17*_clockconfig.c:  The WaveShare Open1788
      +      board now boots and passes the OS test.  This is the work of
      +      Rommel Marcelo (2013-03-04).
      +    * arch/arm/src/lm/lm_gpio.c, lm_gpio.h, and chip/lm4f_pinconfig.h
      +      Extend GPIO logic to handle LM4F.  Add LM4F pin configuration header
      +      file (2013-03-04).
      +    * configs/open1788:  Enable LED support in all configurations.
      +      (2013-03-04)
      +    * configs/open1788/nsh:  NSH configuration verified function.  By Rommel
      +      Marcelo (2013-03-05).
      +    * configs/open1788/src/lpc17_nsh.c:  Use the SD card interface, not SPI
      +      to interface with SD cards (2013-03-05.
      +    * arch/arm/src/lpc17xx/lpc17_sdcard.c and header files:  Clone the STM32
      +      SD card interface to the LPC1788.  It appears to be the same IP.
      +      (2013-03-05)
      +    * libc/wqueue:  Work queue logic moved from sched/ to libc/wqueue.  It
      +      is not really core OS functionality and this move helps prepare for
      +      user-space work queues. (2013-03-05)
      +    * libc/wqueue:  Implemented user-space work queues.  These will not
      +      get tested until the next time I attempt a NuttX kernel build.
      +      (2013-03-05).
      +    * arch/arm: Correct some bad syscall dispatching logic.  This change
      +      cannot be fully tested until there is a fielded NuttX kernel build.
      +      (2013-03-06).
      +    * net/net_poll.c:  Correct logic that checks if the socket is
      +      disconnected when the poll is setup.  That is bad logic:  Listen
      +      sockets, for example, are not connected.  In that case, the purpose of
      +      the poll is to wait for connection events.  As a result of this,
      +      poll/select would return immediately with POLLHUP with it was used to
      +      detect connection events.  This fix for now was to check instead if
      +      the socket is closed (meaning that it was connected at one time but
      +      was closed by the remote peer).  That excludes the listen socket which
      +      was never connected.  This does introduce a new problem, however.  If
      +      the socket was not closed, but lost the connection through an abnormal
      +      event, then poll/select will hang.  That needs to be revisited.
      +      (2013-03-07)
      +    * fs/fs_select.c:  Was not checking if the timeout parameter was NULL
      +      but would, instead, setup a bogus timeout based on whatever it found at
      +      address zero.  Also, improved some of the memory allocation logic so
      +      that it will not use so much memory. (2013-03-07)
      +    * net/net_poll.c:  Handle the missing case.  Now tests for not connected
      +      AND not listening.  I think that now covers all of the cases including
      +      the missing case noted above. (2013-03-07)
      +    * mm/:  Move all memory manager globals into a structure.  A reference
      +      to this structure is now passed internally between mm APIs. This
      +      change will (eventually) support multiple heaps and heap allocators.
      +      (2013-03-08).
      +    * mm/ and include/nuttx/mm.h:  Implement support for multiple heaps.
      +      (2013-03-08).
      +    * arch/*/src: xyz_addregion() needs to call kmm_addregion, not mm_addregion.
      +      (2013-03-08).
      +    * sched/kmm*.c:  Move this garbage kmm*.c file to mm/. until I decide what
      +      to do with them (which is probably to just delete them). (2013-03-08).
      +    * mm/mm_test.c and Makefile.test:  Deleted the memory test.  This was
      +      a good test and helped me a lot when I wrote the memory manager, but
      +      now it is in the way and paralyzing other efforts.  So the memory unit
      +      test was deleted. (2013-03-08)
      +    * sched/sched_free.c:  Rename sched_free() to sched_ufree(); Add
      +      sched_kfree() to handler deferred kernel heap allocations. (2013-03-10)
      +    * arch/:  User user-accessible heap to allocate all stacks. (2013-03-10)
      +    * arch/arm/src/sam3u:  The AT91SAM3U will now support a kernel heap if
      +      so configured. (2013-03-10)
      +    * configs/sam3u-ek/knsh:  This configuration was converted to use the
      +      kconfigs-frontends build tool. (2013-03-10)
      +    * configs/*/include/user_map.h and include/nuttx/userspace.h:  Remove
      +      the very kludgy user_map.h file and replace it with a header that
      +      is expected at the beginning of the user-space blob. (2013-03-10)
      +    * configs/sam3u-ek/kernel/up_userspace.c:  This is the header for
      +      the SAM3U-EK's user space.  (2013-03-10)
      +    * sched/os_bringup.c:  In the kernel build, os_bringup() now uses the
      +      user-space header to automatically start the user-space work queue,
      +      if so configured. (2013-03-10)
      +    * arch/arm/src/lpc17xx/lpc17_mpuinit.c and lpc17_userpace.c:  Add
      +      support for the MPU and kernel build for the LPC17xx family.
      +      (2013-03-11)
      +    * configs/open1788/kernel and knsh:  Add kernel build support and
      +      a kernel NSH configuration for the WaveShare Open1788 board.
      +      (2013-03-11)
      +    * configs/sam3u_ek/kernel, knsh, and scripts:  Move some files around
      +      for better supportability. (2013-03-11)
      +    * configs/open1788/kernel, knsh, and scripts:  Add a kernel mode build
      +      configuration for the WaveShare Open1788 board. (2013-03-11)
      +    * arch/arm/src/armv7-m/up_mpu.c:  Several fixes to MPU logic.
      +      (2013-03-12).
      +    * arch/arm, configs/sam3u-ek, configs/open1788:  Fix memory map for
      +      kernel mode build; Some regions were overlapping. (2013-03-13).
      +    * arch/:  Rename g_heapbase to g_idle_topstack.  This is the same value
      +      however:  The top of the IDLE stack is the same as the base of the
      +      heap in the flat build.  But not in the kernel build:  The base of
      +      the heap is elsewhere so the naming was wrong. (2013-03-13).
      +    * libc/stdlib/lib_itoa.c:  Implementation of itoa() contributed by
      +      Ryan Sundberg. (2013-03-14).
       
      -apps-6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
      +apps-6.26 2013-03-15 Gregory Nutt <gnutt@nuttx.org>
       
      -    * Makefiles: Removed dependency of distclean on clean in most top-level
      -      files.  It makes sense for 'leaf' Makefiles to have this dependency,
      -      but it does not make sense for upper-level Makefiles.
      -    * apps/namedapp/: Renamed to builtins in preparation for another change.
      -    * .context:  Removed the .context kludge.  This caused lots of problems
      -      when changing configurations because there is no easy way to get the
      -      system to rebuild the context.  Now, the context will be rebuilt
      -      whenever there is a change in either .config or the Makefile.
      -    * apps/builtin/registry:  Updated new built-in registration logic to handle
      -      cases where (1) old apps/.config is used, and (2) applications ared
      -      removed, not just added.
      -    * apps/examples/nettest/Makefile:  Fix an error that crept in during
      -      some of the recent, massive build system changes.
      -    * apps/builtin/Makefile:  Need to have auto-generated header files
      -      in place early in the dependency generation phase to avoid warnings.
      -      It is not important if they are only stubbed out header files at
      -      this build phase.
      -    * apps/examples/hidbkd: Now supports decoding of encoded special keys
      -      if CONFIG_EXAMPLES_HIDKBD_ENCODED is defined.
      -    * apps/examples/hidbkd:  Add support for decoding key release events
      -      as well.  However, the USB HID keyboard drier has not yet been
      -      updated to detect key release events.  That is kind of tricky in
      -      the USB HID keyboard report data.
      -    * apps/examples/wlan: Remove non-functional example.
      -    * apps/examples/ostest/vfork.c:  Added a test of vfork().
      -    * apps/exampes/posix_spawn: Added a test of posix_spawn().
      -    * apps/examples/ostest:  Extend signal handler test to catch
      -      death-of-child signals (SIGCHLD).
      -    * apps/examples/ostest/waitpid.c:  Add a test for waitpid(), waitid(),
      -      and wait().
      -    * builtin/binfs.c:  Add hooks for dup() method (not implemented).
      -    * builtin/exec_builtin.c, nshlib/nsh_parse.c, and nshlib/nsh_builtin.c:
      -      NSH now supports re-direction of I/O to files (but still not from).
      -    * builtin/binfs.c:  Greatly simplified (it is going to need to be
      -      very lightweight).  Now supports open, close, and a new ioctl to recover
      -      the builtin filename.  The latter will be needed to support a binfs
      -      binfmt.
      -    * builtin/binfs.c:  Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
      -      CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
      -    * apps/include/builtin.h:  Some of the content of
      -      apps/include/apps.h moved to include/nuttx/binfmt/builtin.h.
      -      apps/include/apps.h renamed builtin.h
      -    * apps/builtin/exec_builtins.c:  Move builtin
      -      utility functions from apps/builtin/exec_builtins.c to
      -      binfmt/libbuiltin/libbuiltin_utils.c
      -    * apps/nshlib/nsh_mountcmds.c:  The block driver/source
      -      argument is now optional.  Many files systems do not need
      -      a source and it is really stupid to have to enter a bogus
      -      source parameter.
      -    * apps/nshlib/nsh_fileapp.c:  Add the ability to execute a file
      -      from a file system using posix_spawn().
      -    * apps/builtin/: Extensions from Mike Smith.
      -    * apps/examples/ftpd/Makefile: Name ftpd_start is not the name of
      -      the entrypoint.  Should be ftpd_main (from Yan T.)
      -    * apps/netutils/telnetd/telnetd_driver: Was stuck in a loop if
      -      recv[from]() ever returned a value <= 0.
      -    * apps/examples/nettest and poll:  Complete Kconfig files.
      -    * apps/examples/ostest/waitpid.c:  Need to use WEXITSTATUS()
      -      to decode the correct exit status.
      -    * apps/system/usbmonitor:  A daemon that can be used to monitor USB
      -      trace outpout.
      -    * apps/nshlib/nsh_usbdev.c, nsh_consolemain.c, nsh_session.c, nsh_script.c:
      -      Add support for a login script.  The init.d/rcS script will be executed
      -      once when NSH starts; the .nshrc script will be executed for each session:
      -      Once for serial, once for each USB connection, once for each Telnet
      -      session.
      -    * apps/system/readline: Correct readline() return value.  Was not
      -      any returning special values when end-of-file or read errors
      -      occur (it would return an empty string which is not very useful).
      +    * apps/builtin/exec_builtin.c:  Now uses task_spawn() to start
      +      builtin applications.
      +    * Type of argv has changed from const char ** to char * const *
      +    * apps/nshlib/nsh_parse.c:  Fix memory lead: Need to detach after
      +      creating a pthread.
      +    * apps/examples and nshlib:  Change name of _TCB to struct tcb_s to
      +      match NuttX name change.
      +    * apps/examples/ostest/restart.c:  Add a test case to verify
      +      task_restart().
      +    * apps/system/readline.c:  readline() now returns EOF on any failure
      +      (instead of a negated errno value).  This is because the underlying
      +      read is based on logic similar to getc.  The value zero was being
      +      confused with a NUL.  So if a NUL was received, the NSH session
      +      would terminate because it thought it was the end of file.
       
      -NxWidgets-1.5 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
      +NxWidgets-1.6 2013-03-15 Gregory Nutt <gnutt@nuttx.org>
       
      -    * NxWidgets::CGraphicsPort::move():  Fix typo bug in bounding rectangle
      -      calculation (from Petteri Aimonen).
      -    * NxWM::CScrollingPanel::scrollChildren(): Avoid unnecessary redraws in
      -      CScrollingPanel (contributed by Petteri Aimonen).
      -    * NxWM::CCycleButton:  Remove the separator from CCycleButton. It draws in
      -      wrong place, and doesnt look very good in the correct place either.
      -      (from Petteri Aimonen).
      -    * NxWidgets::CGraphicsPort: Many times we only want a constant background.
      -      In that case the old code fills the background, reads it back, renders
      -      the text and then writes it back. When used with LCD's (instead of
      -      framebuffers) this causes unnecessary delay and screen flicker.
      -      This commit adds a variant of drawText that takes background color,
      -      so that the background and text can both be rendered at one go.
      -      The old functions still function as before (Petteri Aimonen).
      -    * NxWidgets::CLabel: The label was drawn as a single rectangular region,
      -      then a text was added to the on top of this.  The result is that the
      -      text would flicker when the CLabel was updated. With this change, the
      -      two step update is replaced with a five step update:  The background
      -      is updated as four rectangulear regions (leaving the previous text in
      -      place), then the new text is updated.  This eliminates the flicker
      -      (Petteri Aimonen).
      -    * Kconfig: Many NxWidgets/NxWM settings do not have meaningful, generic
      -      default values.  Colors, for example, depend on pixel depth.  Some
      -      geometry settings depending on other geometry settings.  Font IDs are
      -      not know-able by the configuration system.  etc.  In these cases, it
      -      is best if the settings are just not undefined so that the system can
      -      calculate a reasonable default.  however, if no default is provided
      -      in the .config file, mconf will complain and generate errors.  So work
      -      around this, I added several "enabling" settings to override the
      -      default setting.  This is awkward and I preferred the configuration as
      -      it was before, but this avoids the mconf errors and warnings.
      -    * UnitTests:  Changed occurrences of lib_rawprintf() and lib_lowprintf()
      -      to match recent changes to NuttX (will be in NuttX-6.25)
      -    * CGraphicsPort::_drawText:  Renamed from CGraphicsPort::drawText in order
      -      to eliminate some naming collisions when overloaded in some configurations
      -      (i.e., when both bool and nx_pixel_t are uint8_t).  From Petteri Aimonen.
      -    * CNxWidgets::drawContents: Change base drawContents from a do-nothing
      -      function to a function that fills the widget with the background color.
      -      This is useful when using CNxWidgets as a "panel" , i.e. a container
      -      for other widgets. Subclasses will override drawContents and decide
      -      themselves how to draw the background.
      -    * CNxWidgets::CTabPanel:  A new widget contributed by Petteri Aimonen.
      -      This widget provides a tab panel, which has a button bar at the top
      -      and panels below it. Pressing a button will select the corresponding
      -      panel.
      +    * Type of argv[] has changed from const char ** to char * const *
      +    * NXWidgets::CNxWidget:  Add an inline function to get the current style.
      +    * NxWM::CTaskBar: Make a some methods of CTaskbar virtual to allow
      +      customizations.  From Petteri Aimonen.
      +    * NXWidgets::CCycleButton: Make CCycleButton change state in onPreRelease().
      +      This way the new value is already available when a listener gets the
      +      action event.  From Petteri Aimonen.
      +    * NxWidgets/tools/bitmap_converter.py: Fix bitmap_converter.py so that
      +      it works with indexed input images.
      +    * NxWidgets::CLabel: Fix backward conditional compilation in the
      +      "flicker free" logic.
      +    * NxWidgets::CNxTimer:  Previously repeated timers were re-enabled after
      +      the timer action event. Consequently, if the action event handler tried
      +      to stop the timer, the request would be ignored.  Changes the order
      +      so that the timer is re-enabled before the callback.  There is still
      +      no risk of re-entrancy, because everything executes on the USRWORK work
      +      queue.  From Petteri Aimonen.
      +    * NxWidgets::CMultiLineTestBox: Fix text placement error.  From Petteri
      +      Aimonen.
      +    * NxWidgets::CWidgetControl:  Added another semaphore, boundssem, which
      +      is set as soon as the screen bounds are known.  This corrects two
      +      problems:
      +      1) Due to the way nxgl_rectsize computes the size, it will never
      +         be 0,0 like CWidgetControl expects. Therefore the size is considered
      +         valid even though it has not been set yet.
      +      2) After the check is fixed to test for > 1, NxWM window creation will
      +         hang. This is due to the fact that it uses the screen bounds for
      +         determining window size. This was being blocked on geosem, which
      +         is only posted after the size has been set.
      +      From Petteri Aimonen.
      +    * NxWidgets::CImage:  Two enhancements:
      +      1) Allow changing the bitmap even after the control has been created.
      +      2) Allow giving 'null' to have the control draw no image at all.
      +      From Petteri Aimonen.
      +    * NxWM::CTaskBar:  Allow windows with null icon. This makes sense for e.g.
      +      full screen windows.  From Petteri Aimonen.
      +    * NxWM::CApplicationWindow:  Add config options to override NxWM
      +      stop/minimize icons.  From Petteri Aimonen.
      +    * NwWM::CStartWindow, NxWM::CWindowMessenger: Get rid of the start window
      +      thread. Instead, handle all events through the USRWORK work queue.
      +      For me, this was necessary because I would open some files in button
      +      handlers and close them in NxTimer handlers. If these belonged to
      +      different tasks, the close operation would fail.  Further benefits:
      +      + Gets rid of one task and message queue.
      +      + Reduces the amount of code required
      +      + Decouples CStartWindow from everything else - now it is just a window
      +        with application icons, not an integral part of the event logic.
      +      + All events come from the same thread, which reduces the possibility of
      +        multithreading errors in user code.
      +      + The user code can also send events to USRWORK, so that everything gets
      +        serialized nicely without having to use so many mutexes.
      +      Drawbacks:
      +      - Currently the work state structure is malloc()ed, causing one allocation
      +        and free per each input event. Could add a memory pool for these later, but
      +        the speed difference doesn't seem noticeable.
      +      - The work queue will add ~50 ms latency to input events. This is however
      +        configurable, and the delay is anyway short enough that it is unnoticeable.
      +      From Petteri Aimonen.
       
       uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
       
      @@ -4264,31 +4055,11 @@ uClibc++-1.0 2011-11-05 <gnutt@nuttx.org>
             C++ library for NuttX.  This package was contributed ay Qiang Yu and
             David for the RGMP team.
       
      -buildroot-1.11 2011-11-05 <gnutt@nuttx.org>
      +buildroot-1.12 2011-13-15 <gnutt@nuttx.org>
       
      -    * configs/avr-defconfig-4.3.3 - Added --enable-long-long as a GCC
      -      option.
      -    * configs/avr-defconfig-4.5.2 - New configuration.
      -    * Config.in and almost all configurations in configs/ - Changed the
      -      default nuttx path to $(TOPDIR)/../../nuttx
      -    * Misc files.  Patch provided by Gerd v. Egidy that solves the following
      -      problems
      -      - binutils 2.21 is not available on the gnu servers anymore, they replaced
      -        it with 2.21.1
      -      - there is some assembler error when compiling gcc for arm, gcc bugzilla
      -        43999
      -      - you can't build nuttx for cortex m3/m4 because of a missing instruction
      -        in the assembler, binutils bugzilla 12296
      -    * Add support for binutils 2.22 and GCC 4.6.3.
      -    * Change name of all tools from xxx-elf to xxx-nuttx-elf
      -    * Added an ARM EABI GCC 4.6.3 configuration (tool name is arm-nuttx-eabi-).
      -    * ldnxflat: Add support for the R_ARM_REL32 relocation.  This relocation
      -      type was not generated by GCC/LD prior to gcc-4.6.3
      -    * R_ARM_REL32 logic is conditionally disabled because it has not been
      -      tested.
      -    * ldnxflat: Correct a memory allocation error that could cause written
      -      past the end of allocated memory.  Partial restoration of R_ARM_REL32
      -      logic.  There are lots of issues that I still do not understand here.
      +    * Fix typo toolchain/gdb/Config.in that prevented GDB 7.4 from building
      +      (from Ken Bannister).
      +    * Add support for a Cortex-M0 toolchain based on GCC 4.6.3.
       
       pascal-3.0 2011-05-15 Gregory Nutt <gnutt@nuttx.org>
       
      diff --git a/nuttx/ReleaseNotes b/nuttx/ReleaseNotes
      index 4e8768b96..b8382f0ac 100644
      --- a/nuttx/ReleaseNotes
      +++ b/nuttx/ReleaseNotes
      @@ -3760,3 +3760,243 @@ Bugfixes (see the ChangeLog for details).  Some of these are very important:
             - Others as detailed in the ChangeLog: HID keyboard, LPC17xx bit
               definitions, strndup(), PL2303, SYSLOG error handling, AT25,
               apps/examples.
      +
      +NuttX-6.26
      +^^^^^^^^^^
      +
      +The 93rd release of NuttX, Version 6.26, was made on March 15, 2013,
      +and is available for download from the SourceForge website.  Note
      +that release consists of two tarballs:  nuttx-6.26.tar.gz and
      +apps-6.26.tar.gz.  Both may be needed (see the top-level nuttx/README.txt
      +file for build information).
      +
      +This release corresponds with SVN release number: r5745
      +
      +Note that all SVN information has been stripped from the tarballs.  If you
      +need the SVN configuration information, you should check out directly from
      +SVN.  Revision r5745 should equivalent to release 6.26 of NuttX:
      +
      +    svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
      +
      +Or (HTTP):
      +
      +    svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
      +
      +Additional new features and extended functionality:
      +
      +    * OS Initialization:
      +
      +      - Add an additional call-out to support board-specific driver
      +        initialization during the boot-up phase (available with
      +        CONFIG_BOARD_INITIALIZE=y).
      +
      +    * Tasking:
      +
      +      - New interface task_spawn() that is like posix_spawn(), but uses
      +        entry point addresses like task_create().
      +      - Additional data restructuring as a continuation of the task group
      +        changes of NuttX 6.25.  These data structures were moved from the
      +        TCB structure into the task group:  pthread join data,
      +        atexit/on_exit callbacks, waitpid data structures, and message
      +        queues.
      +      - TCBs for tasks and pthreads are now separate structures.  This
      +        saves a little memory since tasks do not have to carry the overhead
      +        for threads and vice versa.
      +
      +    * Kernel Build:
      +
      +      - Extensive changes were made to support the kernel build mode.  In
      +        this mode, NuttX is built as a monolithic kernel.  NuttX is built
      +        as a separate kernel mode "blob" and the applications are built
      +        as a separate user mode "blob".  The kernel runs in kernel mode and
      +        the applications run in user mode (with the MPU restricting user
      +        mode accesses).  Access to the kernel from the user blob is only
      +        via system calls (SVCalls).
      +      - Extensive changes were made to the syscall, SVCall, and trapping
      +        logic.  Many internal interfaces were renamed.
      +      - The memory manager was extended to support both kernel- and user-
      +        mode allocations.  Logic within the kernel needs to use the
      +        correct kernel- or user-space allocator, depending upon the user
      +        of the allocated memory.
      +      - The user-space blob now contains a header built in at the beginning
      +        of the block that provides the same information that was previously
      +        provided by a kludgy, auto-generated header file (user_map.h).
      +      - Basic support implemented for the ARMv7-M family with fragments
      +        also implemetned for the ARMv6-M and MIPS32 families.
      +      - Kernel build supported added for the LPC17xx Open1788 and for
      +        the Atmel SAM3U-EK board.  All testing is being performed on the
      +        Open1788 board.
      +
      +    * Signals:
      +
      +      - Delivery of signals to threads within a task group is now compatible
      +        with the way that signals are delivered to threads within a process.
      +
      +    * Drivers:
      +
      +      - Add a driver for the SST29VF NOR FLASH parts.
      +      - USB device trace/debug feature extended to decode device-specific
      +        trace events to make the trace output more readable (from Petteri
      +        Aimonen).
      +      - USB MSC device driver can not support names of differing sizes
      +        in the USB descriptor and the SCSI fields (from Petteri Aimonen).
      +      - Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on
      +        the same bus as other SPI devices.  Frequency is reset each time
      +        that the MMC/SD SPI has the bus locked. (from Petteri Aimonen).
      +
      +    * ARMv6-M (Cortex-M0):
      + 
      +       - Added support for the ARM Cortex-M0 family.
      +
      +    * nuvoTon NUC120:
      + 
      +       - Added support for the nuvoTon NUC120 MCU (Cortex-M0).
      +
      +    * nuvoTon NUC120 Boards:
      + 
      +       - Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0).
      +
      +    * LPC17xx:
      +
      +      - Added support for the LPC177x and LPC178x families.  Most of this is
      +        the work of Rommel Marcelo.
      +
      +    * LPC17xx Boards:
      +
      +      - Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769.
      +        From Rashid.
      +      - The port for the WaveShare Open1788 board is now functional.  Basic
      +        OS test and NuttShell (NSH) configurations are functional. More
      +        driver development and testing is needed (from Rommel Marcelo).
      +
      +    * LPC17xx Drivers:
      +
      +      - Added an SD card MSI driver for the LPC178x.  The driver is marginally
      +        functional but requires DMA capability to be reliable.
      +
      +    * STM32
      +
      +      - Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like
      +        peripherals).
      +
      +    * STM32 Boards
      +
      +      - Added support the STMicro STM32F3Discovery board (STM32 F3).
      +
      +    * Stellaris LM3S/LM4F
      +
      +      - Basic support for the LM4F120 family is in place, but untested (mostly
      +        from Jose Pablo Carballo).
      +
      +    * Stellaris LM4F Boards
      + 
      +      - Add support for the LM4F120 LaunchPad (untested).
      +
      +    * Networking:
      +
      +      - select() should now allocate a little less memory.
      +
      +    * Memory Management:
      +
      +      - Extended to support multiple heaps.  This is used as part of
      +        the kernel build in order to support separater user- and
      +        kernel-mode heaps.
      +      - The stand-alone memory manger test had to be removed.  It
      +        was too entangled and made extension of the memory manager
      +        nearly impossible.  This is a loss.
      +
      +    * Build System:
      +
      +      - Several configurations converted to use the kconfig-frontends
      +        configuration tool.  There are still many more that need to
      +        be converted.
      +
      +    * C Library:
      +
      +      - Move the workqueue logic into the C library.  There is now a
      +        special user-space version of the work queue (which will only
      +        be used with a NuttX kernel build).
      +      - Implementation of itoa() contributed by Ryan Sundberg.
      +
      +    * Applications:
      +
      +      - The NSH builtin task logic now uses task_spawn() to start builtin
      +        applications.
      +      - The OS test now includes a test cased to verify task_restart().
      +
      +Efforts In Progress.  The following are features that are partially
      +implemented but present in this release.  Most are expected to be fully
      +available in NuttX 6.27.
      +
      +    * LM4F120 LaunchPad port.  Code is in place, but nothing has been tested.
      +
      +    * WaveShare Open1788 port.  This port as actually complete and
      +      functional. However, there is still ongoing development and
      +      testing of drivers.
      +
      +    * Kernel Build.  Much progress has been made, but there kernel build is
      +      not yet fully functional due to several user resources that are not yet
      +      properly disentangled from the kernel blob.
      +
      +    * Conversion of old configurations to use the kconfig-frontends
      +      tool is an ongoing effort that will continue for some time.
      +
      +Bugfixes (see the ChangeLog for details).  Some of these are very important:
      +
      +    * Tasking:
      +
      +      - The wrong PID was being signalled with SIGCHILD.  It should be
      +        the PID of the task that create the task group, not the ID of
      +        the last thread to leave the task group.
      +      - Added logic so that some internal resources and states are recovered
      +        when tasks are deleted or restarted.  Handle cases where there are
      +        outstanding timed events pending when tasks are deleted or restarted.
      +
      +    * ARMv7-M:
      +
      +      - Several fixes to the MPU control logic.
      +
      +    * Drivers:
      +
      +      - Removable serial drivers race conditions fixed.
      +      - MAX11802 timing bug (from Petteri Aimonen).
      +
      +    * STM32 Drivers:
      +
      +      - Handle cases were SPI DMA logic fails if sem_wait is awakened
      +        by a signal.  Need to clear error flags to prevent corruption of
      +        subsequent transfers.  Also, bit count should not be changed while
      +        the SPI peripheral is enabled (from Petteri Aimonen).
      +      - Fixes to the OTG FS device driver from Petteri Aimonen.
      +      - Fix typos in DMA register header file (from Yan T.)
      +
      +    * Graphics:
      +
      +      - Correction to the hyphen in the SANS 17x22 font (from Petteri
      +        Aimonen).
      +
      +    * Networking:
      +
      +      - Corrected errors in the socket poll/select logic.  Additional
      +        state logic was needed to detect if the socket is still connected
      +        before starting the poll wait. (bug reported by Qiang Yu).
      +
      +    * Memory Management:
      +
      +      - mallinfo() should hold the memory manager semaphore (from Petteri
      +        Aimonen.
      +
      +    * Build System:
      +
      +      - Resolved several build errors reported by Mike Smith.
      +
      +    * Applications:
      +
      +      - Fixed an NSH memory leak:  Needed to detach after creating each
      +        pthread.
      +      - readline() now returns EOF on any failure (instead of a negated
      +        errno value).  This is because the underlying read is based on
      +        logic similar to getc.  The value zero  (meaning end-of-file)
      +        was being confused with a NUL.  So if a NUL was received, the
      +        NSH session would terminate because it thought it was the end of
      +        file.
      diff --git a/nuttx/libc/stdio/lib_sscanf.c b/nuttx/libc/stdio/lib_sscanf.c
      index 77a6cf212..3666cbf2b 100644
      --- a/nuttx/libc/stdio/lib_sscanf.c
      +++ b/nuttx/libc/stdio/lib_sscanf.c
      @@ -197,6 +197,11 @@ int vsscanf(FAR char *buf, FAR const char *fmt, va_list ap)
         noassign = false;
         lflag    = false;
       
      +  /* NOTE that there is a flaw in this loop logic:  The fmt string often
      +   * terminates with %n which would have to be processes at the end of the
      +   * buf string.  That won't happen here.
      +   */
      +
         while (*fmt && *buf)
           {
             /* Skip over white space */
      -- 
      cgit v1.2.3