| NuttX-7.10 |
| ---------- |
| |
| The 110th release of NuttX, Version 7.10, was made on June 9, 2015, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.10.tar.gz and |
| apps-7.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Binary Loader: |
| |
| - ARMv-7M, binfmt/, STM32: Add support uClibc++ exceptions. This |
| involved additional handling for relative relation types, additional |
| support for unwinding, as well as additional changes. The |
| culmination of a big effort from Leo Aloe3132. |
| |
| * Graphics/Graphic Drivers: |
| |
| - RA8875 LCD driver contributed by Marten Svanfeldt. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - Union File System: Add support for a union file system that can be |
| used to overlay and merge the content of two mounted file systems. |
| |
| * USB Host: |
| |
| - USB Hub Support: Bring in USB hub-related files from |
| https://github.com/kaushalparikh/nuttx. This is the work of Kaushal |
| Parikh. This is quite a bit more hub logic was needed in before the |
| USB hub support was fully functional. This involved changing many |
| USB host controller driver interfaces and modifications to many |
| drivers. |
| - USB host CDC/ACM class driver: Added initial implementation of a |
| host-side CDC/ACM driver. Initial version was a great learning |
| experience, but probably should be partially redesigned (as |
| discussed in the top-level TODO file). |
| - IPv6 Routing: Complete implementation of the IPv6 routing logic. |
| From Max Neklyudov. |
| |
| * Networking: |
| |
| - Local Sockets: Add poll support for Unix stream sockets. From Jussi |
| Kivilinna. |
| - net/: ARP, ICMP, ICMPv6, PKT, TCP, and UDP now all receive event |
| notifications from both network device packet processing, but now |
| also from Device-specific events such as when the network goes down. |
| The device notification callback structure is now supports dual |
| linkages so that the client can receive notifications from both |
| source; The device structure now includes a list of clients that |
| want to receive device related notifications. This prevents network |
| actions from hanging when the device goes down and will be an |
| essential part of future support for removable network devices. |
| Some of the core logic was contributed by Max Neklyudov. |
| - TUN: Misc. improvements to the TUN driver, mostly related to poll(). |
| Also several bugfixes. From Max Neklyudov. |
| |
| * Simulation Platform: |
| |
| - Simulator: Add logic to test localtime and TZ database. See |
| apps/system/README.txt for info. |
| - Simulation: Add a configuration for testing the Union File System. |
| |
| * Calypso: |
| |
| - Calypso Compal-E86: Updates for execution out of FLASH on the C139 |
| phone. From Craig Comstock. |
| |
| * Atmel SAMD/L: |
| |
| - SAML21 Support: And chip definitions, configuration framework, |
| memory map and pin configuration files for SAML21 support. |
| |
| * Atmel SAMD/L Boards: |
| |
| - SAML21-Xplained: Add a board support for the SAML21 Xplained Pro. |
| This is based on the similar SAMD20 Xplained Pro board. |
| |
| * Freescale/NXP KL: |
| |
| - KL25Z64: Added support for the KL25Z64. The KL25Z64 is a lower |
| memory variant of the KL25Z128 and is used on the Teensy LC. From |
| Michael as SourceForge patch 50. |
| |
| * Freescale/NXP KL Boards: |
| |
| - Teensy-LC: Add board support for the Teensy LC board. Support is |
| based off the Freedom KL25Z board. LED, PWM, and UART0 have been |
| tested. The SPI pins are mapped correctly but have not yet been |
| tested. From Michael Hope as SourceForge patch 51. |
| |
| * NXP LPC111x: |
| |
| - LPC111x: Support for the LPC11xx family (the LPC1115 MCU in |
| particular). Contributed by Alan Carvalho de Assis. |
| |
| * NXP LPC111x Boards: |
| |
| - LPCXpresso LPC1115: Support for the LPCXpression LPC1115 |
| board. Contributed by Alan Carvalho de Assis. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC17xx Ethernet: Add support for the Micrel KSZ8041 PHY to the |
| LPC17xx Ethernet driver. |
| |
| * NXP LPC17xx Boards: |
| |
| - Lincoln60: Add a network enabled configuration for the Lincoln60 |
| board. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4CM: Add support for optical mode for the SAM4CM UART1. From |
| Max Neklyudov. |
| |
| * Freescale (NXP) Kinetis: |
| |
| - Kinetis K20: Basic support for the Kinetis K20 architecture. Taken |
| from PX4. This is the work of Jakob Odersky. |
| |
| * Atmel SAMV7 Boards: |
| |
| - SAMV71-Xplained w/maXTouch Xplained Pro: A TWIHS fix was the last |
| barrier to getting the touchscreen working in the maXTouch Xplained |
| Pro LCD. Added the NxWM integrated graphics demonstration |
| configuration. |
| |
| * STMicro STM32: |
| |
| - STM32: Added support for STM32F302K8 and STM32F302K6. From Ben Dyer |
| via PX4/David Sidrane. |
| - STM32F205RG: Add basic support for the STM32F205RG. From SourceForge |
| Ticket 40 (anonymous, 2015-05-31). |
| - STM32 F3: Add DBGMCU register definitions for the F3 family. From |
| Greg Meiste. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 LCDC: Defined a second interface for the dma2d controller. |
| LTDC only controls the display visibility but the DMA2D controller |
| changes the content of the frame buffer (buffer of the layer). From |
| Marco Krahl. |
| - STM32 PVD: Added support for STM32's Programmable Voltage Detector |
| (PVD) feature. By Dmitry Nikolaev, submitted by Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429i-Disco: Add support for the new DMA2D features to the LTDC |
| configuration. From Marco Krahl. |
| |
| * TI Tiva Boards: |
| |
| - TM4C1294 Launchpad: Added TM4C1294NCPDT EN0_LED2 (10/100-Base-Tx); |
| removed all booster pack pin definitions. From Frank Sautter. |
| |
| * C Library/Header Files: |
| |
| - libc: Add an option to disable support for long long formats in |
| lib_vsprintf(). On very tiny platforms, this reduces the footprint |
| by omitting large libgcc.a libraries to perform the 64-bit |
| arithmetic operations. From Alan Carvalho de Assis. |
| |
| * Applications: apps/system: |
| |
| - nuttx/zoneinfo: Add logic to build a ROMFS file system |
| containing the timezone data. |
| |
| * Applications: apps/nshlib: |
| |
| - Add poll support for Unix stream sockets. From Jussi Kivilinna. |
| - Enhancements to NSH ifconfig for case of multi-link operation, TUN |
| device and local connections. From Max Neklyudov. |
| - Enhanced output to NSH ping command from Max Neklyudov. |
| - The NSH mount command now recognizes the Union filesystem type when |
| listing mounted file systems. |
| |
| * Applications: apps/netutils: |
| |
| - apps/netutils/thttpd/ and apps/examples/thttpd/: Add support for |
| using binfs/ with the Union FS instead of NXFLAT. NXFLAT is |
| probably the better solution but recently compiler changes make it |
| unusable. binfs or ELF are fallback binary formats. This commit |
| adds an option to use binfs with the Union FS. |
| |
| * Applications: apps/examples: |
| |
| - Modify/simpify apps/examples build files. From Roman Saveljev. |
| - apps/examples/ltdc: Add testing support for the STM32 LTDC's 2D DMA. |
| From Marco Krahl. |
| - apps/examples/ostest: Add a test of nested signals. There are no |
| failures to handle signals but neither am I getting any nested signal |
| handling. |
| - apps/examples/elf: Add configuration options to support building the |
| hello++4 example that depends upon having uClibc++ available. Also |
| add hello++5 to the ELF example From Leo aloe3132. |
| - apps/examples/unionfs: Add a test of the union file system to |
| apps/examples. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| Bugfixes. Only the most critical bugfixes are listed here (see the |
| ChangeLog for the complete list of bugfixes and for additional, more |
| detailed bugfix information): |
| |
| * Core OS: |
| |
| - boardctl(): Add missing case causing that caused failures of PWM |
| test. |
| - pthread_kill(): Re-implemented pthread_kill(). It was just a simple |
| wrapper around kill() but since the correct dispatching of signals |
| for multi-threaded task groups has been implemented, calling kill() |
| does not do what pthread_kill() is supposed to do. The corrected |
| implementation of pthread_kill() will direct the signal specifically |
| to the specific pthread and no other. |
| - uint32_t callbacks: Update the type passed to watchdog timer |
| handlers. Using uint32_t is a problem for 64-bit machines because |
| it is too small to pass a pointer. uintptr_t is a more appropriate |
| type. |
| - mq_timedreceive(): move the location where the errno value is set; |
| the ETIMEDOUT errno setting was being overwritten by subsequent |
| actions before returning. Noted by Freddie Chopin. |
| - POSIX message queues: Move mq_setattr() and mq_getattr() from |
| nuttx/libc/mqueue to nuttx/sched/mqueue. Also add syscall support |
| for mq_setattr() and mq_getattr(). This is necessary in protected |
| and kernel builds because in those cases the message queue |
| structure is protected and cannot be accessed directly from user |
| mode code. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - MTD: Increase the size of the fields in the geometry structure |
| (again) to support larger FLASH sizes. Needed by Sebastien Lorquet. |
| |
| * Common Drivers: |
| |
| - poll(): Fix resource leak and memory corruption on poll failure. |
| From Jussi Kivilinna. |
| |
| * USB Host: |
| |
| - LPC31xx and SAMA5Dx EHCI: Fix cache related problem in LPC31 and |
| SAMA5Dx EHCI drivers. All buffers are now aligned with the cache |
| line size in both starting address and in length. This cause major |
| problems in unlucky builds where the USB host buffers where |
| unaligned and abutting other data. The cache flush and invalidate |
| operations could be subverted by accesses to adjacent data or could |
| have unexpected side effects. This bug has been in the ECHI drivers |
| forever, but was only revealed due to unlucky memory allocations |
| during the integration of the hub feature. |
| |
| * USB Device: |
| |
| - All USB device class drivers: There needs to be a check to make |
| sure that the size of a returned string does not exceed the size of |
| the allocated request buffer. Strings such as vendor names or |
| product names will be truncated to fit in the request buffer. |
| |
| * Networking: |
| |
| - TCP: Correct failures in long Telnet sessions by increasing th |
| size of the number of bytes sent from uint16_t to uint32_t. This |
| avoids an integer overflow that causes a long Telnet session to be |
| closed unexpectedly. From Rony XLN. |
| - Network locks: Correct some network lock logic: Two error |
| conditions where the network was not being unlocked and one where it |
| was getting unlocked twice. From Jussi Kivilinna. |
| - Local Sockets: Local stream sockets had problem of double releasing |
| pipes (both server and client attempt release), which causes wrong |
| pipe pair being closed in multi-client case. Solve by adding per |
| connection instance ID to pipe names. From Jussi Kivilinna. |
| - TCP: Fix an important TCP networking bug: 16-bit flags was being |
| converted to 8-bits in a few locations, causing loss of status |
| indications. |
| - TCP: net_startmonitor() always returned OK. In the race case |
| where a socket has already been closed, it correctly handled the |
| disconnection event but still returned OK. Returning OK caused the |
| callers of net_startmonitor() to assume that the connection was |
| okay, undoing the good things that net_startmonitor() did and |
| causing the socket to be incorrectly marked as connected. This |
| behavior was noted by Pelle Windestam. |
| - setsockopt() failed when setting timeouts to values less tha 100 |
| msec. That is because the timeout is limited to stops of 1 |
| decisecond and because the conversion of structure timeval was |
| truncating the microsecond remainder. The utility |
| net_timeval2dsec() now accepts and option to determine how it |
| handles the remainder: truncate, discarding the remainder, use |
| the remainder to round to the closed decisecond value, or use any |
| non-zero remainder to the next larger whole decisecond value. Bug |
| discovered by Librae. |
| - TCP: In the TCP connection operation, it was trying to setup the |
| network monitor BEFORE the socket was successfully connected. This, |
| of course, has ALWAYS failed because the socket is not yet connected |
| and the TCP state is not yet correct for a connected socket. However, |
| because of other changes net_startmonitor() now returns a failure |
| condition that causes worse problems when trying to connect. The fix |
| is to move the logic that starts the network monitor to AFTER the |
| socket has been successfully connected. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4CM and SAMA5D Free-running timer: Logic that samples the free |
| running counter reads the pending interrupt status register and can |
| cause interrupts to be lost. So, if when the status register is |
| read, the logic must also handle the timer overflow event. Found |
| and fixed by Max Neklyudov. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAM3/4 Serial: When reconfigured, serial does not receive bytes |
| from UART. This happens because RX interrupt was disabled in the |
| setup routine. Fixed this I save interrupt configuration before |
| UART shutdown and restore it after. From Max Neklyudov. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC176x GPIO: Reorder steps when an output GPIO is configured in |
| order to avoid transient bad values from being output. From Hal |
| Glenn. |
| - LPC17 USB OHCI: Correct some initialization of data structures. |
| When hub support is enabled, it would overwrite the end of an array |
| and clobber some OS data structures. |
| - LPC17xx Ethernet: Review, update, and modify the Ethernet driver so |
| that it works better with CONFIG_NET_NOINTS=y. Also, update all |
| LPC17xx networking configurations so that they have |
| CONFIG_NET_NOTINTS=y selected. |
| |
| * SiLabs EMF32 Drivers: |
| |
| - EFM32 SPI: Add missing SPI GPIO pin initialization. From Pierre-noel |
| Bouteville. |
| |
| * STMicro STM32: |
| |
| - STM32 F3: Added missing EXTI definitions for the STM32 F3; Correct |
| an error the port D base address in the STM32 F30x and F37x memory |
| maps. From Greg Meiste. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM23 RTC: Fix an error introduced into stm32_pwr_enablebkp(). |
| That function must preserve the previous state of backup domain |
| access on return. |
| - STM32 RTC counter: Now need to enable backup domain write access |
| when setting the time. From Darcy Gong. |
| - STM32 OTG FS and HS: Added protection in the event that out-of-bound |
| endpoint numbers are received. From David Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429i Disco: (1) Fix a bad return value if the LCD driver is |
| already initialized. (2) The LCD driver initialization is now |
| performed during the early boot sequence. (3) Increased the size |
| of the message queue from 32 to 64 in the lcd configuration. From |
| Marco Krahl. |
| |
| * TI Tiva |
| |
| - Fixes for Tiva TM4C1294NCPDT. From Frank Sautter. |
| |
| * Atmel SAMV71 Drivers: |
| |
| - SAMV7 TWIHS: Fix SAMV TWIHS logic that performs multi-message |
| transfers with and without repeated starts. |
| |
| * Atmel SAMA5D3/4 Dirvers: |
| |
| - SAMA5 CAN: Fix SAMA5 CAN frame construction. From Max Holtzberg. |
| |
| * C Library/Header Files: |
| |
| - stdlib.h: MAX_RAND should be RAND_MAX. |
| - assert.h: Wrap definitions of assertion macros in do while so that |
| they are valid C statements. Numerous places throughout the code |
| where semicolons were missing at the end of an assertion also had to |
| be fixed. Suggested by orbitalfox. |
| - inetntoa(): Correct errors in printing IP address when type char is |
| signed and the value is >= 128. From Max Neklyudov. |
| |
| * Tools: |
| |
| - Tools: Fix test for the existence of the apps/ directory in |
| configure.c. Fix backward interpretation of options, -l was selecting |
| Windows and -w was selecting Linux. This was SourceForege Ticket #39. |
| |
| * Applications: apps/nshlib: |
| |
| - apps/nshlib/nsh_timcmds.c: Check return values from time functions. |
| - apps/nshlib/: Fix handling of gmtime_r return value in time commands. |
| gmtime_r returns a pointer, not an int. |
| |
| * Applications: apps/netutils: |
| |
| - apps/netutils/ntp: Fix mismatched sched_lock/unlock. Noted by Juha |
| Niskanen. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/nxlines: Fix missing right bracket that causes |
| compile error when CONFIG_NX_XYINPUT=y. From Librae. |
| - apps/examples: When boardctl() fails, need to print errno not the |
| returned value which will always be -1. |
| - apps/examples: Correct use of the BOARDIOC_GRAPHICS_SETUP boardctl() |
| call. |