Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • 7-DAY TOP DOWNLOAD
    #
    Program
    Psiphon 3
    2,669 downloads
    LibreOffice 3.6.6 /
    4.0.3

    1,103 downloads
    Wine 1.4.1 / 1.5.30
    1,103 downloads
    BackTrack 5 R3
    988 downloads
    Adobe Flash Player
    for Linux
    11.2.202.258

    950 downloads
    Red Hat Linux 9
    939 downloads
    Linux Mint 14.1 / 15
    RC

    821 downloads
    OpenMandriva
    20130513

    701 downloads
    Ubuntu 10.10
    672 downloads
    Red Hat Enterprise
    Linux 6.4

    661 downloads
    MOST POPULAR DISTROS
    #
    Distribution
    PCLinuxOS 2013.04
    User rating: 4.8/5
    Votes: 367
    OpenMandriva
    20130513

    User rating: 4.4/5
    Votes: 618
    Ubuntu 9.10
    User rating: 4.4/5
    Votes: 266
    Clonezilla LiveCD
    2.1.1-25 / 2.1.2-3

    User rating: 4.3/5
    Votes: 255
    BackTrack 5 R3
    User rating: 4.3/5
    Votes: 565
    Fedora 18
    User rating: 4.3/5
    Votes: 610
    openSUSE Linux 12.3
    / 13.1 Milestone 1

    User rating: 4.2/5
    Votes: 467
    Ubuntu 12.04.2 LTS
    User rating: 4.2/5
    Votes: 663
    Ubuntu 10.04.4 LTS
    User rating: 4.0/5
    Votes: 281
    Linux Mint 14.1 / 15
    RC

    User rating: 4.0/5
    Votes: 352
    Home > Linux > System > Operating Systems > Other > NuttX > Changelog

    NuttX 6.27 - Changelog


    What's new in NuttX 6.27:

    April 30th, 2013

    · This version adds verified kernel build support.
    · In this (optional) buildmode, 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".
    · Extended platform support includes support for the WaveShare Open1788 (NXP LPC1788) with the LCD frame-buffer driver, SDRAM, and DMA SD card support, and support for the Kinetis L Cortex-M0+ family and a (minimal) port for the Freedom KL25Z board.
    · Architecture support for the STMicro STM32F4727/737 has been added.



    What's new in NuttX 6.26:

    March 16th, 2013

    · 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 interfacetask_spawn()that is likeposix_spawn(), but uses entry point addresses liketask_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\: Moveatexitandon_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\: Movewaitpiddata data structures to task group. Callers ofwaitpid()` are now only awakened when the 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_TCBtostruct 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 and 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 recovery 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 fortask_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/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*\: IfCONFIG_BOARD_INITIALIZEis defined, then an additional initialization function calledboard_initialize()will be called just afterup_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/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.
    · Build Fixes: 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).



    What's new in NuttX 6.25:

    February 2nd, 2013

    OS Initialization:
    · Removed support for CONFIG_BUILTIN_APP_START. This is not really a useful feature and creates a violation of the OS layered architecture.

    Task Creation:
    · 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().
    · 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().
    · 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.

    Task Parentage:
    · 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.
    · Added support for remember the parent "task group" when a new task is started.
    · Added optional support to record the membership of each thread in the "task group".
    · 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.
    · 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.
    · 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.
    · New interfaces waitid() and wait() are also enabled when SIGCHLD is enabled.

    File System:
    · 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.
    · 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().
    · Added logic based on SIGCHLD to automatically unload and clean-up after running a task that was loaded into memory.

    Binary Formats:
    · 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().

    Drivers:
    · 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.

    ARMv7-M:
    · 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.

    STM32 Drivers:
    · 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.

    STM32 Boards:
    · New configuration to support the UG-2864HSWEG01 OLED on the STM32F4Discovery board.
    · Added a posix_spawn() test configuration for the STM32F4Discovery.

    LM3S/LM4F:
    · 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).

    LM3S Boards:
    · Added scripts and documentation to use OpenOCD with the LM3S (from Jose Pablo Carballo).

    LPC176x/LPC178x:
    · 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.

    LPC176x/LPC178x Boards:
    · Added a configuration to support the Wave Share Open1788 board. This is still a work in progress by Rommel Marcelo.

    LPC2148 Boards:
    · Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 and the UG_2864AMBAG01 OLED).
    · Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01).

    Simulator:
    · Add an nxlines configuration for the simulator.

    Networking:
    · Add logic to work around delayed ACKs by splitting packets (contributed by Yan T.).
    · Split net_poll() to create the internal interface psock_poll().

    LCDs:
    · Added support for LCD1602 alphanumeric LCD (HD4468OU controller).

    Graphics:
    · Added 5x8 monospace font. This tiny font is useful for graph labels and for small bitmapped display. Contributed by Petteri Aimonen.

    Build System:
    · Add an options to better manage toolchain prefixes.
    · 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?"

    Kconfig Files:

    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

    Tools:
    · 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).

    Applications:

    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.
    · Removed non-functional wlan example.

    Bugfixes (see the change log for details). Some of these are very important:

    Tasking:
    · 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.

    Signals:
    · sigtimedwait() would return a bad signal number if the signal was already pending when the function was called.

    Drivers:
    · 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.

    STM32 Drivers:
    · STM32 FLASH driver counting error (from Freddie Chopin).
    · STM32 F4 maximum SPI frequency was wrong (corrected by Petteri Aimonen).

    STM32 Boards:
    · Due to cloning of untested code, the logic to control on-board LEDs did not work on any STM32 boards.
    · Serial devices number /dev/ttyS0-5 is there is a serial console, but /dev/ttyS1-6 if there is no serial console.

    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).

    File Systems:
    · Several FAT-related bugs fixed by Petteri Aimonen.

    Networking:
    · 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



    What's new in NuttX 6.24:

    December 21st, 2012

    · arch/arm/src/stm32: Support for STM32F100 high density chips added by Freddie Chopin.

    · configs/stm32f100_generic: Support for generic STM32F100RC board contributed by Freddie Chopin.

    · arch/arm/src/stm32_otgfsdev.c: Partial fix from Petteri Aimonen.

    · *drivers/lcd/ug-2864ambag01.c and `include/nuttx/lcd/ug_2864ambag01.h: LCD driver for the Univision OLED of the same name (untested on initial check-in).

    · configs/stm32f4discovery/nxlines: Configure to use mconf/Kconfig tool.

    · configs/stm32f4discovery/src/up_ug2864ambag01.c: Board-specific initialization for UG-2864AMBAG01 OLED connecte to STM32F4Disovery.

    · libxx/libxx_stdthrow.cxx: Exception stubs from Petteri Aimonen.

    · configs/stm32f4discovery/src/up_ug2864ambag01.c: Driver has been verified on the STM32F4Discovery platform. Some tuning of the configuration could improve the presentation. Lower resolution displays are also more subject to the "fat, flat line bug" that I need to fix someday. See http://www.nuttx.org/doku.php?id=wiki:graphics:nxgraphics for a description of the fat, flat line bug.

    · libc: Renamed nuttx/lib to nuttx/libc to make space for a true lib/ directory that will be forthcoming. Also rename libraries: liblib.a -> libc.a, libulib.a -> libuc.a, libklib.a -> libkc.a, liblibxx.a -> libcxx.a. (I will probably, eventually rename libxx to libcxx for consistency)

    · Makefile, lib/: A new, empty directory that will hold generated libraries. This simplifies the library patch calculations and lets me get rid of some bash logic. The change is functional, but only partially complete; additional logic is needed in the arch/*/src/Makefile's as well. Right now that logic generate multiple library paths, all pointing to the lib/ directory.

    · arch/*/src/Makefile: Now uses only the libraries in lib/ Replace bash fragments that test for board/Makefile.

    · Makefile.win: The beginnings of a Windows-native build. This is just the beginning and not yet ready for prime time use.

    · configs/stm32f4discovery/winbuild: This is a version of the standard NuttX OS test, but configured to build natively on Windows. Its only real purpose is to very the native Windows build logic.

    · tools/mkdeps.bat and tools/mkdeps.c: mkdeps.bat is a failed attempt to leverage mkdeps.sh to CMD.exe. It fails because the are certain critical CFLAGvalues that cannot be passed on the CMD.exe command line (like '='). mkdeps.c is a work in progress that will, hopefully, replace both mkdeps.sh and mkdeps.bat.

    · tools/Config.mk: Centralize the definition of the script that will be used to generated header file include paths for the compiler. This needs to be centralized in order to support the Windows native build.

    · tools/incdir.bat: A replacement for tools/incdir.sh for use with the the Windows native build.

    · Makefile.unix: The existing top-level Makefile has been renamed Makefile.unix.

    · Makefile: This is a new top-level Makefile that just includes either Makefile.unix or Makefile.win

    · configs/stm3240g-eval/src: Qencoder fixes from Ryan Sundberg.

    · arch/arm/src/stm32/stm32_qencoder.c: TIM3 bug fix from Ryan Sundberg.

    · tools/mkromfsimg.sh: Correct typo in an error message (Ryan Sundberg)

    · arch/*/src/Makefile: Remove tftboot install and creation of System.map for Windows native build. The first is a necessary change, the second just needs re-implemented.

    · configs/mirtoo: Update Mirtoo pin definitions for Release 2. Provided by Konstantin Dimitrov.

    · Fixed an uninitialized variable in the file system that can cause assertions if DEBUG is on (contributed by Lorenz Meier).

    · Config.mk: Defined DELIM to be either / or \, depending upon CONFIG_WINDOWS_NATIVE. This will allow me to eliminate a lot of conditional logic elsewhere.

    · nuttx/graphics: One a mouse button is pressed, continue to report all mouse button events to the first window that received the the initial button down event, even if the mouse attempts to drag outside the window. From Petteri Aimonen.

    · nuttx/graphics/nxmu/nx_block.c: One more fix to the NX block message logic from Petteri Aimonen.

    · include/nuttx/wqueue.h: Some basic definitions to support a user-space work queue (someday in the future).

    · graphics/nxmu: Add semaphores so buffers messages that send buffers will block until the buffer data has been acted upon.

    · graphics/nxmw: Extended the blocked messages to cover mouse movement and redraw events. These will also cause problems if sent to a window while it is closing.

    · arch/several: Change UARTs are enabled for i.MX, LM3S, ez80, and M16C to match how they are enabled for other architectures.

    · configs/ez80f910200kitg: Convert to use mconf configuration.

    · sched/pause.c: Implements the POSIX pause() function.

    · ez80: Lots of changes to ez80 configurations and build logic as I struggle to get a clean Windows build (still not working).

    · configs/cloudctrl: Darcy Gong's CloudController board. This is a small network relay development board. Based on the Shenzhou IV development board design. It is uses the STM32F107VC MCU.

    · arch/arm/src/stm32_serial.c and stm32_lowputc.c: Added optional RS-485 direction bit control. From Freddie Chopin.

    · Lots of build files: ARMv7-M and MIPS32 Make.defs now include a common Toolchain.defs file that can be used to manage toolchains in a more configurable way. Contributed by Mike Smith

    · configs/stm32f4discovery/winbuild and configs/cloudctrl: Adapted to use Mike's Toolchain.defs.

    · tools/configure.sh: Adapted to handle paths and setenv.bat files correctly for native Windows builds.

    · More of build files: AVR and AVR32 Make.defs now include a common Toolchain.defs file that can be used to manage toolchains in a more configurable way. Contributed by Mike Smith

    · tools/incdir.sh and incdir.bat: Add -s option to generate system header file paths.

    · nuttx/arch/arm/src/arm/Toolchain.defs: Add support for more ARM toolchains (from Mike Smith).

    · arch/arm/src/stm32/stm32f40xxx_rcc.c: Enabled FLASH prefetch (from Petteri Aimonen).

    · graphics/nxtk/nxtk_filltrapwindow.c: Correct an offset problem (from Peterri Aimonen).

    · graphics/nxglib/nxglib_splitline.c: Fix error in drawing of near horizontal lines (from Peterri Aimonen).

    · sched/task_exithook.c: Missing right bracket with certain conditional compilation (thanks James Goppert).

    · arch/arm/srch/stm32/stm32_otgfshost.c: Replace timeout handling; use system tick instead of frame counter. The frame counter gets reset to zero at 0x3fff making it error prone.

    · arch/arm/src/stm32/stm32f20xx_rcc.c and stm32f40xx_rcc.c: Added option CONFIG_STM32_FLASH_PREFETCH. FLASH prefetch will now only be enabled if this option is selected.

    · confgs/ez80f910200zco/ostest: Now uses Kconfig/mconf configuration tool. Updated to build in native Windows environment. Other ez80f910200zco build scripts also updated.

    · configs/z8f64200100kit/ostest: Update to same level as ez80 configurations.

    · nuttx/configs/z8f64200100kit/scripts/setenv.bat: Add support for native Windows build.

    · nuttx/arch/arm/src/lpc17xx/lpc17_i2c.c: Resources not being released when I2C is uninitialized.

    · cloudctrl/src/up_chipid.c and shenzhou/src/up_chipid.c: Add functions to get chip ID. Contributed by Darcy Gong. These should not be board-dependent, but should be in arch/arm/src/stm32 where they can be used from any board.

    · sched/work_thread.c: Fix backward conditional compilation. This might has caused a memory leak. From Freddie Chopin.

    · configs//Make.defs: Fix typo -wstrict-prototypes should be -Wstrict-prototypes (From Denis Carilki).

    · arch/arm/src/calapyso/calypso_keypad.c: Add Calypso keypad driver. From Denis Carilki.

    · z8encore000zco/ostest and z8f64200100kit/ostest: Converted to use Kconfig/mconf configuration tool.

    · arch/arm/src/armv7-m/up_exception.S: Missing curly braces for push/pop. From Freddie Chopin.

    · z8encore000zco/ostest and z8f64200100kit/ostest: Can now be modified to support the Windows native builds (see corresponding README.txt files).

    · configs/z16f2800100zcog: All configurations updated to use the ZDS-II 5.0.1 toolchain.

    · *configs/z16f2800100zcog - All configurations updated to useKconfig/mconf` configuration tools.

    · configs/z16f2800100zcog/ostest: Now supports a native Windows build (other ZNEO configs may also support the native build, but this has not been verfiied).

    · include/nuttx/input/keypad.h, arch/arm/src/calypso/calypso_keypad.c, and configs/compal_e99/nsh_highram: First cut at a standard keypad interface definition. Contributed by Denis Carikli.

    · libc/stdlib/lib_rand.c: Always add one to result congruential generators to avoid the value zero. Suggested by Freddie Chopin.

    · tools/b16.c: Fixed precision math conversion utility.

    · graphics/nxglib/nxglib_splitline.c: Fix the "fat, flat line bug"

    · arch/z80/src/*/Toolchain.defs: Add dummy Toolchain.defs files for the z80 family.

    · configs/z80sim/ostest: Converted to build with the Kconfig/mconf tool. Current configuration failed to build for me (Ubuntu 12.10, SDCC 3.2.0 pre-built for Linux) due to a glibc memory corruptionerror in SDCC.

    · configs/z80sim/ostest: Default is now the Windows native build. See configs/z80sim/README.txt for instructions to convert back to a Linux or Cygwin build.

    · arch/z80/src/Makefile.sdccw: Renamed makefiles with extensions zdiil, zdiiw, sdccl, and sdccw for the ZDS-II vs SDCC compilers and for the POSIX vs Windows native builds.

    · nuttx/drivers/mtd/ftl.c: Fix for the flash translation layer. Short unaligned writes were buggy. From Petteri Aimonen.

    · nuttx/libc/math/lib_round*.c: Add rounding functions to the math library. Contributed by Petteri Aimonen.

    · include/cxx/cstdlib: Add stroul(). From Petteri Aimonen.

    · arch/*/include/limits.h: Change signed minimum values from, for example, (-128) to (-127 - 1) to avoid overflows under certain conditions. From Peterri Aimonen.

    · graphics/nxtk/nxtk_subwindowmove.c: Previously it was very difficult to do e.g. "scroll by dx, dy". When given the full window area, nxtk_subwindowmove() would clip the offset always to 0,0. It makes more sense for it to clip the source area and not modify the offset. From Petteri Aimonen.

    · graphics/nxtk/nxtk_getwindow.c: Clipping would change the offset of returned data, and caller has no way to know what the new offset would be. This messes up font drawing when the text is partially out of window, e.g. when scrolling. Also from Petteri Aimonen.

    · include/stdbool.h: Can now be disabled for C++ files if CONFIG_C99_BOOL8 is defined. CONFIG_C99_BOOL8 indicates (1) that the sizeof(_Bool) is one in both C and C++, and (2) tat the C compiler is C99 and supports the _Bool intrinsic type. Requested by Freddie Chopin.

    · include/stdlib/lib_rand.c: Various additional changes so that the integer value zero can be returned. Requested by Freddie Chopin.

    · arch/z80/src/Makefile.sdcc*, z80/up_mem.h: Redesign Z80 build so that it no longer depends on Bash scripts.

    · configs/z80sim/nsh and pashello: Converted to (1) use the kconfig-frontends configuration tool, and (2) to build natively under Windows. The NSH configuration is verified; the pashello configuration needs a more TLC.

    · tools/copydir.sh: Rename tools/winlink.sh to tools/copydir.sh

    · tools/link.bat, unlink.bat, and copydir.bat: Add Windows counterparts to the link.sh, unlink.sh, and copydir.sh Bash scripts.

    · configs/z80sim/pashello: Now builds correctly.

    · configs/xtrs/ostest, nsh, and pashello: Converted to (1) use the kconfig-frontends configuration tool, and (2) to build natively under Windows.

    · drivers/serial/Kconfig and sched/Kconfig: Two names for same configuration: CONFIG_LOWLEVEL_CONSOLE is bogus and CONFIG_DEV_LOWCONSOLE is in the wrong Kconfig file. Moved to drivers/serial/Kconfig replacing CONFIG_LOWLEVEL_CONSOLE.

    · arch/z80/include/z180: Add header files for z180 chips. Initial versions are just clones of z80 header files.

    · arch/z80/src/z180: Add source files for z180 chips. Initial versions are just clones of z80 source files.

    · include/nuttx/arch.h: Add address environment control interfaces (for use with CPUs the provide MCUs and support process-like address environments).

    · arch/z80/src/z180/z180_mmu.*: Add MMU support for z180 tasks.

    · configs/p112: Add very basic board support and an examples/ostest configuration for the venerable P112 board.

    · sched/os_bringup.c: If CONFIG_PATH_INITIAL is defined, then the initial environment of the task started by os_bringup() will have the PATH environment variable defined to be that string.

    · binfmt/binfmt_exepath.c: If CONFIG_BINFMT_EXEPATH is defined, then this file will be built. It contains logic to search for regular files at the absolutes paths found in the current PATH environment variable setting. This is untested and not yet hooked into the binfmt exec() logic on initial check-in

    · binfmt/binfmt_loadmodule.c: load_module() will now traverse the PATH variable to locate files from their relative path.

    · include/nuttx/arch.h and arch/z80/src/z180/z180_mmu.c: Restructure the address environment interfaces so that they will better integrate with binfmt/.

    · binfmt/libelf/*, binfmt/libnxflat/* and other files: Integrate the address environment interfaces. If CONFIG_ADDRENV=y, then binfmt/ will now create an address environment for new tasks (instead of just malloc'ing the task memory).

    · configs/stm32f4discovery/elf: Enable support/test of the PATH to find executables using a relative path.

    · apps/examples/ostest/roundrobin.c: Replace large tables with algorithmic prime number generation. This allows the roundrobin test to run on platforms with minimal SRAM (Freddie Chopin).

    · apps/nshlib/nsh_dbgcmds.c: Add hexdump command to dump the contents of a file (or character device) to the console. Contributed by Petteri Aimonen.

    · apps/examples/modbus: Fixes from Freddie Chopin

    · apps/examples/modbus/Kconfig: Kconfig logic for FreeModBus contributed by Freddie Chopin.

    · Makefile, */Makefile: Various fixes for Windows native build. Now uses make foreach loops instead of shell loops.

    · apps/examples/elf/test/*/Makefile: OSX doesn't support install -D, use mkdir -p then install without the -D. From Mike Smith.

    · apps/examples/relays/Makefile: Reduced stack requirement (Darcy Gong).

    · apps/nshlib and apps/netutils/dhcpc: Extend the NSH ifconfig command plus various DHCPC improvements(Darcy Gong).

    · apps/nshlib/nsh_apps.c: Fix compilation errors when CONFIG_NSH_DISABLEBG=y. From Freddie Chopin.

    · Rename CONFIG_PCODE and CONFIG_FICL as CONFIG_INTERPRETERS_PCODE and CONFIG_INTERPRETERS_FICL for consistency with other configuration naming.

    · apps/examples/keypadtest: A keypad test example contributed by Denis Carikli.

    · apps/examples/elf and nxflat: If CONFIG_BINFMT_EXEPATH is defined, these tests will now use a relative path to the program and expect the binfmt/ logic to find the absolute path to the program using the PATH variable.



    What's new in NuttX 6.23:

    November 6th, 2012

    New features and extended functionality:

    · RTOS: If both atexit() and on_exit() are enabled, use on_exit() to implement atexit(). Updates for RGMP 4.0.
    · Binfmt: Add support for loading and executing ELF binary modules from a file system.
    · Drivers: Maxim MAX11802 touchscreen controller (Petteri Aimonen)
    · STM32 Driver: Implementation of /dev/random using the STM32 Random Number Generator (RNG).
    · STM32 Boards: ADC support for the Shenzhou IV board. Relay support for the Shenzhou IV board (both by Darcy Gong).
    · C++ Standard Library: Support is now included for the add-on uClibc++ C++ standard library support. This includes support for iostreams, strings, STL, RTTI, exceptions -- the complete C++ environment. uClibc++ is provided as a separate add-on package due to licensing issues. Contributed by Qiang Yu and David of the RGMP team.
    · Add support for __cxa_atexit().
    · C Standard Library:Optimized generic and ARM-specific memcpy() function.Optimized memset() function.Add support for ferror()), feof()), and clearerror()).
    · Standard Math Library:Port of the math library from Rhombus OS by Nick Johnson (Darcy Gong).
    Applications:
    · New NSH commands: ifup, ifdown, urlencode, urldecode, base64enc, bas64dec, and md5 (Darcy Gong). Extensions to the ifconfig command (Darcy Gong), Add support for NSH telnet login (Darcy Gong). Enancements to NSH ping command to support pinging hosts with very long round-trip times.
    · Many extensions to the webclient/wget and DNS resolver logic from Darcy Gong. SON, Base64, URL encoding, and MD5 libraries contributed by Darcy Gong.
    · New examples: ELF loader, JSON, wgetjson, cxxtest, relays.

    Bugfixes:

    · Drivers: W25 SPI FLASH
    · STM32 Drivers: ADC reset
    · Fraphics: Missing implementation of the blocked method (critical, Petteri Aimonen).
    · C Library: Floating point numbers in printf and related formatting functions (Mike Smith),



    What's new in NuttX 6.22:

    October 1st, 2012

    New features and extended functionality:

    · RTOS: Application entry point is no longer user_start, but can be configured using CONFIG_USER_ENTRYPOINT. NuttX now supports two work queues: A lower priority work queue (for extended processing) and a higher priority work queue (for quick, high priority operations).

    · Memory Management: Added a new granule-based allocated that can be used to manage, aligned and quantized DMA memory.

    · File System: Add hooks to allocate I/O memory with and external allocated (need if required by DMA).

    · Networking: ENC28J60 driver is (finally) verified.

    · Drivers: Add hooks USB device drivers to allocate I/O memory with and external allocated (need if required by DMA). Driver for the Windbond SPI FLASH family (W25x16, W25x32, W25x64, and others). ADS7843E driver extended for TSC2046 and XPT2046 and verified.

    · ARMv7-M: Added logic to reset the MCU using the NVIC.

    · STM32: Add support for STM32F103VET6.

    · STM32 Drivers: Add logic to re-initialize UARTs a second time in order to enable DMA (Mike Smith). I2C driver error recovery (Mike Smith).

    · STM32 boards: Support for USB host added add to several configurations (or at least explained in README files). Support for the Shenzhou STM32F107 board (see www.armjishu.com). Support for M3 Wildfire STM32F103 board (v2 and v3).

    · Build System: Kconfig string de-quoting logic. Remove comments from defconfig files (Kate). Add tool to create NuttX-style symbol tables. Numerous changes to configuration logic as needed for the new mconf-based configuration (much of this from Richard Cochran). Refactor common Make.defs logic into tools/Config.mk (Richard Cochran). Entry point name is now configurable. Make now supports a verbose option (V=1, Richard Cochran).

    · NOTE: This change does introduce a minor backward incompatibility. For example, if your application uses NSH as its start-up program, then your build will now fail because it will be unable to find user_start. The fix for this link failure is to add the following to your configuration file: CONFIG_USER_ENTRYPOINT="nsh_main".

    · Library: Configurable terse output from strerror(). Added perror() (Kate). Add \%n format to sscanf() (Kate).

    · Applications: Numerous changes and extensions to the old uIP web server (from Kate and Max Holtzberg, see the ChangeLog for specific extensions). UDP network discovery utility (Max Holtzberg). Embeddable Lightweight XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg).

    Bugfixes (see the change log for details). Some of these are very important (marked critical):

    · RTOS: Fixes to priority inheritance logic (critical). waitpid() critical section. Assertion in work_cancel() (Mike Smith). mmap() (Kate).

    · FAT File System: Improper Boolean expression caused un-necessary writes and performance issues (critical, Ronen Vainish).

    · Networking: Remove an un-necessary delay from recvfrom(). This greatly improves network performance (critical, Max Holtzberg).

    · Graphics: NX parameter checking errors.

    · Drivers: Fix double release of memory in SDIO-based, MMC/SD driver (Ronen Vainish).

    · LPC17xx: Ethernet driver fixes needed for certain PHYs (Kate).

    · AVR: Fix build error (Richard Cochran).

    · STM32: USB OTG FS host driver NAKing an retries. Power management compilation errors (Diego Sanchez). Missing SPI3 remap logic.

    · STM32 Drivers: Fix for Ethernet errata for STM32F107 (critical). Ethernet buffer alignment check. Add "kludge" to Ethernet driver to handle DM9161 PHY which (at least on the Shenzhou board), sometimes does not come up correctly.

    · Applications: THTTPD (Kate). NSH ping when IP address is on a different network (Darcy Gong).

    · Library: fread(), fflush(), fdopen(): Fix error handling logic (Ronen Vainish). Fix some field-width handling issues in sscanf()



    What's new in NuttX 6.20:

    July 13th, 2012

    · This version includes continued progress for the NuttX power management demo and has new support for the Microchip PIC32MX1/2 families (and the "Mirtoo" modules from Dimitech) and for the entire NXP LPC43xx line (and the LPC4330-Xplorer board from NGX Technologies).
    · Board support for the TI/Stellaris EKK-LM3S9B96 is also included.



    What's new in NuttX 6.19:

    June 16th, 2012

    · This version features NFS client support.
    · This will allow the tiniest of MCUs to connect to an NFS server and have access to a large network filesystem.
    · Additional changes include complete support for the Mikroelektronkia PIC32MX7 MMB board.



    What's new in NuttX 6.17:

    April 17th, 2012

    · This version includes support for the Calypso CPU used by the Osmocom-bb project, adds NxConsole (which allows execution of multiple NSH sessions in different NX graphics windows), and extends support for the STMicro STM32 and Microchip PIC32 platforms.



    What's new in NuttX 6.15:

    February 13th, 2012

    · This version features a new FTP server, a new encapsulation of Telnet so that a Telnet session can serve as a "controlling terminal", and a new SYSLOGging infrastructure.
    · In addition to these headlines, there are also driver extensions (CAN, PWM, Ethernet).



    What's new in NuttX 6.13:

    December 27th, 2011

    · This version includes the completed port for the Microchip PIC32MX family.
    · It also includes many new drivers for the STMicro STM32 family (Ethernet, ADC, DAC, PWM, and CAN) and corrects two critical bugs.



    What's new in NuttX 6.12:

    December 8th, 2011

    · STM32. Basic support added for the STM32 F4 family. Board support verified for
    · the STMicro STM3250G-EVAL board.
    · FAT. Enhanced partition handling.
    · SDIO-Based SD Card support. Add support for large (>4Gb) devices
    · NX Graphics. Added four new small sans serif fonts.
    · Drivers. Fix a banding problem with the R61580 LCD.
    Bugfixes, order roughly on decreasing criticality include:
    · FAT. Fix errors in how the first entries in the root directory are added. Fix
    · errors in FAT date/time handling.
    · Signals. Fix bug in certain sig_timedwait() error handling.
    · Drivers. Fix cloned errors in poll() handling in several drivers.
    · Message Queues. errno was not being set correctly by mq_notify().
    · C Library. wchar_t is a built-in type for C++



    What's new in NuttX 6.10:

    October 7th, 2011

    · This version adds support for a CDC ACM serial USB device and support for various touchscreen devices.
    · However, the most important changes in this release are some critical bugfixes against the FAT filesystem and message queues.



    What's new in NuttX 6.9:

    September 13th, 2011

    · This version adds infrastructure to support Power Management for controlling reduced power states and for DAC drivers.
    · It has a new I2C tool application plus several new drivers and some important bugfixes.



    What's new in NuttX 6.8:

    August 22nd, 2011

    · This version adds initial support for the FreeScale Kinetis parts (Cortex-M3), expands CAN support, and introduces a new ADC infrastructure.
    · Several bugs were fixed, including a critical bug related to signal handling.



    What's new in NuttX 6.7:

    August 3rd, 2011

    · This version has support for VFAT long file names and many extensions to the graphics sub-system.
    · Additional new features and bugfixes are detailed in the ChangeLog.



    What's new in NuttX 6.6:

    July 12th, 2011

    · This is primarily a bugfix release, but also includes some minor feature additions.
    · Most of the work was focused on the NX graphics subsystem and on the STM3210E-EVAL development board.



    What's new in NuttX 6.5:

    June 22nd, 2011

    · This version adds initial support for some members of the AVR 8-bit MCU family, including ATMega and AT90USB parts.



    What's new in NuttX 6.4:

    June 7th, 2011

    · This version adds several new features and has some bugfixes.
    · Major new features include support for a full-featured FTP client, PIC32 support, and support for new wireless and network devices.



    What's new in NuttX 6.1:

    April 11th, 2011

    · The primary purpose of this release is to correct certain build-related problems introduced in 6.0.
    · In addition, this release includes support for building a standalone NuttX micro-kernel and new MCU drivers and capabilities.



    What's new in NuttX 6.0:

    March 22nd, 2011

    · lib/lib_fopen() -- fopen() was not returning the correct errno value when the
    · underlying open() failed.
    · include/net/uip/uip-arch.h -- The uIP interface has been extended slightly so that
    · drivers can be concurrenly filling and sending packet buffers. This capability was
    · needed by the SLIP driver.
    · drivers/net/slip.c -- Several corrections and some re-design of of the driver.
    · apps/ChangeLog.txt -- the apps/ directory now has its own ChangeLog.
    configs/vsn:
    · IDLE LED blinking fix
    · Added board power off function
    · arch/arm/src/stm32/stm32_gpio.c and stm32_internal.h -- Fixed PullUp/Down Input
    · Configuration.
    · arch/arm/src/lpc17xx/lpc17_serial.h -- Now supports Auto-RTS and Auto-CTS
    · modes. This is needed to support SLIP.
    · drivers/net/slip.c -- SLIP is now basically functional on the LPC17xx with some
    · caveats as described in the TODO list under LPC17xx.
    · arch/x86/include/i486/irq.h -- Fix irqrestore() macro... it was not correctly
    · re-enabling interrupts.
    · arch/x86/src - Fix numerous problems with i486/QEMU context switching. Basically,
    · the logic was missing the cases to handle the differing stack frames when a priority
    · change occurs and when no priority change occurs.
    · configs/qemu-i486/ostest and nsh -- The QEMU i486 port is complete. it now passes
    · the OS test and supports the NuttShell (NSH).
    · misc/drivers -- Created a new directory to hold non-BSD licensed drivers that may be
    · added into NuttX via an installation script.
    · drivers/usbhost/usbhost_rtl8187.c -- A decision was made to incorporate code
    · taken from the Linux kernel. That changes the licensing on this module to GPL. To avoid
    · licensing contamination, this driver was moved to misc/drivers/rtl8187x prior to
    · adding any of the GPL logic. There is an INSTALL.sh script at the location where the GPL
    · driver(s) can be re-installed into the NuttX source tree. By re-installing the driver, you
    · agree to the GPL licsensing and all of its implications.
    · Makefile, apps/Makefile, tools/configure.sh -- add logic to copy configs/
    · //appdir to apps/.config and to simply the application configuration logic.
    · examples/nsh and apps/nshlib - Move the core NuttShell (NSH) logic out of the
    · exemples directory and into the apps/ directory where it belongs.
    · apps/Makefile and configs/*/appconfig - Use '=' as the delimiter instead of '/' so
    · that sub-directories in apps/ can be used.
    · apps/vsn - Move all VSN apps to apps/vsn.
    · nuttx/examples moved to apps/examples.



    What's new in NuttX 5.20:

    March 22nd, 2011

    · lib/lib_fopen() -- fopen() was not returning the correct errno value when the underlying open() failed.
    · include/net/uip/uip-arch.h -- The uIP interface has been extended slightly so that drivers can be concurrenly filling and sending packet buffers. This capability was needed by the SLIP driver.
    · drivers/net/slip.c -- Several corrections and some re-design of of the driver.
    · apps/ChangeLog.txt -- the apps/ directory now has its own ChangeLog.
    configs/vsn:
    · IDLE LED blinking fix
    · Added board power off function
    · arch/arm/src/stm32/stm32_gpio.c and stm32_internal.h -- Fixed
    · PullUp/Down Input Configuration.
    · arch/arm/src/lpc17xx/lpc17_serial.h -- Now supports Auto-RTS and
    · Auto-CTS modes. This is needed to support SLIP.
    · drivers/net/slip.c -- SLIP is now basically functional on the
    · LPC17xx with some caveats as described in the TODO list under LPC17xx.
    · arch/x86/include/i486/irq.h -- Fix irqrestore() macro... it was not correctly re-enabling interrupts.
    · arch/x86/src - Fix numerous problems with i486/QEMU context switching. Basically, the logic was missing the cases to handle the differing stack frames when a priority change occurs and when no priority change occurs.
    · configs/qemu-i486/ostest and nsh -- The QEMU i486 port is complete. It now passes the OS test and supports the NuttShell (NSH).
    · misc/drivers -- Created a new directory to hold non-BSD licensed drivers that may be added into NuttX via an installation script.
    · drivers/usbhost/usbhost_rtl8187.c -- A decision was made to incorporate code taken from the Linux kernel. That changes the licensing on this module to GPL. To avoid licensing contamination, this driver was moved to misc/drivers/rtl8187x *prior* to adding and of the GPL log. There is an INSTALL.sh script at the location where the GPL driver(s) can be re-installed into the NuttX source tree. By re-installing the driver, you agree to the GPL licsensing and all of its implications.
    · Makefile, apps/Makefile, tools/configure.sh -- add logic to copy configs///appdir to apps/.config and to simply the application configuration logic.
    · examples/nsh and apps/nshlib - Move the core NuttShell (NSH) logic out of the exemples directory and into the apps/directory where it belongs.
    · apps/Makefile and configs/*/appconfig - Use '=' as the delimiter instead of '/' so that sub-directories in apps/ can be used.
    · apps/vsn - Move all VSN apps to apps/vsn.
    · nuttx/examples moved to apps/examples



    What's new in NuttX 5.19:

    March 14th, 2011

    · This version includes the beginnings of many new features including an Intel 486SX QEMU port, a new framework for application support, SLIP network support, and numerous other minor feature enhancements and bugfixes.



    What's new in NuttX 5.17:

    January 20th, 2011

    · This release extends the USB host features.
    · These extensions include low-speed device support and interrupt endpoint support.
    · A USB host HID keyboard class driver is also included.



    What's new in NuttX 5.16:

    January 11th, 2011

    · This version adds initial support for USB hosts.
    · An LPC176x OHCI host controller driver and a USB host mass storage driver are included.



    What's new in NuttX 5.15:

    December 13th, 2010

    · This version extends support for the NXP LPC176x by adding a USB device driver and support for SPI-based micro-SD cards.
    · Additionally, important bugfixes are also included in this release.



    What's new in NuttX 5.14:

    November 28th, 2010

    · configs/olimex-lpc1766stk/nettest - Add examples/nettest configuration to verify the LPC17xx ethernet driver currently under development.
    · arch/arm/src/lpc17xx/lpc17xx_ethernet.c/.h - Began development of the LPC17xx Ethernet driver. Driver in CVS functional after 2010-11-23.
    · sched/timer_settime.c - Fix an error in set-up of a one-shot POSIX timer. It was using the repititive timer value (which is zero in the one-shot case), always resulting in a 10Ms timer! Found and fixed by Wilton Tong.
    · arch/arm/src/lpc17xx/lpc17_vector.S, stm32/stm32_vector.S, lm3s/lm3s_vector.S, sam3u/sam3u_vector.S
    · Fixed a hard fault problem that can occur if certain types of interrupts are pending at the time another interrupt returns (SYSTICK). This has not been verified on all plaforms, but is a critical fixed that is needed by all Cortex-M3 NuttX users.
    · configs/olimex-lpc1766stk/thttpd - Add a THTTPD configuration for the Olimex LPC2766-STK board. Verified successfully.
    · net/uip/uip_tcpappsend.c - Correct an important logic bug in some uIP state data the is used to manage retransmissions. The uIP logic was incompatible
    · with the retransmission logic of net/send.c in one place. The final error was that the final packet in a sequence of packets was too large! In the THTTPD example, this would leave some garbage at the bottom of the display (or worse). I don't know why I haven't see this bug before???
    · net/uip/uip_tcpinput.c -- The change to uip_tcpappsend.c unmasked an additional error in the TCP sequence number handling. This sympom was that the send() function would hang with outstanding, unacknowledged data (with no re-transmit requests). The was due to differences in sequence number handling in send() and in uip_tcpinput.c; uip_tcpinput.c thought (incorrectly) that all of the bytes were acknowledged; send.c knew that they were not.



    What's new in NuttX 5.13:

    November 10th, 2010

    · lib/lib_strnlen.c -- Added POSIX 2008 strnlen() function. Contributed
    · by Michael Hrabanek.

    · Fix wild, consistent naming error. For some reason, I called the at32uc3 parts at91uc* everywhere. Fixed by changing lots of files and directories.

    · configs/avr32dev1/ostest - The AVR32 port now successfully passes the
    · examples/ostest. We have a good AVR32 port!

    · configs/avr32dev1/nsh - Added a configuration to support the NuttShell
    · (NSH). As of this writing, here is a problem receiving serial data (this
    · is, very likely, my hardware setup).

    · lib/lib_open.c - Fix an error in fdopen when a valid file desciptor does
    · not refer to an open file.

    · configs/olimex-lpc1766stk - Add support for the Olimex LPC1766-STK
    · development board. The OS test and NSH configurations (only) have been
    · verified.



    What's new in NuttX 5.12:

    October 27th, 2010

    · This version corrects an important bug in the signal trampoline logic.
    · Essentially, an interrupt was left enabled and, under certain conditions, stack corruption could occur.
    · This release also includes a full port for the AVR32 UC3.
    · This port, however, is not fully tested because of the need to get the critical bugfix out.



    What's new in NuttX 5.11:

    October 4th, 2010

    · Added new configuration item CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it is the full path to a file on a mounted file system that contains a binary image of the NuttX executable.
    · Pages will be filled by reading from offsets into this file that correspond to virtual fault addresses. up_fillpage.c implements logic to perform page files using the CONFIG_PAGING_BINPATH file.
    · configs/mbed - Add configuration to support the mbed.org LPC1768 board (Contributed by Dave Marples).
    · sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition that can occur when a semaphore wait is interrupt by a signal. (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
    · drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit SPI FLASH part (untested on initial check-in).
    · arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the lm3s8962 port contributed by Larry Arnold. That port is purported to work correctly with these changes in place.
    · examples/ostest/prioinherit.c - Need to reinitialize globals if test is ran repeatedly in a loop.
    · configs/ez80f910200zco - Updated to used ZDS-II 4.11.1



    What's new in NuttX 5.10:

    September 8th, 2010

    · This version adds support for the TI/Luminary LM3S9B96 and LM3S8962.
    · The new on-demand paging now passes its first level of testing (more needs to be done).
    · There are several bugfixes.



    What's new in NuttX 5.8:

    July 19th, 2010

    · configs/nucleus2g/src/up_nsh.c and up_ssp.c - Add support for SPI-based MMC/SD cards and integrate into the NSH example.
    · arch/arm/src/lm3s/lm3s_vectors.S - Correct vectors for GPIOC & D interrupts.
    · arch/arm/src/lpc17xx/lp17_clockconfig.c - Power was not being provided to GPIO module. This is a critical bugfix!
    · arch/arm/src/lpc17xx/lpc17_serial.c - Improved logic to handle missed TX interrupts.
    · arch/arm/src/lpc17xx/lpc17_ssp.c - Fix a hard fault during SSP initialization.
    · configs/nucleus2g/src/up_led.c - Change how LEDs are controlled so that they can be used both for NuttX instrumentation and by application software.
    · include/net/uip/igmp.h and uip-igmp.h - Add header files ini preparation for NuttX IGMP support
    · net/uip/uip_igmp*.c - Add IGMP support (untested on initial checkin).
    · examples/igmp - Add a trivial test for IGMP (much more is needed)
    · configs/nucleus2g/usbserial and usbstorage - Add USB configurations for testing purposes.
    · arch/arm/src/common/up_internal.h, cortexm3/up_assert.c, */*_vectors.S - Correct compilations errors when CONFIG_ARCH_INTERRUPTSTACK is enabled (feature still not tested)



    What's new in NuttX 5.7:

    June 23rd, 2010

    · configs/nucleus2g - Add ostest configuration for the Nucleus 2G LPC1768 board from 2G Engineering (http://www.2g-eng.com/)
    · arch/arm/src/lpc17xx - Added basic LPC17xx boot-up logic, interrupt handling, and GPIO configuration.
    · configs/nucleus2g/ostest - Completed bring-up of LPC1768 on the Nucleus2G board using the examples/ostest
    · configs/nucleus2g/nsh - Added and verified a NuttShell (NSH) configuration for the LPC1768 on the Nucleus2G board.



    What's new in NuttX 5.3:

    April 12th, 2010

    This release suport for one new achitecture:

    · A basic port for the NXP LPC2378 MCU on the Olimex-LPC2378 development board was contributed by Rommel Marcelo.

    And extensions to two existing architures:

    · David Hewson contributed a dual-speed (full/high) USB device-side driver for the NXP LPC3131 on the Embedded Artists EA3131 development board.
    · A DMA driver and a high speed MCI driver for the Atmel AT91SAM3U are included (but not fully tested in this release).

    Two important bugfix was also included:

    · An important fix to the USB mass storage driver was contributed by David Hewson.
    · A serious error in the AT91SAM3U PIO handling was fixed.



    What's new in NuttX 5.2:

    March 19th, 2010

    · Add an enumeration argument to the SPI chip select and status methods so
    · 687 that the interface can handle more than one device.
    · 688 eZ80Acclaim!: Add a generic SPI driver for all eZ80 boards.
    · 689 Add a setmode() method to the SPI interface to handle parts with differing
    · 690 mode requirements.
    · 691 include/nuttx/i2c.h: Defined a standard I2C interface
    · 692 eZ80Acclaim!: Add an I2C driver.
    · 693 eZ8Encore!: Add an I2C driver.
    · 694 Add support for the Freescale i.MX1/L architecture and a configuration for
    · 695 the Freescale MX1ADS development board.
    · 696 examples/helloxx: Added a simple C++ hello world example
    · 697 include/css: Added std header files
    · 698 libxx: New C++-only directory provides support for minimal C++ applications
    · 699
    · 700 0.4.6 2009-05-19 Gregory Nutt
    · 701
    · 702 Change SPI interface so that is can accomodate interfaces where the
    · 703 number of bits per word is greater an 8 (such as with many 9-bit display
    · 704 interfaces). -- this might have broken a few things which will need to
    · 705 be retested!
    · 706 arch/arm/src/imx: Added i.MX SPI driver
    · 707 SPI: Add a method to set the number of bits per word. Also add an
    · 708 alternative interface for so that (eventually) I can phase the sndblock
    · 709 and recvblock methods and replace them with a single exchange method
    · 710 Build: objcopy fails with toolchains that use newer GCC and binutils. The
    · 711 following arguments need to be included in the objcopy command line "-R .note
    · 712 -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile,
    · 713 but other architectures may have the same problem. Thanks to Dave Marples
    · 714 for verifying this.
    · 715 configs/eagle100/ostest: Added support for the MicroMint Eagle100 board.
    · 716 This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build
    · 717 examples/ostest.
    · 718 arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs.
    · 719 legacy, "slow" GPIO) for LPC214x.
    · 720 arch/arm: Restructured the arch/arm directory structure to better suppor ARM
    · 721 and Cortex-M3.
    · 722 sched/: pthread_create() must return a (non-negated) errno value on failure.
    · 723 configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100
    · 724
    · 725 0.4.7 2009-05-29 Gregory Nutt
    · 726
    · 727 arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918
    · 728 configs/eagle100/nettest: Added an examples/nettest configuration for the
    · 729 Micromint Eagle100 board.
    · 730 Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers.
    · 731 configs/eagle100/httpd: Added an examples/uip configuration for the
    · 732 Micromint Eagle100 board.
    · 733 arch/arm/src/lm3s: Added an SSI driver for the LM3S6918
    · 734 examples/nsh: Added MMC/SD support for the LM3S6918
    · 735 arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical
    · 736 fix!).
    · 737 drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency
    · 738 calculation based on CSD settings, inappropriate timeouts, odd code that looks like
    · 739 a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is
    · 740 largely redesigned and probably non-functional in the first check-in.
    · 741 drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb
    · 742 SanDisk microSDC card on the Eagle100 platform.
    · 743 fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed.
    · 744 Found and corrected a problem that prevented use of FAT32: It was not updating
    · 745 the sector cache before checking the FAT32 FSINFO sector.
    · 746 configs/eagle100/*/Make.defs: Added configuration options that should make
    · 747 it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain
    · 748 and the devkitARM GNU toolchain.
    · 749 configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block
    · 750 logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and
    · 751 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board.
    · 752 fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain
    · 753 mount() failures.
    · 754
    · 755 0.4.8 2009-06-13 Gregory Nutt
    · 756
    · 757 lib/lib_*stream.c: Extend internal stream logic to support incoming streams.
    · 758 arch/arm/src/str71x: Serial output is now correct and timer interrupts are
    · 759 working. The test at configs/olimex-strp711/ostest passes. This means that
    · 760 the basic STR-P711 port is complete.
    · 761 configs/olimex-strp711/nsh: Add and verifed a NuttShell (NSH) configuration
    · 762 for the STR-P711.
    · 763 arch/arm/str71x/str71x_serial.c: The STR711 interrupt driven serial driver
    · 764 finally works after some extradinary measures to handle missed interrupts.
    · 765 NSH is fully functional on the Olimex STR-P711 board.
    · 766 example/nsh: Moved architecture specific files from NSH directory to board-
    · 767 specific directories.
    · 768 config/olimex-strp711/src/up_nsh.c: Add an NSH board specific directory for
    · 769 for the Olimex STR7P11 board.
    · 770 Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain. There
    · 771 were lots of issues with Cygwin paths and Cygwin symbolic links. These changes
    · 772 may work with the devarmKIT as well, but that remains untested.
    · 773 The NXP LPC2148 and STR711 targets can now also be built using the CodeSourcery
    · 774 or devkitARM Windows native toolchains.
    · 775
    · 776 0.4.9 2009-06-26 Gregory Nutt
    · 777
    · 778 Add strtoll() and strtoull(); Add macros for atol() and atoll().
    · 779 dup() and dup2() will now clone socket descriptors
    · 780 All socket descriptors ar now cloned when when a new task is started
    · 781 via task_create().
    · 782 Add configuration options to suppress or eliminate cloning of file
    783 and/or socket descriptors when a new task is started by task_create():
    · 784 CONFIG_FDCLONE_DISABLE, CONFIG_FDCLONE_STDIO, CONFIG_SDCLONE_DISABLE.
    · 785 Use of C++ reserved word 'private' in C header files causes problems
    · 786 for C++ that include them.
    · 787 Added 'binfmt' support to allow execution of programs in a file system,
    · 788 binding to NuttX symbols. A custom format call NXFLAT is used; this
    · 789 derives from http://xflat.sourceforge.net. At present is supports on
    · 790 XIP execution from ROMFS file systems. Initial check-in is untested
    · 791 and probably breaks many builds.
    · 792 examples/lib: Added qsort()
    · 793 examples/nxflat: Added support for symbol tables
    · 794 Correct logic that creates compiler include paths. On Cygwin, the
    · 795 include paths for Cygwin-based GCC were being converted to windows
    · 796 native paths. That causes many problems -- breaking dependencies
    · 797 for one.
    · 798 Fixed an important bug in ROMFS. The initial XIP offset was set
    · 799 incorrectly so if sector zero was read first, there was a bad read.
    · 800 I don't know how it worked before.
    · 801 arch/arm/src/common/up_use_stack.c. Fixed a fatal stack setup error.
    · 802 This file has been around for a long time, but I don't think it has
    · 803 every been used before (i.e., prior to the NXFLAT logic)
    · 804
    · 805 0.4.10 2009-08-08 Gregory Nutt
    · 806
    · 807 lib/: Added some basic regex-subset, pattern matching functions
    · 808 lib/: Greatly simplified mktime() and gmtime_r(). The Gregorian and
    · 809 Julian time calculations were interesting, but not necessary in the
    · 810 typical embeddd system.
    · 811 sched/: Added gettimeofday(). This implementation is simply a thin
    · 812 wrapper around clock_gettimer().
    · 813 lib/: Add gmtime(), localtime(), and strftime()
    · 814 binfmt/: Add exec(). This is just a wrapper that executes both
    · 815 load_ and exec_module() in a more familiar manner. It is not consistent
    · 816 with more standard exec() functions, however, because (1) it returns
    · 817 and (2) it requires symbol table arguments.
    · 818 lib/: Add fileno()
    · 819 examples/ostest: Several of the tests used a big, hard-coded stack size
    · 820 when creating test threads (16Kb stacksize). The stack size should
    · 821 be controlled by the .config file or the OSTest won't work on platforms
    · 822 with memory constraints.
    · 823 netutils/thttpd: An initial port of Jeff Poskanzer's THTTPD HTTP server.
    · 824 See http://acme.com/software/thttpd/.
    · 825 examples/thttpd: A basic test program for THTTPD
    · 826 configs/eagle100/thttpd: A build configuration for THTTPD on the Micromint
    · 827 Eagle-100 LMS6918 (Cortex-M3) board.
    · 828 configs/ntosd-dm320/thttpd: A build configuration for THTTPD on the Neuros
    · 829 DM320 platform.
    · 830 lib/: Added strstr() and strpbrk().
    · 831 net/recvfrom.c and net/accept(): Sockets now support some non-blocking
    · 832 operations, specifically for (1) TCP/IP read operations when read-ahead
    · 833 buffering is enabled, and (2) TCP/IP accept() operations when TCP/IP
    · 834 connection backlog is enabled.
    · 835 fs/fs_fcntl.c and net/net_vfcntl.c: Minimal support provided for fcntl().
    · 836 It can, at least, be used to mark sockets as blocking or non-blocking.
    · 837 net/net_close.c: Fix bug in close(). If reference count not set to zero
    · 838 then uip_tcpfree() will assert when DEBUG is enabled.
    · 839 net/accept.c: Fix bug in accept(). The logic expected parts of the
    · 840 return address structure to be initialized or it would return an error.
    · 841
    · 842 0.4.11 2009-09-16 Gregory Nutt
    · 843
    · 844 fs/fs_read.c and fs/fs_write.c. read() and write() to socket is the
    · 845 same as recv() and send() with flags = 0. Fixed!
    · 846 net/recvfrom.c: Fix errors in return value from non-blocking socket read.
    · 847 lib/lib_strcasecmp.c and lib/lib_strncasecmp.c. Use of post-incremented
    · 848 argument to macro caused strcasecmp() and strncasecmp() to fail.
    · 849 lib/lib_strstr.c: Length of substring off by one causes false alarm
    · 850 sub-string matches.
    · 851 arch/arm/src/lm3s/lm3s_ethernet.c: Fix errors in LMS6918 FIFO length
    · 852 handling. (1) The incorrect size of the ethernet header was being
    · 853 subtracted on outgoing messages (4 vs 14), which caused outgoing messages to
    · 854 be a little too long. (2) The size of incoming FIFO messages is 6 bytes
    · 855 larger than it expected (2 for the length and 4 for the FCS). The unhandled
    · 856 extra two bytes of length cause the driver to sometimes read one too many
    · 857 words from the received FIFO (corrupting the next queued receive packet,
    · 858 if any).
    · 859 net/net_poll.c and net/uip/uip_tcpbacklog.c. Fixed an important race condition
    · 860 bug in polling for connections. The logic worked if the poll was inplace
    · 861 before the connection was received; but the poll failed to awaken if the
    · 862 connection was already pending in the backlog when poll() was called.
    · 863 net/net_close.c. Fixed another important TCP/IP race condition bug: If
    · 864 the host closes the TCP connection just before the target calls close(), then
    · 865 the close operation may hang indefinitely!
    · 866 net/net_tcppoll.c. Removed an unnecessary check for outstanding, un-ACKed
    · 867 data. The NuttX socket layer keeps track of ACKs and doesn't need this check;
    · 868 removing the check should improve write throughput
    · 869 Add DEBUG configuration option to enable debug console output without disabling
    · 870 optimization (and vice versa)
    · 871 Changed lots of occurrents of debug macro dbg() to lldbg(). dbg() uses
    · 872 stdout to output debug data. That works fine unless (1) the dbg() macro
    · 873 is interrupt logic and the interrupted task has redirected stdout! Most
    · 874 changes were in uIP.
    · 875 net/uip/uip_tcpinput.c. Connection reference count was not being set correctly
    · 876 when a socket is created by accepting a new connection. Since the reference
    · 877 count is bad, such sockets are not successfully duplicated when being passed
    · 878 to new tasks.
    · 879 net/net_clone.c. Similarly, after a socket is cloned, its reference count
    · 880 was not being initialized.
    · 881 lib/lib_strstr.c. Improperly incremented pointer could cause comparison
    · 882 failures.
    · 883 net/. Connection reference count must always be set to zero before calling
    · 884 uip_tcpfree() or it could trigger a DEBUGASSERT that verifies that the
    · 885 reference count is zero before freeing a connection structure.
    · 886 net/uip/uip_listen.c. uip_accept() consulted the wrong list to find the
    · 887 listener on a socket. The previous logic worked most of the time, but
    · 888 occasionally picked the wrong listener.
    · 889 net/net_close.c and net/net_sockets.c. Sockets were not being closed
    · 890 when a task exits. If many server tasks are created and exit without closing
    · 891 sockets (such as with CGI tasks), then eventually, you will run out of sockets.
    · 892 netutils/thttpd. Basic functionality of THTTPD is complete. This includes
    · 893 serving up files from a file system and executing NXFLAT-based CGI programs
    · 894 and pipe the stdout back to the HTTP client.
    · 895
    · 896 0.4.12 2009-10-17 Gregory Nutt
    · 897
    · 898 arch/arm/src/stm32 and configs/stm3210e-eval. Added basic support for the
    · 899 STMicro STM32, Cortex-M3 MCU. The specific port is to the STMicro STM3210E-EVAL
    · 900 development board based around the STM32F103ZET6 MCU.
    · 901 configs/stm3210e-eval/RIDE. Added a basic STMicro RIDE7 project that can be
    · 902 used to perform basic STM32 board bring-up (due to RIDE7 size limitations, it
    · 903 cannot be used for the full NuttX bring-up).
    · 904 configs/stm3210e-eval/ostest. The STM32 now passes the basic NuttX OS test
    · 905 at examples/ostest. The rest should be a piece of cake.
    · 906 configs/stm3210e-eval/nsh. Added NuttShell (NSH) example.
    · 907 configs/stm3210e-eval/src/stm32102e-internal.h. Fix on-board LED GPIO definitions.
    · 908 arch/arm/src/stm32/src/stm32/stm32_dma.c. Added DMA channel support for the STM32
    · 909 arch/arm/src/stm32/src/stm32/stm32_spi.c. Added a DMA-based SPI driver for the STM32.
    · 910 arch/arm/src/stm32/src/stm32/stm32_serial.c. Finished interrupt-drivent,
    · 911 USART console driver. This makes NSH work perfectly.
    · 912 Things left to do for the STM32 deferred to the 0.4.13 release: USB device driver,
    · 913 LCD driver and NX bringup on the eval board's display and MicroSD support. An SPI
    · 914 driver was included in the 0.4.12 release, but is not yet tested.
    · 915
    · 916 0.4.13 2009-11-04 Gregory Nutt
    · 917
    · 918 include/nuttx/mtd.h. Added a simple interface definition to support some
    · 919 FLASH, EEPROM, NVRAM, etc. devices.
    · 920 driver/mtd/m25px.c. Added a driver for SPI based FLASH parts M25P64 and M25P128.
    · 921 configs/stm3210e-eval/usbserial. Add a USB serial configuration for the STM32.
    · 922 Depends on the STM32 USB driver.
    · 923 arch/arm/src/cortexm3/up_switchcontext.S & up_svccall.c. Made an improvement
    · 924 to context switching. There are two types of context switches: interrupt
    · 925 context switches and background/user context switches. This change should
    · 926 improve the performance of those background/user context switches by a factor
    · 927 of about two.
    · 928 arch/arm/src/stm32/ - fix several typos in the serial logic. It turns out
    · 929 that these typose don't make any difference as long as you use only one
    · 930 serial port and all uarts are configured the same. But the typos are bugs
    · 931 waiting to happen in any other configuration.
    · 932 arch/arm/src/stm32/ - You have to configure CTS/RTS function pins for USART
    · 933 2 and USART 3 even if you are not using flow control.
    · 934 arch/arm/src/stm32/stm32_usbdev.c - Added a USB device-side driver for the
    · 935 STM32. NOTE: This is an early release of the USB driver. There is at least
    · 936 one known issue. The examples/usbserial test only executes correctly under
    · 937 certain conditions (see the full bug description in the TODO list).
    · 938 arch/arm/src/stm32/stm32_rcc.c - Fixed an error in clock initialization.
    · 939 On some boards (none of mine), the HSE (high speed external clock) delay
    · 940 loop times out if the optimization level is high. The STM32 then falls
    · 941 back to the HSI (internal clock), and the system clock is too slow by a
    · 942 factor of 11.1%. This was fixed by simply add the volatile storage class
    · 943 to the timeout loop counter
    · 944 arch/arm/src/stm32/stm32_irq.c - Fixed a critical bug in the interrupt
    · 945 control logic. The wrong register was being used for interrupts in a
    · 946 certain range. Worked fine until you try to use an interrupt in that
    · 947 range!
    · 948
    · 949 4.14 2009-12-02 Gregory Nutt
    · 950
    · 951 arch/arm/src/stm32/stm32_gpio.c - Add support for configure an input GPIO
    · 952 to generate an EXTI interrupt.
    · 953 config/stm3210e-eval/src/up_buttons.c - Add support for on-board buttons.
    · 954 include/nuttx/rwbuffer.h -- Add generic support for read-ahead buffering
    · 955 and write buffering that can be used in any block driver.
    · 956 include/nuttx/wqueue.h -- Added a generic worker thread that can used to
    · 957 defer processing from an interrupt to a task.
    · 958 include/nuttx/sdio.h -- Defines a generic SD/SDIO interface can can be
    · 959 bound to a MMC/SD driver to provide SDIO-based MMC/SD support.
    · 960 drivers/mmcsd/mmcsd_sdio.c -- Provides a an SDIO-based MMC/SD driver.
    · 961 arch/arm/src/stm32/stm32_sdio.c -- Provides an STM32 implementation of
    · 962 the SDIO interface defined in include/nuttx/sdio.h.
    · 963 fs/fs_mount.c -- Correct error handling logic. If the bind() method
    · 964 fails, then a reserved node is left in the tree. This causes subsequent
    · 965 attempts to mount at the location to fail (reporting that the node
    · 966 already exists). This is a problem for block drivers for removable
    · 967 media: The bind method could fail repeatedly until media is inserted.
    · 968 arch/arm/src/stm32/chip.h & stm32_dma.c -- Fixed several definitions
    · 969 that can cause compilation errors when DMA2 is enabled.
    · 970 arch/arm/src/stm32/stm32_dma.c - Integrated and debugged STM32 DMA
    · 971 functionality that was added in 0.4.12.
    · 972 configs/stm3210e-eval/usbstorage - Add a configuration to exercise
    · 973 the STM32 with the USB mass storage device class example
    · 974 (examples/usbstorage).
    · 975 configs/mcu123-lpc214x/up_usbstrg - Move LPC-specific code from
    · 976 examples/usbstorage to configs/mcu123-lpc214x.
    · 977 configs/stm321e-eval/up_usbstrg - Add STM32-specific logic for the
    · 978 examples/usbstorage test.
    · 979 arch/arm/src/stm32/stm32_usbdev.c - Fix bugs in STM32 USB device-side
    · 980 driver: (1) Need to disconnect after reset received, (2) Status setup
    · 981 to recover from stall on TX endpoint.
    · 982
    · 983 5.0 2009-12-21 Gregory Nutt
    · 984
    · 985 arch/hc: Adding framework to support m68hc11/12
    · 986 configs/demo9s12ne64: Configuration to support Freescale DEMO9S12NE64
    · 987 development board (MC9S12NE64 m68hcs12 processor).
    · 988 drivers/mtd/ftl.c - A FLASH translation layer (FTL) has been implemented.
    · 989 This layer will convert a FLASH MTD interface into a block driver that
    · 990 can be used with any file system. Good performance of this layer will
    · 991 depend upon functioning write buffer support!
    · 992 NOTE: FTL support is untested as of the initial check-in.
    · 993 Numerous minor changes for m68hc12 to eliminate compilation errors and
    · 994 warnings due to the fact that it uses 16-bit integer types and for casts
    · 995 between uint32 (32-bits) and an mc68hc12 pointer (16-bits).
    · 996 sys/types: Size of off_t and blkcnt_t should not depend on size of
    · 997 int in the architecture; Removed non-standard type STATUS
    · 998 include/ - Added header files stdint.h, stdbool.h, cxx/cstdint, and
    · 999 cxx/cstdbool
    · 1000 Changed ALL references to non-standard fixed-size types (like uint32,
    · 1001 ubyte, etc.) to standard types (like uint32_t, uint8_t, etc.) from
    · 1002 stdint.h. Use type bool and {true, false} from stdbool. This effected
    · 1003 most of the files in the system! Almost all configurations have been
    · 1004 re-built and many have been re-verified in order to get confidence in
    · 1005 these changes.
    · 1006 graphics/ and examples/nx - Fix numerous build errors that have been
    · 1007 introduced lately. NXGL has suffered some bit-rot from not being used
    · 1008 in some of the most recent ports.
    · 1009 The misc/pascal NuttX add-on package has been updated to use the new
    · 1010 standard types from stdint.h and stdbool.h and re-integrated with NuttX.
    · 1011 The released pascal-2.0 will be the first version that contains the
    · 1012 compatible changes.
    · 1013 arch/arm/src/lm3s/lm3s_ethernet.c - Fixed an important bug in the LM3S
    · 1014 ethernet driver: If full packet is received, the packet-too-big check
    · 1015 will fail because it needs to subtract 6 from the packet size (to
    · 1016 account for the 2-byte packet length and the 4-byte packet FCS in the
    · 1017 FIFO).
    · 1018 net/accept.c - Fixed a bad assertion (only happens when debug is enabled).
    · 1019 net/send.c net/uip/uip_tcpseqno.c - Fixed a critical error in the TCP/IP
    · 1020 logic. The NuttX port of uIP imcludes logic to send data ahead without
    · 1021 waiting for ACKs from the recipient; this greatly improves throughput.
    · 1022 However, the packet sequence number was not being updated correctly and,
    · 1023 as a result, packets were not be ACKed by the recipient and transfers
    · 1024 would sometimes stall. This is a very important bug fix (in fact, I
    · 1025 don't understand how TCP/IP worked at all without this fix???)
    · 1026 include/nuttx/arch.h and arch/*/common/up_udelay.c - Change argument
    · 1027 of up_udelay() to type useconds_t to avoid warnings when sizeof(int)
    · 1028 is 16-bits.
    · 1029 drivers/mmcsd/* - Add casts in contant expressions to avoid warnings



    What's new in NuttX 5.1:

    January 31st, 2010

    · arch/arm/src/lpc313x and arch/arm/include/lpc313x: Added framework to support the NXP LPC3131 MCU
    · Add configs/ea3131. The LPC3131 port for the Embedded Artist EA3131 (LPC3131) is code complete and waiting for me to get hardware in hand.
    · arch/arm/src/sam3u, arch/arm/include/sam3u, and configs/sam3u-ek - Added the basic framework needed to begin a port for the SAM3U-EK development board.
    · confgs/ea3131/tools: Added a tool to create a image suitable for use with the LPC313x bootloader.
    · configs/sam3u-3k/ostest - Completed verification of the basic NuttX OS test for the SAM3U.
    · arch/arm/src/common/up_createstack - stack was always been cleared when it was allocated. This is a good feature for monitoring the stack during debug, but really hurts thread start-up performance. Clearing is now done if CONFIG_DEBUG=y only. Changes was only made for arm, but really should be made for all architectures.



    What's new in NuttX 0.4.12:

    October 19th, 2009

    · This release adds basic support for the STMicro STM32, Cortex-M3 MCU. The port is to the STMicro STM3210E-EVAL development board based around the STM32F103ZET6 MCU. It is planned to extend this basic STM32 port for the 0.4.13 NuttX release.



    What's new in NuttX 0.4.11:

    September 17th, 2009

    · This release includes the port of Jeff Poskanzer's THTTPD HTTP server to NuttX.
    · This includes execution of CGI executables.
    · NXFLAT executables on a ROMFS file system are supported.

    A standard CGI interface is used:

    · Information is pasted to the CGI program via POST commands and via environment variables.
    · CGI socket I/O is redirected to stdin and stdout so that the CGI program only needs to printf() to send its content back to the HTTP client.



    What's new in NuttX 0.4.9:

    June 27th, 2009

    · Support for a new binary format call NXFLAT that can be used to execute separately linked programs in place in a file system. See http://www.nuttx.org/NuttXNxFlat.html.
    · Several important bugs were files related to networking and ROMFS (see the ChangeLog for a complete list).



    What's new in NuttX 0.4.8:

    June 14th, 2009

    · Support for the Olimex STRP711 board. That board is based on the STMicro STR711 MCU (ARM7TDMI). Integration is complete on the basic port (boot logic, system time, serial console). Two configurations have been verified: (1) The board boots and passes the OS test with console output visible on UART0, and the NuttShell (NSH) is fully functional with interrupt driven serial console. An SPI driver is available but untested (because the Olimex card slot appears to accept only MMC cards; I have only SD cards). Additional needed: USB and driver, MMC integration.
    · Support for the CodeSourcery and devkitARM Windows-native GNU toolchains. Makefiles have been modified for the LM3S6918, LPC2148, and STR711 to support these toolchains under Cygwin.



    What's new in NuttX 0.4.7:

    May 30th, 2009

    · arch/arm/src/lm3s: Added an Ethernet driver for the LM3S6918
    · configs/eagle100/nettest: Added an examples/nettest configuration for the Micromint Eagle100 board.
    · Documentation/NuttxPortingGuide.html: Added a section on NuttX device drivers.
    · configs/eagle100/httpd: Added an examples/uip configuration for the Micromint Eagle100 board.
    · arch/arm/src/lm3s: Added an SSI driver for the LM3S6918
    · examples/nsh: Added MMC/SD support for the LM3S6918
    · arch/arm/src/lm3s: Fix logic for setting and clearing output GPIOs (critical fix!).
    · drivers/mmcsd: Found numerous errors in current MMC/SD SPI driver. Bad frequency calculation based on CSD settings, inappropriate timeouts, odd code that looks like a bad search and replace. Also needs support for SDHC ver 2.x. New MMC/SD is largely redesigned and probably non-functional in the first check-in.
    · drivers/mmcsd: Changes verified on 4Gb Kingston microSHDC card and on a 2Gb SanDisk microSDC card on the Eagle100 platform.
    · fs/fat: With the 4Gb card, the first tests of FAT32 were (finally) performed. Found and corrected a problem that prevented use of FAT32: It was not updating the sector cache before checking the FAT32 FSINFO sector.
    · configs/eagle100/*/Make.defs: Added configuration options that should make it possible to build NuttX for the Eagle100 using CodeSourcery 2009q1 toolchain and the devkitARM GNU toolchain.
    · configs/mcu123-lpc214x/src: Corrected some logic in the LPC2148 SPI receive block logic. Re-verified SDC ver1.x support with 1Gb Toshiba SDC, 1Gb PNY SDC, and 4Gb Kingston SDHC. There are CMD0 issues with the 2Gb SanDisk SDC on this board.
    · fs/fs_mount.c: Corrected error handling that could cause a deadlock on certain mount() failures.



    What's new in NuttX 0.4.6:

    May 20th, 2009

    · Change SPI interface so that is can accomodate interfaces where the number of bits per word is greater an 8 (such as with many 9-bit display interfaces). -- this might have broken a few things which will need to be retested!
    · arch/arm/src/imx: Added i.MX SPI driver
    · SPI: Add a method to set the number of bits per word. Also add an alternative interface for so that (eventually) I can phase the sndblock and recvblock methods and replace them with a single exchange method
    · Build: objcopy fails with toolchains that use newer GCC and binutils. The following arguments need to be included in the objcopy command line "-R .note -R .note.gnu.build-id -R .comment" This has bin fixed in arch/arm/src/Makefile, but other architectures may have the same problem. Thanks to Dave Marples for verifying this.
    · configs/eagle100/ostest: Added support for the MicroMint Eagle100 board. This board has a Luminary LM3S6918 Cortex-M3. Added a configuration to build examples/ostest.
    · arch/arm/src/lpc214x: Add configuration option to enable fast GPIO (vs. legacy, "slow" GPIO) for LPC214x.
    · arch/arm: Restructured the arch/arm directory structure to better suppor ARM and Cortex-M3.
    · sched/: pthread_create() must return a (non-negated) errno value on failure.
    · configs/eagle100/nsh: Add a NuttShell (NSH) configuration for the Eagle-100



    What's new in NuttX 0.4.5:

    April 20th, 2009

    · The basic port for the FreeScale ARM920T i.MX1 processor on the Freescale MX1ADS board. Coding is complete for this port, but it is has not yet fully integrated
    · Extended I2C and SPI interface definitions
    · Add basic support for C++ applications. Very simple C++ applications can now be built against NuttX without any external libraries. At present, only the most primitive C++ programs are supported, but it is hoped that this support will be extended in future releases.



    What's new in NuttX 0.4.4:

    March 30th, 2009

    · examples/nsh: A debug option was left on that can (and does) cause infinite loops and stack overflows.
    · net/uip: Correct calculation of checksum on ICMP ping response.
    · examples/dchpd: Added a tiny DHCP server example
    · net/uip: Correct UDP bind behavior. It should select a valid port number if it receives a port number of zero.
    · netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a port number. Fixed a number of broadcast-related problems.
    · eZ80Acclaim!: Add a tiny webserver configuration
    · eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was always timing out when the load was heavy and worse, for some reason, resetting the Tx function caused unexpected registers to be reset in the Rcv function was well.
    · Z80: Patch incorported: "[2696648] Z80: interrupt flag stored in parity bit" (submitted by JPelletier). The is the same fix that was needed for the eZ80 and fixed in 0.4.2.
    · netutils: Added logic to support a simple wget() function
    · examples/wget: Added a test for wget() (untested -- see NOTE)
    · lib/strncasecmp: Fix cut'n'paste error in function name.
    · NSH: Added wget command (untested -- see NOTE).
    · examples/sendmail: A simple sendmail example (untested -- see NOTE)

    · NOTE: Features related to wget and sendmail are not tested on the target platform in this release and, hence, most likely have problems. I don't have the correct network network setup to perform that testing now (I'm in a hotel).



    What's new in NuttX 0.4.3:

    March 15th, 2009

    · This release adds priority inheritance to all NuttX waiting mechanisms in order to avoid priority inversion.
    · It includes major bugfixes for the eZ0Acclaim! platform and an EMAC driver for the eZ80F91 chip.



    What's new in NuttX 0.4.2:

    March 1st, 2009

    · This release adds integrated support for the ZiLOG eZ80Acclaim! processor and code for the the Renesas M16C/s0 processor (which has not yet been tested).



    What's new in NuttX 0.4.0:

    December 7th, 2008

    · This release adds graphics support and a tiny windowing subsystem.



    What's new in NuttX 0.3.19:

    November 27th, 2008

    · This release adds support for poll()/select() and a TCP/IP connection backlog.
    · Support for framebuffer drivers was added, and at least one critical TCP/IP bug was fixed.



    What's new in NuttX 0.3.18:

    November 16th, 2008

    · The release adds partial support for the STMicro STR71x family and for the Hitachi SH-1.
    · A loop device was added, and the NuttShell was extended with new file handling capabilities.
    · Several important bugs were fixed (especially in the FAT file system).



    What's new in NuttX 0.3.17:

    October 30th, 2008

    · This release adds an SPI-based MMC/SD driver (with an SPI driver for the NXP LPC2148) and a device-side USB mass storage driver.
    · Numerous bugs were corrected in the NXP LPC2148 USB driver.



    What's new in NuttX 0.3.16:

    October 11th, 2008

    · The release adds support for device-side USB.
    · It includes drivers for the NXP LPC214x.



    What's new in NuttX 0.3.15:

    September 21st, 2008

    · This release includes two important new features: support for the ROMFS file system with eXecute In Place (XIP) capability, and board support for the NXP LPC2148 processor.



    What's new in NuttX 0.3.14:

    September 9th, 2008

    · This release corrects several critical bugs in the NuttX FAT filesystem and the networking logic.
    · Additional minor enhancements were made to the NuttShell (NSH).



    What's new in NuttX 0.3.13:

    September 2nd, 2008

    · This includes some important bugfixes especially related to the FAT filesystem, environment variables, and the TCP/IP stacks.
    · Many new features were added to the Nuttx shell (NSH).




    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM