| NuttX-6.32 |
| ---------- |
| |
| The 99th release of NuttX, Version 6.32, was made on December 7, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.32.tar.gz and |
| apps-6.32.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * General: |
| |
| - Extension and standardization of stack debug logic. Now includes |
| coloration of the IDLE and interrupt stacks as well as the heap. |
| Suggested by David Sidrane. |
| |
| * Audio Subsystem and Audio Drivers: |
| |
| - I2S interface definition. Integrates with audio sub-system. |
| - VS1053 worker thread stack size is now configurable and assigned a |
| name via pthread_setname_np(). From Ken Pettit. |
| |
| * Networking / Network Drivers |
| |
| - Updates and adaptations to support for TI CC3000 wireless module |
| from David Sidrane. These updates include multi-threading support |
| and interface and header file changes to integrate more seamlessly |
| with NuttX applications. |
| |
| * File Systems: |
| |
| - procfs: Add support for a tiny procfs file system. The initial |
| offering is little more that a proof of concept but may be developed |
| further in subsequent releases. |
| - NXFFS: An initial attempt was made to integrate NXFFS with the NAND |
| MTD driver. Changes were made to handle bad blocks. However, I |
| later realized that NXFFS cannot handle NAND because the way that |
| is re-writes blocks is incompatible with the NAND ECC handling. |
| These changes were backed-out so as not to introduce turmoil, but |
| can be re-enabled if needed via configuration option. |
| - NXFFS: Make the start up scan of the media a configuration option. |
| It just takes to long and is not really necessary! Those rare cases |
| where the scan was helpful can be fixed using MDIOC_BULKERASE IOCTL |
| command. |
| |
| * General Drivers: |
| |
| - I2S: A simple character driver was added to support I2S accesses. |
| This driver in its current state is intended only to support I2C |
| testing and would not be appropriate to used for any real driver |
| application. |
| |
| * MTD Drivers |
| |
| - Add a container for an MTD device that can be used to provide a |
| simple, lightweight interface to configuration data storage that |
| resides on some storage media that is wrapped as an MTD device. |
| From Ken Pettit. |
| - New interface definition for lower half NAND drivers. |
| - MTD Nand: Add MTD NAND driver that will support ONFI devices, |
| non-ONFI devices (via table lookup), bad block checking, software |
| ECC (Hamming), and will interact with the lower-half, hardware- |
| specific, NAND driver. Based on BSD-compatible Atmel sample code. |
| - MTD geometry structure is now packed so that it can support larger |
| erase block sizes needed by NAND without increasing the size of |
| the geometry structure. |
| - SST25: Add another SST25 SerialFlash driver, sst25xx.c. This one |
| differs from sst25.c in that it supports larger SST25 parts: In |
| the larger parts support page write instead of byte/word writes |
| like the smaller parts. From Ken Pettit. |
| |
| * USB Drivers |
| |
| - STM32 F1 USB Device: Add support for decoded USB trace strings. |
| From David Sidrane. |
| |
| * ARM |
| |
| - Add more ARM9 cache management functions to flush and invalidate |
| D-Cache for DMA support. |
| |
| * Atmel AT91 SAMA5D3x Drivers: |
| |
| - Many new drivers including CAN, PWM, SSC/I2S |
| - PCK: Add support for programmable clock outputs. |
| - NAND: Driver with hardware ECC and DMA support |
| |
| * Atmel AT91 SAMA5D3x Boards: |
| |
| - SAMA5D3x-EK: Add support for the apps/examples/i2schar test. |
| - SAMA5D3x-EK: Provides board-specific memory controller initialize |
| for NAND flash. |
| - SAMA5D3x-EK: Add support for "auto-mounting" NAND MTD block driver |
| or NXFFS file system. |
| |
| * Atmel AT91 SAM3/4 Boards: |
| |
| - Basic support for the Atmel SAM4E family. From Mitko. |
| |
| * STMicro STM32: |
| |
| - Added support for the STM32F429. From Ken Pettit. |
| - Added support for GPIOK and GPIOJ. From Ken Pettit. |
| |
| * STMicro STM32 Drivers |
| |
| - STM32 F4 OTG FS/HS Device: OTG FS device and host drivers extended |
| so that they can support either the OTG FS peripheral or the OTG HS |
| peripheral (in FS mode). This was done as a quick way to get USB |
| support on the STM32F429 which has only OTG HS. From Ken Pettit. |
| - Added header files and driver framework for the STM32F429 LTDC |
| framebuffer driver. From Ken Pettit. |
| |
| * STMicro STM32 Boards: |
| |
| - Support for the Spark board was completely by Davide Sidrane. The |
| Spark configuration includes integrated CC3000 wireless support, FAT |
| file system on the SerialFlash and a composite device that can be |
| used both to export the FAT file system and to provide a serial |
| interface. |
| - The Mikroe-stm32f4 now uses /dev/config for configuration data |
| storage. From Ken Pettit. |
| - Added support for the STM32F429I-Discovery board from Ken Pettit. |
| - Added board support for the ViewTool STM32F103/F107 board with the |
| STM32F107VCT6 installed. |
| |
| * NXP LPC31xx Drivers: |
| |
| - USB ECHI HCD: Add a driver for the low-/full-/high-speed variant |
| of the EHCI host controller. |
| |
| * NXP LPC31xx Boards: |
| |
| - Board-specific USB host support for the Embedded Artists EA3131 board. |
| (Missing PCA9532 controls). |
| - Add support for the Olimex LPC-H3131 board. Including USB host |
| support (which does not depend on the PCA8532 interface). |
| |
| * Kinetis KL Drivers: |
| |
| - PWM driver for the Freescale Kinetis KL family from Alan Carvalho |
| de Assis. |
| |
| * Kinetis KL Boards |
| |
| - Freedom-KL25Z: Add PWM support from Alan Carvalho de Assis. |
| |
| * TI Stellaris LM3S |
| |
| - Don't initialize .data in start-up logic if not running from FLASH. |
| |
| * Applications: |
| |
| - apps/platform: A new home for platform-specific application code. |
| - Define a common interface that can be used to manage platform- |
| specific configuration data. From Ken Pettit. |
| - apps/examples/configdata: A unit test for the MTD configuration |
| data driver from Ken Pettit. |
| - Aapps/platform/mikroe-stm32f4: dd platform-specific storage of |
| configuration data for the Mikroe-stm32f4. From Ken Pettit. |
| - apps/examples/cc3000: Fine tuning of memory usage from David Sidrane. |
| - apps/system/nxplayer: Play thread stack size is now configurable. |
| All NxPlayer threads now have names assigned via pthread_setname_np(). |
| From Ken Pettit. |
| - apps/examples/i2schar: The I2S test based on the I2S character |
| driver. |
| - apps/examples/hidkbd/hidkbd_main.c: Now calls a function named |
| arch_usbhost_initialize() that must be provided by the platform- |
| specific code. |
| - NSH: |
| |
| - hexdump: Add skip= and count= options to the hexdump command. From Ken Pettit. |
| - Allow USB trace without a USB console. From David Sidrane. |
| - Mount command updates from Ken Pettit. |
| - Add an option to the mkfatfs command to specify FAT12, FAT16, or FAT32. |
| |
| * Tools |
| |
| - tools/mkctags.sh: A script for creating ctags from Ken Pettit. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 50% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * File Systems |
| |
| - FAT: In one error return case, the error return value was not being |
| set, making the failure look like success. From David Sidrane. |
| - mount: SMART FS must be included in the conditional compilation for |
| the set of file systems that require block drivers. From Daniel |
| Palmer. |
| - SmartFS: Fixed a minor bug with SMART partition number reporting |
| that would only be seen if both partition support and multi-root |
| directory support are enabled at the same time. From Ken Pettit. |
| - Deadlock: The inode semaphore must be re-entrant. Here is the re- |
| entrant path that I found: (1) USB host connects to FLASH drive and |
| creates /dev/sda, (2) /dev/sda is mounted, (3) FLASH drive is |
| removed but /dev/sda is not destroyed because there is still a |
| reference on the device because of the mount, (4) umount() is |
| called, taking the inode semaphore, now the driver tries to destroy |
| the block driver by calling unregister_blockdriver(). But (5) |
| unregister_blockdriver() also takes the inode semaphore causing a |
| deadlock if the inode semaphore is not re-entrant. |
| - FAT: Fix a typo in the FAT16 formatting logic. Was this ever able to |
| format a FAT16 volume? |
| |
| * MTD Drivers |
| |
| - MTD Partitions: Fix erase block vs page block confusion. From Ken |
| Pettit |
| - SST25 Serial Flash: Improved write performance by fixing a bug that |
| prevented operation in the faster write mode. From David Sidrane. |
| |
| * USB Drivers: |
| |
| - USB MSC Device: pthread_join() does not work if called from a |
| different task group than the pthread. This is correct behavior, |
| but still a problem. The correct solution would be configure the |
| USB MSC thread to a task, however, this workaround from David |
| Sidrane plugs the hole for now. |
| - USB CDC/ACM, USB MSC, and Composite Device Classes: Un-initialization |
| logic caused reuse of a stale pointer. Changed to a two pass |
| un-initialization for the case of the composite driver: Memory |
| resources are not freed until the second un-initialization pass. |
| From David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F1 USB Device: Fix some errors that cause crashes when the USB |
| was disconnected. From David Sidrane. |
| - STM32 F1 USB Device: Correct EP0 state handling logic when buffers |
| larger than the EP0 packet size are sent. From David Sidrane. |
| - STM32 F1 USB Device: The long outstanding bug involving the handling |
| of OUT SETUP commands has been fixed in the STM32 F1 USB device |
| driver by David Sidrane. |
| - Kconfig: Add missing setup of CAN TSEG1 and TSEG2 values. From |
| Martin Lederhilger. |
| |
| * Tools |
| |
| - tools/mkconfig.c: SMART FS must be included in the conditional |
| compilation for the set of writable file systems. Noted by Daniel |
| Palmer. |
| |
| * Applications: |
| |
| - apps/platform/Makefile: Was not dealing with the bin sub-directory |
| correctly. |
| - apps/system/composite/composite_main.c: The wrong handle was getting |
| nullified. From David Sidrane. |
| |
| NuttX-6.33 |
| ---------- |
| |
| The 100th release of NuttX, Version 6.33, was made on January 30, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.33.tar.gz and |
| apps-6.33.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS Interfaces |
| |
| - nanosleep() added. sleep() and usleep() are no longer core OS |
| interfaces. These have been moved into the library and re-implemented |
| as simple wrappers around nanosleep(). |
| |
| * File Systems |
| |
| - procfs restructured by Ken Pettit. Added files for MTD status. |
| - procfs extended to show uptime and task group status. |
| - procfs now shows stack information. |
| |
| * Networking |
| |
| - Add support for the SO_LINGER socket option. Extended from logic |
| provided by Jason Jiang. Enabled with CONFIG_NET_SOLINGER. |
| - TCP write buffering support added. From Jason Jiang. |
| - Changes from Max Holtzberg to improve how network status is |
| reported. New controls to manage carrier detect. |
| |
| * Graphics |
| |
| - Massive reshuffling of files with little or no logic changes. This |
| reshuffling was necessary to build graphics applications with the |
| kernel builds where the graphics application lie in user space and |
| the core graphic server likes in kernel space. Moved much logic out |
| of nuttx/graphics to a new user library, libnx. |
| |
| * Cortex-A5/A8/A9 |
| |
| - Existing Cortex-A5 support updated to include Cortex-A8/9. |
| - Add the syscall.h header file needed for the Cortex-A architecture. |
| - Start-up logic now supports execution from FLASH with .data and |
| .bss in SDRAM. This was not possible prior to this because .bss |
| and .data were initialized before SDRAM was configured. |
| |
| * Allwinner A10: |
| |
| - Basic support for the Allwinner A10 (Cortex-A8) is in place. |
| |
| * Allwinner A10 boards |
| |
| - Support for the pcDuino v1 board has been added. This support |
| is not yet very mature and still lacks many drivers. It is a |
| good starting point, however, if anyone wants to develop A10 |
| support. |
| |
| * Atmel SAMA5D3X |
| |
| - Start-up logic now supports execution from FLASH with .data and |
| .bss in SDRAM. This was not possible prior to this because .bss |
| and .data were initialized before SDRAM was configured. |
| |
| * Atmel SAMA5D3X Boards |
| |
| - Partial logic in place to support the OV2640 camera. Still needs |
| quite a bit of additional logic to be useful. |
| |
| * ARMv7-M |
| |
| - Add support for high priority, nested interrupts. This change |
| effects not only core ARMv-7M logic, but all ARMv7-M MCU logic: |
| LM3S, LM4F, LPC17xx, LPC43xx, SAM3, SAM4, and STM32. See |
| https://cwiki.apache.org/confluence/display/NUTTX/High+Performance%2C+Zero+Latency+Interrupts |
| |
| * STMicro STM32 |
| |
| - Add clocking support for STM32F107 USB OTG FS (which does not yet |
| work) |
| - Single-wire UART support for the F1 series from Thomas Grubler. |
| |
| * STMicro STM32 Boards |
| |
| - The Viewtool board can now be configured to support either the |
| STM32F103VCT6 or the STM32F107VCT6. |
| - The Viewtool STM32F107VCT6 now supports networking with the |
| DP83848C module installed. |
| - Add support for Viewtool SSD1289-based LCD on the Viewtool |
| STM32F103VCT6 board (untested) |
| - Add support for the XPT2046 touchscreen controller on the Viewtool |
| LCD module connected to the Viewtool STM32F103 board. |
| - Added kernel mode build support for the STM3240G-EVAL board. Added |
| a new kernel mode NxWM build configuration |
| - C++ static constructor logic from the nuttx/configs/stm3240g-eval/ |
| directory to the apps/platform/stm3240g-eval/up_cxxinitialize.c |
| where is belongs so that it is available in user-space in the kernel |
| mode build. |
| - Add native Windows build support for the Olimex STM32 P107. From |
| Max Holtzberg |
| - Support for the STM32VL-Discovery board. Contributed by Alan |
| Carvalho de Assis |
| - Added a configuration for testing simple configurations on the |
| PX4FMU v2. |
| |
| * ZiLOG ZNEO Boards |
| |
| - Add an NSH configuration for the Z16F2800100ZCOG ZNEO board. |
| - Added support for the Toyaga 16Z ZNEO board. The 16Z board is |
| based on the ZiLOG ZNEOZ16F2811AL20EG part. See |
| https://github.com/toyaga/16z for further information |
| - Developed a patch to work around a compiler error that is revealed |
| when building the NSH configuration. |
| |
| * Architecture-Independent Drivers |
| |
| - OV2640 Camera Driver. |
| - Support for the Sharp Memory LCD from Librae. |
| |
| * Library |
| |
| - Pattern matching logic extended to handle set of characters and |
| ranges of character values. From Ken Pettit. |
| - sleep() and usleep() moved into the C library. These are not |
| longer core OS interfaces; they are simple wrappers for the |
| nanosleep(). |
| - Add an implementation of gets_s(). |
| - Extend fopen() to include support for C11 exclusive open ("x") |
| open mode. |
| - Add an implementation of stpcpy() |
| - strtol(), strtoll, strtoul(), strtoull(), and strtod() from |
| libc/string to libc/stdlib where they belong. |
| |
| * Header Files |
| |
| - Add rsize_t to include/sys/types.h |
| - Add the C11 thread.h header file |
| |
| * Configuration/Build System |
| |
| - Top level Makefile now supports qconfig and/or gconfig targets that |
| may be used for configuration. These may be used if you build |
| kconfig-frontends with support for kconfig-qconf and/or |
| kconfig-gconf. |
| - Add CONFIG_DEBUG_NOOPT. Now you can independently enable/disable |
| debug symbols and optimization |
| - File system related header files moved to include/nuttx/fs |
| - Video related header files moved to include/nuttx/video |
| - Changes for native Windows build: fix creation of a .version file |
| if one does not exist. Make sure that the APPDIR environment |
| variable is set before configuring. From Max Holtzberg. |
| - Board configuration sub-directory can now be specified. The default |
| need not be used. This is only useful when CONFIG_ARCH_BOARD_CUSTOM |
| is selected and there is no meaningful default sub-directory. |
| - Many functions renamed to better conform with the naming standard: |
| up_buttoninit() renamed to board_button_initialize(), up_buttons() |
| renamed to board_buttons(), up_irqbutton() renamed to |
| board_button_irq(), up_ledinit() renamed to board_led_initialize(), |
| up_ledon() renamed to board_led_on(), and up_ledoff() renamed to |
| board_led_off(). All prototypes removed from board.h header files. |
| Now ONLY prototypes in include/nuttx/arch.h. |
| |
| * Applications |
| |
| - NSH: Refactor. Separate NSH command handling and command execution |
| from NSH line parsing. |
| - NSH: Will now support multiple commands on a command line, each |
| separated with a semi-colon. |
| - NSH: Add support of commands enclosed in back quotes as command |
| arguments. |
| - NSH: Can now handle arguments that are concatenations of constant |
| strings, command return data, application return data, and |
| environment variables. |
| - NSH: Add true and false commands. |
| - NSH: Add support for while-do-done and until-do-done loops. These |
| only work when executing a script file because they depend on the |
| ability to seek in the file to implement the looping behaviors. |
| Can be conditionally compiled out to reduce footprint. |
| - NSH: Loosen up if-then-else-fi syntax to allow a command to be on |
| the same line as the then or else tokens like: |
| "if true; then echo true; else echo false; fi". More like bash. |
| - NSH: Add a break command that can be executed with a loop to |
| terminate the loop immediately. |
| |
| - system/inifile: A simple .INI file parser. |
| - system/vi: Add support for a tiny, VI work-alike editor. This is |
| a minimal full screen editor that works with a terminal emulator |
| that using VT100 commands. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 53% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Core OS |
| |
| - Added missing sem_timedwait() system call. |
| |
| * Networking |
| |
| - Prevent tcp_connect callback from being double freed. From Max |
| Holtzberg |
| - uiplib: Support new definitions and state passing for network |
| device status. From Maz Holtzberg. |
| |
| * File Systems |
| |
| - FAT: (1) A correction to FAT cluster allocation, and (2) Fix to some |
| root directory logic that was conditionally done only for FAT 32. |
| Apparently this needs to done for all FAT types. Both from Andrew |
| "Tridge" Tridgell via Lorenz Meier. |
| |
| * Binary Formats |
| |
| - Fix a small memory leak when attempting to load a program from a file. |
| |
| * Cortex-A8/9 |
| |
| - Fix some errors in the cache invalidation logic (only seem to matter |
| for Cortex-A8). |
| - Add more nop's after enabling the MMU. The cortex-a8 seems to need |
| these |
| |
| * Graphics |
| |
| - Fix a typo that caused a compilation error when |
| CONFIG_NXCONSOLE_BPP < 8. From Librae |
| |
| * ARMv7-M |
| |
| - Correct alignment of RAM vector table. |
| - Interrupt handling: Do not disable and enable the IRQ on each |
| entry, (2) this interferes with controlling the IRQ interrupt |
| setting from interrupt handlers, and (3) up_disable_irq() does |
| not work anyway so that this has never done anything. |
| - Fix all implementations of up_disable_irq() for all Cortex-M3 and |
| M4 architectures: To enable an interrupt on the Cortex-M3/4 CPU, |
| you need to set a bit in the ISER register. To disable the |
| interrupt, you need to set a bit in the ICER register. Existing |
| logic was trying to disable interrupts by clearing the bit in the |
| ISER register. That will not work; writing a '0' to the ISER |
| register has no effect. That means that up_disable_irq() was |
| doing nothing! It turns out that that is not really important |
| because up_disable_irq() is not really used for that purpose. But |
| some spurions STM32 ADC interrupts have been reported to me and this |
| turned out to be the cause in that case. Thanks to Manuel Stühn for |
| the tip. |
| |
| * STMicro STM32 |
| |
| - Fix configuration and pin definitions that would prevent building |
| USB for the connectivity and performance lines. |
| - STM32L15xx: Fix a typo in USB pin definitions |
| - Fix pin definition names for SPI2 MOSI and MISO. Noted by Brian Webb |
| - Various fixes for STM32F103ZE SPI3 pin mapping definitions. From |
| Steve Redler IV |
| |
| * STMicro STM32 Boards |
| |
| - Olimex STM32-P107: Failed to build if SPI3 for UEXT is not remapped. |
| From Max Holtzberg |
| |
| * x86 Boards |
| |
| - Add a configuration option to select the -m32 compiler option when |
| building for a 32-bit target on a native 64-bit compiler. So far, |
| only used for the qemu/i486 configuration. |
| - Patch from Matt Campbell to fix 'Error: .size expression for idle_stack |
| does not evaluate to a constant". |
| |
| * Library |
| |
| - strftime(): Needs null termination on the generated string. From |
| Max Holtzberg. |
| - Typo in ctype.h macro name: iscntrl(), not iscontrol(). |
| - If there are no arguments (argc == 1), then getopt() will leave the |
| optind variable in an undefined state (2014-1-20). |
| - ARMv7-M memcpy(): Assembler changes with the gcc-47 distribution |
| from ARM mean that we need to be explicit about branch sizes; one |
| or more of the wide branch opcodes results in bad table branching. |
| From Mike Smith. |
| |
| * Configuration/Build System |
| |
| - Fixes for some tools/ for Windows build issues from Max Holtzberg. |
| - Config.mk: 'cypath' must be called if we are using a Windows native |
| toolchain with the Cygwin 'make' to convert paths to proper |
| Windows paths. From Richard Cochran. |
| - ARM Makefile: Dependency directory list is now computed from the |
| VPATH. From Richard Cochran. |
| - builtin/Makefile: Fixes for native Windows build from Max Holtzberg. |
| - Refactor some configuration dependencies: NSH networking features |
| should depend on netutil selections; netutil selections, in turn, |
| should depend on networking selections. |
| |
| * Applications |
| |
| - NSH: Modified the df -h logic to eliminate truncating numbers in |
| conversion (like 7900 -> 7M). From Ken Pettit. |