nuttx/Documentation/ReleaseNotes/NuttX-7.14

256 lines
9.5 KiB
Plaintext
Raw Normal View History

NuttX-7.14
----------
The 114th release of NuttX, Version 7.14, was made on January 28, 2016,
and is available for download from the Bitbucket.org website. Note
that release consists of two tarballs: nuttx-7.14.tar.gz and
apps-7.14.tar.gz. These are available from:
https://bitbucket.org/patacongo/nuttx/downloads
https://bitbucket.org/nuttx/apps/downloads
Both may be needed (see the top-level nuttx/README.txt file for build
information).
Additional new features and extended functionality:
* Core OS:
- modules: Add support for kernel modules: insmod, rmmod, support
functions. procfs support for user lsmod functioniality.
- SIGEV_THREAD: Add support for the SIGEV_THREAD notification method
in struct sigevent. This initial implementation will only work in
the FLAT build since it utilizes the work queue for signal
callbacks. See the top-level TODO file for additional details.
- 64-Bit Timer: If the 64-bit timer is selected, then use it whenever
clock_systimer() is called rather then chopping the 64-bit timer
down to 32-bits. Add a new type, systime_t to represent the 32- or
64-bit system timer. This eliminates clock_systimer32() and
clock_systime64(); there is now only clock_systimer().
* Common Device Drivers:
- Telnet Driver: Move the Telnet driver from apps/ to
nuttx/drivers/net. It is a driver a belongs in the OS. Now works
like the loop device: A new interface called telnet_initialize()
registers a telnet session "factory" device at /dev/telnet. Via
ioctl, the factory device can create instances of the telnet
character devices at /dev/telnetN to support Telnet sessions.
- PCA9635PW: Add a driver for the PCA9635PW I2C LED driver IC which
can be used to control the intensity of up to 16 LEDs. From
Alexander Entinger.
- MCP9844: Driver for the MCP9844 I2C digital temperature sensor with
a selectable resolution. From Alexander Entinger.
- PN532: Add driver for the NXP PN532 NFC-chip. From Janne Rosberg
and others at Offcode Ltd.
- LSM9DS1: Add driver for the STMicro LSM9DS1 chip. The LSM9DS1 is a
system-in-package featuring a 3D digital linear acceleration sensor,
a 3D digital angular rate sensor, and a 3D digital magnetic sensor.
From Paul Alexander Patience.
- CAN Interface: Add more extensive error reporting capaibility to
the CAN interface definitions. From Frank Benkert.
- SPI Interface: Add an optional hwfeatures() method to the SPI
interface.
* Simulation Platform:
- NSH configuration uses the custom start up scriptwith a read-only
passwd file. Includes hooks for an MOTD message.
* ARMv7-R
- ARMv7-R: Add basic architecture support for the ARMv7-R processor
family.
* Atmel AVR:
- Atmega2560: Add support for the Atmega2560. From Dimitry Kloper.
- debug.h: Add an AVR-specific header file used when the AVR MEMX
pointer is used. From Dimitri Kloper.
* Atmel AVR Boards:
- Arduino-Mega2560: Add support for the Arduino-Mega2560. From
Dimitry Koper.
* Atmel SAMV7 Drivers:
- Port the TRNG driver from the SAMA5D3/4 to the SAMV7.
- Port the WDT driver from the SAMA5D3/4 to the SAMV7.
- Add an RSWDT driver.
* Atmel SAMV7 Boards:
- SAMV71-XULT: Add configuration for testing OS modules.
* Freescale Kinetis:
- MK60N512VLL100: Add support for the MK60N512VLL100 Kinetis part.
From Andrew Webster.
* Freescale Kinetis Boards:
- ENET: Numerous updates to the Kinetis ENET driver. That driver is
now functional. From Andrew Webster.
* NXP LPC43xx Boards:
- WaveShare LPC4337-WS: Support for the WaveShare LPC4337-WS board.
From Lok Tep.
* STMicro STM32 Drivers:
- Timer Capture: Add timer input capture driver. From Pierre-Noel
Bouteville.
* STMicro STM32 Boards:
- Olimex STM32 H407: Added a port to the Olimex STM32 H407 board.
This board features the STMicro STM32F407ZGT6 (144 pins).
Contributed by Neil Hancock.
* TI TMS550 Boards:
- TI LaunchXL-TMS57004: Add basic board support for TI LaunchXL-
TMS57004. Still a work in progress.
* C Library/Header Files:
- sys/time.h: Add timeradd(), timersub(), timerclear(), timerisset(),
and timercmp() as macros. These are non-POSIX interfaces, but
included in most BSD deriviatives, including Linux. From Manuel St??.
- AVR support: Introduce support for Atmel toolchain in-flash strings.
Atmel toolchain AVR compiler provides a transparent in-flash object
support using __flash and __memx symbols. The former indicates to
compiler that this is a flash-based object. The later used with
pointer indicates that the referenced object may reside either in
flash or in RAM. The compiler automatically makes 32-bit pointer
with flag indicating whether referenced object is in flash or RAM
and generates code to access either in run-time. Thus, any function
hat accepts __memx object can transparently work with RAM and flash
objects.
For platforms with a Harvard architecture and a very small RAM like
AVR this allows to move all constant strings used in trace messages
to flash in the instruction address space, releasing resources for
other things. This change introduces IOBJ and IPTR type qualifiers.
The 'I' indicates that the object may lie in instruction space on a
Harvard architecture machine. For platforms that do not have __flash
and __memx or similar symbols IOBJ and IPTR are empty, making the
types equivalent to, for example, 'const char' and 'const char*'.
For Atmel compiler these will become 'const __flash char' and
'const __memx char*'. All printf() functions and syslog() functions
are changed so that the qualifier is used with the format parameter.
From Dimitry Kloper.
- debug.h: Add configuration to support an architecture-specific
debug.h header file. From Dimitri Kloper.
- netdb: Add support for the use of a DNS resolver file like
/etc/resolv.conf.
- TEA: Add an implementation of the Tiny Encryption Algorithm.
- math32.h: Add some utilities to support 64-bit arithmetic
operations for platforms that do not support long long types.
* Tools:
- tools/cnvwindeps.c: Add a tool that will convert paths in
dependencies generated by a Windows compiler so that they can be
used with the Cygwin make.
- tools/mkwindeps.sh: A script that coordinates use of cnvwindeps.exe.
Dependencies now work on the Cygwin platform when using a Windows
ative toolchain.
* Applications: NSH
- Module Commands: Add module commands: insmod, rmmod, and lsmod.
- Time Command: Add a 'time' command that may be used to time the
execution of other commands.
- Password Commands: Add useradd, userdel, and passwd commands.
- MOTD: Now supports a Message of the Day (MOTD) that will be
presented after the NSH greeting.
- Session Logins: All sessions may be protected with logins using the
encrypted password in /etc/passwd.
- Extended Logins. Added optional platform-specific function to
perform password verification and optional delay after each failed
login attempt.
* Applications: apps/fsutils:
- apps/fsutils/passwd: Utility library for accessing a password file
like /etc/passwd.
* Applications: apps/netutils:
- apps/netutils/telnetd: Now creates Telnet sessions by opening a new
factory device at /dev/telnet and then using ioctl calls to create
the session character drivers at /dev/telnetN.
- apps/netutils/netlib: Add netlib_get_dripv4addr() and
netlib_get_ipv4netmask(). From Pelle Windestam.
* Applications: apps/examples:
- apps/examples/module: Add a test harness for verifying NuttX kernel
modules.
- apps/examples/pca9635: Add a simple test of PCA9635PW PWM LED driver.
From Alan Carvalho de Assis.
- apps/examples/ostest: Add a test of POSIX timers using SIGEV_THREAD.
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:
- pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that
of the type of a pthread. Hence, it could be confused as a task.
- waitpid: CRITICAL BUGFIX. Add a reference count to prevent waitpid
from using stale memory released by the waited-for task group.
- clock_systimespec(): Fix an error in a time conversion.
* File System/Block Drivers:
- poll(): Fix handling of sem_tickwait() return value sem_tickwait()
does not return an -1+errno, it returns a negated errno value.
Noted by Freddie Chopin.
* Common Drivers:
- TUN Driver: Fix a compile time error in the TUN driver. From
Vladimir Komendantskiy.
- USB Host HID Parser: Wrong size used in memcpy(). From Hang Xu.
- PCA9555: Fixed a bug in the function pca9555_setbit which occurs if
someone tries to set one of the pins 8-15. The problem is that
after the check if the pin is greater than 7 the variable addr is
incremented and used in the Call I2C_WRITEREAD. But later in the
call to the I2C_WRITE buf[0] is used as address but this address is
not incremented as it should be. Note address does mean the address
to the register in the ioexpander and not the I2C address. From
Stefan Kolb.
* Networking:
- TCP/IOB: Numerous fixes, mostly relate to TCP and IOB buffering
and race conditions. These were necessary for for the NuttX
networking later to be stable in some stress testing. From Andrew
Webster.
* Atmel SAMV7 Drivers:
- USBHS Device: In USBHS device driver, fix check if zero length
packet is needed.
* STMicro STM32 Drivers:
- OTG FS Host: Fix some backward arguments to stm32_putreg(). Note
by Hang Xu.
* Tools:
- tools/mkdeps.c: Extended/fixed support for --winpath option.
Dependencies now work under Cygwin with a native Windows toolchain.
* Build System:
- apps/platform/Makefile: Use a relative path to the board directory
link rather than the absolute path. For Cygwin, the absolute would
would need converted with cygpath. But just using the relative path
is a simpler solution.