417 lines
16 KiB
Plaintext
417 lines
16 KiB
Plaintext
|
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.
|