mirror of
https://github.com/apache/nuttx.git
synced 2026-05-25 18:27:56 +08:00
Prep for the 7.12 release
This commit is contained in:
+291
-1
@@ -9620,6 +9620,296 @@ detailed bugfix information):
|
||||
anti-aliasing OFF. but I don't have the wherewithal for that change
|
||||
today.
|
||||
- OS test: Improve synchronization in round robin tests. On very fast
|
||||
processors, there are race conditions that make the test failure.
|
||||
processors, there are race conditions that make the test fail.
|
||||
Need better interlocking to assure that the threads actually do start
|
||||
at the same time.
|
||||
|
||||
NuttX-7.12 Release Notes
|
||||
------------------------
|
||||
|
||||
The 112th release of NuttX, Version 7.12, was made on October 1, 2015,
|
||||
and is available for download from the Bitbucket.org website. Note
|
||||
that release consists of two tarballs: nuttx-7.12.tar.gz and
|
||||
apps-7.12.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:
|
||||
|
||||
* Graphics/Graphic Drivers:
|
||||
|
||||
- Added SSD1351 OLED controller support. Contributed by Paul
|
||||
Alexander Patience.
|
||||
|
||||
* Common Device Drivers:
|
||||
|
||||
- MS58xx: Generalize the MS5805 altimeter driver to support other
|
||||
family members. From Paul Alexander Patience.
|
||||
- CAN driver interface: Add an error indication bit to the CAN
|
||||
message report.
|
||||
- Developed a new interface for QSPI. Most QSPI hardware (such as the
|
||||
SAMV71) used a programmed interface to access the QuadSPI FLASH.
|
||||
That programmed interface is no compatible with the simpler NuttX
|
||||
SPI data transfer interface.
|
||||
- Added a driver for ST25L1*K QuadSPI parts.
|
||||
- Renamed the battery driver interface to battery_gauge since it
|
||||
really only implements a battery fuel gauge. From Alan Carvalho de
|
||||
Assis.
|
||||
- Added a new framework to support a batter charger interface. From
|
||||
Alan Carvalho de Assis.
|
||||
- Added a BQ24250 battery charger driver. From Alan Carvalho de Assis.
|
||||
|
||||
* Networking:
|
||||
|
||||
- Added support for the local loopback device (dev lo, hostname localhost).
|
||||
- Added NetDB support for the local loopback device.
|
||||
- Network initialization: Automatically initialize all the TUN and
|
||||
loopback devices if they arein the configuration.
|
||||
|
||||
* Simulation Platform:
|
||||
|
||||
- The simulation now runs under Cygwin64. Modern Cygwin X86_64
|
||||
machines follow the Microsoft ABI for parameter passing. The Linux
|
||||
System 5 ABI would not work on X86_64-based Cygwin machines. Newer
|
||||
Cygwin tool chains do nor pre-pend symbol names with the underscore
|
||||
character.
|
||||
|
||||
* Atmel SAMA5Dx:
|
||||
|
||||
- Added architectural support for the Atmel SAMA5D2 parts. Not fully
|
||||
verified in this NuttX release.
|
||||
|
||||
* Atmel SAMA5Dx Boards:
|
||||
|
||||
- Added support for the Atmel SAMA45D2 Xplained Ultra board. Not
|
||||
fully verified in this NuttX release.
|
||||
|
||||
* Atmel SAMV7 Drivers:
|
||||
|
||||
- SAMV7 USBHS DCD: The device controller driver is (finally)
|
||||
functional.
|
||||
|
||||
* NXP LPC17xx:
|
||||
|
||||
- Implement options to use external SDRAM and or SRAM for the heap.
|
||||
From Pavel Pisa.
|
||||
|
||||
* NXP LPC43x:
|
||||
|
||||
- Added architectural support for the LPC4370. From Lok Tep.
|
||||
|
||||
* NXP LPC43xx Drivers:
|
||||
|
||||
- Added Ethernet support. From Ilya Averyanov.
|
||||
- Added LPC43xx EHCI driver from Ilya Averyanov.
|
||||
|
||||
* NXP LPC43xx Drivers:
|
||||
|
||||
- Added support for the NXP LPC4370-Link2 development board from Lok
|
||||
Tep.
|
||||
|
||||
* STMicro STM32:
|
||||
|
||||
- Added architectural for STM32F303K6, STM32F303K8, STM32F303C6,
|
||||
STM32F303C8, STM32F303RD, and STM32F303RE devices. From Paul
|
||||
Alexander Patience.
|
||||
|
||||
* STMicro STM32 Drivers:
|
||||
|
||||
- Added OTG support for STM32F44x. From David Sidrane.
|
||||
|
||||
* STMicro STM32 Boards:
|
||||
|
||||
- Added support for the STMicro Nucleo F303ERE board from Paul
|
||||
Alexander Patience.
|
||||
|
||||
* C Library/Header Files:
|
||||
|
||||
- stdlib: Add support for div() to the C library. From OrbitalFox.
|
||||
Also added ldiv() and lldiv() which are equivalent to div() with
|
||||
long and long long types, respectively, instead of int.
|
||||
- Added an implementation of the standard shutdown function.
|
||||
|
||||
* Tools:
|
||||
|
||||
- tools/mksymtab: declare g_symtab array as const to occupy RO section
|
||||
(Flash). From Pavel Pisa.
|
||||
|
||||
* Build/Configuration System:
|
||||
|
||||
- Simplify configs/ Makefiles by combining common logic into a new
|
||||
Board.mk Makefile fragment. From Paul Alexander Patience.
|
||||
|
||||
* Applications: apps/system:
|
||||
|
||||
- apps/system/symtab: Optional canned symtab inclusion to the build.
|
||||
When option CONFIG_SYSTEM_SYMTAB is selected and symbol table file
|
||||
libc/symtab/canned_symtab.inc is prepared then application can use
|
||||
system provided complete symbol table. The option has substantial
|
||||
effect on system image size. Mainly code/text. If loading of
|
||||
applications at runtime is not planned do not select this. From
|
||||
Pavel Pisa.
|
||||
|
||||
* Applications: apps/canutils:
|
||||
|
||||
- apps/canutils/uavcan: Add support for libuavcan. From Paul Alexander Patience.
|
||||
|
||||
* Applications: apps/examples:
|
||||
|
||||
- apps/examples/can: Extend the CAN loopback test by adding more
|
||||
command line options.
|
||||
- apps/examples/usbserial: Can now be run as an NSH builtin-function.
|
||||
Now uses a configurable IO buffer size.
|
||||
- apps/examples/nettest: Add option to suppress network initialization.
|
||||
This is necessary if the nettest is run from NSH which has already
|
||||
initialized the network.
|
||||
- apps/examples/nettest: Extend test so that can be performed using
|
||||
the local loopback device.
|
||||
- apps/examples/netloop: Add a test of the local loopback device.
|
||||
- apps/examples/udpblaster: Add a test to stress the network by
|
||||
sending UDP packets at a very high rate. .
|
||||
- apps/examples/uavcan: libuavcan example from Paul Alexander Patience.
|
||||
|
||||
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:
|
||||
|
||||
- wd_create(): Correct a counting error in the number of available
|
||||
watchdog timers. When the number of free timers is low, the counter
|
||||
could be incremented below zero.
|
||||
- mq_open(): When message queue is opened, inode_reserve() leaves the
|
||||
reference count at zero. mq_open() logic must assure that the
|
||||
reference count of the newly created inode is one.
|
||||
- work_queue(): Logic that sets the queued indication and the logic
|
||||
that does the actual queuing must be atomic.
|
||||
|
||||
* Binary Loader:
|
||||
|
||||
- Fix a memory leak in the built-in application logic: File was not
|
||||
being closed. From Bruno Herrera.
|
||||
|
||||
* File System/Block Drivers:
|
||||
|
||||
- poll(): If we fail to setup the poll for any file descriptor, for
|
||||
any reason, set the POLLERR bit.
|
||||
- rwbuffer: Fix some logic errors. From Dmitry Nikolaev via Juha
|
||||
Niskanen.
|
||||
- ROMFS: One allocation was not being freed if there was a subsequent
|
||||
failure to allocation I/O buffers resulting in a memory leak on
|
||||
certain error conditions. From Bruno Herrera.
|
||||
|
||||
* Networking/Network Drivers:
|
||||
|
||||
- Fix a bug in tun interface driver. From Max Neklyudov.
|
||||
- recvfrom(): Correct wait for new data when NET_UDP_READAHEAD is
|
||||
enabled. Fix size accounting when recvfrom_udpreadahead() sets
|
||||
state.rf_recvlen == -1. I have not checked if data are accumulated
|
||||
to the right position in the buffer however. From Pavel Pisa.
|
||||
- networking: Correct return value from psock_tcp_accept(). From
|
||||
SaeHie Park.
|
||||
- TCP: Fix a problem in when there are multiple network devices.
|
||||
Polls were being sent to all TCP sockets before. This is not good
|
||||
because it means that packets may sometimes be sent out on the wrong
|
||||
device. That is inefficient because it will cause retransmissions
|
||||
and bad performance. But, worse, when one of the devices is not
|
||||
Ethernet, it will have a different MSS and, as a result, incorrect
|
||||
data transfers can cause crashes. The fix is to lock into a single
|
||||
device once the MSS is locked locked down.
|
||||
- net/tcp: The logic that binds a specific network device to a
|
||||
connection was faulty for the case of multiple network devices. On
|
||||
bind(), the local address should be used to associate a device with
|
||||
the connection (if the local address is not INADDR_ANY); On connect(),
|
||||
the remote address should be used (in case the local address is
|
||||
INADDR_ANY). On accept(), it does not matter but the remote address
|
||||
is the one guaranteed to be available.
|
||||
- net/tcp: Fix unbuffered send compilation error when Ethernet is not
|
||||
enabled. From Alan Cavalho de Assis.
|
||||
|
||||
* ARMv7-M:
|
||||
|
||||
- All ARMV7-M IRQ setup: Always set the NVIC vector table address
|
||||
unconditionally. This is needed in cases where the code is running
|
||||
with a bootload and when the code is running from RAM. It is also
|
||||
needed by the logic of up_ramvec_initialize() which gets the vector
|
||||
base address from the NVIC. Suggested by Pavel Pisa.
|
||||
- Fix some H/W floating point logic: In the original implementation,
|
||||
!defined(CONFIG_ARMV7M_CMNVECTOR) was a sufficient test to determine
|
||||
if lazy floating point register saving was being used. But recents
|
||||
changes added common lazy register as well so now that test must be
|
||||
(!defined(CONFIG_ARMV7M_CMNVECTOR) || defined(CONFIG_ARMV7M_LAZYFPU)).
|
||||
- ARMv7-M, all "lazy" interrupt stack logic. Assembly instruction
|
||||
that fetches the saved value is incorrect; replace with more
|
||||
traditional push and pop. This is an important fix. Noted by
|
||||
Stefan Kolb.
|
||||
- All ARMV7-M: Force 8-byte stack alignment when calling from assembly
|
||||
to C to interrupt handling.
|
||||
- up_schedulesigaction(): Fix logic that determines if there is a
|
||||
pending signal action before scheduling the next signal action.
|
||||
Both the test and the scheduling action need to be atomic. This
|
||||
problem was fixed on the ARMv7-M but also ported to other
|
||||
architectures that had the same issue.
|
||||
|
||||
* NXP LPC43xx:
|
||||
|
||||
- LPC43xx: Fix NVIC_SYSH_PRIORITY_STEP define. From Ilya Averyanov.
|
||||
- LPC43xx: Fix missing #define in eeprom. From Ilya Averyanov.
|
||||
|
||||
* NXP LPC43xx Drivers:
|
||||
|
||||
- Fixed the SPI driver. From Ilya Averyanov.
|
||||
|
||||
* Atmel SAMA5 Drivers:
|
||||
|
||||
- LPC31 and SAMA5D EHCI: Fix qh_ioccheck to move bp to next QH. From
|
||||
Ilya Averyanov.
|
||||
- LPC31 and SAMA5D EHCI: Performance improvement: Do not disable the
|
||||
asynchronous queue when adding a new QH structure. From Ilya
|
||||
Averyanov.
|
||||
|
||||
* C Library/Header Files:
|
||||
|
||||
- gethostbyname(): correct returned address format when DNS is used.
|
||||
The hostent.h_addr_list should point to raw in_addr or in6_addr
|
||||
as defined in the standard. Original implementation used that for
|
||||
numeric addresses but for DNS lookup returned pointer to whole
|
||||
sockaddr_in or sockaddr_in6. From Pavel Pisa .
|
||||
- asin(): The function did not convert for some input values. asing()
|
||||
did not convert for values which do not belong to the domain of the
|
||||
function. But aside of that the function also did not converge for
|
||||
allowed values. I achieved a conversion of the function by
|
||||
reducing the DBL_EPSION and by checking if the input value is in
|
||||
the domain of the function. This is a fix for the problem but the
|
||||
function should always terminate after a given number of iterations.
|
||||
From Stefan Kolb.
|
||||
- Change all references from avsprintf to vasprintf. From Sebastien
|
||||
Lorquet.
|
||||
|
||||
* Applications: apps/nshlib:
|
||||
|
||||
- Fix error handling in 'cat' command. On a failure to allocate
|
||||
memory, a file was not being closed. From Bruno Herrera.
|
||||
- Fix error handling in 'mv' command. On a failure to expand the
|
||||
second path, the memory allocated for the expansion of the first
|
||||
path was not being freed. From Bruno Herrera.
|
||||
|
||||
* Applications: apps/system:
|
||||
|
||||
- apps/system/netdb: Failed to build if CONFIG_NET_HOSTFILE was not
|
||||
defined because gethostbyaddr() was not available. Noted by
|
||||
OrbitalFox.
|
||||
|
||||
* Applications: apps/netutils:
|
||||
|
||||
- Various Kconfig files in netutils: Fix some changes from from
|
||||
NETUTILS_DNSCLIENT to NETDB_DNSCLIENT. From Pavel Pisa.
|
||||
|
||||
* Applications: apps/modbus:
|
||||
|
||||
- Macros PR_BEGIN_EXTERN_C and PR_END_EXTERN_C were not defined in
|
||||
all contexts. Replace with explicit expansion in all cases. From Stefan Kolb.
|
||||
|
||||
Reference in New Issue
Block a user