| NuttX-6.26 |
| ---------- |
| |
| The 93rd release of NuttX, Version 6.26, was made on March 15, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.26.tar.gz and |
| apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5745 |
| |
| Note that all SVN information has been stripped from the tarballs. If you |
| need the SVN configuration information, you should check out directly from |
| SVN. Revision r5745 should equivalent to release 6.26 of NuttX: |
| |
| svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Or (HTTP): |
| |
| svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Additional new features and extended functionality: |
| |
| * OS Initialization: |
| |
| - Add an additional call-out to support board-specific driver |
| initialization during the boot-up phase (available with |
| CONFIG_BOARD_INITIALIZE=y). |
| |
| * Tasking: |
| |
| - New interface task_spawn() that is like posix_spawn(), but uses |
| entry point addresses like task_create(). |
| - Additional data restructuring as a continuation of the task group |
| changes of NuttX 6.25. These data structures were moved from the |
| TCB structure into the task group: pthread join data, |
| atexit/on_exit callbacks, waitpid data structures, and message |
| queues. |
| - TCBs for tasks and pthreads are now separate structures. This |
| saves a little memory since tasks do not have to carry the overhead |
| for threads and vice versa. |
| |
| * Kernel Build: |
| |
| - Extensive changes were made to support the kernel build mode. In |
| this mode, NuttX is built as a monolithic kernel. NuttX is built |
| as a separate kernel mode "blob" and the applications are built |
| as a separate user mode "blob". The kernel runs in kernel mode and |
| the applications run in user mode (with the MPU restricting user |
| mode accesses). Access to the kernel from the user blob is only |
| via system calls (SVCalls). |
| - Extensive changes were made to the syscall, SVCall, and trapping |
| logic. Many internal interfaces were renamed. |
| - The memory manager was extended to support both kernel- and user- |
| mode allocations. Logic within the kernel needs to use the |
| correct kernel- or user-space allocator, depending upon the user |
| of the allocated memory. |
| - The user-space blob now contains a header built in at the beginning |
| of the block that provides the same information that was previously |
| provided by a kludgy, auto-generated header file (user_map.h). |
| - Basic support implemented for the ARMv7-M family with fragments |
| also implemetned for the ARMv6-M and MIPS32 families. |
| - Kernel build supported added for the LPC17xx Open1788 and for |
| the Atmel SAM3U-EK board. All testing is being performed on the |
| Open1788 board. |
| |
| * Signals: |
| |
| - Delivery of signals to threads within a task group is now compatible |
| with the way that signals are delivered to threads within a process. |
| |
| * Drivers: |
| |
| - Add a driver for the SST29VF NOR FLASH parts. |
| - USB device trace/debug feature extended to decode device-specific |
| trace events to make the trace output more readable (from Petteri |
| Aimonen). |
| - USB MSC device driver can not support names of differing sizes |
| in the USB descriptor and the SCSI fields (from Petteri Aimonen). |
| - Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on |
| the same bus as other SPI devices. Frequency is reset each time |
| that the MMC/SD SPI has the bus locked. (from Petteri Aimonen). |
| |
| * ARMv6-M (Cortex-M0): |
| |
| - Added support for the ARM Cortex-M0 family. |
| |
| * nuvoTon NUC120: |
| |
| - Added support for the nuvoTon NUC120 MCU (Cortex-M0). |
| |
| * nuvoTon NUC120 Boards: |
| |
| - Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0). |
| |
| * LPC17xx: |
| |
| - Added support for the LPC177x and LPC178x families. Most of this is |
| the work of Rommel Marcelo. |
| |
| * LPC17xx Boards: |
| |
| - Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769. |
| From Rashid. |
| - The port for the WaveShare Open1788 board is now functional. Basic |
| OS test and NuttShell (NSH) configurations are functional. More |
| driver development and testing is needed (from Rommel Marcelo). |
| |
| * LPC17xx Drivers: |
| |
| - Added an SD card MSI driver for the LPC178x. The driver is marginally |
| functional but requires DMA capability to be reliable. |
| |
| * STM32 |
| |
| - Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like |
| peripherals). |
| |
| * STM32 Boards |
| |
| - Added support the STMicro STM32F3Discovery board (STM32 F3). |
| |
| * Stellaris LM3S/LM4F |
| |
| - Basic support for the LM4F120 family is in place, but untested (mostly |
| from Jose Pablo Carballo). |
| |
| * Stellaris LM4F Boards |
| |
| - Add support for the LM4F120 LaunchPad (untested). |
| |
| * Networking: |
| |
| - select() should now allocate a little less memory. |
| |
| * Memory Management: |
| |
| - Extended to support multiple heaps. This is used as part of |
| the kernel build in order to support separator user- and |
| kernel-mode heaps. |
| - The stand-alone memory manager test had to be removed. It |
| was too entangled and made extension of the memory manager |
| nearly impossible. This is a loss. |
| |
| * Build System: |
| |
| - Several configurations converted to use the kconfig-frontends |
| configuration tool. There are still many more that need to |
| be converted. |
| |
| * C Library: |
| |
| - Move the workqueue logic into the C library. There is now a |
| special user-space version of the work queue (which will only |
| be used with a NuttX kernel build). |
| - Implementation of itoa() contributed by Ryan Sundberg. |
| |
| * Applications: |
| |
| - The NSH builtin task logic now uses task_spawn() to start builtin |
| applications. |
| - The OS test now includes a test cased to verify task_restart(). |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. Most are expected to be fully |
| available in NuttX 6.27. |
| |
| * LM4F120 LaunchPad port. Code is in place, but nothing has been tested. |
| |
| * WaveShare Open1788 port. This port as actually complete and |
| functional. However, there is still ongoing development and |
| testing of drivers. |
| |
| * Kernel Build. Much progress has been made, but there kernel build is |
| not yet fully functional due to several user resources that are not yet |
| properly disentangled from the kernel blob. |
| |
| * Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Tasking: |
| |
| - The wrong PID was being signalled with SIGCHLD. It should be |
| the PID of the task that create the task group, not the ID of |
| the last thread to leave the task group. |
| - Added logic so that some internal resources and states are recovered |
| when tasks are deleted or restarted. Handle cases where there are |
| outstanding timed events pending when tasks are deleted or restarted. |
| |
| * ARMv7-M: |
| |
| - Several fixes to the MPU control logic. |
| |
| * Drivers: |
| |
| - Removable serial drivers race conditions fixed. |
| - MAX11802 timing bug (from Petteri Aimonen). |
| |
| * STM32 Drivers: |
| |
| - Handle cases were SPI DMA logic fails if sem_wait is awakened |
| by a signal. Need to clear error flags to prevent corruption of |
| subsequent transfers. Also, bit count should not be changed while |
| the SPI peripheral is enabled (from Petteri Aimonen). |
| - Fixes to the OTG FS device driver from Petteri Aimonen. |
| - Fix typos in DMA register header file (from Yan T.) |
| |
| * Graphics: |
| |
| - Correction to the hyphen in the SANS 17x22 font (from Petteri |
| Aimonen). |
| |
| * Networking: |
| |
| - Corrected errors in the socket poll/select logic. Additional |
| state logic was needed to detect if the socket is still connected |
| before starting the poll wait. (bug reported by Qiang Yu). |
| |
| * Memory Management: |
| |
| - mallinfo() should hold the memory manager semaphore (from Petteri |
| Aimonen. |
| |
| * Build System: |
| |
| - Resolved several build errors reported by Mike Smith. |
| |
| * Applications: |
| |
| - Fixed an NSH memory leak: Needed to detach after creating each |
| pthread. |
| - readline() now returns EOF on any failure (instead of a negated |
| errno value). This is because the underlying read is based on |
| logic similar to getc. The value zero (meaning end-of-file) |
| was being confused with a NUL. So if a NUL was received, the |
| NSH session would terminate because it thought it was the end of |
| file. |