256 lines
9.5 KiB
Plaintext
256 lines
9.5 KiB
Plaintext
|
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.
|