From 4cf28dff1ddec5c366f7da9fbc92698a756d6bda Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 1 Oct 2015 13:10:11 -0600 Subject: [PATCH] Prep for the 7.12 release --- ChangeLog | 32 +++--- Documentation | 2 +- ReleaseNotes | 292 +++++++++++++++++++++++++++++++++++++++++++++++++- configs | 2 +- 4 files changed, 310 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5698374cb6..0838c1843f 100755 --- a/ChangeLog +++ b/ChangeLog @@ -4114,7 +4114,7 @@ group exits. * sched/waitpid.c, task_exithook.c and include/nuttx/sched.h: Move waitpid data data structures to task group. Callers of - of waitpid() are now only awakened whent he final thread of the + of waitpid() are now only awakened when the final thread of the task group exits. * sched/mq_descreate.c, mq_open.c, mq_remove.c, group_leave.c, and include/nuttx/sched.h: Move list of opened message queues to @@ -4533,7 +4533,7 @@ * arch/arm/src/lpc17_lcd.c: Rommel Marcelo got the LPC1788 framebuffer-based LCD working. Very nice! (2013-4-08). * arch/arm/src/lm/lm_clockconfig.c and configs/lm4f120-launchpad: - Fix handling of the RCC SYSDIV2 field whent the PLL output is + Fix handling of the RCC SYSDIV2 field when the PLL output is 400MHz. Don't forget to set the USERCC2 bit in the register or all is for naught (2013-4-09). * configs/zkit-arm-1769/src/up_lcd.c, up_ssp.c, and up_spi.c: @@ -10814,7 +10814,7 @@ support for an MS5805 altimeter. From Paul Alexander Patience (2015-08-12). -7.12 2015-xx-xx Gregory Nutt +7.12 2015-10-01 Gregory Nutt * fs/vfs/fs_poll.c: Use sem_tickwait() instead of sem_timedwait() From Macs Neklyudov (2015-08-13). @@ -10828,7 +10828,7 @@ * include/signal.h and files that include it: Add si_errno to siginfo_t (2015-08-14). * drivers/sensors/mx58xx.c and include/nuttx/sensors/ms58xx.h: - General the MS5805 altimeter driver to support other family + Generalize the MS5805 altimeter driver to support other family members and rename to ms58xx. From Paul Alexander Patience (2015-08-14). * Network drivers. Fix bug in tun interface driver. From Max @@ -10866,12 +10866,12 @@ 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 (2015-08-21). - * tools/mksymtab: declare g_symtab array as conts to occupy RO + * tools/mksymtab: declare g_symtab array as const to occupy RO section (Flash). From Pavel Pisa (2015-08-23). * libc/libc.csv and syscalls/syscalls.csv: Define some symbol export conditions, correct errno and add sleep and usleep. From Pavel Pisa (2015-08-23). - * net/ ande include/nuttx/net: Remove references to PPP as a + * net/ and include/nuttx/net: Remove references to PPP as a link layer protocol (2015-08-24). * net/, drivers/net, and include/net: Add definitions to support a local loopback device and link layer (2015-08-24). @@ -10889,7 +10889,7 @@ with the SAMV71 QSPI hardware (2015-08-25). * drivers/rwbuffer.c: Fix some logic errors. From Dmitry Nikolaev via Juha Niskanen (2015-08-26). - * net/socket and net/tcp: Fix a problem in whent there are multiple + * net/socket and net/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 @@ -10908,7 +10908,7 @@ * fs/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 (2015-08-30). - * arch/arm/src/up_iternal.h and several ARM Make.defs files: In the + * arch/arm/src/up_internal.h and several ARM Make.defs files: 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 @@ -10924,7 +10924,7 @@ * libc/math/lib_asin.c: The function did not convert for some input values. Asin did not convert for values which do not belong to the domain of the function. But aside of that the function also did not - convert for sine allowed values. I achieved a conversion of the + converge for some 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 @@ -10933,7 +10933,7 @@ Averyanov (2015-09-02). * arch/arm/src/lpc43xx/lpc43_ethernet.c: Add Ethernet support. From Ilya Averyanov (2015-09-02). - * net/tcp: The logic that binds a specific networkd device to + * 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); @@ -10959,12 +10959,12 @@ Averyanov (2015-09-07). * arch/arm/src/sama5: Separate memory mapping tables for SAMA5D2, 3, and 4 (2015-09-08). - * libc/net/lib_shutdown.c: Add an empty implementatino of the + * libc/net/lib_shutdown.c: Add an empty implementation of the standard shutdown function. This provides only the framework for the shutdown function; the internal logic is not included (2015-09-09). - * configs/nucleo-f303re: Support for the STMicro Nucleo F303ERE board - from Paul Alexander Patience (2014-09-10). + * configs/nucleo-f303re: Support for the STMicro Nucleo F303RE board + from Paul Alexander Patience (2015-09-10). * arch/arm/src/lpc43xx/lpc32_ehci.c and .h: LPC43xx EHCI driver from Ilya Averyanov (2015-09-10). * ARMv7-M, all "lazy" interrupt stack logic. Assembly instruction @@ -10976,8 +10976,8 @@ * drivers/power/battery_gauge.c and include/nuttx/power/battery_gauge.h: battery.c/h renamed to batter_gauge.c/.h since it really only implements a battery fuel gauge. From Alan Carvalho de Assis (2015-09-19). - * drivers/power/battery_charter.c and include/nuttx/power/batter_charger.h: - Add a new frame to support a batter charger interface. From Alan + * drivers/power/battery_charger.c and include/nuttx/power/batter_charger.h: + Add a new framework to support a batter charger interface. From Alan Carvalho de Assis (2015-09-19). * drivers/power/bq2425x.c and .h: Battery Charger: Add BQ24250 driver. From Alan Carvalho de Assis (2015-09-20). @@ -11003,3 +11003,5 @@ * sched/wqueue/kwork_queue.c and libc/wqueue/work_queue.c: Logic that sets the queued indication and the logic that does the actual queuing must be atomic (2015-09-20). + +7.13 2015-xx-xx Gregory Nutt diff --git a/Documentation b/Documentation index 6e20db5f17..b705a3fefb 160000 --- a/Documentation +++ b/Documentation @@ -1 +1 @@ -Subproject commit 6e20db5f174f5ebe95e7ea3def4a67e2b97277ff +Subproject commit b705a3fefb00ce13be249f47a17d80cdfa7bf71c diff --git a/ReleaseNotes b/ReleaseNotes index d4b8dd72d9..1e5eb013d7 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -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. diff --git a/configs b/configs index be32e67e9b..bb669000c7 160000 --- a/configs +++ b/configs @@ -1 +1 @@ -Subproject commit be32e67e9b3ac14b779a6e3539304c9aa69e3f8c +Subproject commit bb669000c76498d9a0a769948a403784fec897e1