From 8523e17f526c3ab6a4598a058b20d0b4ffce204c Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 26 Mar 2016 12:16:14 -0600 Subject: [PATCH] Prep for 7.15 release --- ChangeLog | 47 +++++---- Documentation | 2 +- ReleaseNotes | 269 ++++++++++++++++++++++++++++++++++++++++++++++++++ configs | 2 +- 4 files changed, 297 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef16dd1b53..4c5d73ce69 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1040,7 +1040,7 @@ development board. * lib/lib_crc32.c: Add CRC32 logic by Gary S. Brown to lib/. This is the larger (but faster) table look-up version of the CRC32 algorithm. - * confgs/ea3131/tools: Added a tool to create a image suitable for + * configs/ea3131/tools: Added a tool to create a image suitable for use with the LPC313x bootloader. * configs/sam3u-3k/ostest: Completed verification of the basic NuttX OS test for the SAM3U. @@ -1295,7 +1295,7 @@ (all of the AVR32 is a work in progress). * arch/avr/include/at32uc3 and arch/avr/src/at32uc3: Add support for the AVR32 UC3A/B family of AVR32 MCUs. - * confgs/avr32dev1: Add support for the Atmel AVR32DEV1 board featuring + * configs/avr32dev1: Add support for the Atmel AVR32DEV1 board featuring the AT32UC3B0256 MCU. This board is produced by www.mcuzone.com. * include/stdlib.h, lib/Makefile, lib/lib_abs.c, lib/lib_labs.c, lib_labs.c, lib_llabs.c, lib_imaxabs.c: Add abs(), labs(), llabs(), and @@ -2006,7 +2006,7 @@ (reported by Li Zhouy (Lzyy)). * 8/18/2011: The basic port to the FreeScale Kinetics TWR-K60N512 board is now functional. - * confgs/twr-k60n512: Add Kinetics TWR-K60N512 NSH configuration. + * configs/twr-k60n512: Add Kinetics TWR-K60N512 NSH configuration. * drivers/analog and include/nuttx/analog: Add ADC driver infrastructure and TI ADS1255 driver developed and submitted by Li Zhouy (Lzyy)). * arch/arm/stm32/stm32_sdio.h and drivers/mmcsd/mmcsd.c: Add logic to @@ -2331,7 +2331,7 @@ * arch/arm/src/lpc17_can.c: Several CAN driver improvements. Adds support for testing in loopback mode. now uses all three transmit buffers for better performance. - * confgs/olimex-lpc1766stk/nsh: Now supports the CAN loopback test as an + * configs/olimex-lpc1766stk/nsh: Now supports the CAN loopback test as an optional "built-in" application. * sched/irq_attach.c: Fix an issue with disabling interrupts when they are detached. For the PIC32, this can't be done because there is a 1-to-many @@ -2374,7 +2374,7 @@ one APB2 timer. * arch/mips/src/pic32mx/pic32mx-ethernet.c: The PIC32 Ethernet driver is code complete, but still untested. - * confgs/sim/*/Make.defs and arch/sim/src/Makefile: Add support for building + * configs/sim/*/Make.defs and arch/sim/src/Makefile: Add support for building a 32-bit executable on a 64-bit Linux target. * configs/sure-pic32mx/src/up_leds.c: Correct GPIOs used for LEDs. The wrong pins were being used. @@ -3328,7 +3328,7 @@ simple allocation of DMA I/O buffers. The initial check-in is code complete but untested (not event built into the mm/Makefile yet. - * confgs/fire-stm32v2: The board port is basically functional. + * configs/fire-stm32v2: The board port is basically functional. Not all features have been verified. The ENC28J60 network is not yet functional. * configs/stm3240g-eval/discover: A configuration for testing @@ -3687,7 +3687,7 @@ * arch/arm/src/stm32/stm32f20xx_rcc.c and stm32f40xx_rcc.c: Added option CONFIG_STM32_FLASH_PREFETCH. FLASH prefetch will now only be enabled if this option is selected. - * confgs/ez80f910200zco/ostest: Now uses Kconfig/mconf configuration + * configs/ez80f910200zco/ostest: Now uses Kconfig/mconf configuration tool. Updated to build in native Windows environment. Other ez80f910200zco build scripts also updated. * configs/z8f64200100kit/ostest: Update to same level as ez80 configurations. @@ -5267,7 +5267,7 @@ * arch/arm/src/sama5/sam_boot.c: Boot logic now initially configures DRAM as strongly ordered so that it can be initialized. After initialization, the page table entries are modified so - that DRAM is fully cache-able (2018-8-2). + that DRAM is fully cache-able (2016-8-2). * arch/arm/src/sama5/chip/sam_mpddrc.h: Correct typos in the SAMA5 DDR controller register definitions (2013-8-2). * arch/arm/src/sama5/sam_irq.c: Correct handling of spurious @@ -11406,30 +11406,31 @@ sem_tickwait() does not return an -1+errno, it returns a negated errno value. Noted by Freddie Chopin. -7.15 2016-xx-xx Gregory Nutt +7.15 2016-03-27 Gregory Nutt - * drivers/analog/adc1242.c and include/nuttx/analog/adc1242.h: Driver + * drivers/analog/ads1242.c and include/nuttx/analog/ads1242.h: Driver for the 24-Bit Differential Input ADC ADS1242 that communicates via SPI with a MCU. Reading the ADC conversion result as well as configuring the ADC, setting the input channel, etc. is implemented via ioctl calls. However, it does not yet implement the standard ADC interface. From - * configs/board/src/xyz_cxxinitialize.c: Move CXX initialization logic + Alexander Entinger (2016-01-29) + * configs/board/src/xyz_cxxinitialize.c: Move C++ initialization logic out of the RTOS and into the application space, specifically to apps/platform/board, where it belongs (2016-01-29). * drivers/modem/u-blox.c and include/nuttx/drivers/u-blox.h: Add an upper half driver for the U-Blox Modem. From Vladimir Komendantskiy - (2018-01-30). + (2016-01-30). * arch/arm/src/lpc17xx: Backport lpc43xx I2C driver, replacing the lpc17xx I2C driver. This gives us the I2C_TRANSFER method (2016-01-30). * arch/arm/src/lpc11xx: Backport the lpc17xx I2C driver, replacing the - lpc11xx I2C driver. This gives us the I2C_TRANSFER method (2019-01-30). + lpc11xx I2C driver. This gives us the I2C_TRANSFER method (2016-01-30). * arch/arm/src/lpc2378: Backo the Lpc17xx I2C driver, replacing the - lpc2378 I2C driver. This gives us the I2C_TRANSFER method (2019-01-30). - * confgs/u-blox-c027: Support for the u-blox GSM and GPS module evaluation + lpc2378 I2C driver. This gives us the I2C_TRANSFER method (2016-01-30). + * configs/u-blox-c027: Support for the u-blox GSM and GPS module evaluation board with NXP LPCExpresso LPC1768. The GSM module is one of LISA-C200, LISA-U200 or SARA-G350. The GPS module is one of MAX-M7 or MAX-M8. From Vladimir Komendantskiy (2016-01-31). - * drivers/, arch/, include/, numerous files: May restructuring of the I2C + * drivers/, arch/, include/, numerous files: Restructuring of the I2C interface necessary to eliminate some thread-safety issues inherent in the legacy I2C interface design. This effects the interface definition, all I2C clients, and all low-level I2C drivers. I have used caution, @@ -11497,7 +11498,7 @@ per thread but, rather, per task group. I know, I preferred it the other way too, but this is more compliant with POSIX (2016-02-18). * fs/ procfs/fs_procfsproc.c: Add support for showing CPU if SMP is - is enabled (2016-02-19). + enabled (2016-02-19). * include/pthread.h, sched.h, sys/types.h and other files: Rename cpuset_t to cpu_set_t which is the type used in some non-standard Linux/GNU interfaces. Move definitions of cpu_set_t to include/sys/types.h. @@ -11517,7 +11518,7 @@ * sched/sched: Add sched_setaffinity() and sched_getaffinity() (2016-02-19). * drivers/leds/rgbled.c: Add a driver to manage a RGB LED via PWM. From Alan Carvalho de Assis (2016-02-22). - * arch/arm/src/stm32fcdiscovery: Add PWM support for the onboard RGB LED + * arch/arm/src/stm32f4discovery: Add PWM support for the onboard RGB LED From Alan Carvalho de Assis (2016-02-22). * arch/arm/src/samv7: HSMCI driver can now be configured to handle unaligned data buffers (2016-02-22). @@ -11549,7 +11550,7 @@ * include/nuttx/clock.h: Missing parenteses in MSEC2TICK macro can cause wrong calculations. From Stefan Kolb (2016-03-09). * Build system: Added a 'make olddefconfig' target that will refresh - a .config file without interaction. tools/refesh.sh no has a --silent + a .config file without interaction. tools/refesh.sh now has a --silent option so that it can be used in batch modes without human input (2016-03-09). * tools/testbuild.sh: .config files were not being updated because (a) @@ -11566,8 +11567,8 @@ option to buffer RTOS instrumentation data in an in-memory buffer (2016-03-17). * drivers/syslog/note_driver.c: Add a character driver that will allow - an appliation to read buffered scheduler instrumentation data (2016-03-17). - * arch/arm/src/samv7/sam_usbdevhs.c: The USB drivr has had some issue that + an application to read buffered scheduler instrumentation data (2016-03-17). + * arch/arm/src/samv7/sam_usbdevhs.c: The USB driver has had some issue that would occasionally cause loss of packets. Back last December, a fix was put in for this but the fix apparently worsens the problem; now causing hangs. The basic problem is that the number of busy banks (NBUSYBKS) @@ -11582,3 +11583,7 @@ * include/sys/boardctl.h, configs/boardctl.c, and many configurations: Add boardctl() support that will permit applications to control USB devices (2016-03-25). + * configs/stm32l476vg-disco: Add support for the STM32L476VG Discovery + board. From Dave (2016-03-25). + +7.16 2016-xx-xx Gregory Nutt diff --git a/Documentation b/Documentation index 4dd10152e4..ce8bd7e82a 160000 --- a/Documentation +++ b/Documentation @@ -1 +1 @@ -Subproject commit 4dd10152e4fe4ec2594f59d0a84e7e6d288eee3d +Subproject commit ce8bd7e82a4418b24c6c04026f6019d8e0ffe849 diff --git a/ReleaseNotes b/ReleaseNotes index 376f4e4f6d..89cf4119a4 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -10447,3 +10447,272 @@ detailed bugfix information): 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. + +NuttX-7.15 Release Notes +------------------------ + +The 115th release of NuttX, Version 7.15, was made on March 27, 2016, +and is available for download from the Bitbucket.org website. Note +that release consists of two tarballs: nuttx-7.15.tar.gz and +apps-7.15.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: + + - Add a state variable that provides the current level of OS + initialization. This is needed by some logic that may attempt to + run early in the start-up sequence but cannot run if a sufficient + level of initialization has not yet occurred. + - Spinlocks: Add interface definitions for to support spinlocks as + needed for multi-CPU configurations. + - SMP support. Support for Symmetric Multi-Processing (SMP) added. + This affects many internal data structures, spinlock extensions + and renaming of interrupt enable/disable interfaces, new platform + interfaces to support CPU initialization and inter-actions, and + new application interfaces to manage CPU affinity. The changes + are too extensive to summarize here; see the SMP Wiki page at + http://www.nuttx.org/doku.php?id=wiki:nxinternal:smp. The + new platform interfaces are also described in the NuttX porting + guide: http://www.nuttx.org/doku.php?id=documentation:portingguide. + Only partially verified; awaiting hardware for the complete + verification. + - TLS: Basic definitions needed to support thread local storage + (TLS). TLS is not used anywhere yet (and may not be used in the + near future either). + - Performance Monitoring: Add a configuration option to buffer + RTOS instrumentation data in an in-memory buffer. + - boardctl(): Add boardctl() support that will permit applications + to control USB devices. + + * File Systems/Block Drivers: + + - procfs: Add /proc/kmm entry that shows that state of the kernel + heap. Only useful in PROTECTED and KERNEL build modes where there + is a kernel heap. + - procfs: Add support for showing CPU in the tast status if SMP is + enabled. + + * Networking: + + - ARP: Add support for IOCTL commands to manage the ARP table. + - IEEE 802.15.4 and 6LowPAN: There are some radio drivers and a + directory structure is in place. However, most of this + development is occurring on a fork and is not yet available in the + NuttX repositories. Hopefully in NuttX-7.16. + + * Common Device Drivers: + + - ADS1242: Driver for the 24-Bit Differential Input ADC ADS1242 that + communicates via SPI with a MCU. Reading the ADC conversion result + as well as configuring the ADC, setting the input channel, etc. is + implemented via ioctl calls. However, it does not yet implement + the standard ADC interface. From Alexander Entinger. + - U-Blox Modem: Add an upper half driver for the U-Blox Modem. From + Vladimir Komendantskiy. + - I2C: Add an I2C, "upper half", character drivers to support raw I2C + data transfers for test applications. + - RGB LED: Add a driver to manage a RGB LED via PWM. From Alan + Carvalho de Assis. + - Performance Monitoring: Add a character driver that will allow an + application to read buffered scheduler instrumentation data. + + * Simulation Platform: + + - SMP: Add multi-CPU support to the simulation to support SMP + investigation. There are issues with the simulation and it is less + than perfect but sufficient for some very preliminary testing of + the core SMP feature. + + * ARMv7-A, ARMv7-R, and ARMv7-M: + + - ARMv7-A, ARMv7-R, and ARMv7-M: Add test-and-set logic and + definitions needed to supports spinlocks. + - ARMv7-A: Added MPCOre Generic Interrupt Controller (GICv2) and + Global Timer support + - ARMv7-A: Now includes in MCU-specific hooks needed for SMP support. + + * Atmel SAMV7 Drivers: + + - HSMSI: HSMCI driver can now be configured to handle unaligned data + buffers. + + * NXP Freescale LPC11xx/17xx/43xx and LPC2378 Drivers: + + - I2C: Backported the LPC43XX I2C driver, replacing the LPC11XX, + LPC17XX, and LPC2378 I2C drivers. This gives us the I2C_TRANSFER + method in all I2C drivers. + + * NXP Freescale LPC17xx Boards: + + - Support for the u-blox GSM and GPS module evaluation board with + NXP LPCExpresso LPC1768. The GSM module is one of LISA-C200, + LISA-U200 or SARA-G350. The GPS module is one of MAX-M7 or + MAX-M8. From Vladimir Komendantskiy. + + * NXP Freescale i.MX6: + + - Basic support is in place for the i.MX6 Quad/Dual MCUs. + Verification is, however, waiting for the receipt of hardware. + + * NXP Freescale i.MX6 Boards: + + - Sabre-6Quad: Basic support for the NXP/Freescale Sabre 6Quad + board is in place but waiting for hardware for verification. + + * STMicro STM32: + + - STM32F46xx: Support for STM32F46xx from Paul Alexander Patience + - STM32L4: Add support for the STM32L4 family. From Sebastien + Lorquet. + + * STMicro STM32 Boards: + + - STM32F4 Discovery: Add PWM support for the onboard RGB LED. From + Alan Carvalho de Assis. + - Nucleo-L476: Add support for the Nucleo-L476 board. From Sebastien + Lorquet. + - STM32L476VG Discovery: Add support for the STM32L476VG Discovery + board. From Dave. + + * Tools: + + - tools/refesh.sh now has a --silent option so that it can be used in + batch modes without human input. + + * Build System: + + - Added a 'make olddefconfig' target that will refresh a .config file + without interaction. + + * Applications: NSH + + - 'arp': Add an 'arp' command that will support access to the OS ARP + table. + - 'ps': The 'ps' command will show CPU if SMP is enabled. + + * Applications: apps/netutils: + + - apps/netutils/chat: Chat logic contributed by Vladimir + Komendantskiy. + - apps/netutils/netlib: Add utility functions to support accesses to + the ARP table. + + * Applications: apps/examples: + + - apps/examples/chat: Chat example contributed by Vladimir + Komendantskiy. + - apps/sysem/ubloxmodem: Example to control the power + state of the modem in nsh. From Vladimir Komendantskiy. + - apps/examples/leds: An example to demonstrate use of LED driver. + - apps/examples/smp: Add a test to verify SMP configurations. + - apps/examples/rgbled: Example using the RGB LED driver to drive an + RGB LED via PWM. From Alan Carvalho de Assis. + - apps/examples/ostest: Add a test of TLS. + - apps/examples/sched_note: Add a simple example to exercise the + scheduler instrumentation logic. + +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: + + - Signals: Move the list of signal actions from the TCB to the group + structure. Signal handlers are not per thread but, rather, per task + group. I know, I preferred it the other way too, but this is more + compliant with POSIX. + - Semaphores: Add an internal, non-standard interface to reset a + semaphore count. This is sometimes needed by drivers in order to + recover from error conditions. Were previously using sem_init() + which is both inappropriate and incorrect if the semaphore count is + negative. + - Low-Priority Work Queue: Fix logic to find an IDLE worker thread; + the test for busy was backward. From Linfei Chen. + + * File System/Block Drivers: + + - FAT: Add an option to force all transfers to be performed + indirectly using the FAT file system's internal sector buffers. + This is a fix for the case where the user provided buffers are not + properly aligned for DMA (as with THTTPD). + - MTD: Increase block size in mtd_geometry_s to 32-bits. + + * Common Drivers: + + - I2C: Restructured the I2C interface as necessary to eliminate some + thread-safety issues inherent in the legacy I2C interface design. + This effects the interface definition, all I2C clients, and all low- + level I2C drivers. I have used caution, but I still expect a change + of this magnitude to introduce some errors. Any bug reports of bug + fixes will be much appreciated. + - I2C_RESET: Eliminate up_i2creset(). It should not be a global + function; Now it is an I2C interface method. + - PCA555: Add logic to make the PCA555 driver thread safe. + - syslog: If syslog timestamping is enabled, don't try to get the time + if the timer hardware has not yet been initialized. + - AT24xx driver: Correct missing address calculation logic. From Frank + Benkert. + + * Networking: + + - Networking drivers that support CONFIG_NET_NOINTS: Fix a race + condition that can cause the TX poll timer to stop running. From + Manuel Stuhn. + - Timer Poll: Fix some logic when there are multiple network + interfaces. In this case, TCP timeout events can really only being + processed when the poll from the correct device is received. + + * Atmel SAMV7 Drivers: + + - SAMV7 USB HS device: The USB driver has had some issue that would + occasionally cause loss of packets. Back last December, a fix was + put in for this but the fix apparently worsens the problem; now + causing hangs. The basic problem is that the number of busy banks + (NBUSYBKS) status is not real time but is delayed. This was fixed; + now when the DMA completes and NBUSYBKS > 0, the NBUSYBK is + interrupt is enabled and the operations are deferred until NBUSYBKS + is truly zero. + + * Tools: + + - tools/testbuild.sh: .config files were not being updated because + (a) kconfig-conf was being called in the wrong directory and (b) + apps/Kconfig had not yet been created. Now uses 'make + olddefconfig'. + + * Applications: apps/system: + + - apps/system/i2c: The I2C tool now obeys it OS interfacing: it now + uses an I2C character driver to access the I2C bus. + - apps/system/cdcacm, usbmsc, and composite: Use new boardctl() + instead of calling directly in the OS when possible. + + * Applications: apps/netutils: + + - apps/netutils/dhcpd: DHCPD no longer calls directly into the OS but + uses the new network IOCTL commands to modify the ARP table. + + * Applications: apps/modbus: + + - apps/modbus/nuttx/portserial.c: Was not returning an error on + failure to open the device driver. From Olololshka kokoko. + + * Applications: apps/examples: + + - apps/examples/usbserial, composite, usbterm: Use new boardctl() + instead of calling directly in the OS when possible. There are + still a few bad OS calls for USB device interfaces that do not yet + have boardctl() commands. + + * Applications: apps/platform: + + - Moved C++ initialization logic out of the RTOS and into the + application space, specifically to apps/platform/board, where it + belongs. diff --git a/configs b/configs index 7d4cd683fe..c36ca087a3 160000 --- a/configs +++ b/configs @@ -1 +1 @@ -Subproject commit 7d4cd683fe8b2a6be2bf9d25c91afefa877a50bf +Subproject commit c36ca087a3ac12a72fb3a5601bcb46254bd223e6