| NuttX Release Notes |
| =================== |
| |
| This file contains are the release notes for the NuttX (and apps) packages |
| for every release. The text is just as was written at the time of release |
| (with perhaps some corrected typos). Over the course of time, NuttX has |
| used several different repositories: CVS, two SVN repositories, and |
| currently a GIT repository. Therefore, revision information specific to an |
| older repository may not be meaningful today. |
| |
| To make it easier to track there older versions in the current GIT |
| repository, a GIT lightweight tag has been applied for each release. The |
| tag name is the release name (for example, the release 6.27 has tag name |
| "nuttx-6.27"). |
| |
| NuttX-0.1.0 |
| ----------- |
| |
| This is the initial. This initial includes the complete NuttX RTOS |
| with support for the Linux user mode simulation and the TI TMS320C5471 |
| (Arm7) processor. Partial support for the 87C52 is included. |
| |
| This release has been verified on both the Linux user-mode and C5471 |
| platforms using the test program under examples/ostest. Test results |
| for the C5471 can be found in arch/c5471/doc/test-results.txt. |
| |
| This tarball contains a complete CVS snapshot from March 9,2007. |
| |
| NuttX-0.1.1 |
| ----------- |
| |
| This is the second release of NuttX. This release includes the following. |
| See the ChangeLog for more detailed description of the changes. |
| |
| (1) General OS bugfixes (see the ChangeLog for details), |
| (2) bugfixes for the TI TMS320C5471 (Arm7) platform (see |
| the ChangeLog) |
| (3) Complete support for the 87C52. (However, the 87C52 |
| release is not stable enough for general usage). |
| (4) Added the beginning of a shell call NuttShell (nsh) |
| |
| This release has been verified on the Linux user-mode platform, the |
| Spectrum Digital TMS320C5471 EVM, and the PJRC 87C52 development board |
| using the test program under examples/ostest. |
| |
| STATUS: The development status remains as ALPHA until further testing |
| is performed. |
| |
| This tarball contains a complete CVS snapshot from March 14, 2007. |
| |
| NuttX-0.1.2 |
| ----------- |
| |
| This is the third release of NuttX. This release is |
| primarily a bugfix release with minimal new features. See |
| the ChangeLog for a more detailed description of the |
| changes. |
| |
| (1) Several important OS and ARM7 bugfixes, |
| (2) opendir(), closedir(), readdir(), etc. added |
| (3) Added C5471 watchdog timer. |
| (4) Created a shareable, serial driver. |
| (5) Added 'ls' command to NuttShell (nsh) |
| (6) Added a test of the round robin scheduler |
| |
| This release has been verified on the Linux user-mode |
| platform, the Spectrum Digital TMS320C5471 EVM using the |
| test program under examples/ostest. |
| |
| This tarball contains a CVS snapshot from March 19, 2007. |
| |
| NuttX-0.2.1 |
| ----------- |
| |
| This is the fourth release of NuttX. This release adds adds |
| support for a new platform, restructures many header files, |
| and adds a few new features: |
| |
| (1) Support for Neuros OSD / DM320 |
| (2) Restructuring of header files for better POSIX compliance |
| (3) Added kill() |
| (4) Added POSIX timers |
| (5) bugfixes and documentation updates |
| |
| This release has been verified on the Linux user-mode |
| platform, the Spectrum Digital TMS320C5471 EVM, and the |
| Neuros OSD using the test program under examples/ostest. Because |
| of the stability of these tests, the project status |
| has been upgraded to 'beta.' |
| |
| This tarball contains a complete CVS snapshot from March 22, 2007. |
| |
| NuttX-0.2.2 |
| ------------ |
| |
| This is the fifth release of NuttX. There is no major new |
| functionality in this release. This release adds support |
| for new pthread barrier APIs, changes the directory |
| structure, to better handle different board configurations |
| using the same processor architecture, and corrects a few |
| defects. |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified on the Linux user-mode |
| platform and the Neuros OSD using the test program under |
| examples/ostest. There are no known, critical defects but |
| the project development status remains at 'beta' status |
| pending further test and evaluation. |
| |
| This tarball contains a complete CVS snapshot from |
| March 26, 2007. |
| |
| NuttX-0.2.3 |
| ------------ |
| |
| This is the sixth release of NuttX. This release is |
| primarily a bugfix release. Numerous problems were fixed |
| as detailed in the change log. New functionality includes |
| support for timed message queues. |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified on the Linux user-mode |
| platform and the Neuros OSD using the test program under |
| examples/ostest. The results of the testing is available in |
| the source tree under configs/ntosd-dm320/doc/test-results. |
| There are no known, critical defects but the project |
| development status remains at 'beta' status pending further |
| test and evaluation. |
| |
| This tarball contains a complete CVS snapshot from March 29, |
| 2007. |
| |
| NuttX-0.2.4 |
| ------------ |
| |
| This is the 7th release of NuttX. This release is only to roll out |
| build changes to better support different SoC's that use the same |
| processor architecture. In particular, the two existing ARM architectures, |
| c5471 and DM320 were combined into a single ARM directory. This was done |
| in preparation for an LPC2148 port that is currently in progress. There |
| is NO new functionality or significant bugfixes in this release. |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified on the Linux user-mode platform |
| and the Neuros OSD using the test program under examples/ostest. |
| The results of the testing is available in the source tree under |
| configs/ntosd-dm320/doc/test-results and under configs/sim/doc/test-results. |
| There are no known, critical defects but the project development status |
| remains at 'beta' status pending further test and evaluation. |
| |
| This tarball contains a complete CVS snapshot from April 28, 2007. |
| |
| NuttX-0.2.5 |
| ------------ |
| |
| This is the 8th release of NuttX. This release includes: |
| |
| (1) Several bug fixes |
| (2) Initial support for FAT filesystems. Testing has not |
| been exhaustive and some functionality is missing |
| (mkdir, stat, unlink chmod, and rename functionality is |
| not yet implemented). |
| (3) Support for the NXP lpc2148 processor is included but |
| is untested as of this writing. The current |
| implementation includes only support for serial console |
| and timer interrupt. |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified only on the Linux user-mode |
| platform. |
| |
| This tarball contains a complete CVS snapshot from May 19, |
| 2007. |
| |
| NuttX-0.2.6 |
| ----------- |
| |
| This is the 9th release of NuttX. This is primarily a |
| bugfix release to correct a number of problems introduced |
| with the 0.2.5 release. This release does include some FAT |
| filesystem extensions including unlink(), mkdir(), rmdir(), |
| rename(), opendir(), closedir(), readdir(), seekdir(), |
| telldir(), rewindir(). There are some pending FAT changes |
| that did not make it into this release including stat(), |
| truncate(), and long file names. |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified only on the Linux user-mode platform. |
| |
| This tarball contains a complete CVS snapshot from May 26, 2007. |
| |
| NuttX-0.2.7 |
| ----------- |
| |
| This is the 10th release of NuttX. This is primarily a bugfix |
| release to correct a number of problems reported to me (thanks |
| Didier!). This release does include the final changes complete the |
| FAT filesystem logic including stat(), statfs(), and non-standard |
| APIs to manage FAT attributes. At present, FAT long file names and |
| file truncate() are still not supported. |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified only on the Linux user-mode platform. |
| |
| This tarball contains a complete CVS snapshot from June 9, 2007. |
| |
| NuttX-0.2.8 |
| ----------- |
| |
| This is the 11th release of NuttX. This release: |
| (1) corrects important bugs in opendir() and realloc() |
| (2) adds support for environment variables |
| (3) adds several new C library interfaces |
| (4) extends several example programs |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified only on the Linux user-mode platform. |
| |
| This tarball contains a complete CVS snapshot from July 2, 2007. |
| |
| NuttX-0.3.0 |
| ----------- |
| |
| This is the 12th release of NuttX. This release includes the initial |
| integration of a network subsystem and the uIP TCP/IP stack into NuttX |
| (see http://www.sics.se/~adam/uip/index.php/Main_Page). Also included |
| is a device driver for the Davicom DM90x0 Ethernet controller. |
| |
| This integration is very preliminary. Only a small portion of the |
| network functionality has been integrated and there are a number of |
| open issues (see the TODO file). The network subsystem is pre-alpha |
| at this point in time. I expect that it will stabilize and mature |
| over the next few releases. |
| |
| The baseline functionality of NuttX continues to mature and remains at |
| post-beta (as long as the network is not used). |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified only on the Neuros OSD (DM320 ARM9) |
| platform using the DM90x0 driver. |
| |
| This tarball contains a complete CVS snapshot from November 6, 2007. |
| |
| NuttX-0.3.1 |
| ----------- |
| |
| This is the 13th release of NuttX and the second release containing |
| the integration of a network subsystem and the uIP TCP/IP, UDP, and |
| ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). |
| |
| Many network-related problems have been fixed and the implementation |
| has matured significantly. However, the level of network reliability |
| is probably still at the pre-alpha or early level. It is sufficiently |
| complete that you may begin to perform some network integration and |
| is expected to achieve beta level of reliability over the next few |
| releases. |
| |
| The baseline functionality of NuttX continues to mature and remains at |
| post-beta (as long as the network is not used). |
| |
| See the ChangeLog for a complete list of changes. |
| |
| This release has been verified only on the Neuros OSD (DM320 ARM9) |
| platform using the DM90x0 driver. |
| |
| This tarball contains a complete CVS snapshot from November 19, 2007. |
| |
| NuttX-0.3.2 |
| ----------- |
| |
| This is the 14th release of NuttX and the 3rd release containing |
| the integration of a network subsystem and the uIP TCP/IP, UDP, and |
| ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). |
| |
| Many network-related problems have been fixed and the implementation |
| has matured significantly. This release consists of: |
| |
| o TCP-related bug-fixes |
| o TCP performance improvements |
| o Initial UDP integration |
| o Initial uIP micro webserver integration |
| |
| See the ChangeLog for a complete list of changes. |
| |
| The level of network reliability is at alpha level is expected to |
| achieve beta level of reliability over the next few releases. |
| |
| The baseline functionality of NuttX continues to mature and remains at |
| post-beta. |
| |
| This release has been verified only on the Neuros OSD (DM320 ARM9) |
| platform using the DM90x0 driver. |
| |
| This tarball contains a complete CVS snapshot from November 23, 2007. |
| |
| NuttX-0.3.3 |
| ----------- |
| |
| This is the 15th release of NuttX and the 4th release containing |
| the integration of a network subsystem and the uIP TCP/IP, UDP, and |
| ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). |
| |
| Many network-related problems have been fixed and the implementation |
| has matured significantly. This release consists of: |
| |
| o TCP-related bug-fixes for disconnecting sockets |
| o Correction of some TCP read-ahead logic |
| o TCP performance improvements |
| o Misc. additions and cleanup (See the ChangeLog for a complete list of |
| changes). |
| |
| The level of network reliability is at an early beta release level. The |
| baseline functionality of NuttX continues to mature and remains at |
| post-beta. Open network-related issues include only: |
| |
| o Some minor unimplemented BSD socket functionality, |
| o Thread safety issues: the same socket cannot be used concurrently on |
| different threads. |
| o Pending design changes necessary to support multiple network interfaces. |
| o IPv6 support is incomplete. |
| |
| This release has been verified only on the Neuros OSD (DM320 ARM9) |
| platform using the DM90x0 driver. Any feedback for improving the network |
| reliability/performance would be greatly appreciated. |
| |
| This tarball contains a complete CVS snapshot from November 28, 2007. |
| |
| NuttX-0.3.4 |
| ----------- |
| |
| This is the 16th release of NuttX and the 5th release containing |
| the integration of a network subsystem and the uIP TCP/IP, UDP, and |
| ICMP stacks into NuttX (see http://www.sics.se/~adam/uip/index.php/Main_Page). |
| |
| This release is primarily a bug-fix release. New features include |
| only: |
| |
| o TELNET front-end to NSH, |
| o DHCPC server functionality, and |
| o C5471 Ethernet driver. |
| |
| Numerous network related problems were fixed related to DHCPC, UDP |
| input processing, UDP broadcast, send timeouts, and bad compilation when |
| uIP is compiled at high levels of optimization. |
| |
| The level of network reliability is at a strong beta release level. The |
| baseline functionality of NuttX continues to mature and remains at |
| post-beta or production level. |
| |
| Parts of this release were verified only on the Neuros OSD (DM320 ARM9) |
| platform using the DM90x0 Ethernet driver and other parts on the Spectrum |
| Digital C5471 EVM using the C5471 Ethernet driver. Any feedback about bugs |
| or suggestions for improving the network reliability/performance would be |
| greatly appreciated. |
| |
| This tarball contains a complete CVS snapshot from December 10, 2007. |
| |
| NuttX-0.3.5 |
| ----------- |
| |
| This is the 17th release of NuttX this release is primarily a bug-fix |
| release and intended to synchronize with the current CVS contents. See |
| the ChangeLog for a detailed list of changes and fixes. |
| |
| This release were verified only on the Spectrum Digital C5471 EVM using |
| the C5471 Ethernet driver. Any feedback about bugs or suggestions for |
| improvement would be greatly appreciated. |
| |
| This tarball contains a complete CVS snapshot from December 18, 2007. |
| |
| NuttX-0.3.6 |
| ----------- |
| |
| This is the 18th release of NuttX. This release contains on a few |
| changes. The primary purpose of this release is to synchronize with |
| the release of the pascal-0.1.0 add-on package. |
| |
| This release of NuttX includes the following changes: |
| |
| * Fixes for use with SDCC compiler |
| * Added a simulated z80 target (arch/z80) |
| * Fix deadlock errors when using stdio but with no buffering |
| * Add support for the add-on Pascal P-Code interpreter (pcode/) |
| (see the pascal-0.1.0 package) |
| |
| This release were verified only on the simulated Z80 and host |
| simulation targets. As usual, any feedback about bugs or suggestions |
| for improvement would be greatly appreciated. |
| |
| This tarball contains a complete CVS snapshot from January 6, 2007. |
| |
| ==== |
| |
| There was an error in the initial 0.3.6 release that prevented |
| a successful build unless the Pascal add-on was present. The |
| tarball was patched to include the fix. Make sure that you download |
| the nuttx-0.3.6.1.tar.gz version to avoid this problem. |
| |
| NuttX-0.3.7 |
| ----------- |
| |
| This is the 19th release of NuttX. This release includes the |
| preliminary port of NuttX to the ZiLOG z16f 16-bit microcontroller. |
| This port was verified using the ZiLOG z16f2800100zcog Development |
| and the ZiLOG ZDS-II toolchain. See http://www.zilog.com for |
| further information. |
| |
| I emphasize that this is a preliminary release of the z16f port and |
| is only alpha or, perhaps, pre-alpha quality as of this writing. |
| There are a list of known issues in the TODO file in the root of |
| the NuttX directory. The overall quality of NuttX (excluding the |
| z16f port) continues to improve beyond the late beta level. |
| |
| The z16f port required numerous changes to NuttX to handle: |
| |
| * NEAR and FAR addressing, and |
| * Use of a Windows native toolchain in a Cygwin build environment. |
| |
| In addition to the z16f port, at least one very critical bug was |
| found and corrected in NuttX: The thread-specific errno value of one |
| task was being randomly trashed when a different thread exited. |
| |
| This release were verified on the ZiLOG z16f2800100zcog, Neuros OSD |
| (ARM9), and the simulation platforms. As usual, any feedback about bugs |
| or suggestions for improvement would be greatly appreciated. |
| |
| This tarball contains a complete CVS snapshot from January 31, 2008. |
| |
| NuttX-0.3.8 |
| ----------- |
| |
| This is the 20th release of NuttX. This is a minor bugfix release. |
| It corrects a few minor problems, adds a few minor features, and |
| continues the integration of the ZiLOG Z18F and of the Pascal P-Code |
| add-on. This release is synchronized with the release of Pascal-0.1.2. |
| |
| This tarball contains a complete CVS snapshot from February 10, 2008. |
| |
| NuttX-0.3.9 |
| ----------- |
| |
| This is the 21st release of NuttX. This is a minor future enhancement |
| release. This release includes support for the ZiLOG Z8Encore! micro- |
| controller. Also included is the initial framework for support for |
| the Z80, XTRS platform (http://www.tim-mann.org/xtrs.html). |
| |
| This released has been verified only on the ZiLOG ZDS-II Z8Encore! |
| chip simulation. |
| |
| This tarball contains a complete CVS snapshot from March 9, 2008. |
| |
| NuttX-0.3.10 |
| ------------ |
| |
| This is the 22nd release of NuttX. This is an important bug fix |
| release. This release incorporates fixes to correct critical list |
| handling errors in task shutdown logic: One in timer deletion logic |
| (timer_delete.c) and one in stream logic (lib_init.c). This release |
| also includes support to ZiLOG EZ80Acclaim microcontroller (EZ80F91 |
| chip) and configurations for the ZiLOG z8f64200100kit (Z8F6423) and |
| ez80f0910200kitg (EZ80F091) development kit. |
| |
| NuttX-0.3.11 |
| ------------ |
| |
| This is the 23rd release of NuttX. This is another important bugfix |
| release. This releases fixes several bugs: |
| |
| * Two POSIX timer bugs: a memory leak as well a fatal sequencing error. |
| * Several FAT filesystem errors. |
| * A deadlock that can occur in opendir() |
| |
| A few new features were also added: |
| |
| * Support for recursive mutexes |
| * Added a RAM disk block driver |
| * The host simulator no longer uses direct Linux system calls and |
| now also works on Cygwin. |
| * The OS test was strengthen and now runs as an endurance test |
| |
| These changes were verified only on the Host simulator under Cygwin. |
| Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from June 1, 2008. |
| |
| NuttX-0.3.12 |
| ------------ |
| |
| This is the 24th release of NuttX. This release includes some minor |
| bugfixes as well as a few new features. Bugs fixed include: |
| |
| * Corrected an error in recursive mutex implementation. |
| * task_create() was only dup()ing the first three file descriptors. |
| * Fixed driver open reference counting errors in dup(), dup2(), and exit(). |
| * Fixed error handling logic in fflush(). |
| |
| New features were also added: |
| |
| * Pipes and pipe() API |
| * FIFOs and mkfifo() API |
| * mkfatfs() API can be used to format FAT file systems. |
| |
| These changes were verified only on the Host simulator under Cygwin. |
| Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from August 10, 2008. |
| |
| NuttX-0.3.13 |
| ------------ |
| |
| This is the 25th release of NuttX. This release includes some |
| important bugfixes as well as a few new features. Bugs fixed |
| include: |
| |
| * Fixed problems with Cygwin-based console input. NSH now works |
| with the Cygwin simulator. |
| * sched_get_priority_max/min returned error on SCHED_RR |
| * Corrected detection of End-of-File in fgets() |
| * Fixed an error in opendir() that could cause an assertion to fail |
| inappropriately. |
| * Corrected an error in the FAT that caused files opened for writing |
| with O_APPEND to fail. |
| * Fix error in getopt() when called with argc==1 |
| * Fix error in stat() when used on the root directory |
| * Fixed a critical bug that effects the way that environment variables |
| are shared among pthreads. |
| * uIP port now supports multi-threaded, concurrent socket access. |
| So, for example, one thread can be reading from a socket while |
| another is writing to the socket. |
| |
| New features were also added: |
| |
| * New OS APIs: chdir() and getcwd() |
| * The Nuttx shell (NSH) has been extended in many ways. |
| - New commands: mkfatfs, mkfifo, sleep, usleep, nice, sh, cd, and pwd |
| - New memory inspection commands and heap usage commands |
| - New capabilities: |
| - Execution of commands in background |
| - Execution of simple scripts |
| - Redirection of command output |
| - Last command status ($?) |
| - Now supports if-then[-else]-fi construct |
| - Other features as noted in the ChangeLog. |
| |
| These changes were verified only on the Host simulator under Cygwin |
| and under Linux and also on the Neuros OSD (ARM9). Please report |
| any errors to me. |
| |
| This tarball contains a complete CVS snapshot from September 1, 2008. |
| |
| nutt-0.3.14 |
| ----------- |
| |
| This is the 26th release of NuttX. This release includes some |
| important bugfixes as well as a few new features. Critical bugs |
| fixed include: |
| |
| FAT FS: |
| * Fixed several critical bugs with regard to fat reading and |
| writing and FAT12 accesses. Basically the FAT FS only worked |
| with my tiny test files and test cases. A lot of stronger FAT |
| tested is still needed! |
| * Fixed another FAT bug in implementation of FAT lseek(); |
| this prohibited correct random access to large files. |
| |
| Network: |
| * Corrected a critical bug that may prevent recvfrom from receiving |
| packets from most remote UDP port numbers. |
| * Corrected an error in multi-threaded socket handling in send() and |
| sendto(). Outgoing data could overwrite incoming data. |
| * Corrected IP checksum calculation in ICMP and UDP message send logic. |
| * Corrected an error in send() timeout logic. |
| |
| New features were also added: |
| |
| Network: |
| * Added support for application access to ICMP protocol stacks |
| * Added ping request logic (net/uip). |
| * Added basic TFTP client logic (netutils/tftpc). |
| |
| NuttShell (NSH): |
| * New commands: 'test', '[', 'ping', 'mkrd', 'xd', and TFTP 'get' and 'put' |
| See the new NuttShell User Guide for additional information. |
| |
| Other less critical bugs were also fixed and other less important |
| features were were added. See the ChangeLog for details. |
| |
| These changes were verified only on the Neuros OSD (ARM9). Please |
| report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from September 8, 2008. |
| |
| nutt-0.3.15 |
| ----------- |
| |
| This is the 27th release of NuttX. This release includes some new features: |
| |
| * Adds support for the ROMFS filesystem |
| * ROMFS supports mmap() to provide eXecute In Place (XIP) capability |
| * NuttShell (NSH) can be configured to use ROMFS to provide a tiny read-only |
| filesystem with a startup script in /etc. |
| * Completed the basic port of the NXP LPC2148 on the mcu123.com board. |
| The basic port includes successful booting, timer interrupts, |
| serial console, successfully passing the examples/ostest, and a |
| NuttShell (NSH) configuration. |
| |
| These changes were verified only on the mcu123.com NXP LPC2148 |
| board. Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from September 20, 2008. |
| |
| nutt-0.3.16 |
| ----------- |
| |
| This is the 28th release of NuttX. This release includes the first |
| support for USB in NuttX. A set of USB APIs were added to support |
| USB device controller drivers and bindings to USB device class |
| drivers. The form of the interface was inspired by the Linux Gadget APIs. |
| |
| At present USB device controller drivers are included for: |
| * The NXP LPC214x. This driver has been verified and is an early alpha |
| stage in quality. |
| * TI DM320. Coding for this driver is complete but it is completely |
| untested as of this release. |
| |
| A controller-independent class driver is also included for: |
| * USB serial class device driver (emulates the Prolific PL2303 |
| serial-to-USB adapter). This driver has only been verified with |
| the Linux host PL2303 driver. |
| |
| Other new features include: |
| * Add an option to set aside a separate stack for interrupt |
| handling (ARM only). This is useful when memory is constrained, |
| there are multiple tasks, and the interrupt stack requirement |
| is high (as when USB is enabled). |
| |
| A few bugs were also fixed: |
| * Fixed the frequency of system timer interrupts in the NXP LPC214x port |
| (off by 20x in nuttx-0.3.15) |
| * Fixed serial driver bugs related to (1) open counts and (2) recognizing |
| O_NONBLOCK on read. |
| * Fixed an error in read(); it was not setting the errno on errors returned |
| from the driver. |
| |
| These changes were verified only on the mcu123.com NXP LPC2148 board |
| using with a Linux host. Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from October 10, 2008. |
| |
| UPDATE |
| ------ |
| This release does not build for the ARM target when USB is disabled. |
| Here is the fix: |
| |
| Index: arch/arm/src/common/up_internal.h |
| =================================================================== |
| RCS file: /cvsroot/nuttx/nuttx/arch/arm/src/common/up_internal.h,v |
| retrieving revision 1.13 |
| diff -u -r1.13 up_internal.h |
| --- arch/arm/src/common/up_internal.h 6 Oct 2008 16:20:52 -0000 1.13 |
| +++ arch/arm/src/common/up_internal.h 13 Oct 2008 20:48:21 -0000 |
| @@ -200,7 +200,8 @@ |
| extern void up_usbinitialize(void); |
| extern void up_usbuninitialize(void); |
| #else |
| -# define up_netinitialize() |
| +# define up_usbinitialize() |
| +# define up_usbuninitialize() |
| #endif |
| |
| #endif /* __ASSEMBLY__ */ |
| |
| NuttX-0.3.17 |
| ------------ |
| |
| This is the 29th release of NuttX. This release includes the |
| additional support for USB in NuttX. The following new features |
| were added: |
| |
| * Added support for SPI-based MMC/SD cards (with an SPI driver |
| for the NXP LPC214x). |
| * Added USB storage class device side driver (BBB) |
| * Added an example that demonstrates the USB storage class by |
| exporting the SPI based MMC/SD card on the NXP LPC214x. |
| |
| This is an early alpha release of these drivers. At present they |
| only work with debug features enabled so there are probably some |
| race conditions that occur only with debug features disabled. |
| (Anyone out there with a USB analyzer? I would love to know what |
| is happening.) |
| |
| Several important bugs were also fixed in the FAT file system, USB |
| serial driver and NXP LPC214x USB controller driver. (See the ChangeLog |
| for details.) |
| |
| These changes were verified only on the mcu123.com NXP LPC2148 board |
| using a Linux development environment. USB testing was performed |
| using both a Linux host and a WinXP host. Please report any errors |
| to me. |
| |
| This tarball contains a complete CVS snapshot from October 28, 2008. |
| |
| NuttX-0.3.18 |
| ------------ |
| |
| This is the 30th release of NuttX. This release includes two |
| partially completed ports, several new features, and a couple of |
| important bug fixes. The two partially completed ports are: |
| |
| * The STMicro STR71x processor and configuration for the Olimex |
| STR-P711 board. |
| * The Hitachi SH-1 using the SH1_LCEVB1 (SH-1/US7032EVB1) board |
| |
| Progress on these ports is stalled (as detailed in the ChangeLog). |
| |
| The new features focus primarily on management of block devices and |
| extensions of the NuttShell (NSH). These include: |
| |
| * A loop device that converts a file into a block device. |
| * A block to character (BCH) driver that allow access a block device as |
| if it were character device. |
| * Added strcasecmp() and strncasecmp() libc functions. |
| * Added the 'dd' and 'losetup' commands to NSH. These commands |
| (along with mkfatfs and mount), give good management of filesystems |
| on the target. |
| |
| Several bugs were fixed, the most important of which are: |
| |
| * Fixed a race condition workaround delay in LPC214X SPI logic. |
| This was also the cause of some bad MMC/SD performance on that |
| platform. |
| |
| * Fixed a recently introduced FAT file system problem: It would |
| mount a (invalid) FAT file system even if the medium is not formatted! |
| |
| * Corrected two other important errors in the FAT lseek() implementation: |
| 1 - The sectors-per-cluster value was being reset to "1". |
| 2 - Important lseek logic was omitted when the seek position was zero. |
| |
| The FAT filesystem has had many bugs fixed in it and, I think, is |
| now maturing and becoming stable. |
| |
| These changes were verified only on the mcu123.com NXP LPC2148 |
| board, the Hitachi SH1_LCEVB1 board, and the Linux simulator, all |
| using a Linux development environment. Please report any errors |
| to me. |
| |
| This tarball contains a complete CVS snapshot from November 16, 2008. |
| |
| NuttX-0.3.19 |
| ------------ |
| |
| This is the 31st release of NuttX. This release includes the |
| following new feature: |
| |
| * Add poll() and select() APIs that may be used to monitor for |
| data availability on character devices or TCP/IP sockets. |
| * Implemented support TCP/IP connection backlog. This allows |
| select() to wake-up on new connections to a listener socket. |
| * Added definition of a framebuffer driver and implement framebuffer |
| drivers for the simulated platform and the TI DM320 (untested |
| as of the initial check-in). |
| * Partially developed a graphics framework based on the framebuffer |
| drivers, however, this will not be ready for use for a few more |
| releases. Currently this includes only a few color conversion |
| routines and some rasterizing functions. A tiny windowing system |
| is under development but not ready for check-in yet. |
| * Added support for fixed precision math. |
| * Added support for outgoing multicast packets. |
| |
| Several bugs were fixed, the most important of which are: |
| |
| * Fixed an important bug in the TCP/IP buffering logic. When |
| TCP/IP read-ahead is enabled and not recv() is in-place when a |
| TCP/IP packet is received, the packet is placed into a read-ahead |
| buffer. However, the old contents of the read-ahead buffer |
| were not being cleared and old data would contaminate the newly |
| received buffer. |
| |
| * Changed the behavior of the serial driver read. It now returns |
| data as it is available rather than waiting for the full requested |
| read size. This makes functions like fgetc() work much more |
| smoothly. |
| |
| These changes were verified only on the Neuros OSD (ARM9) using a |
| Linux development environment. Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from November 26, 2008. |
| |
| NuttX-0.4.0 |
| ----------- |
| |
| This is the 32nd release of NuttX. This release adds graphics |
| support and a tiny windowing subsystem. That new graphics subsystem |
| is documented at http://nuttx.sourceforge.net/NXGraphicsSubsystem.html. |
| No other substantial changes were made. |
| |
| These changes were verified only on the NuttX simulation platform |
| with X11 windows simulating a device framebuffer. Please report any |
| errors to me. |
| |
| The version number was bumped up to 0.4.0 in part to reflect the |
| new graphics subsystem, but also to recognize the NuttX is approaching |
| complete functionality. In the 0.3.x versions, network support was |
| added, Pascal P-code runtime support was added, FAT and ROMFS |
| filesystems were added, MMC/SD and USB device support were added. |
| There were also numerous extensions to the NuttShell, NuttX APIs, |
| and architecture ports. |
| |
| This tarball contains a complete CVS snapshot from December 6, 2008. |
| |
| NuttX-0.4.1 |
| ----------- |
| |
| This is the 33rd release of NuttX. This is a minor bugfix release. |
| The primary reason for this release is to correct numerous build |
| errors that have accumulated for the ZiLOG ZDS-II based targets. |
| All ZDS-II targets now build correctly (but have not been re-tested). |
| In addition to platform-specific build failures, this release also |
| adds the following features which were not tested as of the time |
| of the release: |
| |
| * Board support for the ZiLog ez80Acclaim! ez80f910200zco Development Kit |
| * ZiLOG eZ80F91 EMAC driver |
| |
| These changes were verified only on the NuttX simulation platform. |
| Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from February 6, 2009. |
| |
| NuttX-0.4.2 |
| ----------- |
| |
| This is the 34th release of NuttX. This release adds no new OS |
| features but does include support for two new architectures: |
| |
| * ez80Acclaim! Basic support has been integrated and verified |
| for the ez80f910200zcog-d board (eZ80F91-based). That basic |
| support includes timer interrupts and serial console. Ongoing |
| work includes an EMAC driver that should be integrated for the |
| next release nuttx-0.4.2. eZ80Acclaim! support has been in the |
| code base for some time, but has only just been integrated due |
| to toolchain issues. |
| |
| * Renesas M16C/20. Support for the Renesas SKP16C20 board has |
| been included in the NuttX source tree. However, as the |
| eZ80Acclaim!, testing and integration of that port is stalled |
| due to toolchain issues. |
| |
| These changes were verified only on the ZiLOG eZ80910200zcog-d |
| board. Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from February 28, 2009. |
| |
| NuttX-0.4.3 |
| ----------- |
| |
| This is the 35th release of NuttX. This release one important new |
| OS feature and corrects and extends the eZ80 port: |
| |
| * Priority Inheritance. The basic NuttX waiting logic was extended |
| to support priority inheritance. See the NuttX User Manual for |
| further information: |
| http://nuttx.apache.org/docs/latest/reference/user/05_counting_semaphore.html. |
| |
| * ez80Acclaim! Corrected several critical, show-stopping bugs on that |
| platform including: |
| - Errors in the serial driver interrupts. |
| - An error in the eZ80 table. |
| * eZ80Acclaim!: Completed integration of the eZ80F91 EMAC driver. |
| |
| These changes were verified only on the ZiLOG eZ80910200zcog-d board |
| and on Cygwin-based simulation platform in various configurations. |
| Please report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from March 13, 2009. |
| |
| NuttX-0.4.4 |
| ----------- |
| |
| This is the 36th release of NuttX. This release focuses on bugfixes |
| and extending and verifying certain networking features. |
| |
| * Important bugs were fixed in NSH, UDP checksum calculation, UDP |
| bind() behavior for port==0, the eZ80Acclaim! EMAC driver, Z80 |
| interrupt handling, and in the C libraries. |
| |
| * Testing was extended to further verify the tiny webserver, |
| DHCPD, wget(), and sendmail. |
| |
| See the Changelog for a detailed description of these changes. |
| |
| These changes were verified only on the ZiLOG eZ80910200zcog-d board |
| using the ZDS-II toolchain in Cygwin-based environment. Please |
| report any errors to me. |
| |
| This tarball contains a complete CVS snapshot from March 29, 2009. |
| |
| NuttX-0.4.5 |
| ----------- |
| |
| This is the 37th release of NuttX. This release focuses on a few new features. |
| |
| * The basic port for the Freescale ARM920T i.MX1 processor on the |
| Freescale MX1ADS board. Coding is complete for this port, but |
| it is has not yet fully integrated |
| * Extended I2C and SPI interface definitions |
| * Add basic support for C++ applications. Very simple C++ |
| applications can now be built against NuttX without any external |
| libraries. At present, only the most primitive C++ programs |
| are supported, but it is hoped that this support will be extended |
| in future releases. |
| |
| See the Changelog for a detailed description of these changes. |
| |
| This tarball contains a complete CVS snapshot from April 19, 2009. |
| |
| NuttX-0.4.6 |
| ----------- |
| |
| This is the 38th release of NuttX. The release features support |
| for the Micromint Eagle-100 development board. This board is based |
| around, the Luminary LM3S6918 MCU. This is the first ARM Cortex-M3 |
| architecture supported by Nuttx. This initial, basic port includes |
| timer and serial console with configurations to execute the NuttX |
| OS test and to run the NuttShell (NSH). Work is still underway on |
| this port and current plans are to have I2C, SSI, MMC/SD, and |
| Ethernet driver in the 0.4.7 release. |
| |
| Additional work was done on the MXADS i.MX1 port, however, that |
| work has been set aside until I complete work on the Eagle-100 (I |
| also need to come up with a 3V power supply). |
| |
| Other changes in this release include: Extensions to the SPI interface |
| definition in order to handle 9-bit interfaces to displays. Several |
| bugs were fixed (see the ChangeLog for a complete list of changes). |
| |
| This tarball contains a complete CVS snapshot from May 19, 2009. |
| |
| NuttX-0.4.7 |
| ----------- |
| |
| This is the 39th release of NuttX. This release focuses on cleaning |
| up and extending the Eagle100/LM3S6918 port released in nuttx-0.4.6 |
| and on improved MMC/SD support. New features include: |
| |
| * Improved reliably and additional drivers for the Eagle-100 board |
| (LM3S6918 ARM Cortex-M3). Additional drivers include Ethernet, |
| SSI, and support for the on-board LEDs and microSD cards. |
| |
| * The SPI-based MMC/SD driver was extended to support SDHC Version |
| 2.xx cards. |
| |
| In addition, this release includes several important bugfixes for |
| the LM3S6918, the LPC2148, the SPI-based MMC/SD driver, and to |
| FAT32. See the ChangeLog for details of these bugfixes. |
| |
| This tarball contains a complete CVS snapshot from May 29, 2009. |
| |
| NuttX-0.4.8 |
| ----------- |
| |
| This is the 40th release of NuttX. This release adds: |
| |
| * Support for the Olimex STRP711 board. That board is based on |
| the STMicro STR711 MCU (ARM7TDMI). Integration is complete on |
| the basic port (boot logic, system time, serial console). Two |
| configurations have been verified: (1) The board boots and |
| passes the OS test with console output visible on UART0, and |
| the NuttShell (NSH) is fully functional with interrupt driven |
| serial console. An SPI driver is available but untested (because |
| the Olimex card slot appears to accept only MMC cards; I have |
| only SD cards). Additional needed: USB and driver, MMC |
| integration. |
| |
| * Support for the CodeSourcery and devkitARM Windows-native GNU |
| toolchains. Makefiles have been modified for the LM3S6918, |
| LPC2148, and STR711 to support these toolchains under Cygwin. |
| |
| This tarball contains a complete CVS snapshot from June 13, 2009. |
| |
| NuttX-0.4.9 |
| ----------- |
| |
| This is the 41st release of NuttX. This release adds: |
| |
| * Support for a new binary format call NXFLAT that can be used to |
| execute separately linked programs in place in a file system. |
| See https://nuttx.apache.org/docs/latest/components/nxflat.html. |
| |
| * Several important bugs were files related to networking and ROMFS. |
| See the ChangeLog for a complete list. |
| |
| This tarball contains a complete CVS snapshot from June 26, 2009. |
| |
| NuttX-0.4.10 |
| ----------- |
| |
| This is the 42nd release of NuttX. This released focused on the |
| port of Jeff Poskanzer's THTTPD HTTP server (see |
| http://acme.com/software/thttpd/). As of the 0.4.10 release, that |
| port is still not fully complete and functional. However, numerous |
| related bug-fixes and functional additions for THTTPD were added: |
| |
| * Several new standard C-library functions (fileno, strstr, |
| strpbrk, fcntl). |
| * Improved and extended timing APIs (mktime, gmtime, gmtime_r, |
| gettimeofday, localtime, localtime_r, and strftime) |
| * Networking enhancements: recvfrom() and accept() now work with |
| non-blocking sockets. |
| * NXFLAT extensions (exec) |
| * Pattern matching logic. |
| * And miscellaneous bug fixes (see the ChangeLog for details). |
| |
| This tarball contains a complete CVS snapshot from August 8, 2009. |
| |
| NuttX-0.4.11 |
| ------------ |
| |
| This is the 43rd release of NuttX. This release of NuttX incorporates |
| the verified port of Jeff Poskanzer's THTTPD HTTP server (see |
| http://acme.com/software/thttpd/). Many of the key features of |
| THTTPD have been tested on the Micromint Eagle-100 development board |
| (Cortex-M3). These tests verify: |
| |
| * Serving of files from any file system |
| * Execution of CGI executable. This release supports execution |
| of NXFLAT executables on a ROMFS file system |
| (https://nuttx.apache.org/docs/latest/components/nxflat.html) |
| |
| A standard CGI interface is used: Information is pasted to the CGI |
| program via POST commands and via environment variables. CGI socket |
| I/O is redirected to stdin and stdout so that the CGI program only |
| need to printf() to send its content back to the HTTP client. |
| |
| Another value to this THTTPD integration effort has been that THTTPD |
| has provided a very good test bed for finding NuttX networking bugs. |
| Several very critical networking bugs have been fixed with this |
| 0.4.11 release (see the ChangeLog for details). Networking throughput |
| has also been greatly improved. Anyone using NuttX networking |
| should consider upgrading to this release. |
| |
| This tarball contains a complete CVS snapshot from September 16, 2009 |
| |
| NuttX-0.4.12 |
| ------------ |
| |
| This is the 44th release of NuttX. This release adds basic support |
| for the STMicro STM32, Cortex-M3 MCU. The specific port is to the |
| STMicro STM3210E-EVAL development board based around the STM32F103ZET6 |
| MCU. Some highlights of this port: |
| |
| * This basic port includes boot-up logic, interrupt driven serial |
| console, and system timer interrupts. |
| * Includes a basic STMicro RIDE7 project that can be used to |
| perform basic STM32 board bring-up (due to RIDE7 size limitations, |
| it cannot be used for the full NuttX bring-up). |
| * Working, Tested Configurations: the NuttX OS test and the |
| NuttShell (NSH) example. |
| |
| This basic STM32 port will be extended in the 0.4.13 NuttX release. |
| Functionality needed for complete STM32 support includes: USB |
| device driver, LCD driver and NX bringup on the development board's |
| display and MicroSD support. An SPI driver and a DMA support was |
| included in this 0.4.12 release, but is not yet tested. |
| |
| This tarball contains a complete CVS snapshot from October 17, 2009 |
| |
| NuttX-0.4.13 |
| ------------ |
| |
| This is the 45th release of NuttX. The release extends the support |
| for the STMicro STM32 microcontroller. Minimal support for the |
| STM3210E-EVAL development board based around the STM32F103ZET6 MCU |
| was released in NuttX-0.4.12. This release adds: |
| |
| * A simple interface definition to support some FLASH, EEPROM, |
| NVRAM, etc. devices. |
| * Verified SPI operation using driver for SPI based FLASH parts |
| M25P64 and M25P128. |
| * Improved Cortex-M3 context switching. This should improve |
| context switching performance be 2x in certain cases. |
| * Added a USB device-side driver for the STM32. This is an early |
| release of a very complex driver; some bugs are expected. |
| * The USB driver has been verified against the USB serial device |
| class driver. There is at least one known outstanding issue |
| (see the full bug description in the TODO list). |
| |
| This release also corrects some important bugs in the early STM32 release: |
| |
| * Fixed several errors the prevented operation of NuttX on an |
| STM32 development board using USART2 as the serial console. |
| * Fixed and optimization-dependent race condition in the clock |
| initialization. |
| * Fixed a critical bug in the interrupt control logic that could |
| cause interrupt operations to failed used for interrupts in a |
| certain range. |
| |
| This tarball contains a complete CVS snapshot from November 4, 2009 |
| |
| NuttX-4.14 |
| ---------- |
| |
| This is the 46th release of NuttX. The release extends the support |
| for the STMicro STM32 microcontroller. Minimal support for the |
| STM3210E-EVAL development board based around the STM32F103ZET6 MCU |
| was released in NuttX-0.4.12 and extended in Nuttx-0.4.13 to include |
| initial USB support. This completes the STM32F103ZET6 and adds: |
| |
| New Generic RTOS Features: |
| |
| * Added generic support that can be included in any block driver |
| to provide read-ahead buffering and write buffering for improved |
| driver performance. |
| * Added a generic worker thread that can used to defer processing |
| from an interrupt to a task. |
| * Defined a generic SD/SDIO interface can can be bound to a MMC/SD |
| or SDIO driver to provide SDIO support. |
| * Implemented a an SDIO-based MMC/SD driver using this new SDIO |
| interface. |
| |
| New STM32 Features: |
| |
| * Add support to configure an STM32 input GPIO to generate an |
| EXTI interrupt. |
| * Added support for buttons on the STM3210E-EVAL board. |
| * Implemented an STM32 version of the common the SDIO interface. |
| * Added a configuration to exercise the STM32 with the USB mass |
| storage device class example. |
| |
| This release also corrects some important bugs in the early STM32 release: |
| |
| * Correct error handling in the mount() logic. |
| * Fixed several STM32 DMA-related issues. Integrated and debugged |
| STM32 DMA functionality that was added in 0.4.12. |
| * Fixed several bugs in the STM32 USB device-side driver. |
| |
| NOTE: This version, 4.14, is equivalent to what would have been |
| called 0.4.14 to follow 0.4.13. The zero has been eliminated from |
| the front of the version number to avoid confusion about the state |
| of development: Some have interpreted the leading zero to mean |
| that the code is in some way unstable. That was not the intent. |
| Beginning in January 2010, I will switch to the 2010.nn versioning |
| as many others have done to avoid such confusion. |
| |
| This tarball contains a complete CVS snapshot from December 2, 2009 |
| |
| NuttX-5.0 |
| --------- |
| |
| This is 47th release of NuttX and the successor to nuttx-4.14. This |
| major revision number has been incremented to indicate that an |
| incompatibility with previous nuttx releases has been introduced. |
| This version adopts standard fixed width integer names as specified |
| by the ANSI C99 standard. The core logic of NuttX is older than |
| that standard and did not conform to it. |
| |
| If you have applications running on NuttX-4.14, those applications |
| should continue to build and execute without problem on NuttX-5.0. |
| However, if you have device drivers or other OS-internal logic, you |
| will probably have to make some minor changes to your code to use |
| this version. Below is a summary of those changes: |
| |
| * If you include sys/types.h to get the non-standard, fixed width |
| integer types (uint32, uint16, ubyte, etc.), that is no longer |
| necessary. |
| * Instead, you will need to include stdint.h where the new fixed |
| width integer types are defined (uint32_t, uint16_t, uint8_t, etc). |
| * You will have to change all occurrences of the following types: |
| |
| uint32 -> uint32_t |
| uint16 -> uint16_t |
| ubyte -> uint8_t |
| uint8 -> uint8_t |
| sint32 -> int32_t |
| sint16 -> int16_t |
| sint8 -> int8_t |
| |
| * In addition, the non-standard type 'boolean' must replaced with |
| the standard type 'bool'. The type definition for 'bool' is in |
| stdbool.h |
| |
| This change in typing caused small changes to many, many files. It |
| was verified that all configurations in the release still build |
| correctly (other than the SDCC-based configurations). Regression |
| testing was performed on a few configurations, but it is possible |
| that minor build issues still exist. (If you encounter any, please |
| let me know and I will help you to fix them.) |
| |
| In the course of the regression testing, several important bugs |
| unrelated to the type changes were found and corrected. |
| |
| * Fixed an important error in the RX FIFO handling logic of the |
| LM3S6918 Ethernet driver. |
| * Corrected the handling of TCP sequence numbers in the TCP stack. |
| * And other less important bugs as detailed in the ChangeLog. |
| |
| The primary focus of this release was standards compatibility, but |
| a few new features were added including a (1) Flash Translation |
| Layer (FTL) that will support filesystems on a FLASH device and (2) |
| partial ports for the STM32F107VC and HCS12 C9S12NE64 MCUs. Those |
| ports are very incomplete as of this writing. |
| |
| This tarball contains a complete CVS snapshot from December 21, 2009 |
| |
| NuttX-5.1 |
| --------- |
| |
| This is the 48th release of NuttX. This release adds support for |
| two new MCU architectures in various states of development: |
| |
| * AT91SAM3U (http://www.atmel.com/products/at91/sam3landing.asp?family_id=605) |
| |
| This release adds support for the SAM3U-EK development board with |
| the AT91SAM3U4E MCU |
| (http://www.atmel.com/dyn/products/product_card_mcu.asp?part_id=4562). |
| As with most NuttX architecture releases, the release will be |
| rolled out in two parts: A basic port and an extended port. |
| |
| NuttX-5.1 includes the basic port for the SAM3U-EK board. This |
| release passes the NuttX OS test and is proven to have a valid |
| OS implementation. It supports the basic boot-up, serial console |
| and timer interrupts. A configuration to support the NuttShell |
| is also included. |
| |
| The extended port will also include support for SDIO-based SD |
| cards and USB device (and possible LCD support). These extensions |
| may or may not happen by the Nuttx 5.2 release as my plate is |
| kind of full now. |
| |
| * LPC3131 (http://ics.nxp.com/products/lpc3000/lpc313x.lpc314x.lpc315x/) |
| |
| This release also adds the complete implementation of the basic |
| port for the NXP LPC3131 MCU on the Embedded Artists EA3131 board |
| (http://www.embeddedartists.com/products/kits/lpc3131_kit.php). |
| That port, unfortunately has stalled due to tools issues. Those |
| tool issues have been resolved and I am confident that the verified |
| basic port will be available in NuttX-5.2. |
| |
| The extended release will follow and should include SDIO-based |
| SD card support and device USB. |
| |
| A few additional features and bugfixes of a minor nature were also |
| incorporated as detailed in the ChangeLog. |
| |
| NuttX-5.2 |
| --------- |
| |
| This is the 49th release of NuttX. This release completes the |
| verification of the basic port for the NXP LPC3131 MCU on the |
| Embedded Artists EA3131 board |
| (http://www.embeddedartists.com/products/kits/lpc3131_kit.php). |
| This basic port includes basic boot-up, serial console, and timer |
| interrupts. This port has been verified on the using the NuttX OS |
| test and includes a working implementation of the NuttShell (NSH). |
| |
| An extended release will follow and should include SDIO-based SD |
| card support and device USB. |
| |
| NuttX-5.3 |
| --------- |
| |
| This is the 50th release of NuttX. This release support for one new |
| architecture: |
| |
| * A basic port for the NXP LPC2378 MCU on the Olimex-LPC2378 |
| development board was contributed by Rommel Marcelo. |
| |
| And extensions to two existing architectures: |
| |
| * David Hewson contributed a dual-speed (full/high) USB device-side |
| driver for the NXP LPC3131 on the Embedded Artists EA3131 |
| development board. |
| |
| * A DMA driver and a high speed MCI driver for the Atmel AT91SAM3U |
| are included (but not fully tested in this release). |
| |
| Two important bugfix was also included: |
| |
| * An important fix to the USB mass storage driver was contributed |
| by David Hewson. |
| * A serious error in the AT91SAM3U PIO handling was fixed. |
| |
| NuttX-5.4 |
| --------- |
| |
| This is the 51st release of NuttX. This release includes one new, |
| important extension to th NX graphics system (See |
| https://nuttx.apache.org/docs/latest/components/nxgraphics/index.html). |
| |
| NX was develop a couple years back on hardware that supported only |
| framebuffer devices, that is, video hardware with video memory |
| directly converts the memory content to video. However, most MCUs |
| that NuttX focuses on do not support such video memory; rather, |
| that typically only support LCDs via parallel or serial interfaces. |
| |
| This release of NuttX extends NX so that now renders directly to |
| the LCD device via its serial or parallel interface. No in-memory |
| copy of the screen memory need be maintained so this solution should |
| also work in MCUs with very limited SRAM. |
| |
| This initial release of this feature includes the verified NX |
| extensions plus a driver for the HX8347, 16-bit parallel LCD. This |
| LCD supports 16-bit RGB (5:6:5). |
| |
| NuttX-5.5 |
| --------- |
| |
| This is the 52nd release of NuttX. This release includes one new |
| port, some new drivers and some important bugfixes: |
| |
| * NuttX was ported to the Luminary/TI LM3S6965 Ethernet Evaluation |
| Kit. At present, that port includes an OS test configuration |
| and a NuttShell (NSH) configuration with Telnet support. |
| |
| MMC/SD and Networking support are provided but not thoroughly |
| verified in this release: Current development efforts are focused |
| on porting the NuttX window system (NX) to work with the |
| Evaluation Kits OLED display. |
| |
| * A NuttX Ethernet driver for the Microchip ENC28J60 SPI Ethernet |
| chip is available in the source tree (but has not yet been fully |
| verified because I haven't properly connected it to hardware |
| yet). |
| |
| * The Olimex STR-P711 NuttX port was extended to support the |
| ENC28J60 and some new networking configurations were added. |
| The ENC28J60 has not been tested on the STR-P711, however, |
| because of hardware issues (I don't think the USB powered board |
| provides enough power for the ENC28J60 and I don't have the |
| right wall wart yet). |
| |
| Along the way, external interrupt support (XTI) was added to |
| the STMicro STR-P711 port and some important bugs were fixed |
| in the STR-P711 SPI driver. |
| |
| * Added (optional) floating point support for printf(). |
| (Contributed by Yolande Cates.) |
| |
| * Corrected an important UDP reference counting error. It was |
| not a serious error, but it trigger an assertion was IS a serious |
| error. |
| |
| NuttX-5.6 |
| --------- |
| |
| This is the 53rd release of NuttX. This release includes one several |
| new drivers for existing NuttX ports: |
| |
| * This port adds support for the RiT displays P14201 4-bpp, |
| greyscale OLED. 4-bpp greyscale support was integrated into |
| the NX graphics sub-system and verified using the TI/Luminary |
| LP3S6965 Ethernet Evaluation Kit. |
| |
| * The M25Px driver was extended for the M24P1 FLASH part (see NOTE). |
| |
| * An I2C driver and (basic) SPI driver were added for the NXP |
| LPC313x port. The I2C interface definition was extended to |
| efficiently handle multiple I2C transfers. |
| (Contributed by David Hewson.) |
| |
| As well as a few, important USB-related bugfixes (See the ChangeLog |
| for details). |
| |
| This release also includes the beginnings of a port for the NXP |
| LPC1768 MCU. However, it is too early for that port to be useful |
| (stay tuned for a future announce of the availability of the LPC1768 |
| port). |
| |
| NuttX-5.7 |
| --------- |
| |
| This is the 54th release of NuttX. This release adds basic support |
| for one new ARM Cortex-M3 architecture: |
| |
| * Added support for NXP LPC1768 MCU as provided on the Nucleus |
| 2G board from 2G Engineering (http://www.2g-eng.com). |
| * Some initial files for the LPC17xx family were released in NuttX |
| 5.6, but the first functional release for the NXP LPC1768/Nucleus2G |
| occurred with NuttX 5.7. |
| * That initial basic release included timer interrupts and a |
| serial console and was verified using the NuttX OS test. |
| * That release includes a verified NuttShell (NSH) configuration |
| (see the https://nuttx.apache.org/docs/latest/components/nsh/index.html). |
| * Also included are unverified SPI and USB device drivers. |
| |
| Further efforts include: |
| (1) development of a DMA support library |
| (2) SPI-based MMC/SD support |
| (3) verification of the USB driver |
| |
| Watch for announcement of the completed LPC1768 port expected in |
| NuttX-5.8. |
| |
| NuttX-5.8 |
| --------- |
| |
| This is the 55th release of NuttX. This includes several important |
| bugfixes: |
| |
| * Corrects some interrupt vectoring for the TI/Stellarix LM3S |
| port |
| * Correct initialization logic for NXP LPC17xxx NuttX ports: |
| Power was not being provided to the GPIO module! |
| * Corrected (but did not verify) implementation of the optional |
| interrupt stack feature (all Cortex M3 architectures). |
| * Correct a HardFault in the LPC17xx SSP driver. |
| |
| Additional minor fixes are also included as detailed in the ChangeLog. |
| |
| Several new features have been fully developed and included in this |
| release, but full verification of most of these new features has |
| been blocked for a variety of issues: |
| |
| * Added microSD support for the NuttShell (NSH) configuration in |
| the Nucleus2G LPC1768 port. For reasons that have not yet been |
| determined, I have not successfully accessed the microSD card |
| as of this writing. |
| * Two USB configurations were also added for the Nucleus2G board: |
| One to support the USB serial device and one for the USB mass |
| storage device. Some testing of the USB driver was performed, |
| but full verification is stalled for an OTG style USB cable. |
| * LEDs now work correctly on the Nucleus2G LPC1768 board. |
| * The NuttX/uIP networking subsystem now supports IGMPv2 client. |
| IGMP (Internet Group Multicast Protocol) network "appliances" |
| to join into multicast groups. Outbound traffic to enter and |
| leave multicast groups has been verified, but full verification |
| will require a switch capable of multicast. Issues associated |
| with the receipt of multicast packets are likely. |
| |
| NuttX-5.9 |
| --------- |
| |
| This is the 56th release of NuttX. This release is difficult to |
| categorize; NuttX-5.9 was really released because there were too |
| many changes accumulating in CVS -- a few important, some unfinished |
| implementations, and a couple of important bugfixes. |
| |
| * By far biggest change in this release is the complete implementation |
| of on-demand paging support. This feature will allow you to |
| execute large programs on a mass storage device (such as SPI |
| FLASH) in a small RAM. All of the core on-demand paging logic |
| was completed |
| (see https://nuttx.apache.org/docs/latest/components/paging.html) |
| and support was implemented for the ARM-9 family. A test |
| configuration is in place for the NXP LPC3131. It has been |
| verified that this new logic does not interfere with normal |
| fixed-page ARM9 operation, but otherwise this new on-demand |
| paging feature is untested. |
| * Add support for the CodeSourcery toolchain to the Olimex-lpc2378 |
| port and for the Neuros OSD port. |
| * The Neuros OSD port has been updated to work with the production |
| v1.0 OSD (previously it only worked with the development board). |
| * And some miscellaneous feature enhancements as detailed in the |
| ChangeLog. |
| |
| This includes several important bugfixes: |
| |
| * NXP LPC17xx - Fixed a critical bug in the GPIO configuration |
| logic: When attempting to set no pull-up or pull-down (floating), |
| it would, instead, select pull-down. |
| |
| * TI/Luminary LM3Sxxxx - Fixed: |
| (1) A logic error in an address table lookup. |
| (2) GPIO port encoding the limited support to only 8 GPIO ports. |
| |
| * Corrected the lease time in the DHCPC implementation: It was |
| not in host byte order. |
| |
| * And several other less important bugs as documented in the |
| ChangeLog: Warnings, cornercase compilation problems, etc. |
| |
| NuttX-5.10 |
| ---------- |
| |
| This is the 57th release of NuttX. This release includes a combination |
| of some new features as well as several bugfixes. New features |
| include: |
| |
| * TI/Luminary Stellaris LM3S9B96: |
| Header file changes contributed by Tiago Maluta. |
| * TI/Luminary Stellaris LM3S8962: |
| Header file changes and support for the Stellaris LM3S8962 |
| Ethernet+CAN Evaluation Board contributed by Larry Arnold. |
| * On-Demand Paging Support: |
| The basic logic for the On-Demand Paging feature is complete, |
| implemented for the NXP LPC3131, and partially tested. See |
| https://nuttx.apache.org/docs/latest/components/paging.html. |
| Some additional test infrastructure will be needed in order to complete |
| the verification. See configs/ea3131/README.txt for details. |
| * Two Pass Build Support: |
| The make system now supports a two pass build where a relocatable, |
| partially linked object is created on the first pass and that |
| object is linked with the NuttX libraries to produce the final |
| executable on the second pass. This two pass build is currently |
| only used to support the On-Demand paging feature: The first |
| pass link forces critical logic into the locked text region; |
| the second pass builds the NuttX executable more-or-less as |
| normal. |
| * CONFIG_APP_DIR: |
| Generalized the way in which applications are built and linked |
| with NuttX. The new configuration CONFIG_APP_DIR replaces |
| CONFIG_EXAMPLE. CONFIG_EXAMPLE used to identify the sub-directory |
| within the NuttX examples/ directory that held the example |
| application to be built. That made it awkward to configure to |
| build an application that resides outside of the NuttX examples/ |
| directory. CONFIG_APP_DIR is more general; it can be used to |
| refer to any directory containing the application to be built. |
| |
| For people who have their own configurations and/or Makefiles, |
| you will need to make a couple of changes: |
| |
| - Replace all occurrences of CONFIG_EXAMPLE=foobar with |
| CONFIG_APP_DIR=examples/foobar in all of the configuration |
| files. |
| - Replace any occurrences of examples/$(CONFIG_EXAMPLE) with |
| $(CONFIG_APP_DIR) |
| - Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT) |
| with libapp$(LIBEXT) in your Makefiles. |
| - Check any other occurrences of CONFIG_EXAMPLE. |
| |
| * Several bugfixes are included as well as code changes to eliminate |
| some warnings. See the ChangeLog for details. |
| |
| NuttX-5.11 |
| ---------- |
| |
| This is the 58th release of NuttX. This is a bugfix release. |
| |
| * One very important bug fixes a race condition that can occur |
| using semaphores that can be awakened by signals. Under this |
| particular race condition, a task could hang waiting for a |
| semaphore. |
| * Corrections to lm3s8962 port contributed by Larry Arnold. That |
| port is purported to work correctly with these changes in place. |
| |
| Plus less critical bugfixes as detailed in the ChangeLog. New features |
| include: |
| |
| * A new configuration to support the mbed.org LPC1768 board. |
| (Contributed by Dave Marples.) |
| * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part |
| |
| NuttX-5.12 |
| ---------- |
| |
| This is the 59th release of NuttX. This is a critical bugfix release. |
| |
| * Fixed an important error in the signal trampoline logic. |
| Essentially, interrupts are re-enabled while the signal handler |
| executes, but the logic to re-disable the interrupts before |
| returning from the signal handler trampoline was missing. Under |
| certain circumstances, this can cause stack corruption. This |
| was discovered by David Hewson on an ARM9 platform, but since |
| the code has been leveraged, the bug has been propagated from |
| ARM to Cortex-M3, AVR32, M16C, SH1, ZNEO, eZ80, Z8, and Z80 -- |
| almost every architecture. The correction has been incorporated |
| for all architectures but only verified on a few. |
| |
| Other notable changes in NuttX-5.12: |
| |
| * A complete port for the AVR32 (AT32UC3B0256) is incorporated |
| in the source tree. Testing of this port is underway now. This |
| release was made before verifying this port in order to get the |
| important bugfix in place. |
| |
| * Other miscellaneous bugfix and enhancements as noted in the |
| ChangeLog. |
| |
| NuttX-5.13 |
| ---------- |
| |
| This is the 60th release of NuttX. Headlines for this release |
| include: |
| |
| * AVR32, www.mcuzone.com AVR32DEV1 |
| |
| The port for the www.mcuzone.com AVRDEV1 board based on the |
| Atmel AT32UC3B0256 MCU was (almost) fully integrated. The port |
| now successfully passes the NuttX OS test (examples/ostest). |
| A NuttShell (NSH) configuration is in place (see the NSH User |
| Guide at https://nuttx.apache.org/docs/latest/components/nsh/index.html). |
| Testing of that NSH configuration, however, has been postponed |
| (because it got bumped by the Olimex LPC1766-STK port -- see below) |
| |
| Current Status: I think I have a hardware problem with my serial |
| port setup. There is a good chance that the NSH port is complete |
| and functional, but I am not yet able to demonstrate that. At |
| present, I get nothing coming in the serial RXD line (probably |
| because the pins are configured wrong or I have the MAX232 |
| connected wrong). |
| |
| A complete port will include drivers for additional AVR32 UC3 |
| devices -- like SPI and USB --- and will be available in a |
| later release, time permitting. |
| |
| * LPC1766, Olimex LPC1766-STK |
| |
| Support for the Olimex-LPC1766 is newly added to NuttX and is |
| still undergoing development, test, and integration. Verified |
| configurations for the NuttX OS test and for the NuttShell (NSH, |
| see the NSH User Guide at |
| https://nuttx.apache.org/docs/latest/components/nsh/index.html . |
| Additional USB configurations are in the release as well, but |
| they have not yet been verified. Goals for NuttX-5.14 include: |
| (1) An Ethernet driver, (2) Verified USB support, and (3) SD |
| card support. |
| |
| * Additional changes and bugfixes as detailed in the ChangeLog. |
| |
| NuttX-5.14 |
| ---------- |
| |
| The 61st release of NuttX, NuttX-5.14, was made on November 27, |
| 2010. This release includes multiple, important bugfixes as well |
| as a new driver for the NXP LPC1766. |
| |
| This release corresponds with SVN release number: r3137 |
| |
| Important bugfixes include: |
| |
| * Cortex-M3 Hard Fault. Fixed a hard fault problem that can occur |
| if certain types of interrupts are pending at the time another |
| interrupt returns. This problem has only been observed on the |
| LPC1766 (returning from a SYSTICK interrupt with a pending |
| Ethernet interrupt). However, it is assumed that all Cortex-M3 |
| ports could have this as a latent bug. |
| |
| * TCP/IP Sequence Number Bug. Corrected errors some important |
| logic in the way that sequence numbers are managed when send() |
| sends out packets before a previous packet has been acknowledged. |
| Some of that send() logic was incompatible with logic in the |
| uIP layer. Errors seen include: (1) The final final packet in |
| a sequence of packets might be too large! In the THTTPD example, |
| this might leave some garbage at the bottom of the display. Or |
| (2) send() might hang with outstanding, unacknowledged data |
| (and with no re-transmission requests). This was due to |
| differences in sequence number handling in send() and in |
| uip_tcpinput.c; uip_tcpinput.c thought (incorrectly) that all |
| of the bytes were acknowledged; send.c knew that they were not. |
| |
| * One-Shot POSIX Timer Bug. Fixed an error in set-up of a one-shot |
| POSIX timer. It was using the repetitive timer value (which |
| is zero in the one-shot case), always resulting in a 10Ms timer! |
| Found and fixed by Wilton Tong. |
| |
| Additional support has been included for the Olimex-LPC1766. Support |
| for that board was added to NuttX 5.13. This release extends that |
| support with an Ethernet driver. Verified configurations are now |
| available for the NuttX OS test, for the NuttShell (NSH, see |
| https://nuttx.apache.org/docs/latest/components/nsh/index.html), |
| for the NuttX network test, and for the THTTPD webserver. |
| (Additional USB configurations are in the release as well, but those |
| have not yet been verified. Goals for NuttX-5.15 (and beyond) include: |
| (1) Verified USB support, (2) SD card support, and (3) LCD support. |
| |
| NuttX-5.15 |
| ---------- |
| |
| The 62nd release of NuttX, NuttX-5.15, was made on December 12, |
| 2010. This release includes several bugfixes as well as feature |
| enhancements, primarily for the Olimex LPC1766-STK board. |
| |
| Important bugfixes included: |
| |
| * Additional fixes needed with the TCP sequence number problem |
| "fixed" in NuttX-5.14. |
| * In the send() logic, now checks if the destination IP address |
| is in the ARP table before sending the packet; an ARP request |
| will go out instead. This improves behavior, for example, on |
| the first on the first GET request from a browser |
| * All USB class drivers need to call DEV_CONNECT() when they are |
| ready to be enumerated. That is, (1) initially when bound to |
| the USB driver, and (2) after a USB reset. |
| * The SPI_SETBITS macro was calling the SPI setmode method. |
| * And several other bug fixes of lower importance (see the |
| ChangeLog for details). |
| |
| And feature enhancements: |
| |
| * The LPC176x Ethernet driver was using all of AHB SRAM Bank0 for |
| Ethernet packet buffers (16K). An option was added to limit |
| the amount of SRAM used for packet buffering and to re-use any |
| extra Bank0 memory for heap. |
| |
| * Enabled networking and SD/MMC card support in the Olimex |
| LPC1766-STK NuttShell (NSH) configuration. |
| |
| * The LPC176x USB driver is now fully fully functional. |
| * Added an optional cmddata() method to the SPI interface. Some |
| devices require an additional out-of-band bit to specify if the |
| next word sent to the device is a command or data. The cmddata |
| method provides selection of command or data. |
| |
| * A driver for the Nokia 6100 LCD (with either the Phillips PCF8833 |
| LCD controller and for the Epson S1D15G10 LCD controller) and |
| an NX graphics configuration for the Olimex LPC1766-STK have |
| been added. However, neither the LCD driver nor the NX |
| configuration have been verified as of the this release. |
| |
| NuttX-5.16 |
| ---------- |
| |
| The 63rd release of NuttX, Version 5.16, was made on January 10, |
| 2010 and is available for download from the SourceForge website. |
| This release includes initial support for USB host in NuttX. The |
| USB host infrastructure is new to NuttX. This initial USB host release |
| is probably only beta quality; it is expected the some bugs remain |
| in the logic and that the functionality requires extension. |
| |
| Below is a summary of the NuttX USB host implementation as extracted |
| from the NuttX Porting Guide: |
| |
| 6.3.9 USB Host-Side Drivers |
| * include/nuttx/usb/usbhost.h. All structures and APIs needed to |
| work with USB host-side drivers are provided in this header |
| file. |
| * struct usbhost_driver_s. Each USB host controller driver must |
| implement an instance of struct usbhost_driver_s. This structure |
| is defined in include/nuttx/usb/usbhost.h. Examples: |
| arch/arm/src/lpc17xx/lpc17_usbhost.c. |
| * struct usbhost_class_s. Each USB host class driver must implement |
| an instance of struct usbhost_class_s. This structure is also |
| defined in include/nuttx/usb/usbhost.h. Examples: |
| drivers/usbhost/usbhost_storage.c |
| * USB Host Class Driver Registry. The NuttX USB host infrastructure |
| includes a registry. During its initialization, each USB host |
| class driver must call the interface, usbhost_registerclass() |
| in order add its interface to the registry. Later, when a USB |
| device is connected, the USB host controller will look up the |
| USB host class driver that is needed to support the connected |
| device in this registry. Examples: drivers/usbhost/usbhost_registry.c, |
| drivers/usbhost/usbhost_registerclass.c, and |
| drivers/usbhost/usbhost_findclass.c, |
| * Detection and Enumeration of Connected Devices. Each USB host |
| device controller supports two methods that are used to detect |
| and enumeration newly connected devices (and also detect |
| disconnected devices): |
| + int (*wait)(FAR struct usbhost_driver_s *drvr, bool connected); |
| Wait for a device to be connected or disconnected. |
| + int (*enumerate)(FAR struct usbhost_driver_s *drvr); |
| Enumerate the connected device. As part of this enumeration |
| process, the driver will (1) get the device's configuration |
| descriptor, (2) extract the class ID info from the configuration |
| descriptor, (3) call usbhost_findclass() to find the class |
| that supports this device, (4) call the create() method on |
| the struct usbhost_registry_s interface to get a class instance, |
| and finally (5) call the connect() method of the struct |
| usbhost_class_s interface. After that, the class is in charge |
| of the sequence of operations. |
| * Binding USB Host-Side Drivers. USB host-side controller drivers |
| are not normally directly accessed by user code, but are usually |
| bound to another, higher level USB host class driver. The class |
| driver exports the standard NuttX device interface so that the |
| connected USB device can be accessed just as with other, similar, |
| on-board devices. For example, the USB host mass storage class |
| driver (drivers/usbhost/usbhost_storage.c) will register a |
| standard, NuttX block driver interface (like /dev/sda) that can |
| be used to mount a file system just as with any other other |
| block driver instance. In general, the binding sequence is: |
| |
| 1. Each USB host class driver includes an initialization entry |
| point that is called from the application at initialization |
| time. This driver calls usbhost_registerclass() during this |
| initialization in order to makes itself available in the |
| event that the device that it supports is connected. Examples: |
| The function usbhost_storageinit() in the file |
| drivers/usbhost/usbhost_storage.c |
| 2. Each application must include a waiter thread thread that |
| (1) calls the USB host controller driver's wait() to detect |
| the connection of a device, and then (2) call the USB host |
| controller driver's enumerate method to bind the registered |
| USB host class driver to the USB host controller driver. |
| Examples: The function nsh_waiter() in the file |
| configs/nucleus2g/src/up_nsh.c and the function nsh_waiter() |
| in the file configs/olimex-lpc1766stk/src/up_nsh.c. |
| 3. As part of its operation during the binding operation, the |
| USB host class driver will register an instances of a standard |
| NuttX driver under the /dev directory. To repeat the above |
| example, the USB host mass storage class driver |
| (drivers/usbhost/usbhost_storage.c) will register a standard, |
| NuttX block driver interface (like /dev/sda) that can be |
| used to mount a file system just as with any other other |
| block driver instance. Examples: See the call to |
| register_blockdriver() in the function usbhost_initvolume() |
| in the file drivers/usbhost/usbhost_storage.c. |
| |
| NuttX-5.17 |
| ---------- |
| |
| The 64th release of NuttX, Version 5.17, was made on January 19, |
| 2011 and is available for download from the SourceForge website. |
| This release follows close on the heels of the 5.16 release and |
| extends the USB host capabilities first introduced in that version. |
| |
| * The LPC17xx USB host controller driver was extended to (1) add |
| support for low-speed devices, (2) handle multiple concurrent |
| transfers on different endpoints (still only one TD per endpoint), |
| and (3) handle periodic interrupt endpoint types. |
| |
| * Add a USB host HID keyboard class driver. Now you can connect |
| a standard USB keyboard to NuttX and receive keyboard input for |
| an application. |
| |
| And other changes as detailed in the ChangeLog. |
| |
| NuttX-5.18 |
| ---------- |
| |
| The 65th release of NuttX, Version 5.18, was made on February 27, |
| 2011 and is available for download from the SourceForge website. |
| This is first release from the new NuttX SVN repository. This |
| release is made primarily to keep the release tarball in synchronization |
| with SVN. Many smaller changes have been made as identified in the |
| ChangeLog. Headlines include: |
| |
| * Incorporate several important uIP patches -- including the well |
| known patch to handle missing SYNACK. |
| * The Freescale mc8s12ne64 port is code complete but testing has |
| not yet begun due to toolchain issues. Added support for the |
| Future Electronics Group NE64 Badge board. |
| * Added support for a new STM32 board, the ISOTEL NetClamps VSN |
| V1.2 ready2go sensor network platform. This board is based on |
| a STM32F103RET6 and includes some interesting power saving/clock |
| control extensions. |
| * USB host support expanded to handle vendor specific USB devices. |
| * Incorporated the LUFA HID parser. |
| * Various bugfix as detailed in the ChangeLog |
| |
| NuttX-5.19 |
| ---------- |
| |
| The 66th release of NuttX, Version 5.19, was made on March 12, 2011 |
| and is available for download from the SourceForge website. This |
| release includes several new features in various states of integration |
| and maturity: |
| |
| * 486SX QEMU port. This port supports the Intel 486SX architecture |
| using the QEMU simulator. Initial functionality is in place a |
| partially tested. There are still some outstanding issues with |
| timer interrupts. |
| * Platform specific application support. A new apps/ directory |
| appears in this port. This apps/ directory provides a mechanism |
| for applications using NuttX to have a highly customized |
| initialization process. It supports a set of end-user applications |
| than can be executed (1) standalone so you can have a fully |
| customized application startup, or (2) on top of NSH. Think |
| of it this way: In a buckled-up embedded application, your |
| end-user programs will probably have their own dedicated start-up |
| logic. But, during development, you might want to have you |
| applications available and executable from the NSH command line. |
| This apps/ add-on (and NSH hooks) was contributed by Uros to |
| accomplish just that. |
| * NSH was also extended to support application specific ROMFS |
| /etc/init.d/rcS start-up scripts. This feature, as well, as |
| all of the above-mentioned apps/ directory support was contributed |
| by Uros Platise |
| * Additional NSH improvements and bug fixes. See the Changelog |
| for details. |
| * This release also provides a new SLIP network driver. This |
| driver should support point-to-point network communications to |
| a host using TCP/IP or UDP. This driver is code complete, but |
| not tested in this release. |
| * New RAMTRON FRAM driver (contributed by Uros Platise) |
| * New generic 16550 UART driver. |
| * Cortex-M3 Power improvements: Waits for Interrupt (WFI) in idle |
| loop for reduced power consumption (LPC17xx and STM32 only - |
| contributed by Uros Platise)) |
| * New waitpid() system interface. |
| * Additional bugfixes: pipes, stdint.h, STM32 SDIO and SPI drivers |
| |
| NuttX-6.0 |
| --------- |
| |
| The 67th release of NuttX, Version 6.0, was made on March 21, 2011 |
| and is available for download from the SourceForge website. The |
| version number of this release was bumped from 5.19 to 6.0. A |
| change in the major revision number is used to reflect an incompatibility |
| with previous versions. In this release, the NuttX core OS |
| functionality has been separated from NuttX application-related |
| functionality. These are provided as separate tarballs: |
| |
| * nuttx-6.0.tar.gz, and |
| * apps-6.0.tar.gz |
| |
| The purpose of this separation is both to better organize and |
| modularize the NuttX source tree, but also to provide better support |
| for incorporation of end-user applications with Nuttx. |
| |
| The incompatibility results from the changes to the board configuration |
| logic needed to supported the separable application. The major |
| changes to the configuration include: |
| |
| * CONFIG_APPS_DIR - This should not be set. The default is |
| ../apps. This should only be set if you have a custom, |
| product-specific application directory in some different location. |
| |
| * appconfig - Each board configuration now requires a new file |
| called 'appconfig.' As its name suggests, this file provides |
| new configuration information needed by the logic in ../apps. |
| |
| In addition to this major reorganization in the directory structure, |
| this release also includes some important extensions to existing |
| features and some important bugfixes. These include: |
| |
| * The SLIP driver was been well debugged and significantly |
| re-designed. Now you can have an Ethernet connection to you |
| board even if you have no Ethernet hardware. How cool is that? |
| |
| * The QEMU i486 port is now functional. It has also been reported |
| to work on the Bifferboard (see http://bifferos.bizhat.com/). |
| |
| * And extensions to the uIP driver interface, and |
| |
| * Bug fixes to fopen() and STM32 GPIO configuration |
| |
| Please see the ChangeLog for details. |
| |
| NuttX-6.1 |
| --------- |
| |
| The 68th release of NuttX, Version 6.1, was made on April 10, 2011 |
| and is available for download from the SourceForge website. The |
| 6.0 release introduced a detach-able application environment to |
| build applications outside of the NuttX source tree. The primary |
| purpose of this release is to correct numerous build problems |
| introduced by that architectural change: |
| |
| * In many newer environments, NuttX produced strange Makefile |
| errors but built correctly in older environments. A fix provided |
| by Rafael Noronha was incorporated and is reported to fix those |
| build problems. |
| * The apps/ directory build system would not handle Windows-native |
| toolchains due to obscure path formatting issues. |
| * And other problems as detailed in the Changelog. |
| |
| Many additional changes were made in the 6.1 release for another |
| major architectural change: NuttX will now build as a separately |
| linked microkernel. In this build option the RTOS builds as a |
| kernel, applications build separately and interface with kernel via |
| system calls. Applications run in user mode and kernel logic users |
| in kernel-mode. This provides a secure environment for NuttX. This |
| feature is fully coded in NuttX-6.1, but has not been tested due |
| to higher priority tasks that have arisen. |
| |
| Related to this change, support for the Cortex-M3 memory protection |
| unit (MPU) has been integrated with the NuttX kernel build to provide |
| an even higher level of security. |
| |
| NOTE: This kernel build is an option; the default build configuration |
| is still the standard, flat, unsecured RTOS as in previous releases. |
| |
| Additional new features in this release: |
| |
| * Support for LPC17xx GPIO interrupts (with much support from |
| Decio Renno). |
| * Basic timer support for STM32 (Contributed by Uros Platise) |
| * A binfs file system. This is a tiny pseudo file system that |
| lets named applications to be viewed and accessed in NSH under |
| the /bin directory. |
| * An I2C-based driver for the LIS331DL MEMS motion sensor. |
| (Contributed by Uros Platise.) |
| * A configuration for the Embedded Artists LPCXpresso LPC1768 board. |
| * The user_initialize() interface has been removed. |
| |
| And several bugfix associated with SD drivers, opendir(), signed |
| 8-bit types (int8_t), and USB serial device. See the ChangeLog for |
| details. |
| |
| NuttX-6.2 |
| --------- |
| |
| The 69th release of NuttX, Version 6.2, was made on May 6, 2011 and |
| is available for download from the SourceForge website. The 6.2 |
| release includes several new features: |
| |
| * NXFFS: The obvious new feature is NXFFS, the NuttX wear-leveling |
| FLASH file system. This new file system is intended to be |
| small for the MCU usage and has some limitations. No formal |
| documentation of NXFFS yet exists. See the fs/nxffs/README.txt |
| file for details (see |
| http://svn.code.sf.net/p/nuttx/code/trunk/nuttx/fs/nxffs/README.txt?view=log) |
| * Support for NXP LPCXpresso LPC1768 board on the Embedded |
| Artists base board. The Code Red toolchain is supported under |
| either Linux or Windows. Verified configurations include |
| dhcpd, nsh, nx, ostest, thttpd, and usbstorage. |
| * Support for the Univision UG-9664HSWAG01 OLED with Solomon |
| Systech SD1305 LCD controller. |
| * A new RAM MTD driver with FLASH simulation capability. |
| * A version.h file is now automatically generated so that C code |
| can now be version aware. |
| |
| In addition to these new feature, several important bugfixes are |
| included in this release correcting problems with dup2(), LPC17xx |
| GPIO interrupts, LPC17xx UART2/3, the FAT file system, build issues, |
| and strrch(). See the ChangeLog for more details. |
| |
| NuttX-6.3 |
| --------- |
| |
| The 70th release of NuttX follows only a nines days after the release |
| of version 6.2. It was released on May 15, 2011. This special |
| back-to-back release was made so that the current released version |
| of NuttX will correspond to the initial release from the RGMP |
| project. |
| |
| This release adds architecture support and build configuration for |
| RGMP. RGMP is a project for running GPOS and RTOS simultaneously |
| on multi-processor platforms. See |
| http://rgmp.sourceforge.net/wiki/index.php/Main_Page for further |
| information about RGMP. |
| |
| This release also includes support for STM32 FLASH, build improvements, |
| and initial, incomplete support for the MicroChip PIC32MX MCU. Bug |
| fixes are included for some build problems, USB host class driver |
| error handling, NX graphics color mapping, and problems with C |
| standard I/O buffer flushing. See the ChangeLog for further details. |
| |
| NuttX-6.4 |
| --------- |
| |
| The 71st release of NuttX, Version 6.4, was made on June 5, 2011 |
| and is available for download from the SourceForge website. The |
| 6.4 release includes several new features: |
| |
| * A new, full-featured FTP client. This client may be used as a library |
| for automated FTP or via an FTP client shell. The FTP shell |
| supports the following commands: cd, chmod, get, help, idle, |
| login, ls, quit, mkdir, noop, put, pwd, rename, rhelp, rm, |
| rmdir, size, time, and up. A configuration is available for |
| the NXP LPC17xx to demonstrate this functionality. |
| * A functional C1101 wireless driver (contributed by Uros Platise) |
| * A PCI-based E1000 Ethernet driver (contributed by Yu Qiang) |
| * New C library functions: inet_addr() (contributed by Yu Qiang), |
| strndup(), asprintf() |
| * Reduced memory allocation overhead for MCUs with small heaps (<64K). |
| * fdopen() now works with socket descriptors allowing standard |
| buffered C functions to be used for network communications. |
| * The NSH ifconfig command can now be used to set or change the |
| IP address (contributed by Yu Qiang) |
| |
| This release also includes some completed but untested functionality. |
| |
| * The MicroChip PIC32MX port is now code complete and ready to |
| begin testing. Unfortunately, testing will be delayed due to |
| tool issues. |
| * Support for the NXP LPC315x MCUs. |
| |
| Additional miscellaneous enhancements and bug fixes to task_delete(), |
| recvfrom(), and other changes as noted in the ChangeLog. |
| |
| NuttX-6.5 |
| --------- |
| |
| The 72nd release of NuttX, Version 6.5, was made on June 21, 2011 |
| and is available for download from the SourceForge website. The |
| 6.5 release is all about support for the Atmel 8-bit AVR family. |
| I have been interested in the AVR family for some time but because |
| of the severe SRAM constraints and because of the availability of |
| many tiny schedulers for the AVR, it has not been "on the radar |
| screen." However, I have recently become interested because of |
| interest expressed by members of the forum and because of the |
| availability of newer, larger capacity AVR parts (that I don't have |
| yet). |
| |
| This release corresponds with SVN release number: r3730 |
| |
| This release includes support for the following AVR boards. As |
| with any initial support for new architectures, there are some |
| incomplete areas and a few caveats that need to be stated. Here |
| they are, ordered from the least to the most complete: |
| |
| * SoC Robotics Amber Web Server (ATMega128). |
| |
| This port of NuttX to the Amber Web Server from SoC Robotics |
| (http://www.soc-robotics.com/index.htm). Is only partially in |
| place. The Amber Web Server is based on an Atmel ATMega128 |
| (128K FLASH but only 4K of SRAM). |
| |
| STATUS: Work on this port has stalled due to toolchain issues. It |
| is complete, but untested. |
| |
| * Micropendous 3 AT9USB647 |
| |
| This port of NuttX to the Opendous Micropendous 3 board. The |
| Micropendous3 may be populated with an AT90USB646, 647, 1286, |
| or 1287. See http://code.google.com/p/opendous/. I have only |
| the AT90USB647 version for testing. This version has very |
| limited memory resources: 64K of FLASH and 4K of SRAM. |
| |
| STATUS: The basic port was released in NuttX-6.5. This basic |
| port consists only of a "Hello, World!!" example that demonstrates |
| initialization of the OS, creation of a simple task, and serial |
| console output. The tiny SRAM limits what you can do with the |
| AT90USB647 (see issues below). |
| |
| * PJRC Teensy++ 2.0 AT9USB1286 |
| |
| This is a port of NuttX to the PJRC Teensy++ 2.0 board. This |
| board was developed by PJRC (http://pjrc.com/teensy/). The |
| Teensy++ 2.0 is based on an Atmel AT90USB1286 MCU with 128K |
| of FLASH and 8K of SRAM; a little more room to move than the |
| AT90USB647. |
| |
| STATUS: The basic port was released in NuttX-6.5. This basic |
| port consists of a "Hello, World!!" example and also slightly |
| simplified NuttShell (NSH) configuration (see the NSH User Guide |
| at https://nuttx.apache.org/docs/latest/components/nsh/index.html). |
| |
| An SPI driver and a USB device driver exist for the AT90USB as |
| well as a USB mass storage configuration. However, this |
| configuration is not fully debugged as of the NuttX-6.5 release. |
| |
| AVR-specific issues. The basic AVR port is solid and biggest issue |
| for using AVR is its tiny SRAM memory and its Harvard architecture. |
| Because of the Harvard architecture, constant data that resides to |
| flash is inaccessible using "normal" memory reads and writes (only |
| SRAM data can be accessed "normally"). Special AVR instructions |
| are available for accessing data in FLASH, but these have not been |
| integrated into the normal, general purpose OS. |
| |
| Most NuttX test applications are console-oriented with lots of |
| strings used for printf and debug output. These strings are all |
| stored in SRAM now due to these data accessing issues and even the |
| smallest console-oriented applications can quickly fill a 4-8K |
| memory. So, in order for the AVR port to be useful, one of two |
| things would need to be done: |
| |
| 1. Don't use console applications that required lots of strings. |
| The basic AVR port is solid and your typical deeply embedded |
| application should work fine. |
| |
| 2. Create a special version of printf that knows how to access |
| strings that reside in FLASH (or EEPROM). |
| |
| NuttX-6.6 |
| --------- |
| |
| The 73rd release of NuttX, Version 6.6, was made on July 11, 2011 |
| and is available for download from the SourceForge website. The |
| 6.6 release adds several smaller features but is mostly a bugfix |
| release. |
| |
| Bugfixes include |
| |
| * Fixed several NX Graphics bugs: Rendering fonts at >8 bits-per-pixel, |
| graphics move logic, and display artifacts that appear when a |
| window is closed. |
| * Corrections to the USB host mass storage class driver |
| * STM32 bugfixes: serial driver, GPIO interrupt handling |
| * LPC17xx: Changes for a success compilation with no console. |
| * Corrections to the Teensy AT90USB SD driver |
| * Changes for a clean compilation under the ZDS-II toolchain. |
| |
| Minor features: |
| |
| * Add logic to extract printf strings from FLASH (but there are |
| still printf issues for that target) |
| * Added a configuration for the Sure Electronics PIC32MX board. |
| However, higher priority tasks have stopped work on that |
| configuration. |
| * Added several new configurations for the STMicro STM3210E-EVAL |
| board. |
| * Added support for the STM3210E-EVAL board: (1) LCD in either |
| landscape or portrait mode, and (2) interrupting buttons. |
| * Added a configuration option to use different serial ports for |
| debug and for the NSH serial console (there are some issues |
| with CR-LF expansion and character echo if NSH is not run on |
| the console). |
| * Standardized the button press and button interrupt interfaces |
| so that they are common across all boards. |
| * Added a new graphics example that focuses on placing text on |
| the background while pop-up windows occur. Text should continue |
| to update normally with or without the popup windows present. |
| * Added ARM stack checking logic. |
| |
| See the ChangeLog for a detailed description of these changes. |
| |
| NuttX-6.7 |
| --------- |
| |
| The 74th release of NuttX, Version 6.7, was made on August 2, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.7.tar.gz and |
| apps-6.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). Changes in this release are summarized |
| below: |
| |
| * New OS APIs: Add the standard sem_timedwait() interface. |
| * FAT File System: Adds (optional) support for VFAT long file |
| names. |
| * USB: Now the mass storage device can be connected when needed |
| and disconnected when not needed (or re-connected as a different |
| kind of device). |
| * Touchscreen Support: Defined a new NuttX touchscreen interface. |
| Added a driver for the TI TSC2007 touchscreen controller chip. |
| * NX Fonts: Add support for multiple fonts; developed a tool to |
| convert open source fonts into NuttX format; Converted and |
| installed nine new, high quality fontsets. |
| * NX Graphics: Add new NX APIs to support drawing of wide lines |
| in any orientation. Added new low level routines to set |
| individual pixel more efficiently. |
| * Build system: Added a export target that will bundle up all |
| of the NuttX libraries, header files, and the startup object |
| into an exportable tarball. |
| * LPC17xx: A CAN driver was contributed by Li Zhuoyi (Lzyy). |
| * STM32: New NX-related configurations to exercise text and |
| graphic image displays. |
| * C Library: Added a fixed precision atan2() math function. |
| * Bugfixes: Serial RX overrun error, FAT upper/lower NT 8.3 name |
| handling fixed. FAT directory allocation and initialization |
| bug. STM32 SDIO DMA race condition bug. eZ80 UART1 serial |
| driver errors (Paul Osmialowski) |
| |
| NuttX-6.8 |
| --------- |
| |
| The 75th release of NuttX, Version 6.8, was made on August 19, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.8.tar.gz and |
| apps-6.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). Changes in this release are summarized |
| below: |
| |
| * NuttX has been ported to run on the Freescale Cortex-M4 "Kinetis" |
| boards. Two board ports are available for (1) the Kinetis |
| KwikStik-K40 and (2) the Kinetis TWR-K60N512 tower. |
| * Support for RGMP 0.3. This version of RGMP now runs on the |
| OMAP4430 (arm) pandaboard |
| * LPC17xx CAN driver extended to support both CAN1 and CAN2 |
| (submitted by Li Zhuoy (Lzzy)) |
| * Fixed several critical bugs related to signal handling |
| initialization and for signals the wake up tasks that are waiting |
| to send or receive message queues.Both are important. (submitted |
| by hkwilton). |
| * drivers/can.c: Fixed a semaphore overflow problem in the CAN |
| driver (reported by Li Zhouy (Lzzy)). |
| * Added a new ADC driver infrastructure and TI ADS1255 driver |
| both developed and submitted by Li Zhouy (Lzzy)). |
| |
| See the Changelog for additional changes included in this release. |
| |
| NuttX-6.9 |
| --------- |
| |
| The 76th release of NuttX, Version 6.9, was made on September 11, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.9.tar.gz and |
| apps-6.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release includes a few new features and several important bug fixes. |
| The new features (some still incomplete) include: |
| |
| * Analog Support/ NXP LPC17xx: New DAC sub-system including ADC and DAC |
| drivers for the LPC17xx. Extensions to the ADS1255 driver. |
| (Contributed by Li Zhuoyi (Lzyy)) |
| |
| * Power Management: Added a new NuttX power management sub-system for |
| controlling and coordinating reduced power states. At present, only |
| verified in a simulation environment. |
| |
| * I2C Test Tool: A new application was added that can be used to |
| verify and debug I2C interfaces from the NuttShell (NSH) command |
| line. |
| |
| * NuttShell (NSH): In addition to the I2C test tool, a date command |
| is now supported (if CONFIG_RTC is defined) that can be used to |
| read and set the RTC. |
| |
| * NXP LPC17xx: I2C and DAC driver for the NXP LPC17xx family submitted by Li Zhuoyi |
| (Lzyy) |
| |
| * Kinetis Cortex-M4: Added a SDHC driver for the Kinetis parts. |
| Complete debug of the Kinetis SDHC driver was not completed, however, |
| do to some higher priority tasks that forced me to stop work. |
| |
| * Other new drivers: Driver for I2C-based at24cxx EEPROM submitted by |
| Li Zhuoyi (Lzyy); Driver for the LM-75 temperature sensor. Support |
| for the LM-75 temperature sensor integrated into the SM3210E-EVAL |
| development board. |
| |
| * NuttX Graphics (NX): Added new NX interfaces for drawing circles, |
| both circle outlines and filled circles. |
| |
| * FLASH: Added a function that accepts the path to a block driver and |
| then erases the underlying FLASH memory |
| |
| * Build System: The Make export logic now also tries to track down all |
| architecture-specific header files and include these in the NuttX |
| export bundle as well. Various changes and modifications so that |
| NuttX wil build on FreeBSD using the ASH shell (submitted by Kurt Lidl). |
| |
| Bugfixes, order roughly on decreasing criticality include: |
| |
| * STM32 I2C Driver: Add resets, timeout, and other fixes to work |
| reliably with the I2C tool. Corrected a major error introduced in |
| NuttX 6.8. |
| |
| * BCH Driver. Several important bugs (noted by Li Zhuoyi (Lzyy)) |
| were fixed. |
| |
| * C Library: Fixed errors in gmtime() and gmtime_r() that could lead to |
| errors in date calculations. |
| |
| * Timing: Correct an error in the tv_nsec calculation that happens |
| only config CONFIG_RTC is enabled |
| |
| * Build System: Use of -print-libgcc-file-name to get path to |
| libgcc.a might select the wrong libgcc.a if a multilib toolchain |
| is used |
| |
| NuttX-6.10 |
| ---------- |
| |
| The 77th release of NuttX, Version 6.10, was made on October 6, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.10.tar.gz and |
| apps-6.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4028 |
| |
| This release includes a few new features and several important bug fixes. |
| The new features (some still incomplete) include: |
| |
| * CDC ACM serial class device-side driver |
| |
| * RTC: Now supports hi-res and lo-res hardware RTC. The lo-res RTC |
| runs at 1Hz. |
| |
| * STM32 I2C driver. Now supports faster, polled mode of operation. |
| Added an I2C trace capability. |
| |
| * ADS7843E touchscreen driver. As used on the SAM3U-EK development |
| board. |
| |
| * AT91SAM3U SPI driver. To support the ADS7843E toucscreen |
| |
| * X11 Support on simulation target. Build errors in the X11 windows |
| for the simulated target have been correct. Added support for a |
| simulated touchscreen on the X11 window (based on mouse inputs). |
| |
| * System Timer. Added support for a 64-bit system timer. |
| |
| * TIFF Support. Added a TIFF library (currently used for storing |
| LCD screen shots). |
| |
| * LCD Support. Added a test to verify that we read and write correct |
| to LCD GRAM memory. |
| |
| * I2C tool. Extended to support to include a verify command and |
| repititions and auto-address increment for most commands. |
| |
| * USB terminal example. Line oriented serial bridge connects a host |
| USB serial terminal to a host UART serial terminal. |
| |
| * Build System. apps/ Makefile will now include external directories |
| in the application build. |
| |
| Bugfixes, order roughly on decreasing criticality include: |
| |
| * Message Queues. Correct errors in mq_timedsend() and |
| mq_timedreceive(). |
| |
| * FAT. Writes that cross sector boundaries, stray write into the FAT, |
| and a FAT long file name issue |
| |
| * NXFFS. Added a missed error check. Files cannot be opened for |
| writing if they are already opened for reading. |
| |
| * Library: fopen() for append modse was not appending. |
| |
| * STM32 I2C driver. Correct another conflict between concurrent FSMC |
| and I2C1 accesses. Fixed some bad error detection logic. |
| |
| * STM32 SDHC driver. Interrupts were being left disabled. |
| |
| NuttX-6.11 |
| ---------- |
| |
| The 78th release of NuttX, Version 6.11, was made on November 12, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.11.tar.gz and |
| apps-6.11.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4090 |
| |
| This release is a maintenance release that includes a few new features |
| and some important bugfixes. New features include: |
| |
| * NX Graphics: New interfaces to read from graphics memory |
| * Drivers: AT24 FLASH driver will now supports clustering of blocks |
| to achieve a larger, more usable block size for NXFFS. |
| * STM32: LCD color corrections |
| * PIC32: Board configuration for the Microchip PIC32 Ethernet Starter kit |
| (not yet verified), new GPIO support library, button and LED support |
| for the Sure Electronics PIC32MX board. A lot of progress has been |
| made on the PIC32 NuttX port, but it is still not ready for prime time. |
| * NXP LPC3152: Board configuration for the Embedded Artists EA3152. |
| |
| Bugfixes, order roughly on decreasing criticality include: |
| |
| * NXFFS: Corrected critical bugs in initialization, some full FLASH handling, |
| and errors in certain cases where the FLASH is repacked. |
| * ARM EABI: Fix stack alignment required for passing floating point values. |
| * Build system: Fix build issues when g++ is used as the compiler. |
| * NX Graphics: Bitmap error handling, correct RGB color conversion macros, |
| Error when the background window is released. |
| * STM32: RTC build fixes, LCD color corrections |
| * Simulation target: build fixes |
| * C Library: fclose() return value. |
| |
| See the change log for more detailed information. |
| |
| NuttX-6.12 |
| ---------- |
| |
| The 79th release of NuttX, Version 6.12, was made on December 6, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.12.tar.gz and |
| apps-6.12.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4141 |
| |
| New features in this release include: |
| |
| * STM32. Basic support added for the STM32 F4 family. Board support |
| verified for the STMicro STM3250G-EVAL board. |
| * FAT. Enhanced partition handling. |
| * SDIO-Based SD Card support. Add support for large (>4Gb) devices |
| * Graphics. Added four new small sans serif fonts. |
| * Drivers. Fix a banding problem with the R61580 LCD. |
| |
| Bugfixes, order roughly on decreasing criticality include: |
| |
| * FAT. Fix errors in how the first entries in the root directory are |
| added. Fix errors in FAT date/time handling. |
| * Signals. Fix bug in certain sig_timedwait() error handling. |
| * Drivers. Fix cloned errors in poll() handling in several drivers. |
| * Message Queues. errno was not being set correctly by mq_notify(). |
| * C Library. wchar_t is a built-in type for C++ |
| |
| NuttX-6.13 |
| ---------- |
| |
| The 80th release of NuttX, Version 6.13, was made on December 26, 2011 |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.13.tar.gz and |
| apps-6.13.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4231 |
| |
| New features in this release include: |
| |
| * Drivers. New standard interface for PWM drivers and common |
| "upper half" PWM driver. Updated the MP25x driver to support |
| the Macronix MX25 chips (submitted by Mohammad Elwakeel). |
| * STM32 F1/F4. Added an Ethernet driver, ADC drivers, DAC driver, |
| PWM driver, CAN driver, F4 RTC driver, F4 DMA support, |
| logic for saving/restoring F4 FPU registers in context switches. |
| * STM32 Boards. Added STM3240G-EVAL DHPCD and nettest configuration. |
| Support for a new STM32 board, the HY-Mini STM32v board, was |
| contributed by Laurent Latil |
| * PIC32. The port to the Microchip PIC32MX is finally functional and |
| reliable. The NuttX PIC32 port has verified configurations for |
| the OS test and the NuttShell (NSH) both exist. |
| * Tests: New re-usable tests (in apps/examples) for PWM, ADC, and |
| CAN loopback. Several existing tests can now be built as NSH built-in |
| applications (dhcpd, nettest, and all of the new tests). |
| |
| Bugfixes, order roughly on decreasing criticality include: |
| |
| * STM32: Correct handling of data overrun conditions. Existing logic |
| would hang with infinite interrupts when a data overrun occurred. |
| * DHCPD. Fix several problems using host order address where network |
| addresses expected (and vice versa). |
| |
| And several others. See the ChangeLog for more details. |
| |
| NuttX-6.14 |
| ---------- |
| |
| The 81st release of NuttX, Version 6.14, was made on January 15, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.14.tar.gz and |
| apps-6.14.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4301 |
| |
| New features in this release include: |
| |
| * Drivers. The upper-half PWM driver will now support a pulse count (as |
| would be needed to control a stepper motor). |
| |
| * STM32. The CAN driver has been verified in loopback mode. ADC driver |
| support for the STM32 F4. Add support for UART4-5 and USART6 |
| (Contributed by Mike Smith). The PWM driver now supports a pulse |
| count for TIM1 and TIM8. Timer driver now supports the F4's 32-bit |
| timers (Contributed by Mikhail Bychek) |
| |
| * STM32F4Discovery. Support for the STM32F4-Discovery board contributed |
| by Mike Smith. |
| |
| * STM3240G-EVAL. Add support for user control of LEDs. |
| |
| * LPC17xx. Add support for loopback mode to CAN driver. CAN TX done |
| perations are now interrupt driver. Now supports configurable CAN bit |
| rate. |
| |
| * LPC1766-STK. Add support for on-board buttons. Add support for user |
| control of LEDs. |
| |
| * LM3S. Add support for the LM3S6432S2E on the TI RDK-S2E (Contributed |
| by Mike Smith) |
| |
| * PIC32MX. USB device-side driver (needs further testing). A partial |
| Ethernet driver is also in place. |
| |
| * Library. Support added for fixed floating point fieldwidths in output |
| formatting (Contributed by Mikhail Bychek) |
| |
| * Build. New targets apps_clean and apps_distclean to simplify working |
| with application directories. |
| |
| Bugfixes include: |
| |
| * Drivers. Fixed a buffer-full test in the upper-half CAN driver. |
| |
| * STM32. GPIO initialize logic (submitted by Mike Smith). Fix the |
| debug logic that dumps the GPIO configuration. |
| |
| * LPC17xxx. Correct an integer overflow in GPIO interrupt setup |
| (prevented pins > 15 from being used as interrupt sources). Correct |
| a value used in GPIO interrupt number range test. |
| |
| * FAT. Now returns the correct error value when it is unable to |
| recognize the file system. |
| |
| * Build. macOS build fixes (submitted by Mike Smith) |
| |
| And several others. See the ChangeLog for more details. |
| |
| NuttX-6.15 |
| ---------- |
| |
| The 82nd release of NuttX, Version 6.15, was made on February 12, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.15.tar.gz and |
| apps-6.15.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4387 |
| |
| New features and extended functionality: |
| |
| * General Drivers: Add support for (29-bit) extended CAN IDs. Add an |
| infrastructure to support battery drivers. Add a driver for MAX17040x |
| battery "fuel gauge". Add support for Composite USB drivers (in |
| particular for a CDC/ACM with MSC USB composite driver). |
| |
| Added a new RAM logging driver. This will allow debug output into |
| a RAM buffer associated with a character driver at /dev/ramlog. |
| Added the new command 'dmesg' to NSH that can be used to dump the |
| current contents of the log. This is useful for systems that do not |
| have the usual serial console (for example, if you only have a |
| Telnet console with NSH). |
| |
| * Networking: Add a lower level, primitive socket interface. Telnet |
| driver: |
| |
| A New Telnet daemon was created. It wraps a Telnet session within a |
| character driver that can serve as a "controlling terminal." The |
| Telnet session will then be inherited by tasks created from the |
| Telnet session and the stdin/stdout from the created task will |
| still go through the same Telnet connection. |
| |
| * STM32 Drivers. PWM driver pulse count was limited to 128; now is |
| (essentially) unlimited. Add support for (29-bit) extended CAN IDs. |
| Add support for I2C3. The SDIO driver is (mostly) verified on the |
| STM32 F4 platforms. |
| |
| * LPC17xx Drivers. Extended the CAN driver so that the TSEG1 and TSEG2 |
| bit times can be set via the NuttX configuration. Add support for |
| (29-bit) extended CAN IDs. |
| |
| * PIC32 Drivers. The PIC32 Ethernet driver is code complete (but still |
| untested). |
| |
| * FTPD. Add a new FTP server daemon. This is based loosely on |
| the hwport_ftpd library provided by Jaehyuk Cho. |
| |
| * Library: Add support for on_exit(). Implemented tcsetattr() and |
| tcgetattr(). Moved the old, too-smart fgets() to a new application |
| library function called readline(). Dumbed down the original fgets(). |
| Add strcasestr(), avsprintf(), inet_ntop(), and inet_pton(). |
| Add support to enable or disable debug output. |
| |
| * Build system: Support for building a 32-bit simulation executable on |
| a 64-bit Linux machine. Correct a dependency issue in the arch/*/src/board |
| directory. |
| |
| Bugfixes: |
| |
| * System: Correct PTHREAD_MUTEX_INITIALIZER |
| |
| * FAT: Fix an error in the FAT statfs() reported by David Sidrane. |
| |
| * STM32: Fix clock frequencies for APB2 timers. Correct AFIO register |
| offset. |
| |
| * PIC32. Correct GPIOs used for LEDs on the Sure PIC32MX board. |
| |
| * NSH. Wait for a USB connection if a USB serial class is used to |
| interface with the host. |
| |
| Additional bugfixes, name changes, and other differences as detailed in the |
| ChangeLog. |
| |
| NuttX-6.16 |
| ---------- |
| |
| The 83rd release of NuttX, Version 6.16, was made on March 10, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.16.tar.gz and |
| apps-6.16.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4475 |
| |
| New features and extended functionality: |
| |
| * ARMv7M Support: Includes new, streamlined Cortex-M exception |
| handling provided by Mike Smith. Context switching support for the |
| Cortex-M4 FPU registers is now provided (in both "lazy" and "non-lazy" |
| modes) |
| |
| * General Drivers: Added a generic "upper half" Quadrature Encoder driver. |
| The USB CDC/ACM serial driver can now be dynamically connected or |
| disconnected from the host (programmatically or using NSH commands). |
| |
| * STM32 Drivers: Added a "lower half" Quadrature Encoder driver. |
| Verified the STM32 F4 DMA driver; Added F4 DMA support to the existing |
| STM32 SDIO driver. |
| |
| * STM32 Board Support. Added support for the STM32 F2 family and |
| for the STM3220G-EVAL board (contributed by Gary Teravskis). |
| Support is now included for C++ static constructors (verified using |
| the Atollic toolchain). Added support for the SRAM available on the |
| STM3240G-EVAL board. |
| |
| * PIC32 Drivers. PIC32MX USB (device) driver is now functional. |
| The PIC32MX Ethernet driver not yet fully verified (and an |
| unverified SPI driver is also available). |
| |
| * Networking. Added a lower-level, thread-independent socket layer. |
| Parts of this layer were created in 6.15 to support the FTPD |
| controlling terminal; this support has been extended in order |
| to support an NFS file system (not yet released). |
| |
| * NuttShell (NSH). NSH will now support a USB serial connection for |
| the console (such as CDC/ACM). This is useful in environments |
| where there is no physical serial port on the board. |
| |
| * Build System. Reorgnaization of networking header files. |
| |
| Critical Bugfixes. The following bug fixes are considered critical: |
| |
| * Networking: Fixed a "leak" in the TCP/IP read-ahead buffering logic. |
| Corrected an error in TCP/IP sequence numbering/ACK logic which |
| occurred when read-ahead buffering memory is exhausted. |
| |
| * STM32 Drivers: Fixed an buffer sizing error in the STM32 Ethernet |
| driver. |
| |
| Additional Bugfixes: Other important bug fixes are listed below. See |
| the ChangeLog of a complete, detailed list of bug fixes. |
| |
| * Networking: Corrected recv()/recvfrom() return value. Added logic to |
| monitor for loss of connection after a new connection has been |
| established via accept() (Contributed by Max Nekludov). Add |
| logic to select() to correctly handle POLLHUP (Contributed by Max |
| Nekludov) |
| |
| Additional bugfixes, name changes, and other differences as detailed in the |
| ChangeLog. |
| |
| NuttX-6.17 |
| ---------- |
| |
| The 84th release of NuttX, Version 6.17, was made on April 14, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.17.tar.gz and |
| apps-6.17.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4607 |
| |
| New features and extended functionality: |
| |
| * Networking: Additional low-level, thread-independent socket |
| interfaces (for NFS client support). |
| |
| * RTC: Added a new interface call clock_synchronize(). This function |
| will reload the system time from an RTC and is required when the |
| system re-awakens from certain deep-sleep modes. |
| |
| * Graphics: Add NxConsole. This is a character device driver that |
| wraps an NX window and can be re-directed for stdout. This allows, |
| for example, a pop-up graphics window that contains a NuttShell (NSH) |
| session. A test of NxConsole is available at apps/examples/nxconsole. |
| |
| * Watchdog Drivers: Added an interface definition an "upper half" |
| driver to support watchdog timers. |
| |
| * Calypso: Support for TI Calypso-based cellphones (as supported by |
| the Osmocom-BB project) was contributed by members of the Osmocom-BB |
| team. This includes configurations for the Compal e88 and e99 phones. |
| |
| * USB Device Interface: Needed to extend the USB device interface |
| because there was no mechanism for passing endpoint OUT data that |
| may need to accompany a setup request. |
| |
| * STM32 drivers: Added some power management controls for entering |
| reduced power consumption states. An OTG FS driver was completed |
| and partially verified (this driver seems to be functional but since |
| it has been test so lightly, it might better be listed in the |
| next section "Work in progress"). |
| |
| * PIC32 drivers: The PIC32 Ethernet driver is now stable. The PIC32 |
| USB device controller driver is now functional (but not yet stable). |
| |
| * PIC32 boards: Added support for the Sure DB-DP11212 PIC32 General |
| Purpose Demo Board. There is now a PIC32 Starter Kit that |
| provides NSH only through a Telnet connection. |
| |
| * Build System: Some header files were moved into include/nuttx. |
| The goal is to move any non-standard header files to include/nuttx |
| or include/arch. Moved include/math.h to include/nuttx/math.h; |
| this file is now only instantiated as the 'system' math.h if |
| CONFIG_ARCH_MATH_H=y is defined. |
| |
| * Tools: Added tools/cmpconfig.c, a tool for comparing two |
| configuration files. |
| |
| Work in progress. This release includes some partially completed |
| work that is still not ready for prime time. |
| |
| * NFS Client: Work is progressing on support for an NFS client |
| file system. This is a port of the BSD NFS client file system |
| that is being done by Jose Pablo Rojas V. |
| |
| * Automated Configuration: Automated configuration based on the |
| kconfig-frontends tool is being incorporated into the build |
| system. The configuration is still not complete enough for |
| general use in this release. |
| |
| * STM32 Drivers: Added files that will (eventually) hold an STM32 |
| OTG FS host driver. This is still a work in progress. |
| |
| Bugfixes: |
| |
| * Networking: Corrected a deadlock that only occurred when |
| executing the NSH 'ifconfig' command over Telnet. |
| |
| * File system: Fix incorrect return errno value from read() when |
| the file is opened write-only. |
| |
| * Graphics: Fix several compilation errors that have crept into the |
| multi-user NX server because of lack of use. |
| |
| * STM32: In order to use CAN2, both CAN1 and CAN2 clocking must be |
| enabled. Fixed a troublesome bug in the STM32 F4 I2C driver that |
| resulting in timeouts. |
| |
| * LPC17xx: Fixes for errors the crept in the LPC17xx DAC logic |
| Contributed by Lzyy). |
| |
| * Build System: Reordered the link command line to account for new |
| versions of libgcc.a that require symbols from the application |
| (abort()). |
| |
| NuttX-6.18 |
| ---------- |
| |
| The 85th release of NuttX, Version 6.18, was made on May 19, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.18.tar.gz and |
| apps-6.18.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| The majority of changes in this release are focused on supporting the |
| synchronized release of NxWM, the NuttX tiny window manager. That |
| window manager is released as part of the NxWidgets package, but depends |
| upon many of the changes in this NuttX release. |
| |
| This release corresponds with SVN release number: r4751 |
| |
| New features and extended functionality: |
| |
| * Drivers. Added a watchdog timer driver infrastructure. Add general |
| support for STMicro STMPE811 I/O Expander/touchscreen device. |
| |
| * STM32. Add support for the STM32 IWDG and WWDG watchodog timers. DMA |
| now supports circular buffer mode; serial driver now uses circular |
| DMA to improve Rx performance (Contributed by Mike Smith). |
| |
| * STM3240G-EVAL Board. Add support for the LCD and for the STMPE811 |
| I/O Expander as a touchscreen controller. |
| |
| * PIC32 Boards. Board support for the Mikroelektronika PIC32MX7 |
| Multimedia Board (MMB) and for the Sparkfun UBW32 PIC32 board. |
| |
| * NX. Framed windows are now draw in three colors instead of just two. |
| Numerous other extensions needed to support NxWM (see the ChangeLog |
| for details). |
| |
| * Library. Add prctl() command that can be used to setting and getting |
| the names of threads. This (plus several other improvements and bug |
| fixes) are part of a larger effort to improve task monitoring |
| capabilities. |
| |
| Work in progress. This release includes some partially completed |
| work that is still not ready for prime time. |
| |
| * NFS Client. Work is progressing on support for an NFS client |
| file system. This is a port of the BSD NFS client file system |
| that is being done by Jose Pablo Rojas V. |
| |
| * Automated Configuration. Automated configuration based on the |
| kconfig-frontends tool is being incorporated into the build |
| system. The configuration is still not complete enough for |
| general use in this release. |
| |
| * STM32 Drivers. Added files that will (eventually) hold an STM32 |
| OTG FS host driver. This is still a work in progress. |
| |
| Bugfixes (see the change log for details) : |
| |
| * sched_setscheduler() return value (Contributed by Richard Cochran). |
| |
| * stdio. Ignore CONFIG_STDIO_LINEBUFFER if the file was opened in binary mode. |
| |
| * fopen(). Correct an error in parsing open mode string. |
| |
| * serial driver. Improved performance be reducing the amount of time |
| that Rx interrupts are disabled. |
| |
| * recvfrom(). Fix a compilation problem. |
| |
| * CDC/ACM device driver. Fix an infinite loop that occurs when the serial |
| device is unregistered. |
| |
| * STM32 OTG FS device driver. Numerous fixes and the driver is partially |
| functional but there are still some issues that become apparent when |
| debug output is disabled. |
| |
| * fcntl(). Always returned zero on success; however, some fcntl commands |
| need to return non-zero values on success. |
| |
| * graphics: Many multi-use mode fixes added to support NxWM (see the |
| ChangeLog for details). Auto-raise is temporarily disabled in multi- |
| user mode because it causes some problems with NxWM. |
| |
| * on_exit(): Fix compilation errors if CONFIG_SCHED_ONEXIT is enabled. |
| |
| NuttX-6.19 |
| ---------- |
| |
| The 86th release of NuttX, Version 6.19, was made on June 15, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.19.tar.gz and |
| apps-6.19.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4847 |
| |
| This release features new support for a Network File System (NFS) client. |
| This feature allows a tiny, embedded MCU to mount a remote file system |
| exported by an NFS server and then to access the file system as it would |
| any local file system. Then the tiny MCU can effectively have terabytes |
| of storage! |
| |
| This might be useful for data collection, for MCU configuration information, |
| for software updates, for providing modular, loadable code modes, controlling |
| a "farm" of MCUs, ... there are many possibilities and opportunities for |
| innovation! |
| |
| The NuttShell (NSH) now supports the following command: |
| |
| nfsmount <server-address> <mount-point> <remote-path> |
| |
| That command will mount the remote NFS server directory <remote-path> at |
| <mount-point> on the target machine. <server-address> is the IP address of |
| the remote server. |
| |
| The NFS development was the graduation project of Jose Pablo Rojas V. who |
| is a student at the Instituto Tecnológico de Costa Rica (ITCR, or TEC). |
| A lot of effort went into understanding what a tiny, embedded NFS client should |
| do and getting the target resource usage to a bare minimum. Only around a |
| kilobyte or so of memory is required to run the NFS client (and most of that |
| for I/O buffers). Jose Pablo has spent several months living with NFS and |
| should be congratulated. |
| |
| Additional new features and extended functionality: |
| |
| * Drivers: SSD1289 LCD driver, MIO283QT2 LCD driver |
| |
| * LM3S: Additional register definition header files (contributed by Max |
| Neklyudov). |
| |
| * STM32 Boards: The STM32F4Discovery will now support an SSD1289 LCD, |
| The STM3220G-EVAL board support is now equivalent to the STM3240G-EVAL |
| board support. |
| |
| * PIC32 Boards: The Mikroelektronika PIC32MX7 MMB board port is now |
| functional, very complete, and stable. |
| |
| * Graphics: The NxConsole will now take keyboard input from the NX graphics |
| subsystem. This means that if there are multiple NxConsole windows, only |
| the top instance that has focus will receive the keyboard input. |
| |
| * apps/: Add the capability to use an arbitrary USB device as the console |
| (not necessarily /dev/console). Additional enhancements for USB consoles. |
| Added the 'mv' command. |
| |
| Work in progress. This release includes some partially completed |
| work that is still not ready for prime time. |
| |
| * Automated Configuration. Automated configuration based on the |
| kconfig-frontends tool is being incorporated into the build |
| system. The configuration is still not complete enough for |
| general use in this release. |
| |
| * STM32 Drivers. Added files that will (eventually) hold an STM32 |
| OTG FS host driver. This is still a work in progress. |
| |
| Bugfixes (see the change log for details) : |
| |
| * General: sleep() and usleep() return values, sig_timedwait() errno setting |
| on timeout. |
| * Drivers: STMPE811 touchscreen driver, USB PLC2303, USB CDC/ACM |
| * STM32: Several USB device controller driver fixes, F4 interrupt priorities |
| (contributed by Mike Smith). |
| * Graphics: Keyboard input, fill trapezoid bug |
| |
| As well as other, less critical bugs (see the ChangeLog for details) |
| |
| NuttX-6.20 |
| ---------- |
| |
| The 87th release of NuttX, Version 6.20, was made on July 12, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.20.tar.gz and |
| apps-6.20.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r4937 |
| |
| Additional new features and extended functionality: |
| |
| * Power Management: An evolving power management example is being |
| created by Diego Sanchez. This effort currently involves on the |
| STM32 F1 but clearly demonstrates the NuttX power management |
| system which will automatically drive the system to lower power |
| usage states due to lack of use. |
| |
| * Drivers: Added a driver for the SST 25 SPI-based FLASH parts. |
| |
| * PIC32: Added support for the PIC32MX1 and PIC32MX2 families. |
| Added support for the microchipOpen and Pinguino toolchains. |
| |
| * NXP LPC43XX: Added support for the entire LPC43xx family |
| |
| * PIC32 boards: Added support for the DTX1-4000L "Mirtoo" module |
| from http://www.dimitech.com/ (PIC32MX2). |
| |
| * NXP LPC43XX Boards: Added support for NGX LPC4330-Xplorer board. |
| |
| * NXP LPC17XX Boards: Added support for Micromint Lincoln60 board |
| (LPC1769). |
| |
| * LM3S Boards: Add a configuration to support the TI/Stellaris |
| EKK-LM3S3B96 development board. Contributed by Jose Pablo Rojas V. |
| |
| * Library: NuttX now supports platform-specific stdarg.h header |
| files. |
| |
| Work in progress. This release includes some partially completed |
| work that is still not ready for prime time. |
| |
| * Automated Configuration. Automated configuration based on the |
| kconfig-frontends tool is being incorporated into the build |
| system. The configuration is still not complete enough for |
| general use in this release. |
| |
| * STM32 Drivers. Added files that will (eventually) hold an STM32 |
| OTG FS host driver. This is still a work in progress. |
| |
| Bugfixes (see the change log for details) : |
| |
| * PIC32: GPIO output configuration (critical bug) |
| * STM32: Typos in pin mapping files. |
| * LM3S: Fixed an optimization related but that caused slow start-up |
| times if optimization was disabled. |
| * Library: Fixed signed extension but in all limit.h files |
| (reported by Lorenz Meier). inet_ntoa compilation failure |
| on Z80. |
| |
| As well as other, less critical bugs (see the ChangeLog for details) |
| |
| NuttX-6.21 |
| ---------- |
| |
| The 88th release of NuttX, Version 6.21, was made on August 25, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.21.tar.gz and |
| apps-6.21.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5052 |
| |
| Additional new features and extended functionality: |
| |
| * Core: Add support for multiple registered atexit() functions. Syslog |
| extended: Now any character driver may be used for the debug logging |
| device. Mountpoint traversal logic. |
| * Drivers: Added support for the TI PGA112-7 amplifier/multiplexor. |
| * LPC43xx: Added clock ramp-up logic to run at 204 MHz |
| * LPC43xx Drivers: SPIFI block driver, RS-485 support, Minimal termios |
| support. Framework for USB0 device controller driver. |
| * LPC17xx Drivers: Minimal termios support |
| * STM32: Support for STM32 F1 "Value Line" (contributed by Mike Smith). |
| Add support for STM32 F107 "Connectivity Line" (contributed by Max |
| Holtzberg). |
| Clock restart logic needed for recovery from low power modes. |
| * STM32 Drivers: RTC alarm support. Usable for wakeup from sleep mode, |
| Minimal serial termios support. USB OTG FS host driver (alpha). |
| * STM32 Boards: Add power management hooks for the STM32F4Discovery, |
| Add support for the Olimex STM32-P107 (contributed by Max Holtzberg). |
| * PIC32: Add support for the Pinguino MIPS toolchain. |
| * PIC32 Drivers: GPIO driver now supports F1 analog regiaters (ANSEL). |
| * PIC32 Boards: Add support for the PGA117 on the Mirtoo module. |
| * Calypso: Add support for the SSD1783 LCD on the Compal E99. |
| * Library: cfsetispeed(), cfsetospeed(), tcflush(), memchr(), and |
| memccpy(). |
| * Applications: Port of freemodbus-v1.5.0. Add support for testing |
| devices with multiple ADC, PWM, and QE devices. |
| NSH: NSH 'mount' command (with no arguments) will now show mounted |
| volumes. Add new NSH 'df' command. Extended 'help' support. NSH |
| now catches the return value from spawned applications (provided |
| by Mike Smith). |
| * Build System: mkconfig will not define CONFIG_DRAM_END. A lot of |
| progress has been made on the automated NuttX configuration logic |
| (Thanks go to Richard Cochran). |
| * Documentation: Document ways to customize the behavior of NSH. |
| |
| Bugfixes (see the change log for details) : |
| |
| * Serial drivers (all): Fix ioctl return value. Common "upper half" |
| serial driver will now return with EINTR if a serial wait is |
| interrupted by a signal. |
| * FAT: Fix statfs() file name length. |
| * LPC43xx: Clock configuration. |
| * STM32: Pinmap fixes, SPI driver re-initialization |
| * STM32 Boards: Correct and lower SDIO frequency for F2 and f4 boards. |
| * AVR: C++ build issues. |
| * PM: Fix a place where interrupts were not be re-enabled. |
| * Applications: NSH application start-up race conditions. |
| * Library: Fieldwidth and justification for %s format. Fixed several |
| issues with presenting floating point numbers. NULL definition |
| for C++ |
| |
| As well as other, less critical bugs (see the ChangeLog for details) |
| |
| NuttX-6.22 |
| ---------- |
| |
| The 89th release of NuttX, Version 6.22, was made on September 29, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.22.tar.gz and |
| apps-6.22.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5206 |
| |
| Note that all SVN information has been stripped from the tarballs. If you |
| need the SVN configuration, you should check out directly from SVN. Revision |
| r5206 should equivalent to release 6.22 of NuttX 6.22: |
| |
| svn checkout -r5206 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Or |
| |
| svn checkout -r5206 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Additional new features and extended functionality: |
| |
| * RTOS: Application entry point is no longer user_start, but can be |
| configured using CONFIG_USER_ENTRYPOINT. NuttX now supports two work |
| queues: A lower priority work queue (for extended processing) and a |
| higher priority work queue (for quick, high priority operations). |
| |
| * Memory Management: Added a new granule-based allocated that can be |
| used to manage, aligned and quantized DMA memory. |
| |
| * File System: Add hooks to allocate I/O memory with and external |
| allocated (need if required by DMA). |
| |
| * Networking: ENC28J60 driver is (finally) verified. |
| |
| * Drivers: Add hooks USB device drivers to allocate I/O memory with and |
| external allocated (need if required by DMA). Driver for the Windbond |
| SPI FLASH family (W25x16, W25x32, W25x64, and others). ADS7843E driver |
| extended for TSC2046 and XPT2046 and verified. |
| |
| * ARMv7-M: Added logic to reset the MCU using the NVIC. |
| |
| * STM32: Add support for STM32F103VET6. |
| |
| * STM32 Drivers: Add logic to re-initialize UARTs a second time to |
| enable DMA (Mike Smith). I2C driver error recovery (Mike Smith). |
| |
| * STM32 boards: Support for USB host added add to several configurations |
| (or at least explained in README files). Support for the Shenzhou |
| STM32F107 board (see www.armjishu.com). Support for M3 Wildfire |
| STM32F103 board (v2 and v3). |
| |
| * Build System: Kconfig string de-quoting logic. Remove comments from |
| defconfig files (Kate). Add tool to create NuttX-style symbol tables. |
| Numerous changes to configuration logic as needed for the new mconf-based |
| configuration (much of this from Richard Cochran). Refactor common |
| Make.defs logic into tools/Config.mk (Richard Cochran). |
| |
| * Library: Configurable terse output from strerror(). Added perror() (Kate). |
| Add %n format to sscanf() (Kate). |
| |
| * Applications: Numerous changes and extensions to the old uIP web server |
| (from Kate and Max Holtzberg, see the ChangeLog for specific extensions). |
| UDP network discovery utility (Max Holtzberg). Embeddable Lightweight |
| XML-RPC Server (http://www.drdobbs.com/web-development/an-embeddable-lightweight-xml-rpc-server/184405364, Max Holtzberg). |
| |
| Bugfixes (see the change log for details). Some of these are very important |
| (marked *critical*): |
| |
| * RTOS: Fixes to priority inheritance logic (*critical*). waitpid() |
| critical section. Assertion in work_cancel() (Mike Smith). mmap() (Kate). |
| |
| * FAT File System: Improper Boolean expression caused un-necessary writes |
| and performance issues (*critical*, Ronen Vainish). |
| |
| * Networking: Remove an un-necessary delay from recvfrom(). This greatly |
| improves network performance (*critical*, Max Holtzberg). |
| |
| * Graphics: NX parameter checking errors. |
| |
| * Drivers: Fix double release of memory in SDIO-based, MMC/SD driver |
| (Ronen Vainish). |
| |
| * LPC17xx: Ethernet driver fixes needed for certain PHYs (Kate). |
| |
| * AVR: Fix build error (Richard Cochran). |
| |
| * STM32: USB OTG FS host driver NAKing an retries. Power management |
| compilation errors (Diego Sanchez). Missing SPI3 remap logic. |
| |
| * STM32 Drivers: Fix for Ethernet errata for STM32F107 (*critical*). |
| Ethernet buffer alignment check. Add "kludge" to Ethernet driver to |
| handle DM9161 PHY which (at least on the Shenzhou board), sometimes |
| does not come up correctly. |
| |
| * Applications: THTTPD (Kate). NSH ping when IP address is on a different |
| network (Darcy Gong). |
| |
| * Library: fread(), fflush(), fdopen(): Fix error handling logic (Ronen |
| Vainish). Fix some field-width handling issues in sscanf() |
| |
| As well as other, less critical bugs (see the ChangeLog for details) |
| |
| NuttX-6.23 |
| ---------- |
| |
| The 90th release of NuttX, Version 6.23, was made on November 5, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.23.tar.gz and |
| apps-6.23.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5313 |
| |
| Note that all SVN information has been stripped from the tarballs. If you |
| need the SVN configuration, you should check out directly from SVN. Revision |
| r5313 should equivalent to release 6.23 of NuttX 6.23: |
| |
| svn checkout -r5313 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Or |
| |
| svn checkout -r5313 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Additional new features and extended functionality: |
| |
| * RTOS: If both atexit() and on_exit() are enabled, use on_exit() to |
| implement atexit(). Updates for RGMP 4.0. |
| |
| * Binfmt: Add support for loading and executing ELF binary modules from |
| a file system. |
| |
| * Drivers: Maxim MAX11802 touchscreen controller (Petteri Aimonen) |
| |
| * STM32 Driver: Implementation of /dev/random using the STM32 Random Number |
| Generator (RNG). |
| |
| * STM32 Boards: ADC support for the Shenzhou IV board. Relay support for |
| the Shenzhou IV board. |
| |
| * C Library: Support is now included for the add-on uClibc++ C++ |
| standard library support. This includes support for iostreams, strings, |
| STL, RTTI, exceptions -- the complete C++ environment. (uClibc++ is |
| provided as a separate add-on package due to licensing issues). |
| |
| Optimized generic and ARM-specific memcpy() function. Optimized |
| memset() function. |
| |
| Add support for ferror(), feof(), and clearerror(). Add support for |
| __cxa_atexit(). |
| |
| Math Library: Port of the math library from Rhombus OS by Nick Johnson |
| (Darcy Gong). |
| |
| * Applications: New NSH commands: ifup, ifdown, urlencode, urldecode, |
| base64enc, bas64dec, md5 (Darcy Gong). Add support for NSH telnet login |
| (Darcy Gong). Enancements to NSH ping command to support pinging hosts |
| with very long round-trip times. Extensions to the ifconfig command |
| Darcy Gong), |
| |
| Many extensions to the webclient/wget and DNS resolver logic from Darcy |
| Gong. JSON, Base64, URL encoding, and MD5 libraries contributed by Darcy |
| Gong. |
| |
| New examples: ELF loader, JSON, wgetjson, cxxtest, relays. |
| |
| Bugfixes (see the change log for details). Some of these are very important |
| (marked *critical*): |
| |
| * Drivers: W25 SPI FLASH |
| |
| * STM32 Drivers: ADC reset |
| |
| * Graphics: Missing implementation of the blocked method (*critical*, |
| Petteri Aimonen). |
| |
| * C Library: Floating point numbers in printf and related formatting functions |
| (Mike Smith), cf[get|set]speed() (Mike Smith) |
| |
| As well as other, less critical bugs (see the ChangeLog for details) |
| |
| NuttX-6.24 |
| ---------- |
| |
| The 91st release of NuttX, Version 6.24, was made on December 20, 2012, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.24.tar.gz and |
| apps-6.24.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5447 |
| |
| Note that all SVN information has been stripped from the tarballs. If you |
| need the SVN configuration information, you should check out directly from |
| SVN. Revision r5447 should equivalent to release 6.24 of NuttX 6.24: |
| |
| svn checkout -r5447 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Or (HTTP): |
| |
| svn checkout -r5447 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Additional new features and extended functionality: |
| |
| * RTOS: |
| |
| - Implemented the POSIX pause() function (still has some compiance |
| issues). |
| - Tasking logic is extended to support the notion of address |
| environments. An address environment is the key notion underlying |
| "process" vs. tasks. If tasks are created with address environments |
| (by binfmt), the OS will propagate that environment to child threads |
| and will destroy the address environment when the "process" exists. |
| - If support for the PATH variable is enabled, the OS start up logic |
| will create an initial environment containing the default PATH |
| setting (CONFIG_PATH_INITIAL). This initial PATH will then be |
| inherited by all tasks. |
| |
| * Binfmt |
| |
| - The NuttX binary loaders have been updated to support the PATH |
| environment variable. Now, if the PATH is properly defined, programs |
| can be executed from mass storage using only the file name. This |
| feature is added to support more standard behavior (eventually, NSH |
| will support execution of programs in file systems by just entering |
| the file name, perhaps in 6.25?). |
| - The NXFLAT and ELF binary loaders have been extended to create |
| address environments for any new tasks executed from the file system. |
| This feature requires that the architecture support a memory management |
| unit (MMU) and the address environment interfaces declared in |
| include/nuttx/arch.h (currently, this is only supported by the z180). |
| |
| * Drivers: LCD driver for the Univision UG-2864AMBAG01 OLED |
| |
| * STM32: Support for STM32F100 high density chips contributed by Freddie |
| Chopin. |
| |
| * STM32 Drivers: Added optional RS-485 direction bit control (from |
| Freddie Chopin). |
| |
| * STM32 Boards: |
| |
| - Support for generic STM32F100RC board contributed by Freddie Chopin. |
| - stm32f4discovery/nxlines: STM32F4Discovery support for the |
| UG-2864AMBAG01 OLED. |
| - stm32f4discovery/winbuild: A version of the NuttX OS test |
| configured to build natively on Windows. |
| - stm32f4discovery/elf: Now uses the PATH variable to find ELF |
| executables. |
| - configs/cloudctrl: Added for Darcy Gong's CloudController board |
| |
| * PIC32 Boards: Update the Mirtool configuration for Release 2 of the |
| Mirtoo module. |
| |
| * Calypso: Add Calypso keypad driver. From Denis Cariki. |
| |
| * ZiLOG: |
| |
| - Add support for the z180 chip family and, specifically, for |
| the P112 retro hardware (see http://p112.feedle.net/). |
| - All ZiLOG configurations updated to use the current ZDS-II |
| and/or SDCC toolchains. |
| |
| * Graphics: |
| |
| - Add a semaphore handshake so that operations on buffers from |
| the NXMU client will be blocked until the NX server operates on the |
| buffer data (from Petteri Aimonen). |
| - nxtk_subwindowmove() and nxtk_getwindow(): Improvements to clipping |
| logic from Petteri Aimonen. |
| |
| * C Library: lib/ sub-directory renamed libc/ (there is a new lib/ sub- |
| directory that is used to hold all archives). |
| |
| * C++: Exception stubs from Petteri Aimonen. |
| |
| * Applications: |
| |
| - Add NSH hexdump command to dump the contents of a file (or character |
| device) to the console (contributed by Petteri Aimonen). |
| - Extend the NSH ifconfig command plus various DHCPC improvements |
| (from Darcy Gong). |
| |
| * apps/examples: |
| |
| - ostest: Replace large tables with algorithmic prime number |
| generation. This allows the roundrobin test to run on platforms |
| with minimal SRAM (Freddie Chopin). |
| - keypadtest: A new keypad test example contributed by Denis Carikli. |
| - elf and nxflat: If CONFIG_BINFMT_EXEPATH is defined, these examples |
| will now use a relative path to the program and expect the binfmt/ |
| logic to find the absolute path to the program using the PATH |
| variable. |
| |
| * Build system: |
| |
| - New top-level Makefiles: Makefile.unix and Makefile.win (along with |
| numerous changes to other make-related files). This adds basic |
| support for building NuttX natively under Windows from a CMD.exe |
| window (rather than in a POSIX-like environment). This build: (1) |
| Uses all Windows style paths, (2) Uses primarily Windows batch |
| commands from cmd.exe, with (3) a few extensions from GNUWin32. |
| |
| This capability should still be considered a work in progress |
| because: (1) it has not been verfied on all targets and tools, |
| and (2) still lacks some of the creature-comforts of the more |
| mature environments (like a function configure.sh script and |
| 'make menuconfig' support). |
| |
| - Example Windows native builds for STM32F4Discovery, eZ80, z16f, z8, |
| Z80, and Z180. |
| - Several configurations have been converted to work the kconfig- |
| frontends mconf configuration tool: stm32f4discovery/nxlines, and |
| all eZ80, z16f, z8, Z80, and Z180 configurations. |
| - Architectures now include a common Toolchain.defs file that can be |
| used to manage toolchains in a more configurable way (most of this |
| contributed by Mike Smith). |
| |
| * Build tools: |
| |
| - Renamed tools/winlink.sh to tools/copydir.sh. |
| - Several new tools/scripts to support the Windows native build: |
| tools/mkdeps.bat, tools/mkdeps.c, tools/link.bat, unlink.bat, and |
| copydir.bat. |
| - tools/incdir.sh and incdir.bat now support an -s option to generate |
| system header file paths. |
| - tools/b16.c: Fixed precision math conversion utility. |
| |
| Bugfixes (see the change log for details). Some of these are very important |
| (marked *critical*): |
| |
| * RTOS: Fix some backward conditional compilation in the work queue |
| logic (Freddie Chopin). |
| |
| * File System: Uninitialized variable caused assertions (from Lorenz |
| Meier). |
| |
| * Drivers: Partial fix for STM32 OTGFS device drivers and fix for short, |
| unaligned writes in the flash translation layer (drivers/mtd/ftl.c), |
| both from Petteri Aimonen. |
| |
| * STM32 Drivers: |
| |
| - Qencoder driver and TIM3 driver fixes from Ryan Sundberg. |
| - Fix timeout delay calculation in the STM32 OTG FS host driver. |
| |
| * LPC17xx Drivers: Resources not being properly released when I2C |
| driver is un-initialized. |
| |
| * Graphics: |
| |
| - Fix logic when the mouse drags outside of the window; fix |
| another "blocked message" handling case (both from Petteri Aimonen). |
| - nxtk_filltrapwindow(): Correct an offset problem (also from Peterri |
| Aimonen). |
| - nxglib_splitline(): Correct the "fat flat line" bug. |
| |
| * C Library: |
| |
| - nrand() changes to prevent coefficients from becoming zero which |
| would "lock up" the random number generate. |
| - Add rounding functions to the math library (contributed by Petteri |
| Aimonen). |
| |
| * Build system: Changes to MIN definitions in all limit.h header files |
| to avoid integer overflows. For example from (-128) to (-127 - 1) |
| (from Petteri Aimonen). |
| |
| * Applications: Modbus fixes from Freddie Chopin. |
| |
| As well as other, less critical bugs (see the ChangeLog for details) |
| |
| NuttX-6.25 |
| ---------- |
| |
| The 92nd release of NuttX, Version 6.25, was made on February 1, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.25.tar.gz and |
| apps-6.25.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5595 |
| |
| Note that all SVN information has been stripped from the tarballs. If you |
| need the SVN configuration information, you should check out directly from |
| SVN. Revision r5595 should equivalent to release 6.25 of NuttX: |
| |
| svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Or (HTTP): |
| |
| svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Additional new features and extended functionality: |
| |
| * OS Initialization |
| |
| - Removed support for CONFIG_BUILTIN_APP_START. This is not really a |
| useful feature and creates a violation of the OS layered |
| architecture. |
| |
| * Task Creation: |
| |
| - Implement a simple vfork(). In NuttX-6.25, this interface is |
| available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 |
| (PIC32MX) platforms. |
| - exec() now sets the priority of the new task to the same priority as |
| the parent task (instead of the arbitrary value of 50). |
| - New, partially compliant implementations of execv() and execl(). |
| These are only partially compliant because they do not overlay any |
| existing "process space" but rather create the new task and exit(). |
| - Add a complete implementation of posix_spawn(). This standard |
| interface is a better match for an MMU-less architecture than are |
| vfork() plus execv() or execl(). |
| - Add a task start hook that will be called before the task main |
| is started. This can be used, for example, to schedule C++ |
| static constructors to run automatically in the context of the |
| new task. |
| |
| * Task Parentage |
| |
| - Repartitioned tasking data structures. All shared resources are now |
| collected together in a "task group". A task group includes the |
| original task plus all of the pthreads created by the task. |
| - Added support for remember the parent "task group" when a new task is |
| started. |
| - Added optional support to record the membership of each thread in |
| the "task group". |
| - Implement support for retaining child task status in the "task group" |
| after the child task exists. This is behavior required by POSIX. |
| But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and |
| CONFIG_SCHED_CHILD_STATUS |
| - Add internal logic to "reparent" a task. This is useful, |
| for example, where the child task is created through a trampoline |
| task that redirects I/O. Reparenting allows the caller of posix_spawn() |
| to be reparented for the eventual child thread. |
| - Added support for SIGCHLD. Sent to all members of the parent task |
| group when the file member of the child task group exits. |
| - If SIGCHLD and retention of child task exist status are enabled, then |
| a more spec-compliant version of waitpid() is enabled. |
| - New interfaces waitid() and wait() are also enabled when SIGCHLD |
| is enabled. |
| |
| * File System |
| |
| - dup() and dup2() can new be used with opened files in a mounted file |
| system. This supports re-direction of output in NSH to files. |
| - The binfs file system was moved from apps/builtin to fs/binfs. The |
| binfs file system was extended to support execution of "builtin |
| applications" using exec(), execv(), execl(), or posix_spawn(). |
| - Added logic based on SIGCHLD to automatically unload and clean-up |
| after running a task that was loaded into memory. |
| |
| * Binary Formats |
| |
| - Much of the logic for "builtin applications" was moved from |
| apps/builtin to nuttx/binfmt/libbuiltin. Includes some extensions |
| contributed by Mike Smith. |
| - A binary loader was added for builtin applications to support |
| execution of "builtin applications" using exec(), execv(), |
| execl(), or posix_spawn(). |
| |
| * Drivers: |
| |
| - Added logic to marshal and serialized "out-of-band" keyboard |
| commands (such as cursor controls and key release events) intermixed |
| with normal ASCII keypress data. The encoding is partially integrated |
| in the HID keyboard driver and the decoding full integrated into the |
| apps/examples hidkbd and keypadtest (the latter contributed by Denis |
| Carlikli). |
| - Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong. |
| - Add support for removable serial devices (like USB serial). This |
| support is enabled by CONFIG_SERIAL_REMOVABLE. |
| |
| * ARMv7-M: |
| |
| - Added an option to use the BASEPRI register to disable interrupts |
| (instead of the PRIMASK). This eliminates some innocuous hardfaults |
| that interfere with some debug tools. You need to switch to the |
| BASEPRI method only if you have such tool interference. |
| |
| * STM32 Drivers |
| |
| - Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 |
| (contributed by Mike Smith). |
| - Add support for USART single wire mode (Contributed by the PX4 |
| team). |
| - Updates to support for SPI DMA on the STM32 F1/F2/F4. From |
| Petteri Aimonen. |
| |
| * STM32 Boards: |
| |
| - New configuration to support the UG-2864HSWEG01 OLED on the |
| STM32F4Discovery board. |
| - Added a posix_spawn() test configuration for the STM32F4Discovery. |
| |
| * LM3S/LM4F |
| |
| - Files and directories repartitioned to support both LM3S and LM4F |
| using the STM32 organization as a model. |
| - Partial definitions for the LM4F contributed by Jose Pablo Carballo |
| (this is still a work in progress). |
| |
| * LM3S Boards |
| |
| - Added scripts and documentation to use OpenOCD with the LM3S (from |
| Jose Pablo Carballo). |
| |
| * LPC176x/LPC178x |
| |
| - Files and directories repartitioned to support both LPC175x/LPC176x |
| and the LPC177x/LPC178x families using the STM32 organization as a |
| model. The LPC1788 port is a work in progress by Rommel Marcelo. |
| |
| * LPC176x/LPC178x Boards: |
| |
| - Added a configuration to support the Wave Share Open1788 board. |
| This is still a work in progress by Rommel Marcelo. |
| |
| * LPC2148 Boards: |
| |
| - Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 |
| and the UG_2864AMBAG01 OLED). |
| - Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 |
| and the UG_2864AMBAG01). |
| |
| * Simulator: |
| |
| - Add an nxlines configuration for the simulator. |
| |
| * Networking: |
| |
| - Add logic to work around delayed ACKs by splitting packets |
| (contributed by Yan T.). |
| - Split net_poll() to create the internal interface psock_poll(). |
| |
| * LCDs: |
| |
| - Added support for LCD1602 alphanumeric LCD (HD4468OU controller). |
| |
| * Graphics: |
| |
| - Added 5x8 monospace font. This tiny font is useful for graph |
| labels and for small bitmapped display. Contributed by Petteri |
| Aimonen. |
| |
| * Build System: |
| |
| - Add an options to better manage toolchain prefixes. |
| - Redesigned how the context target works in the apps/ directory. |
| The old design caused lots of problems when changing configurations |
| because there is no easy way to get the system to rebuild the |
| context. This change should solve most the problems and eliminate |
| questions like "Why don't I see my builtin application in NSH?" |
| |
| * Kconfig Files: |
| |
| - There are several new configurations that use the kconfig-frontends |
| tools and several older configurations that have been converted to |
| use these tools. There is still a long way to go before the conversion |
| is complete: |
| |
| configs/sim/nxwm |
| configs/sim/nsh |
| configs/stm3220g-eval/nxwm |
| configs/stm32f4discovery/posix_spawn |
| configs/olimex-lpc1766stk/nsh |
| configs/olimex-lpc1766stk/hidkbd |
| configs/olimex-lpc1766stk/nettest |
| configs/open1788/ostest |
| configs/stm32f4discovery/nsh |
| configs/stm32f4discovery/usbnsh |
| configs/lm326965-ek (all configurations) |
| configs/mcu123-214x/nsh |
| configs/ubw32/ostest |
| |
| * Tools: |
| |
| - tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell. |
| - tools/configure.c: configure.c can be used to build a work-alike |
| program as a replacement for configure.sh. This work-alike |
| program would be used in environments that do not support Bash |
| scripting (such as the Windows native environment). |
| - tools/configure.bat: configure.bat is a small Windows batch |
| file that can be used as a replacement for configure.sh in a |
| Windows native environment. configure.bat is actually just a |
| thin layer that executes configure.exe if it is available. If |
| configure.exe is not available, then configure.bat will attempt |
| to build it first. |
| |
| * Applications: |
| |
| - New and modified examples: |
| |
| apps/examples/wlan: Remove non-functional example. |
| apps/examples/ostest: Added a test of vfork(). Extend signal |
| handler test to catch death-of-child signals (SIGCHLD). Add a |
| test for waitpid(), waitid(), and wait(). |
| apps/exampes/posix_spawn: Added a test of posix_spawn(). |
| |
| - NSH: |
| |
| NSH now supports re-direction of I/O to files (but still not from). |
| The block driver source argument to the mount command is now |
| optional for file systems that do not require a block driver. |
| NSH can now execute a program from a file system using posix_spawn(). |
| Added support for a login script. The init.d/rcS script will be |
| executed once when NSH starts; the .nshrc script will be executed |
| for each session: Once for serial, once for each USB connection, |
| once for each Telnet session. |
| |
| - Supports a new daemon that can be used to monitor USB trace outpout. |
| - Removed non-functional wlan example. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Tasking: |
| |
| - Fixed a *critical* task exit bug. Here is the failure scenario: |
| (1) sched_lock() is called increments the lockcount on the current |
| TCB (i.e., the one at the head of the ready to run list), (2) |
| sched_mergepending is called which may change the task at the head |
| of the ready-to-run list, then (3) sched_unlock() is called which |
| decrements the lockcount on the wrong TCB. The failure case that |
| I saw was that pre-emption got disabled in the IDLE thread, locking |
| up the whole system. |
| |
| * Signals: |
| |
| - sigtimedwait() would return a bad signal number if the signal was |
| already pending when the function was called. |
| |
| * Drivers: |
| |
| - Some SD cards will appear busy until switched to SPI mode for |
| first time. Having a pull-up resistor on MISO may avoid this |
| problem, but this fix from Petteri Aimonen makes it work also |
| without pull-up. |
| |
| * STM32 Drivers: |
| |
| - STM32 FLASH driver counting error (from Freddie Chopin). |
| - STM32 F4 maximum SPI frequency was wrong (corrected by Petteri |
| Aimonen). |
| |
| * STM32 Boards |
| |
| - Due to cloning of untested code, the logic to control on-board |
| LEDs did not work on any STM32 boards. |
| - Serial devices number /dev/ttyS0-5 is there is a serial console, |
| but /dev/ttyS1-6 if there is no serial console. |
| |
| * Binary Formats |
| |
| - C++ static constructors execute now using a start taskhook |
| so that they execute in the context of the child task (instead |
| of in the context of the parent task). |
| |
| * File Systems: |
| |
| - Several FAT-related bugs fixed by Petteri Aimonen. |
| |
| * Networking: |
| |
| - Fix poll/select issure reported by Qiang: poll_interrupt() must call |
| net_lostconnection() when a loss of connection is reported. Otherwise, |
| the system will not remember that the connection has been lost and will |
| hang waiting on a unconnected socket later. |
| - Similar issues corrected for recvfrom() and send(). |
| - Telnetd would hang in a loop if recv() ever returned a value <= 0. |
| |
| * Libraries: |
| |
| - fread() could hang on certain error conditions. |
| - Can't handle SYSLOG output to a character device from the IDLE task |
| (because the IDLE task can't block). |
| |
| * Build System: |
| |
| - Serial was driver was not being built if there is no console |
| device. Obviously, the serial driver may be needed even in |
| this case. |
| |
| * Additional Bugfixes: |
| |
| - sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic |
| - ARM9 Compilation issue with low vectors. |
| - readline() return value |
| - Others as detailed in the ChangeLog: HID keyboard, LPC17xx bit |
| definitions, strndup(), PL2303, SYSLOG error handling, AT25, |
| apps/examples. |
| |
| NuttX-6.26 |
| ---------- |
| |
| The 93rd release of NuttX, Version 6.26, was made on March 15, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.26.tar.gz and |
| apps-6.26.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release corresponds with SVN release number: r5745 |
| |
| Note that all SVN information has been stripped from the tarballs. If you |
| need the SVN configuration information, you should check out directly from |
| SVN. Revision r5745 should equivalent to release 6.26 of NuttX: |
| |
| svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Or (HTTP): |
| |
| svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code |
| |
| Additional new features and extended functionality: |
| |
| * OS Initialization: |
| |
| - Add an additional call-out to support board-specific driver |
| initialization during the boot-up phase (available with |
| CONFIG_BOARD_INITIALIZE=y). |
| |
| * Tasking: |
| |
| - New interface task_spawn() that is like posix_spawn(), but uses |
| entry point addresses like task_create(). |
| - Additional data restructuring as a continuation of the task group |
| changes of NuttX 6.25. These data structures were moved from the |
| TCB structure into the task group: pthread join data, |
| atexit/on_exit callbacks, waitpid data structures, and message |
| queues. |
| - TCBs for tasks and pthreads are now separate structures. This |
| saves a little memory since tasks do not have to carry the overhead |
| for threads and vice versa. |
| |
| * Kernel Build: |
| |
| - Extensive changes were made to support the kernel build mode. In |
| this mode, NuttX is built as a monolithic kernel. NuttX is built |
| as a separate kernel mode "blob" and the applications are built |
| as a separate user mode "blob". The kernel runs in kernel mode and |
| the applications run in user mode (with the MPU restricting user |
| mode accesses). Access to the kernel from the user blob is only |
| via system calls (SVCalls). |
| - Extensive changes were made to the syscall, SVCall, and trapping |
| logic. Many internal interfaces were renamed. |
| - The memory manager was extended to support both kernel- and user- |
| mode allocations. Logic within the kernel needs to use the |
| correct kernel- or user-space allocator, depending upon the user |
| of the allocated memory. |
| - The user-space blob now contains a header built in at the beginning |
| of the block that provides the same information that was previously |
| provided by a kludgy, auto-generated header file (user_map.h). |
| - Basic support implemented for the ARMv7-M family with fragments |
| also implemetned for the ARMv6-M and MIPS32 families. |
| - Kernel build supported added for the LPC17xx Open1788 and for |
| the Atmel SAM3U-EK board. All testing is being performed on the |
| Open1788 board. |
| |
| * Signals: |
| |
| - Delivery of signals to threads within a task group is now compatible |
| with the way that signals are delivered to threads within a process. |
| |
| * Drivers: |
| |
| - Add a driver for the SST29VF NOR FLASH parts. |
| - USB device trace/debug feature extended to decode device-specific |
| trace events to make the trace output more readable (from Petteri |
| Aimonen). |
| - USB MSC device driver can not support names of differing sizes |
| in the USB descriptor and the SCSI fields (from Petteri Aimonen). |
| - Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on |
| the same bus as other SPI devices. Frequency is reset each time |
| that the MMC/SD SPI has the bus locked. (from Petteri Aimonen). |
| |
| * ARMv6-M (Cortex-M0): |
| |
| - Added support for the ARM Cortex-M0 family. |
| |
| * nuvoTon NUC120: |
| |
| - Added support for the nuvoTon NUC120 MCU (Cortex-M0). |
| |
| * nuvoTon NUC120 Boards: |
| |
| - Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0). |
| |
| * LPC17xx: |
| |
| - Added support for the LPC177x and LPC178x families. Most of this is |
| the work of Rommel Marcelo. |
| |
| * LPC17xx Boards: |
| |
| - Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769. |
| From Rashid. |
| - The port for the WaveShare Open1788 board is now functional. Basic |
| OS test and NuttShell (NSH) configurations are functional. More |
| driver development and testing is needed (from Rommel Marcelo). |
| |
| * LPC17xx Drivers: |
| |
| - Added an SD card MSI driver for the LPC178x. The driver is marginally |
| functional but requires DMA capability to be reliable. |
| |
| * STM32 |
| |
| - Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like |
| peripherals). |
| |
| * STM32 Boards |
| |
| - Added support the STMicro STM32F3Discovery board (STM32 F3). |
| |
| * Stellaris LM3S/LM4F |
| |
| - Basic support for the LM4F120 family is in place, but untested (mostly |
| from Jose Pablo Carballo). |
| |
| * Stellaris LM4F Boards |
| |
| - Add support for the LM4F120 LaunchPad (untested). |
| |
| * Networking: |
| |
| - select() should now allocate a little less memory. |
| |
| * Memory Management: |
| |
| - Extended to support multiple heaps. This is used as part of |
| the kernel build in order to support separator user- and |
| kernel-mode heaps. |
| - The stand-alone memory manager test had to be removed. It |
| was too entangled and made extension of the memory manager |
| nearly impossible. This is a loss. |
| |
| * Build System: |
| |
| - Several configurations converted to use the kconfig-frontends |
| configuration tool. There are still many more that need to |
| be converted. |
| |
| * C Library: |
| |
| - Move the workqueue logic into the C library. There is now a |
| special user-space version of the work queue (which will only |
| be used with a NuttX kernel build). |
| - Implementation of itoa() contributed by Ryan Sundberg. |
| |
| * Applications: |
| |
| - The NSH builtin task logic now uses task_spawn() to start builtin |
| applications. |
| - The OS test now includes a test cased to verify task_restart(). |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. Most are expected to be fully |
| available in NuttX 6.27. |
| |
| * LM4F120 LaunchPad port. Code is in place, but nothing has been tested. |
| |
| * WaveShare Open1788 port. This port as actually complete and |
| functional. However, there is still ongoing development and |
| testing of drivers. |
| |
| * Kernel Build. Much progress has been made, but there kernel build is |
| not yet fully functional due to several user resources that are not yet |
| properly disentangled from the kernel blob. |
| |
| * Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Tasking: |
| |
| - The wrong PID was being signalled with SIGCHILD. It should be |
| the PID of the task that create the task group, not the ID of |
| the last thread to leave the task group. |
| - Added logic so that some internal resources and states are recovered |
| when tasks are deleted or restarted. Handle cases where there are |
| outstanding timed events pending when tasks are deleted or restarted. |
| |
| * ARMv7-M: |
| |
| - Several fixes to the MPU control logic. |
| |
| * Drivers: |
| |
| - Removable serial drivers race conditions fixed. |
| - MAX11802 timing bug (from Petteri Aimonen). |
| |
| * STM32 Drivers: |
| |
| - Handle cases were SPI DMA logic fails if sem_wait is awakened |
| by a signal. Need to clear error flags to prevent corruption of |
| subsequent transfers. Also, bit count should not be changed while |
| the SPI peripheral is enabled (from Petteri Aimonen). |
| - Fixes to the OTG FS device driver from Petteri Aimonen. |
| - Fix typos in DMA register header file (from Yan T.) |
| |
| * Graphics: |
| |
| - Correction to the hyphen in the SANS 17x22 font (from Petteri |
| Aimonen). |
| |
| * Networking: |
| |
| - Corrected errors in the socket poll/select logic. Additional |
| state logic was needed to detect if the socket is still connected |
| before starting the poll wait. (bug reported by Qiang Yu). |
| |
| * Memory Management: |
| |
| - mallinfo() should hold the memory manager semaphore (from Petteri |
| Aimonen. |
| |
| * Build System: |
| |
| - Resolved several build errors reported by Mike Smith. |
| |
| * Applications: |
| |
| - Fixed an NSH memory leak: Needed to detach after creating each |
| pthread. |
| - readline() now returns EOF on any failure (instead of a negated |
| errno value). This is because the underlying read is based on |
| logic similar to getc. The value zero (meaning end-of-file) |
| was being confused with a NUL. So if a NUL was received, the |
| NSH session would terminate because it thought it was the end of |
| file. |
| |
| NuttX-6.27 |
| ---------- |
| |
| The 94th release of NuttX, Version 6.27, was made on April 28, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.27.tar.gz and |
| apps-6.27.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * OS Initialization: |
| |
| - Add missing registration of /dev/zero. Registration of /dev/null |
| should depend upon conditional compilation. From Ken Pettit. |
| |
| * Tasking: |
| |
| - Added a new interface to set aside memory on the task's stack. This |
| is used (at least in the kernel build) to hold task arguments. |
| - Remove up_assert_code(). One assertion routine is enough. |
| |
| * Kernel Build: |
| |
| - Extensive changes were made to support the kernel build mode. In |
| this mode, NuttX is built as a monolithic kernel. NuttX is built |
| as a separate kernel mode "blob" and the applications are built |
| as a separate user mode "blob". The kernel runs in kernel mode and |
| the applications run in user mode (with the MPU restricting user |
| mode accesses). Access to the kernel from the user blob is only |
| via system calls (SVCalls). |
| - Kernel build configurations for the Open1788 board and for the |
| STM32F4Discovery now execute correctly. |
| - Changes were made to task and thread start-up routines, signal |
| handling, data structures, ARMv7-M SVCalls, stack management |
| interfaces, |
| |
| * Drivers: |
| |
| - Driver for the ST7567 LCD Display Module from Univision Technology |
| Inc. Contributed by Manikandan.S |
| - SPI initialize functions renamed so that multiple SPI blocks can |
| be initialized. |
| - Extended to support the RAMTRON FM25V01 device. Contributed by |
| Lorenz Meier |
| - Serial drivers: TIOCSERGSTRUCT ioctls now conditioned on |
| CONFIG_SERIAL_TIOCSERGSTRUCT |
| |
| * ARMv7-M (Cortex-M3/4): |
| |
| - Added support for modifiable interrupt vectors in RAM |
| |
| * nuvoTon NUC1xx: |
| |
| - Added kernel build support |
| |
| * Freescale Kinetis: |
| |
| - Add kernel build support |
| - Add support for the Kinetis L family of Cortex-M0+ MCUs. Contributed |
| by Alan Carvalho de Assis. |
| |
| * LPC17xx: |
| |
| - Now holds off sleep mode in the IDLE loop is DMA is in progress |
| (because sleep mode will disable CPU SRAM). |
| |
| * LPC17xx Boards: |
| |
| - ZKIT-ARM-1769: Now supports the ST7567 LCD display module. Added |
| an nxhello configuration for testing (Manikandan.S). |
| - ZKIT-ARM-1769: Add support for both CAN1 and CAN2. Contributed by |
| M.Kannan |
| |
| - Open1788: Basic support for the WaveShare Open1788 board is complete |
| with working OS test, NSH, and graphics configurations. |
| - Open1788: Integrated the LPC178x LCD driver with the WaveShare display. |
| Touchscreen support is included, however, there appears to be an |
| issue with the Open1788 touchscreen interrupt signal. |
| - Open1788: Now supports SDRAM (used to provide the LCD framebuffer). |
| - Open 1788: Reversed sense of the IDLE LCD. It is now off when the |
| LPC17 is sleeping and on when awake. That is much a better visual |
| indication of the dynamic CPU load |
| |
| * LPC17xx Drivers: |
| |
| - Added an LCD framebuffer driver for the LPC177x/8x family. |
| - Implemented LPC17xx GPDMA support. |
| - Integrated the LPC17xx GPDMA support into the SD card driver. |
| - SSP driver adapted to work with the LPC178x family. |
| - Separate LPC176x and LPC178x GPIO logic; this logic is too different |
| to maintain in one file with conditional compilation. |
| - Re-design of the GPIO logic for the LPC178x family by Rommel Marcelo. |
| |
| * LPC43xx: |
| |
| - Added kernel build support |
| |
| * STM32: |
| |
| - Added support for kernel mode build. |
| - Added architecture support for the STM32 F427/F437 chips. Contributed |
| by Mike Smith |
| |
| * STM32 Boards: |
| |
| - Added a configuration to support a kernel mode build of the OS test |
| on the STM32F4Discovery |
| |
| * Stellaris LM3S/LM4F: |
| |
| - Added kernel build support |
| - Added support for the 7 UARTs on the LM4F120 |
| |
| * Stellaris LM4F Boards: |
| |
| - Added scripts and instructions to simplify use of OpenOCD with ICDI |
| (JP Carballo) |
| - The basic for the Stellaris LM4F120 Launchpad is complete. This |
| includes support for OS test and NSH configurations. Additional |
| driver development is needed. |
| |
| * Build System: |
| |
| - Directories where the same sources files are used to build different |
| objects in the first and second pass kernel builds need to keep those |
| objects in separate directories so that they are not constantly |
| rebuilt. |
| |
| * Applications: |
| |
| - apps/system/ramtest: Add a simple memory test that can be built |
| as an NSH command. |
| |
| * Tools: |
| |
| - kconfig2html is a new tool which will replace the hand-generated |
| documentation of the NuttX configuration variables with auto- |
| generated documentation. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. Most are expected to be fully |
| available in NuttX 6.28. |
| |
| * A port to the Freescale Freedom KL25Z is complete but not yet stable |
| enough. The KL25Z is a low-cost Cortex-M0+ part with 128KB of FLASH |
| and 16KB of SRAM. This is is the effort of Alan Carvalho de Assis. |
| |
| * Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 32% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Tasking: |
| |
| - Fixed a critical bug: When there is pending C buffered output |
| and the system is very busy, the a pthread may be blocked at |
| a critical point when trying to exit. Blocking at this critical |
| point would cause crashes. All entire task/thread exit logic |
| paths were reviewed and failsafe mechanisms were put in place |
| to assure that exitting tasks never block after task teardown |
| has been started. |
| |
| * ARMv6-M: |
| |
| - Fixed parameter passing for all system call inline functions with > 3 |
| parameters |
| - Fixed a major problem: The Cortex-M0 has no BASEPRI register but the |
| logic of NuttX-6.26 was using it to manage interrupts. Switch to |
| using the PRIMASK instead. This means that hardfaults will (again) |
| occur when SVC instructions are executed |
| |
| * ARMv7-M: |
| |
| - Corrected Correct MPU sub-region settings for unaligned regions. |
| - In exception handling with CONFIG_NUTTX_KERNEL, need to explicitly |
| set and clear the privilege bit in the CONTROL |
| - Fixed parameter passing for all system call inline functions with > 3 |
| parameters |
| |
| * Drivers: |
| |
| - Support for O_NONBLOCK was not supported in the "upper half" |
| serial driver. |
| - PL2303 compilation errors |
| |
| * Stellaris LM3S/4F: |
| |
| - Corrected typos in alternate function definitions. |
| |
| * LPC17xx Drivers: |
| |
| - Added a work-around for an ADC errata. From Chris Taglia |
| - Only one ADC pin was configured. Need to configure all that |
| are in the ADC0 set. From MKannan |
| |
| * File Systems: |
| |
| - The FAT logic was not making a distinction between directory |
| non-existence and file non-existence so when it you try to |
| create a file in a non-existent directory, it would create a |
| file with the name of the missing directory. Reported by Andrew |
| Tridgell |
| - Several fixes to the FAT file system from Ronen Vainish. These |
| fixes mostly involve the logic to extend directory clusters for |
| the case of long file names but also include a few important |
| general fixes (such as for storing 32 bit FAT values) |
| - mkfatfs was writing the boot code to the wrong location. From |
| Petteri Aimonen |
| |
| * Networking: |
| |
| - Fixed a compilation error when socket options are are disabled. |
| Reported by Daniel O'Connor |
| |
| * C Library: |
| |
| - Corrected an error in sscanf. If %n occurs in the format statement |
| after the input data stream has been fully parsed, the %n format |
| specifier will not be handled. Reported by Lorenz Meier |
| - strchr(str, '\0') should return a pointer to the end of the string, |
| not NULL. From Petteri Aimonen |
| |
| * Build System: |
| |
| - Fix naming of NuttX target if EXEEXT is defined. |
| |
| * Applications: |
| |
| - OS test: Fix timing error in non-cancelable thread test. |
| - NSH: Correct the test of the skip input parameter. Was limiting the |
| range to <= count. From Ken Petit. |
| |
| NuttX-6.28 |
| ---------- |
| |
| The 95th release of NuttX, Version 6.28, was made on June 14, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.28.tar.gz and |
| apps-6.28.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * File Systems: |
| |
| - SMART FLASH file system (contributed by Add Ken Pettit). |
| |
| * MTD (FLASH) Drivers: |
| |
| - Add support of MTD partitions via a new MTD driver that manages a |
| set of MTD devices, each managing a subset of the FLASH region |
| managed by the parent MTD driver. |
| - Extended the MTD interface to provide an (optional) method to |
| perform byte oriented writes if supported by the FLASH part. |
| - M25Px driver re-architected to use the byte write capability (when |
| possible) and to use 4KB sectors for the erase block size when the |
| part supports it (from Ken Pettit). |
| |
| * LCD Drivers: |
| |
| - New interface definitions to support audio devices (from Ken Pettit) |
| and alphanumeric, segment LCDs. |
| |
| * Wireless Drivers: |
| |
| - Added new driver for the wireless nRF24L01+ transceiver (from |
| Laurent Latil). |
| |
| * Calypso: |
| |
| - Added support for the Pirelli DP-L10 phone (from Craig Comstock via |
| Alan Alan Carvalho de Assis) |
| |
| * STM32: |
| |
| - Added an option to conditionally disable the "wfi" sleep mode. This |
| is needed with certain JTAG debuggers to prevent the debug session |
| from being disconnected (from Ken Pettit). |
| - Added support for the STM32L (STM32L15X/STM32L16x) family. |
| - Added STM32F103C4 and F103C8 chip support (from Laurent Latil). |
| - Added a new interface function, stm32_dmacapable() that can be used |
| to determine if DMA is possible from the specified memory address |
| (from Petteri Aimonen) |
| |
| * STM32 Drivers: |
| |
| - If CONFIG_STM32_DMACAPABLE is defined, the STM32 SPI driver now uses |
| stm32_dmacapable() to determine if it is possible to perform DMA |
| from the specified address. This change is important for the STM32 |
| F4 which may have SPI data buffers allocated on the stack in CCM |
| memory which cannot support the DMA (from Petteri Aimonen). |
| |
| * STM32 Boards: |
| |
| - Support added for the MikroElektronika Mikromedia for STM32F4 |
| development board (from Ken Pettit) with the MIO283QT2 LCD and |
| touchscreen. Several graphics configurations are included. |
| - The HY-mini STM32v board now uses the common SSD1289 driver |
| and supported the card detect interrupt. Several new |
| configurations also added and some removed (from Laurent Latil). |
| - Support added for the R65105-based LCD that comes with some |
| HY-Mini STM32v boards (from Christian Faure). |
| - Added basic support for the STM32L-Discovery board. Drivers |
| for the on-board segment LCD are included. |
| - Added support for the STM32 Tiny development board based on the |
| STM32 F103C8T6 MCU. This includes support for the nRF24L01+ |
| wireless on the board (from Laurent Latil). |
| |
| * Stellaris LM3S/LM4F: |
| |
| - Support added for a TI/Stellaris internal FLASH MTD driver (from Max |
| Holtzberg). |
| |
| * Stellaris LM4F Boards: |
| |
| - The LM3S6965-EK now has configurations for the UDP discovery tool and |
| for the TCP echo server (both from Max Holtzberg) |
| |
| * Atmel ATSAM3/4: |
| |
| - Reorganized, renamed, and updated directory structure to better |
| support additional members of the SAM3/4 family. |
| - Added support for both the ATSAM4S and ATSAM4L families. The |
| ATSAM4S is similar to the ATSAM3U, but the ATSAM4L is quite a |
| different beast, really much more akin to the AVR32s SoCs but |
| with a Cortex-M4. |
| |
| * Atmel ATSAM3/4 Boards: |
| |
| - Added support for the Atmel SAM4L Xplained Pro development board. |
| This board features the ATSAM4LC4C MCU (Cortex-M4 with 256KB FLASH + |
| 32KB SRAM). |
| - Added support for the Atmel SAM4S Xplained development board. This |
| board features the ATSAM4S16C MCU (Cortex-M4 with 1MB FLASH + 128KB |
| SRAM). |
| |
| * PIC32MX Boards: |
| |
| - Added support for the 1602 segment LCD on-board the Sure PIC32MX |
| board. This board will now also support a USB NuttX console and |
| the USB monitor test program. |
| |
| * Build System: |
| |
| - Clean-up of almost all .gitignore files: Made scope of ignore to be |
| only the current directory; Ignore .dSYM files in directories where |
| .exe's may be built. Also, in Makefiles, clean .dSYM files in |
| directories where an .exe may be built. |
| - Standardize and consolidated all build-as-an-NSH-application |
| configuration settings. Now only CONFIG_NSH_BUILTIN_APPS is |
| sufficient to build an application, test, or or example as an NSH |
| builtin application. |
| - Added support for a generic ARM, ARMv6-M and ARMv7-M Windows EABI |
| toolchains. |
| |
| * Libraries: |
| |
| - Added encoder/decoder logic to marshal and serialize special segment |
| LCD (SLCD) commands intermixed with normal ASCII data. This is the |
| similar to the encoding/decoding logic that is used to marshal |
| special commands from a keyboard. |
| - Add dprintf() and vdprintf() (the latter from Andrew Tridgell). |
| - Add an application that may be built as an NSH builtin command that |
| will erase FLASH using a flash_eraseall NSH command (from Ken Pettit). |
| |
| * Applications: |
| |
| - Added an MTD partition test/examples. Currently used with (1) the a |
| simulation configuration to test MTD partitions on a RAM emulation |
| of FLASH and (2) with the Mikroe STM32F4 configuration. |
| - Added a test/example to verify alphanumeric, segment LCDs. |
| - Added a simple single threaded, poll based TCP echo server based |
| on W. Richard Stevens UNIX Network Programming Book (from Max |
| Holtzberg). |
| - Added several tests of the SMART block driver and file system (from |
| Ken Pettit). |
| - Added a runtime configuration for the UDP discover utility (from |
| Max Holtzberg). |
| - Added an example application to demo the nRF24L01 driver (from |
| Laurent Latil). |
| - New and modified NSH commands: |
| Added a -h option to the df command to show the volume information |
| in human readable form (from Ken Petit). |
| Add a new mksmartfs command (from Ken Petit). |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. Most are expected to be fully |
| available in NuttX 6.28. |
| |
| * Audio System: |
| |
| - A complete audio subsystem include CODECs, higher level management, |
| interface definitions, and audio drivers was contributed by Ken |
| Pettit. This work has not been completely verified as of this |
| release and so is categorized as a work-in-progress. At present, |
| progress is blocked due to issues interfacing with the VS1053 |
| audio DAC on the Mikroe STM32F4 board. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 43% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Tasking: |
| |
| - Modify assertion in the priority inheritance logic that is reported |
| to cause false alarm assertions. |
| |
| * Kernel Build: |
| |
| - Typo in syscall proxying logic corrected by Ken Pettit. |
| |
| * Networking: |
| |
| - Poll setup/teardown logic should ignore invalid (i.e., negative) |
| file descriptors (from Max Holtzberg). |
| - When readahead data is available, the network poll() logic should |
| set POLLIN (or POLLRDNORM), not POLLOUT (from Max Holtzberg). |
| |
| * LCD Drivers: |
| |
| - Correct power controls in the MIO283QT2 LCD driver. |
| |
| * USB Device Controller Drivers: |
| |
| - Change the default IN request buffer size from 64 to 96. This will |
| avoid requests of exactly MAXPACKET size and, hence, avoid so many |
| NULL packets. Also, fix the OUT request buffers size to exactly the |
| max packet size. It really cannot be any other size. |
| |
| * STM32 Drivers: |
| |
| - Correct some bad STM32 F1 DMA definitions that crept into the system |
| a few months ago a broke STM32 F1 DMA (from Laurent Latil) |
| - Fixed an error in NULL packet handling in the STM32 F1 USB device |
| controller driver: If the NULL-packet needed flag ever got set, |
| then it was not being cleared and infinite NULL packets resulted. |
| This only affects the CDC/ACM class and was the cause of the |
| failures using the USB CDC/ACM device as a NuttX console. With this |
| change the USB works well as an alternative NuttX console device for |
| the STM32 F1 family. |
| - Correct some bad condition compilation in the RCC logic (CONFIG_ |
| missing from setting names). This affects some STM32 FLASH pre- |
| fetch settings (from Lorenz Meier). |
| - Change for hardware flow control support for STM32. The change also |
| fixes incorrect operation of USART2 and UART5 in current master |
| (from Lorenz Meier and Mike Smith). |
| - Fixed a backward conditional in USB OTG FS host controller driver |
| that prevented detection of disconnection events (from Scott). |
| |
| * LPC17xx Drivers: |
| |
| - I2C interrupt control. Also correction for a single byte read |
| timeout error (from M. Kannan). |
| |
| * Freescale Kinetis: |
| |
| - Freedom KL25Z pin multiplexing and LED control corrections (from |
| Alan Carvalho de Assis) |
| |
| * PIC32MX: |
| |
| - Fix NULL packet handling in the PIC32 USB device driver. Without |
| this fix the CDC/ACM driver cannot be used reliably with the PIC32 |
| USB. With this change the USB works well as an alternative NuttX |
| console device. |
| |
| * Graphics: |
| |
| - Default priorities for NxWidget and NxWM threads should be 100, |
| not 50, to be consistent with other default priorities. |
| |
| * Applications: |
| |
| - Remove the CONFIG_EXAMPLES_NXTEXT_NOGETRUN option from the NXTEXT |
| example. The test logic was bad for the case where this options is |
| not selected. Also, completed the empty Kconfig file. |
| - C++ name mangling was occurring when this example is built as an NSH |
| built-in application causing the entry to be undefined when called |
| from C code. |
| - Add some missing NSH library configuration values (from Lorenz |
| Meier). |
| |
| NuttX-6.29 |
| ---------- |
| |
| The 96th release of NuttX, Version 6.29, was made on July 31, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.29.tar.gz and |
| apps-6.29.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Drivers: |
| |
| - Generalized the SSD1306 driver and added support UG-2832HSWEG04 |
| which is very similar to the existing support for the |
| UG-2864HSWEG01. |
| - Added support for a generic bit-bang SPI driver. This includes |
| both a common "upper half" driver as well as a platformp-specific |
| "lower half" dirvers based on a common "template." |
| |
| * ARMv7-A, Cortex-A5 |
| |
| - Added support for the ARMv7-A architecture and the Cortex-A5 in particular. |
| |
| * ARMv7-M, Cortex-M3/4 |
| |
| - Modified how some registers are copied during a context switch (with |
| lazy FPU register saving). This should save some context switching |
| time when the context switch is due to interrupt level processing. |
| |
| * STM32: |
| |
| - Added support for a separate CCM heap. This may be useful for |
| segregating allocations for CCM (which cannot be used for DMA) |
| from other allocations (that may be used used for DMA). |
| |
| * STM32 Drivers: |
| |
| - DAC: Added support for DAC DMA (contributed by John Wharington). |
| - I2C: An I2C driver for the STM32 F3 family (from John Wharington). |
| |
| * Atmel AT91 SAM/4: |
| |
| - Add support for SAM3X and SAM3A chips |
| |
| * Atmel AT91 SAM/4 Drivers: |
| |
| - Re-architect the SAM3/4 SPI driver so that is it compatible with the |
| SPI drivers of other MCUs. |
| - Added register definition file for the SAM4L LCD peripheral. |
| - Added SAM4L PDCA register definition file |
| |
| * Atmel AT91 SAM/4 Boards: |
| |
| - SAM4L-Xplained: Added support for the SPI-based SD card on the I/O1 |
| module. |
| - SAM4L-Xplained: Added a driver for the LED1 segment LCD module. |
| - SAM4L-Xplained: Added support for the UG-2832HSWEG04 OLED on the |
| SAM4L Xplained Pro's OLED1 module |
| - SAM4S-Xplained: Added support for on-board 1MB SRAM |
| - Arduino Due: Basic support for the Arduino Due (SAM3X) is now |
| included. |
| - SAM3U-EK: The touchscreen is now functional. |
| |
| * Atmel AT91 SAMA5D3 |
| |
| - Added support for the Atmel AT91SAMA5D3 Cortex-A5 chip family. |
| |
| * Atmel AT91 SAMA5D3 Boards |
| |
| - Added support for the Atmel SAMA5D3x-EK boards which use the AT9 |
| SAMA5D3x chips (x=1,3,4,5). |
| |
| * Freescale KL25Z Drivers |
| |
| - Freescale KL25Z TSI register definitions and example TSI driver for |
| the Freedom KL25Z board from Alan Carvalho de Assis. |
| - Added SPI driver and register definitions for the Freescale KL25Z. |
| - Added a framework for controlling SPI-related discrete inputs and |
| outputs. Taken from work by Alan Carvalho de Assis |
| |
| * Build System: |
| |
| - New sub-directories to hold SPI-related files: includes/nuttx/spi.h |
| moved to include/nuttx/spi/.; SPI-related Kconfig info moved from |
| drivers/Kconfig to drivers/spi/kconfig. |
| - Finally... I changed the naming of configuration variables like |
| CONFIG_DRAM_ to CONFIG_RAM_. This has bothered me for a long time |
| since most boards don't have DRAM. The more generic RAM naming |
| should not produce so much cognitive dissonance |
| |
| * Libraries: |
| |
| - Added CRC16 support. |
| |
| * Applications: |
| |
| - Added Zmodem file transfer support. This may be used as an embedded |
| library or may be built as 'sz' and 'rz' commands that can be |
| executed from NSH. |
| - C++ initializers should be set once and, preferably, in the context |
| of the task that uses any C++ statically initialized classes. This |
| only becomes an issue if cxxtest or helloxx are built as NSH builtin |
| applications. Then you want the initialization done in cxxtext or |
| helloxx and not in NSH (and certainly not twice). Added |
| configuration options to control who does the C++ initialization. |
| NSH now does not do C++ initialization be default and must be |
| configured to do otherwise. Conversely, cxxtest and helloxx |
| will always do C++ initialization unless configured do otherwise. |
| - examples/cxxtext: Add ostream test as provided by Michael. |
| - NSH: Added a 'cmp' command that can be used to compare two files |
| for equivalence. Returns an indication if the files differ. |
| Contributed by Andrew Tridgell (via Lorenz Meier). |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Audio System: |
| |
| - A complete audio subsystem include CODECs, higher level management, |
| interface definitions, and audio drivers was contributed by Ken |
| Pettit. This work has not been completely verified as of this |
| release and so is categorized as a work-in-progress. At present, |
| progress is blocked due to issues interfacing with the VS1053 |
| audio DAC on the Mikroe STM32F4 board. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 45% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * File Systems: |
| |
| - Fixed compilation error if no file systems are enabled: Change |
| error to ERROR. |
| - Read-Ahead/Write buffering: Correct typos that can cause failures |
| in some configurations (From Chia Cheng Tsao). |
| |
| * Drivers |
| |
| - Remove the wait for the touchscreen busy bit in the ADS7843E driver. |
| From my reading of the ADS7843 spec, it would not be appropriate to |
| wait for the BUSY bit to de-asserted anyway (since it is only de- |
| asserted when we read the data). Most boards do not even bother to |
| provide the BUSY bit. |
| - MMC/SD SPI based driver: Driver needs to make sure that the SPI |
| mode and data width are correct. |
| - ENC28J60: Change buffer ordering to work around Errata. From Dave |
| (ziggurat29). |
| |
| * USB Device Controller Drivers: |
| |
| - Fixed a typo in the composite device driver unitialization logic. |
| DEV1 should be DEV2 in one case. |
| - usbdev.h: Fix some typos that cause compiler errors when |
| CONFIG_USBDEV_DMA and CONFIG_USBDEV_DMAMEMORY are selected (From |
| Chia Cheng Tsao). |
| |
| * ARM9: |
| |
| - Fix a bug (uninitialized register error) that crept in the ARM9 |
| boot-up code several years ago. Obviously no one has used the |
| ARM9 NuttX port for years! |
| |
| * STM32 Drivers: |
| |
| - Fix STM32 OTF FS endpoint allocation logic. Apparently the same |
| endpoint can be allocated as both an IN or an OUT endpoint. The |
| existing implementation only supported one allocation, either IN or |
| OUT. This resulted in failures to allocate endpoints when used with |
| the CDC/ACM + MSC composite driver (From Chia Cheng Tsao). |
| - SDIO: Add support for the data block end (DBCKEND) interrupt to |
| terminate transfers (From Chia Cheng Tsao). |
| - DAC: Fixed numerous DAC driver errors and added support for DAC |
| DMA (contributed by John Wharington). |
| |
| * SAM3/4: |
| |
| - SAM4S: Correct configuration of PIO pins for SAM4S B and C peripherals. |
| - Need to disable write protection before configuring PIO pins. |
| - GPIO configuration logic must protect against re-entrancy. |
| - Clocking must be applied to the SMC module for the 3X and 3A family in |
| order for the NFC SRAM to be functional. |
| - Fixed some errors for interrupts on ports D-F. |
| |
| * SAM3/4 Drivers: |
| |
| - Common SPI driver: Fix SPI mode setting. In the SAM3/4 family, the |
| clock phase control (CPHA) is inverted (NPHA). Also fixed an |
| incorrect pointer test. Was checking if the wrong pointer was NULL. |
| |
| * SAM3/4 Boards: |
| |
| - SAM3U-EK: Fix polarity of the /PENIRQ signal (it is active low). |
| The SAM3U-EK board now runs at 96MHz. |
| |
| * Applications: |
| |
| - apps/examples/nxhello: Minor fix for compilation error when the |
| display resolution is low (< 8bpp) due to a typo that has been there |
| for a long time. Also Correct default colors when in Y1 code mode. |
| - apps/system/ramtest: The RAM test was not correctly built |
| into the configuration and build system. |
| - apps/examples/composite: Change to prevent some false alarm debug |
| assertions (From Chia Cheng Tao). |
| |
| NuttX-6.30 |
| ---------- |
| |
| The 97th release of NuttX, Version 6.30, was made on September 14, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.30.tar.gz and |
| apps-6.30.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Common Drivers: |
| |
| - Extended TERMIOS support for serial and CDC/ACM drivers. From |
| Mike Smith, Andrew Tridgell and Lorenz Meier. |
| - Added option to disable serial port reordering. From Lorenz Meier. |
| - Several changes to the USB host control interface and extensions to |
| common USB host logic to handle host controllers with multiple |
| downstream ports in the root hub. |
| - USB device tracing: Extended decoding and stringifying of USB trace |
| output to include trace output from class drivers. |
| - USB host tracing: Added support for USB host tracing similar in |
| some ways to USB device tracing: Stringification is an inherent |
| part of the trace decoding (not an option). Only available in the |
| SAMA5 USB host drivers now. |
| |
| * Networking / Network Drivers |
| |
| - Support for the Microchip ENCX24J600 Ethernet driver from Max |
| Holtzberg |
| - CC3000 Networking. Initial support for the TI CC3000 network |
| module on the Freescale Freedom-KL25Z board from Alan Carvalho |
| de Assis. This is still a work in progress. |
| |
| * ARMv7-A, Cortex-A5 |
| |
| - Restructured some MMU-related logic and header files. |
| - Hooks added for Cortex-A8, but not yet used. |
| |
| * STM32 Drivers: |
| |
| - STM32 SPI: nbits() interface extended to control bit order as well |
| as bit width (from Teemu Pirinen) |
| |
| * STM32 Boards |
| |
| - Olimex STM32-P107: Incorporate ENCX24J600 networking for the Olimex |
| STM32 P107 board. |
| - LeafLabs Maple Board: Add board support for the LeafLabs Maple and |
| Maple Mini boards. From Librae. |
| |
| * Atmel AT91 SAMA5D3x |
| |
| - Added support for the SAMA5 DMAC controllers. |
| - DMA-capable drivers for the SAMA5 SPI peripherals. |
| - DMA-capable HSCMCI 0/1/2 drivers. |
| - Support for PIO interrupts |
| - Utilities for intelligent conversions between physical and virtual |
| addresses. |
| - Added USB host controller drivers for both the OHCI (low- and full- |
| speed) peripheral and the ECHI (high-speed) peripheral. |
| - Added USB device controller for the SAMA5 UDPHS peripheral (full- |
| and high-speed). |
| - Added a Two Wire (TWI) driver. This is a variant of I2C. |
| |
| * Atmel AT91 SAMA5D3x-EK Development Boards |
| |
| - Now supports onboard SDRAM. Modified heap initialization logic |
| to include SDRAM if configured. |
| - Integrated a FAT file system on the on-board SPI-based AT25 serial |
| FLASH |
| - Integrated HSMCI0 and HSMCI1 support for the microSD and full file |
| SD card slots. Includes PIO interrupts for card detection events. |
| - Integrated USB OHCI and ECHI host and high-speed peripheral support. |
| File system on AT25 now exported via Mass Storage Class. Includes |
| PIO VBUS controls. |
| - Integrated the TWI driver and the I2C tool. Added support for an |
| external AT24 serial EEPROM. |
| |
| * Applications: |
| |
| - apps/examples/cc3000. Initial support for the TI CC3000 network |
| module on the Freescale Freedom-KL25Z board from Alan Carvalho de |
| Assis. Includes the test to verify the CC3000. |
| - apps/examples/usbmsc: apps/examples/usbstorage renamed usbmsc for |
| consistency. Change submitted by CCTSAO. |
| - apps/system/usbmonitor: The USB monitor has been extended so that |
| it can be used with USB device or host trace data. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * CC3000 Networking |
| |
| - CC3000 Networking. Initial support for the TI CC3000 network |
| module on the Freescale Freedom-KL25Z board from Alan Carvalho |
| de Assis. This is still a work in progress. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 46% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * File Systems: |
| |
| - ROMFS: Fix an error where long (>15) file names were read |
| incorrectly from a ROMFS file system. From Mike Smith |
| - NXFFS: Clean up some compiler warnings. |
| |
| * Common Drivers |
| |
| - MMC/SD driver: Correction for a bad return value when multiple |
| block SDIO transfers are suppressed. By Andrew Tridgell. |
| - USB HID keyboard and mass storage host-side class drivers: Fix some |
| compilation errors and warnings when pre-allocated data structures |
| are used. |
| - USB device-side class drivers: Fix some compilations errors when |
| DUALSPEED (i.e., full- and high-sped) support is enabled. |
| - CDC/ACM and PL2303: Don't use max packetsize assigned to the endpoint |
| when allocating request buffers; The default value of the endpoint |
| max packetsize may be incorrect because the endpoint has not yet |
| been configured. Really only an issue for high-speed endpoints. |
| - USB Host Mast Storage Class: Fixed a problem that was causing some |
| devices to fail to initialize: If device is returning fatal transfer |
| errors while attempting to initialize, don't bother with the startup |
| retries; abort immediately so that the device will be reset and we |
| can try again with a better ready device. |
| - USB Host Mast Storage Class: Correct a reference counting error: |
| When an MSC device transfer fails while waiting for UnitTestReady, |
| the reference count on the class was not being decremented. The end |
| result is a memory leak as can be seen by the USB device numbers |
| incrementing: sda, sdb, sdc, ... |
| - USB Device CDC/ACM: Fix backward conditional compilation in the |
| CDC/ACM driver with regard to remote wakeup and self-powered |
| capabilities. From the PX4 team via Lorenz Meier, |
| |
| * Networking / Network Drivers |
| |
| - ARP IP harvesting: Correct backward condition in netmask task. |
| From Max Holtzberg. |
| - Network connection monitor: Fixes a race condition where a loss of |
| connection may not be detected when the connection is lost before it |
| has been accepted (from Max Holtzberg). |
| - TCP/IP Backlog: Fix a critical bug in the TCP/IP backlog |
| initialization: Only the first backlog buffer was getting added to |
| the free list. From Max Holtzberg. |
| - ENC28J60: Fixes and improvements back-ported from the ENCX24J600 |
| to the ENC28J60 by Max Holtzberg. |
| |
| * STM32 Drivers: |
| |
| - STM32 I2C fixes for the STM32 F3 family from John Wharington. |
| - STM32 I2C Correct an error that crept into the STM32 F1 I2C |
| driver with some recent changes. From Librae |
| - STM32 F4: Added some missing CONFIG_SERIAL_TERMIOS support; Fixed |
| some STM32 F4 Timer 8 pin configurations. From CCTSAO. |
| - STM32 SDIO: If CONFIG_SDIO_BLOCKSETUP defined, OS would crash. Now |
| Generate an error if CONFIG_SDIO_BLOCKSETUP is defined; that |
| option is not yet supported by the STM32 SDIO driver. From CCTSAO |
| - STM32 I2C Timers: Some CCER bit settings changed. Submitted by |
| CCCTSAO. |
| - STM32 CAN: Fix access to CAN filter registers. From the PX4 team |
| via Lorenz Meier. |
| - STM32 Kconfig: Fix STM32 UART7/8 Kconfig names and UART DMA. From |
| the PX4 team via Lorenz Meier. |
| |
| * LPC17xx Drivers |
| |
| - Fix #endif with missing #if in USB host header file. Reported |
| by Andrew Bradford, |
| |
| * SAM3/4 Boards: |
| |
| - Corrected DMA-related problems: Bad register definitions, parameters |
| reversed in a function call. |
| - Correct a race condition in the HSMCI driver when an interrupt |
| occurs before the wait for the interrupt begins. |
| - Peripheral clock setup: Correct a typo in a register name. |
| |
| * Atmel AT91 SAMA5D3 |
| |
| - Order of some operations changed in boot-up logic to defer |
| enabling of caching of memory regions until SDRAM is initialized. |
| - Correct handling of spurious interrupts. |
| |
| * Freescale KL25Z Drivers |
| |
| - KL25Z SPI: Correct typo in name of a function. From Alan Carvalho |
| de Assis. |
| |
| * Applications: |
| |
| - apps/examples/composite: Fix a typo that can cause a configuration |
| error. From CCTSAO. |
| - apps/examples/pwm: Clean-up some configuration confusion. |
| - apps/netutils/dhcpd/dhcpd.c: Fixed calculation of the next lease |
| address. From Paolo Messina. |
| - apps/examples/usbmsc: Don't try to control USB trace if we are |
| an NSH built-in task. In that case our attempts are inadequate |
| and only interfere with with other logic that is attempting to |
| to do the same thing (in NSH or in the USB monitor). |
| - apps/examples/usbmsc: IMPORTANT bug fix: Change how the msconn |
| works. Because of recent changes the msconn command was hanging. |
| This was because the USB MSC start-up logic creates a pthread; |
| Now waitpid() will wait until all members of the task group |
| exit. So NSH was hanging in waitpid when msconn started even |
| though msconn returned. The USB MSC logic really should not use |
| a pthread, but we are stuck with that for now. The work-around |
| is the msconn now daemonizes itself so that it so that the pthread |
| is created in a different task group. |
| - apps/nshlib: Fix NSH listing output for the case of a single file. |
| From the PX4 team; provided by Lorenz Meier. |
| |
| NuttX-6.31 |
| ---------- |
| |
| The 98th release of NuttX, Version 6.31, was made on October 28, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.31.tar.gz and |
| apps-6.31.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * General: |
| |
| - Standardized stack checking logic so the interfaces can be used |
| by common stack monitoring logic. |
| |
| * Audio Subsystem and Audio Drivers: |
| |
| - Ken Pettit has finally released his long awaited audio subsystem. |
| This is a generic audio subsystem that is appropriate for the |
| deeply embedded MCU. Current testing has, however, been focused |
| on the VS1053 CODEC chip. |
| - Ken Pettit's VS1053 audio CODEC driver is now functional. |
| |
| * Networking / Network Drivers |
| |
| - Add the prefix ETH0 to all PHY configuration selections. This |
| will allow us to support to Ethernet MAC drivers with two different |
| PHYs (identified with ETH0 and ETH1). Enabled with CONFIG_NETDEV_MULTINIC. |
| - Add MII/RMII PHY definitions for the Micrel KSZ8051 PHY. |
| - Add GMII/GRMII PHY definitions for the Micrel KSZ9021/31 PHY. |
| - New network-optimized, higher-performance sendfile() implementation |
| from Max Holtzberg. |
| - Added a simple routing table. This table is currently only used (1) |
| when we need to look-up an Ethernet device based on an IP address, |
| and (2) in the ARP logic when we need to request the MAC address of |
| the router, vs the MAC address of the peer. |
| - Make net_close() nonblocking and free unestablished connections if |
| no free connections available. From Max Holtzberg. |
| - Changed the meaning of the uip_*input functions. They now return |
| success when a packet is dropped; This is needed for the ENCX24J600 |
| driver that must make a decision to return the packet or not: It |
| should not retry dropped packets. From Max Holtzberg. |
| - David Sidrane has completed integration of the CC3000 networking. |
| This is much more than a network driver: It is a complete |
| replacement for the NuttX networking with off-chip networking support |
| in the CC3000. |
| - Numerous enhancements to the ENCX24J600 driver from Max Holtberg. |
| |
| * Other Common Drivers: |
| |
| - The SST25 serial FLASH MTD driver now includes support for the |
| SST25VF016B. From David Sidrane. |
| - Add a preflight method to the SDIO interface to support the STM32 |
| DMA usage model. From Mike Smith. |
| - Enhanced the MMC/SD SDIO driver to perform DMA preflight operations |
| and fail DMA read/write requests that fail preflighting. From Mike |
| Smith. |
| - Add an ioctl command that can be used to trigger ADC/DAC conversion |
| under application control. |
| |
| * File Systems: |
| |
| - Enhanced the FAT32 filesystem code to understand DMA preflight |
| failures, and to use the file sector buffer as a bounce buffer when |
| a user-supplied buffer is not suitable for DMA. From Mike Smith. |
| |
| * Atmel AT91 SAMA5D3x |
| |
| - Add support so that subsets of the total DRAM (and other external |
| memory) can be added to the heap, leaving other memory reserved for |
| other purposes (like the LCDC framebuffers). |
| |
| * Atmel AT91 SAMA5D3x Drivers: |
| |
| - Use more descriptive task names when starting the EHCI and OHCI |
| monitor tasks. |
| - Added a 10/100Base-T Ethernet (EMAC) driver. |
| - Added a 1000Base-T Ethernet (GMAC) driver. |
| - Added a Real Time Clock (RTC) driver and integrated with the NuttX |
| system time logic. |
| - Added support for /dev/random using the SAMA5D3x True Random Number |
| Generator (TRNG). |
| - Added a Watchdog Timer (WDT) driver. |
| - Added a Timer/Counter (TC) library with interface that make be used |
| by other drivers that need timer support. |
| - Added an ADC driver that can collect multiple samples using the |
| sequencer, can be trigger by a timer/counter, and supports DMA data |
| transfers. |
| - Added a touchscreen driver based on the special features of the |
| SAMA5D3 ADC peripheral. |
| - Added an LCD controller (LCDC) frame buffer driver. |
| - Added a CAN driver. However, testing has been delayed because of |
| cabling issues. |
| - Basic header file support is available for the Image Sensor |
| Interface (ISI) camera interface. Work on the camera driver is |
| underway and is expected in the next release. |
| |
| * Atmel AT91 SAMA5D3x-EK Development Boards |
| |
| - Add OS test support for the FPU test. |
| - Enable the task name feature board configuration sto provide |
| prettier ps command output. |
| - Added NX and NxWM configurations to verify the LCD and touchscreen. |
| There are still some outstanding issues with the NxWM configuration |
| as of this release. |
| - The TRNG and /dev/random are now enabled by default in the demo |
| configuration. |
| |
| * Atmel AT91 SAM3/4 Boards: |
| |
| - Add configuration to select revision 3 of the Arduino Due which has |
| some small but important differences. Suggested by gdi@embedders.org. |
| |
| * STMicro STM32: |
| |
| - Add support for the STM32F207ZE chip. From Martin Lederhilger. |
| |
| * STMicro STM32 Boards: |
| |
| - Add configuration for the Spark Core. The initial check-in is |
| basically the Maple Mini board and subsequent development by David |
| Sidrane is his special Spark emulation hardware. The configuration |
| should be very mature when actual Spark hardware is available. |
| - Support for the Olimex STM32 P207 board added by Martin Lederhilger. |
| - Configuration for the Mikroe STM32F4 board configuration updated for |
| audio support by Ken Pettit. |
| |
| * NXP LPC17xx Boards: |
| |
| - zkit-arm-1769: LED1 is now user controllable after booting. From |
| Rashid Fatah. |
| |
| * Kinetis KL Drivers: |
| |
| - PIT and TPM register definitions header files for the from Alan |
| Carvalho de Assis. |
| - Added low-level getc() function for operation with no file system. |
| The KL25Z can now support NSH in a very minimal system that does |
| not even have a file system. |
| |
| * Kinetis KL Boards |
| |
| - A new configuration called minnsh was added is an experiment to |
| see how small we can get the NuttX footprint and still support NSH. |
| From Alan Carvalho de Assis.. |
| |
| * TI Calypso Phones: |
| |
| - Basic board support for the Motorola C139 (Compal E86) phone. From |
| Craig Comstock. |
| |
| * Applications: |
| |
| - Moved several useful examples from apps/examples to apps/system. |
| This includes USB MSC, USB CDC/ACM, and USB Composite. |
| - New addroute and delroute commands added to NSH in order to manage |
| the network routing table. |
| - Numerous enhancements and updates to the CC3000 example from David |
| Sidrane. |
| - Add a new stack monitor daemon that can be used to constantly |
| monitor stack usage by all threads. |
| - Numerous changes to get NSH working with no file system. Basically |
| this suppresses I/O redirection and replaces file I/O with calls to |
| low-level console read/write functions. Suggested by Alan Carvalho |
| de Assis. |
| - apps/system/nxplayer: A new, command-line media player called |
| 'nxplayer' from Ken Pettit. |
| - apps/examples/random: Add a simple test that dumps values from |
| /dev/random. |
| - apps/examples/adc: Add support so that a ADC driven by software |
| triggering can be tested. |
| |
| * Build System: |
| |
| - The MKDEP tools now support a new argument that identifies the |
| object file path. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 48% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Initialization and Scheduling: |
| |
| - IDLE thread initialization logic should not call group_setupidlefiles() |
| if there are no file descriptors (and, hence, no file system). |
| - Fix some cornercase error handling logic: If sched_releasetcb() is |
| called as part of a failed pthread startup before the flags field in |
| the TCB has been initialized, then a crash occurs. Pointed out by |
| David Sidrane. |
| |
| * Networking / Network Drivers: |
| |
| - Look up of a device using subnet will fail if the packet is being |
| sent out of our subnet (via a router). The fallback here is just to |
| use the only device ("eth0") if the subnet lookup fails (this logic |
| was extended to handle multiple Ethernet devices by adding a simple |
| routing table). |
| - Fix some backward conditional logic in send() that enabled the |
| check if the ARP address is in the ARP table. From Max Holtzberg. |
| - Notify the socket layer from the network monitor if a connection is |
| lost before the monitoring callback has been registered. From Max |
| Holtzberg. |
| - send(): Reset the send timeout when the data is ACKed, not when the |
| data is sent. Remove conditions on checking for timeout. From Max |
| Holtzberg. |
| - Correct how the TCP/IP initial minimum MSS is calculated. Max |
| Holtzberg. |
| - TCP state machine: Move tcp connection into SYN_RCVD state after |
| aception instead of bypassing and moving directly into ESTABLISHED. |
| From Max Holtzberg. |
| - Numerous fixes to the ENCX24J600 driver from Max Holtberg. |
| |
| * USB Drivers: |
| |
| - Change naming of SELFPOWERED and REMOTEWAKEUP to avoid name |
| collisions. Prepend the name of the driver (for example |
| CDCACM_SELFPOWERED). |
| - CDC/ACM class driver: Change the interval for the interrupt |
| endpoint from 0xff (invalid) to 10. This is not a critical |
| change but will avoid a complaint from the Linux driver when |
| it overrides the 0xff value. |
| |
| * ARM Cortex-A5: |
| |
| - Fix an error in data cache clean and invalidate functions: Fix of |
| addresses to cache line boundaries. |
| |
| * Atmel AT91 SAMA5D3x Drivers: |
| |
| - Correct some inconsistencies in the way that USB configuration |
| settings are used. This caused compilation errors in SAMA5 OHCI |
| when USB debug was ON but USB host tracing was off. |
| - When 480MHz UPLL is used to drive OHCI, it should have a divider |
| of 10. However, that does not work. A divider of 5 does. Why?. |
| - OHCI HCD: Fix a place where DMA-related data needed to be flushed |
| to data cache; Fix another where a virtual address was being used |
| in a register where a physical address was required. |
| - HSMCI Driver: TX DMA disabled. It is just not reliable. No idea |
| why. RX DMA is still used. |
| - STM32F103C pinmapping corrections from David Sidrane. |
| |
| * Atmel SAMA5D3x-EK Board |
| |
| - Increase the number of pre-allocated watchdog timers. The default |
| number of 4 was easily being exhausted in the more complex |
| configurations. |
| |
| * STMicro STM32: |
| |
| - STM32 F4 DMA definitions: Typo fixes for UART7 and UART8 DMA |
| configs. From Mike Smith. |
| - DMA priority configuration corrections from Mike Smith. |
| - Changes to the stm32_dmacapable API. In order to correctly |
| verify that a buffer can be transferred, the transfer count and |
| the CCR value are required. Implemented stm32_dmacapable for |
| stm32f1xx devices. Enhanced stm32_dmacapable for stm32f2xx and |
| stm32f4xx devices to check for additional conditions that will cause |
| DMA to fail or lose data. |
| - STM32 F1 DMA fix from David Sidrane: The DMA_CNDTRx register |
| cannot be modified if the DMA channel is disabled. |
| |
| * STMicro STM32 Drivers: |
| |
| - Fix compilation errors from bad bit definitions in ADC and PWM |
| register. From Martin Lederhilger. |
| - DMA-related fixes to the SPI driver from Ken Pettit. |
| |
| * NXP LPC17xx Drivers: |
| |
| - Remove undefined spi_select() prototype. This was causing compile |
| time warnings. |
| |
| * NXP LPC17xx Boards: |
| |
| - zkit-arm-1768: MMC/SD is on SPI, not SSP0. From Rashid Fatah. |
| |
| * C Library |
| |
| - scanf() fixes from kfrolov: 1) sscanf() function hangs in the |
| following example: sscanf("2", "%u,%u,%u,%u", ...), 2) sscanf() |
| returns incorrect number of parsed numbers if some arguments |
| can't be parsed: sscanf("=2", "%u,%u,%u,%u",...)==1 instead of |
| 0, and 3) using of char* instead of const char* in vsscanf |
| function leads to warnings from GCC. |
| |
| * Build System |
| |
| - Dependency generation generation was broken for directories that |
| keep objects in a sub-directory. The MKDEP tools now support a new |
| argument that identifies the object file path. |
| - tools/define.sh: 'cut' no longer works as it once did. Script |
| adapted to observed behavior. |
| |
| * Applications: |
| |
| - Remove a warning from the NSH library when DHCP is not enabled. |
| - Default NSH IP address should be 0x0a000001 (10.0.0.1), not |
| 0xa0000001 (160.0.0.1). Ditto for the gateway. |
| - Add some missing options to the OS test Kconfig file |
| - Fix some bad conditional compilation in the USB monitor. |
| - Fix default I2C frequency used by the I2C tool: 400KHz instead |
| of 4MHz. Suggested by Max Kriegleder. |
| - Increase stack size for the system/info command. Ken Petit |
| reports that this simple command can exceed its 768 stack size |
| under certain conditions. The size is marginal and has been |
| increased to 1024 by default but is also now configurable. |
| - apps/Makefile: Needs to include external/Make.defs if we want |
| allow external applications to participate in the NuttX |
| configuration. Suggested by gdi@embedders.org. |
| - apps/netutils/telnetd: Missing argument to debug statement |
| can cause crashes in certain error conditions. From David |
| Sidrane. |
| - apps/examples/can: Correct an error in a debug statement. From |
| Martin Lederhilger. |
| |
| NuttX-6.32 |
| ---------- |
| |
| The 99th release of NuttX, Version 6.32, was made on December 7, 2013, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.32.tar.gz and |
| apps-6.32.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * General: |
| |
| - Extension and standardization of stack debug logic. Now includes |
| coloration of the IDLE and interrupt stacks as well as the heap. |
| Suggested by David Sidrane. |
| |
| * Audio Subsystem and Audio Drivers: |
| |
| - I2S interface definition. Integrates with audio sub-system. |
| - VS1053 worker thread stack size is now configurable and assigned a |
| name via pthread_setname_np(). From Ken Pettit. |
| |
| * Networking / Network Drivers |
| |
| - Updates and adaptations to support for TI CC3000 wireless module |
| from David Sidrane. These updates include multi-threading support |
| and interface and header file changes to integrate more seamlessly |
| with NuttX applications. |
| |
| * File Systems: |
| |
| - procfs: Add support for a tiny procfs file system. The initial |
| offering is little more that a proof of concept but may be developed |
| further in subsequent releases. |
| - NXFFS: An initial attempt was made to integrate NXFFS with the NAND |
| MTD driver. Changes were made to handle bad blocks. However, I |
| later realized that NXFFS cannot handle NAND because the way that |
| is re-writes blocks is incompatible with the NAND ECC handling. |
| These changes were backed-out so as not to introduce turmoil, but |
| can be re-enabled if needed via configuration option. |
| - NXFFS: Make the start up scan of the media a configuration option. |
| It just takes to long and is not really necessary! Those rare cases |
| where the scan was helpful can be fixed using MDIOC_BULKERASE IOCTL |
| command. |
| |
| * General Drivers: |
| |
| - I2S: A simple character driver was added to support I2S accesses. |
| This driver in its current state is intended only to support I2C |
| testing and would not be appropriate to used for any real driver |
| application. |
| |
| * MTD Drivers |
| |
| - Add a container for an MTD device that can be used to provide a |
| simple, lightweight interface to configuration data storage that |
| resides on some storage media that is wrapped as an MTD device. |
| From Ken Pettit. |
| - New interface definition for lower half NAND drivers. |
| - MTD Nand: Add MTD NAND driver that will support ONFI devices, |
| non-ONFI devices (via table lookup), bad block checking, software |
| ECC (Hamming), and will interact with the lower-half, hardware- |
| specific, NAND driver. Based on BSD-compatible Atmel sample code. |
| - MTD geometry structure is now packed so that it can support larger |
| erase block sizes needed by NAND without increasing the size of |
| the geometry structure. |
| - SST25: Add another SST25 SerialFlash driver, sst25xx.c. This one |
| differs from sst25.c in that it supports larger SST25 parts: In |
| the larger parts support page write instead of byte/word writes |
| like the smaller parts. From Ken Pettit. |
| |
| * USB Drivers |
| |
| - STM32 F1 USB Device: Add support for decoded USB trace strings. |
| From David Sidrane. |
| |
| * ARM |
| |
| - Add more ARM9 cache management functions to flush and invalidate |
| D-Cache for DMA support. |
| |
| * Atmel AT91 SAMA5D3x Drivers: |
| |
| - Many new drivers including CAN, PWM, SSC/I2S |
| - PCK: Add support for programmable clock outputs. |
| - NAND: Driver with hardware ECC and DMA support |
| |
| * Atmel AT91 SAMA5D3x Boards: |
| |
| - SAMA5D3x-EK: Add support for the apps/examples/i2schar test. |
| - SAMA5D3x-EK: Provides board-specific memory controller initialize |
| for NAND flash. |
| - SAMA5D3x-EK: Add support for "auto-mounting" NAND MTD block driver |
| or NXFFS file system. |
| |
| * Atmel AT91 SAM3/4 Boards: |
| |
| - Basic support for the Atmel SAM4E family. From Mitko. |
| |
| * STMicro STM32: |
| |
| - Added support for the STM32F429. From Ken Pettit. |
| - Added support for GPIOK and GPIOJ. From Ken Pettit. |
| |
| * STMicro STM32 Drivers |
| |
| - STM32 F4 OTG FS/HS Device: OTG FS device and host drivers extended |
| so that they can support either the OTG FS peripheral or the OTG HS |
| peripheral (in FS mode). This was done as a quick way to get USB |
| support on the STM32F429 which has only OTG HS. From Ken Pettit. |
| - Added header files and driver framework for the STM32F429 LTDC |
| framebuffer driver. From Ken Pettit. |
| |
| * STMicro STM32 Boards: |
| |
| - Support for the Spark board was completely by Davide Sidrane. The |
| Spark configuration includes integrated CC3000 wireless support, FAT |
| file system on the SerialFlash and a composite device that can be |
| used both to export the FAT file system and to provide a serial |
| interface. |
| - The Mikroe-stm32f4 now uses /dev/config for configuration data |
| storage. From Ken Pettit. |
| - Added support for the STM32F429I-Discovery board from Ken Pettit. |
| - Added board support for the ViewTool STM32F103/F107 board with the |
| STM32F107VCT6 installed. |
| |
| * NXP LPC31xx Drivers: |
| |
| - USB ECHI HCD: Add a driver for the low-/full-/high-speed variant |
| of the EHCI host controller. |
| |
| * NXP LPC31xx Boards: |
| |
| - Board-specific USB host support for the Embedded Artists EA3131 board. |
| (Missing PCA9532 controls). |
| - Add support for the Olimex LPC-H3131 board. Including USB host |
| support (which does not depend on the PCA8532 interface). |
| |
| * Kinetis KL Drivers: |
| |
| - PWM driver for the Freescale Kinetis KL family from Alan Carvalho |
| de Assis. |
| |
| * Kinetis KL Boards |
| |
| - Freedom-KL25Z: Add PWM support from Alan Carvalho de Assis. |
| |
| * TI Stellaris LM3S |
| |
| - Don't initialize .data in start-up logic if not running from FLASH. |
| |
| * Applications: |
| |
| - apps/platform: A new home for platform-specific application code. |
| - Define a common interface that can be used to manage platform- |
| specific configuration data. From Ken Pettit. |
| - apps/examples/configdata: A unit test for the MTD configuration |
| data driver from Ken Pettit. |
| - Aapps/platform/mikroe-stm32f4: dd platform-specific storage of |
| configuration data for the Mikroe-stm32f4. From Ken Pettit. |
| - apps/examples/cc3000: Fine tuning of memory usage from David Sidrane. |
| - apps/system/nxplayer: Play thread stack size is now configurable. |
| All NxPlayer threads now have names assigned via pthread_setname_np(). |
| From Ken Pettit. |
| - apps/examples/i2schar: The I2S test based on the I2S character |
| driver. |
| - apps/examples/hidkbd/hidkbd_main.c: Now calls a function named |
| arch_usbhost_initialize() that must be provided by the platform- |
| specific code. |
| - NSH: |
| |
| - hexdump: Add skip= and count= options to the hexdump command. From Ken Pettit. |
| - Allow USB trace without a USB console. From David Sidrane. |
| - Mount command updates from Ken Pettit. |
| - Add an option to the mkfatfs command to specify FAT12, FAT16, or FAT32. |
| |
| * Tools |
| |
| - tools/mkctags.sh: A script for creating ctags from Ken Pettit. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 50% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * File Systems |
| |
| - FAT: In one error return case, the error return value was not being |
| set, making the failure look like success. From David Sidrane. |
| - mount: SMART FS must be included in the conditional compilation for |
| the set of file systems that require block drivers. From Daniel |
| Palmer. |
| - SmartFS: Fixed a minor bug with SMART partition number reporting |
| that would only be seen if both partition support and multi-root |
| directory support are enabled at the same time. From Ken Pettit. |
| - Deadlock: The inode semaphore must be re-entrant. Here is the re- |
| entrant path that I found: (1) USB host connects to FLASH drive and |
| creates /dev/sda, (2) /dev/sda is mounted, (3) FLASH drive is |
| removed but /dev/sda is not destroyed because there is still a |
| reference on the device because of the mount, (4) umount() is |
| called, taking the inode semaphore, now the driver tries to destroy |
| the block driver by calling unregister_blockdriver(). But (5) |
| unregister_blockdriver() also takes the inode semaphore causing a |
| deadlock if the inode semaphore is not re-entrant. |
| - FAT: Fix a typo in the FAT16 formatting logic. Was this ever able to |
| format a FAT16 volume? |
| |
| * MTD Drivers |
| |
| - MTD Partitions: Fix erase block vs page block confusion. From Ken |
| Pettit |
| - SST25 Serial Flash: Improved write performance by fixing a bug that |
| prevented operation in the faster write mode. From David Sidrane. |
| |
| * USB Drivers: |
| |
| - USB MSC Device: pthread_join() does not work if called from a |
| different task group than the pthread. This is correct behavior, |
| but still a problem. The correct solution would be configure the |
| USB MSC thread to a task, however, this workaround from David |
| Sidrane plugs the hole for now. |
| - USB CDC/ACM, USB MSC, and Composite Device Classes: Un-initialization |
| logic caused re-use of a stale pointer. Changed to a two pass |
| un-initialization for the case of the composite driver: Memory |
| resources are not freed until the second un-initialization pass. |
| From David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F1 USB Device: Fix some errors that cause crashes when the USB |
| was disconnected. From David Sidrane. |
| - STM32 F1 USB Device: Correct EP0 state handling logic when buffers |
| larger than the EP0 packet size are sent. From David Sidrane. |
| - STM32 F1 USB Device: The long outstanding bug involving the handling |
| of OUT SETUP commands has been fixed in the STM32 F1 USB device |
| driver by David Sidrane. |
| - Kconfig: Add missing setup of CAN TSEG1 and TSEG2 values. From |
| Martin Lederhilger. |
| |
| * Tools |
| |
| - tools/mkconfig.c: SMART FS must be included in the conditional |
| compilation for the set of writable file systems. Noted by Daniel |
| Palmer. |
| |
| * Applications: |
| |
| - apps/platform/Makefile: Was not dealing with the bin sub-directory |
| correctly. |
| - apps/system/composite/composite_main.c: The wrong handle was getting |
| nullified. From David Sidrane. |
| |
| NuttX-6.33 |
| ---------- |
| |
| The 100th release of NuttX, Version 6.33, was made on January 30, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-6.33.tar.gz and |
| apps-6.33.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS Interfaces |
| |
| - nanosleep() added. sleep() and usleep() are no longer core OS |
| interfaces. These have been moved into the library and re-implemented |
| as simple wrappers around nanosleep(). |
| |
| * File Systems |
| |
| - procfs restructured by Ken Pettit. Added files for MTD status. |
| - procfs extended to show uptime and task group status. |
| - procfs now shows stack information. |
| |
| * Networking |
| |
| - Add support for the SO_LINGER socket option. Extended from logic |
| provided by Jason Jiang. Enabled with CONFIG_NET_SOLINGER. |
| - TCP write buffering support added. From Jason Jiang. |
| - Changes from Max Holtzberg to improve how network status is |
| reported. New controls to manage carrier detect. |
| |
| * Graphics |
| |
| - Massive reshuffling of files with little or no logic changes. This |
| reshuffling was necessary to build graphics applications with the |
| kernel builds where the graphics application lie in user space and |
| the core graphic server likes in kernel space. Moved much logic out |
| of nuttx/graphics to a new user library, libnx. |
| |
| * Cortex-A5/A8/A9 |
| |
| - Existing Cortex-A5 support updated to include Cortex-A8/9. |
| - Add the syscall.h header file needed for the Cortex-A architecture. |
| - Start-up logic now supports execution from FLASH with .data and |
| .bss in SDRAM. This was not possible prior to this because .bss |
| and .data were initialized before SDRAM was configured. |
| |
| * Allwinner A10: |
| |
| - Basic support for the Allwinner A10 (Cortex-A8) is in place. |
| |
| * Allwinner A10 boards |
| |
| - Support for the pcDuino v1 board has been added. This support |
| is not yet very mature and still lacks many drivers. It is a |
| good starting point, however, if anyone wants to develop A10 |
| support. |
| |
| * Atmel SAMA5D3X |
| |
| - Start-up logic now supports execution from FLASH with .data and |
| .bss in SDRAM. This was not possible prior to this because .bss |
| and .data were initialized before SDRAM was configured. |
| |
| * Atmel SAMA5D3X Boards |
| |
| - Partial logic in place to support the OV2640 camera. Still needs |
| quite a bit of additional logic to be useful. |
| |
| * ARMv7-M |
| |
| - Add support for high priority, nested interrupts. This change |
| effects not only core ARMv-7M logic, but all ARMv7-M MCU logic: |
| LM3S, LM4F, LPC17xx, LPC43xx, SAM3, SAM4, and STM32. See |
| https://cwiki.apache.org/confluence/display/NUTTX/High+Performance%2C+Zero+Latency+Interrupts |
| |
| * STMicro STM32 |
| |
| - Add clocking support for STM32F107 USB OTG FS (which does not yet |
| work) |
| - Single-wire UART support for the F1 series from Thomas Grubler. |
| |
| * STMicro STM32 Boards |
| |
| - The Viewtool board can now be configured to support either the |
| STM32F103VCT6 or the STM32F107VCT6. |
| - The Viewtool STM32F107VCT6 now supports networking with the |
| DP83848C module installed. |
| - Add support for Viewtool SSD1289-based LCD on the Viewtool |
| STM32F103VCT6 board (untested) |
| - Add support for the XPT2046 touchscreen controller on the Viewtool |
| LCD module connected to the Viewtool STM32F103 board. |
| - Added kernel mode build support for the STM3240G-EVAL board. Added |
| a new kernel mode NxWM build configuration |
| - C++ static constructor logic from the nuttx/configs/stm3240g-eval/ |
| directory to the apps/platform/stm3240g-eval/up_cxxinitialize.c |
| where is belongs so that it is available in user-space in the kernel |
| mode build. |
| - Add native Windows build support for the Olimex STM32 P107. From |
| Max Holtzberg |
| - Support for the STM32VL-Discovery board. Contributed by Alan |
| Carvalho de Assis |
| - Added a configuration for testing simple configurations on the |
| PX4FMU v2. |
| |
| * ZiLOG ZNEO Boards |
| |
| - Add an NSH configuration for the Z16F2800100ZCOG ZNEO board. |
| - Added support for the Toyaga 16Z ZNEO board. The 16Z board is |
| based on the ZiLOG ZNEOZ16F2811AL20EG part. See |
| https://github.com/toyaga/16z for further information |
| - Developed a patch to work around a compiler error that is revealed |
| when building the NSH configuration. |
| |
| * Architecture-Independent Drivers |
| |
| - OV2640 Camera Driver. |
| - Support for the Sharp Memory LCD from Librae. |
| |
| * Library |
| |
| - Pattern matching logic extended to handle set of characters and |
| ranges of character values. From Ken Pettit. |
| - sleep() and usleep() moved into the C library. These are not |
| longer core OS interfaces; they are simple wrappers for the |
| nanosleep(). |
| - Add an implementation of gets_s(). |
| - Extend fopen() to include support for C11 exclusive open ("x") |
| open mode. |
| - Add an implementation of stpcpy() |
| - strtol(), strtoll, strtoul(), strtoull(), and strtod() from |
| libc/string to libc/stdlib where they belong. |
| |
| * Header Files |
| |
| - Add rsize_t to include/sys/types.h |
| - Add the C11 thread.h header file |
| |
| * Configuration/Build System |
| |
| - Top level Makefile now supports qconfig and/or gconfig targets that |
| may be used for configuration. These may be used if you build |
| kconfig-frontends with support for kconfig-qconf and/or |
| kconfig-gconf. |
| - Add CONFIG_DEBUG_NOOPT. Now you can independently enable/disable |
| debug symbols and optimization |
| - File system related header files moved to include/nuttx/fs |
| - Video related header files moved to include/nuttx/video |
| - Changes for native Windows build: fix creation of a .version file |
| if one does not exist. Make sure that the APPDIR environment |
| variable is set before configuring. From Max Holtzberg. |
| - Board configuration sub-directory can now be specified. The default |
| need not be used. This is only useful when CONFIG_ARCH_BOARD_CUSTOM |
| is selected and there is no meaningful default sub-directory. |
| - Many functions renamed to better conform with the naming standard: |
| up_buttoninit() renamed to board_button_initialize(), up_buttons() |
| renamed to board_buttons(), up_irqbutton() renamed to |
| board_button_irq(), up_ledinit() renamed to board_led_initialize(), |
| up_ledon() renamed to board_led_on(), and up_ledoff() renamed to |
| board_led_off(). All prototypes removed from board.h header files. |
| Now ONLY prototypes in include/nuttx/arch.h. |
| |
| * Applications |
| |
| - NSH: Refactor. Separate NSH command handling and command execution |
| from NSH line parsing. |
| - NSH: Will now support multiple commands on a command line, each |
| separated with a semi-colon. |
| - NSH: Add support of commands enclosed in back quotes as command |
| arguments. |
| - NSH: Can now handle arguments that are concatenations of constant |
| strings, command return data, application return data, and |
| environment variables. |
| - NSH: Add true and false commands. |
| - NSH: Add support for while-do-done and until-do-done loops. These |
| only work when executing a script file because they depend on the |
| ability to seek in the file to implement the looping behaviors. |
| Can be conditionally compiled out to reduce footprint. |
| - NSH: Loosen up if-then-else-fi syntax to allow a command to be on |
| the same line as the then or else tokens like: |
| "if true; then echo true; else echo false; fi". More like bash. |
| - NSH: Add a break command that can be executed with a loop to |
| terminate the loop immediately. |
| |
| - system/inifile: A simple .INI file parser. |
| - system/vi: Add support for a tiny, VI work-alike editor. This is |
| a minimal full screen editor that works with a terminal emulator |
| that using VT100 commands. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * kconfig-fronted Configuration: |
| |
| - Conversion of old configurations to use the kconfig-frontends |
| tool is an ongoing effort that will continue for some time. |
| At this time, only 53% of the configurations have been converted |
| to use the kconfig-frontends tools. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Core OS |
| |
| - Added missing sem_timedwait() system call. |
| |
| * Networking |
| |
| - Prevent tcp_connect callback from being double freed. From Max |
| Holtzberg |
| - uiplib: Support new definitions and state passing for network |
| device status. From Maz Holtzberg. |
| |
| * File Systems |
| |
| - FAT: (1) A correction to FAT cluster allocation, and (2) Fix to some |
| root directory logic that was conditionally done only for FAT 32. |
| Apparently this needs to done for all FAT types. Both from Andrew |
| "Tridge" Tridgell via Lorenz Meier. |
| |
| * Binary Formats |
| |
| - Fix a small memory leak when attempting to load a program from a file. |
| |
| * Cortex-A8/9 |
| |
| - Fix some errors in the cache invalidation logic (only seem to matter |
| for Cortex-A8). |
| - Add more nop's after enabling the MMU. The cortex-a8 seems to need |
| these |
| |
| * Graphics |
| |
| - Fix a typo that caused a compilation error when |
| CONFIG_NXCONSOLE_BPP < 8. From Librae |
| |
| * ARMv7-M |
| |
| - Correct alignment of RAM vector table. |
| - Interrupt handling: Do not disable and enable the IRQ on each |
| entry, (2) this interferes with controlling the IRQ interrupt |
| setting from interrupt handlers, and (3) up_disable_irq() does |
| not work anyway so that this has never done anything. |
| - Fix all implementations of up_disable_irq() for all Cortex-M3 and |
| M4 architectures: To enable an interrupt on the Cortex-M3/4 CPU, |
| you need to set a bit in the ISER register. To disable the |
| interrupt, you need to set a bit in the ICER register. Existing |
| logic was trying to disable interrupts by clearing the bit in the |
| ISER register. That will not work; writing a '0' to the ISER |
| register has no effect. That means that up_disable_irq() was |
| doing nothing! It turns out that that is not really important |
| because up_disable_irq() is not really used for that purpose. But |
| some spurions STM32 ADC interrupts have been reported to me and this |
| turned out to be the cause in that case. Thanks to Manuel Stühn for |
| the tip. |
| |
| * STMicro STM32 |
| |
| - Fix configuration and pin definitions that would prevent building |
| USB for the connectivity and performance lines. |
| - STM32L15xx: Fix a typo in USB pin definitions |
| - Fix pin definition names for SPI2 MOSI and MISO. Noted by Brian Webb |
| - Various fixes for STM32F103ZE SPI3 pin mapping definitions. From |
| Steve Redler IV |
| |
| * STMicro STM32 Boards |
| |
| - Olimex STM32-P107: Failed to build if SPI3 for UEXT is not remapped. |
| From Max Holtzberg |
| |
| * x86 Boards |
| |
| - Add a configuration option to select the -m32 compiler option when |
| building for a 32-bit target on a native 64-bit compiler. So far, |
| only used for the qemu/i486 configuration. |
| - Patch from Matt Campbell to fix 'Error: .size expression for idle_stack |
| does not evaluate to a constant". |
| |
| * Library |
| |
| - strftime(): Needs null termination on the generated string. From |
| Max Holtzberg. |
| - Typo in ctype.h macro name: iscntrl(), not iscontrol(). |
| - If there are no arguments (argc == 1), then getopt() will leave the |
| optind variable in an undefined state (2014-1-20). |
| - ARMv7-M memcpy(): Assembler changes with the gcc-47 distribution |
| from ARM mean that we need to be explicit about branch sizes; one |
| or more of the wide branch opcodes results in bad table branching. |
| From Mike Smith. |
| |
| * Configuration/Build System |
| |
| - Fixes for some tools/ for Windows build issues from Max Holtzberg. |
| - Config.mk: 'cypath' must be called if we are using a Windows native |
| toolchain with the Cygwin 'make' to convert paths to proper |
| Windows paths. From Richard Cochran. |
| - ARM Makefile: Dependency directory list is now computed from the |
| VPATH. From Richard Cochran. |
| - builtin/Makefile: Fixes for native Windows build from Max Holtzberg. |
| - Refactor some configuration dependencies: NSH networking features |
| should depend on netutil selections; netutil selections, in turn, |
| should depend on networking selections. |
| |
| * Applications |
| |
| - NSH: Modified the df -h logic to eliminate truncating numbers in |
| conversion (like 7900 -> 7M). From Ken Pettit. |
| |
| NuttX-7.1 |
| --------- |
| |
| The 101st release of NuttX, Version 7.1, was made on March 15, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.1.tar.gz and |
| apps-7.1.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| The previous NuttX version was 6.33. The NuttX minor version number is |
| incremented on each release, but the major version number is incremented |
| only when an incompatibility with previous versions is included in the |
| release. In this case, the legacy, manual configuration is no longer |
| supported by the NuttX build system beginning with NuttX 7.1. Only the |
| newer configurations generated by the kconfig-frontends tools will generate |
| viable NuttX configurations. |
| |
| All board configurations in the NuttX source tree have been converted to |
| use the newer configuration, but if you have some older style configurations |
| for you board, you will need to convert those configurations to use the |
| kconfig-frontends tools before taking any new code from the repository. See |
| https://cwiki.apache.org/confluence/display/NUTTX/Converting+Legacy+Configurations+to+Use+kconfig-mconf |
| for some guidelines. |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - System time logic now includes logic to measure and calculate the |
| CPU load percentage (from David Alessio). This CPU load logic |
| extended to keep counts on each thread. The per-thread CPU is |
| now reported in the procfs under <pid>/loadavg An asynchronous, |
| "external" clock may be used to drive the CPU load calculations |
| for more accurate measurements when needed. |
| |
| * File Systems: |
| |
| - As mentioned above, the per-thread CPU load information is now |
| reported in the procfs under <pid>/loadavg. |
| - Many file system interfaces have been extended to operate on the |
| top-level NuttX pseudo filesystem. These include rmdir, mkdir, |
| rename, and unlink. This capability can be disabled with |
| CONFIG_DISABLE_PSEUDOFS_OPERATIONS in order to keep the footprint |
| small. |
| |
| * Networking: |
| |
| - Numerous updates and improvements to the CC3000 driver from David |
| Sidrane. |
| |
| * Common Drivers: |
| |
| - Defined a mouse interface that is very similar to a touchscreen |
| interface, but allows reporting of all mouse buttons. Also, unlike |
| touchscreen drivers, mouse drivers need to report positional data |
| with no button is pressed so that the mouse position can drive a |
| cursor. |
| - Added support for a USB HID boot mouse device. Cursor support is |
| not integrated and must be provided by the application based upon |
| the reported mouse data. |
| - Support added for the MIO283QT9A LCD from Toby Duckworth. |
| |
| * Atmel SAMA4E: |
| |
| - Added complete architecture support for the Atmel AT91 SAM4E |
| Cortex-M4F parts. |
| |
| * Atmel SAM4E Board Support: |
| |
| - Add board support for the SAM4E-EK board. |
| |
| * Atmel SAM4E Drivers: |
| |
| - Added logic to manage the Cortex-M Cache Control block. |
| - Developed and integrated an Ethernet MAC driver for the SAM4E. |
| - Backported the SAMA5 SPI driver to the SAM3/4 architecture. The |
| SAMA5 version supports both multiple SPI peripherals as needed by the |
| SAM3A and SAM3X and also supports DMAC (but not PDC) needed by the |
| SAM4E. |
| |
| * Atmel SAM D20: |
| |
| - Added basic architecture support for the Atmel AT91 SAM D20 |
| Cortex-M0+ parts. |
| |
| * Atmel SAM D20 Board Support: |
| |
| - Added basic support for SAM D2 Xplained Pro board. Currently, the |
| NuttShell (NSH) works reliably over a serial port. An SPI driver |
| has also been developed. Work with the SAM D20 has been temporarily |
| stopped, however, in order to focus on the SAM4E-EK. |
| |
| * TI Tiva TMC4C123G: |
| |
| - Added architecture support for the TI Tiva TM4C123G parts. This was |
| merged into the existing support for the LM3S and LM4F families. |
| All directory, file, and function references changed from lm to tiva. |
| |
| * TI Tiva TMC4C123G Board Support: |
| |
| - Added basic board support for the TM4C123G-Launchpad. As of this |
| release the TM4C123G-Launchpad board support is untested and likely |
| incomplete. |
| |
| * STMicro STM32 Boards: |
| |
| - The Mikroe STM32F4 can now support the newer MIO283QT9A LCD. From |
| Toby Duckworth. |
| - Miscellaneous changes to better support FPU on STM32F429 Discovery |
| from David Alessio. |
| |
| * NXP LPC2378 Drivers: |
| |
| - Incorporated I2C and SPI drivers for the LPC23xx from Lizhuoyi. |
| |
| * QEMU i486 Drivers: |
| |
| - New QEMU keyboard and VGA drivers from Lizhuoyi. |
| |
| * Documentation: |
| |
| - Added a coding standards document. See |
| https://nuttx.apache.org/docs/latest/contributing/coding_style.html |
| |
| * Configuration/Build System: |
| |
| - A configuration option, CONFIG_DEFAULT_SMALL, was added to select |
| default values for configuration variables based upon whether you |
| want a smaller footprint or more features. This is not very useful |
| if you are modifying existing configurations because then the |
| default values do not apply. |
| - CONFIG_DEFAULT_SMALL has been defined on all tiny MCU configurations |
| so that they do not grow so rapidly when new, optional features are |
| added. |
| - The legacy, manual configuration is no longer supported by the |
| NuttX build system. Only the newer configurations generated by |
| the kconfig-frontends tools will generate viable NuttX |
| configurations. All board configurations in the NuttX source tree |
| have been converted to use the newer configuration, but if you have |
| some older style configurations for you board, you will need to |
| convert those configurations to use the kconfig-frontends tools. See |
| https://cwiki.apache.org/confluence/display/NUTTX/Converting+Legacy+Configurations+to+Use+kconfig-mconf |
| for some guidelines. |
| |
| * Applications: |
| |
| - NSH can now use an EMACS-like command line editor. This CLE, is |
| really more like the traditional readline than is the default, tiny |
| the NuttX readline . |
| - The touchscreen example can now be configured to work with either a |
| touchscreen or a mouse device. |
| - Several NSH commands can now be used to operate on objects in the |
| top-level pseudo-filesystem: rmdir, mkdir, mv, and rm. This |
| capability can be disabled with CONFIG_DISABLE_PSEUDOFS_OPERATIONS |
| in order to keep the footprint small. |
| - If both the CPU load feature and the procfs features are enabled, |
| then the NSH 'ps' command will show the CPU load used by each |
| thread. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Core OS: |
| |
| - task_terminate() always returned an error because the return value |
| was not being set correctly (from Gosha). |
| - nanosleep() Fix a missing call to re-enable interrupts (from Jason |
| Jiang). |
| |
| * File Systems: |
| |
| - Fixed an error in the FAT logic that can cause file corruption. The |
| error conditions are rare and only seen with very large files (from |
| Andrew Tridgell). This replaces a previous, partial fix for the same |
| problem. |
| - Fixed memory leaks in the NXFFS open() and stat() implementations |
| (from Lzyy). |
| - The interfaces include opendir(), readdir(), et al, were modified so |
| that errors will not be reported if you attempt to list a empty |
| pseudo-directory. |
| |
| * Networking: |
| |
| - Fix one place where the connection reference count was not being |
| decremented in the socket close() logic. This is really a cosmetic |
| change BUT when CONFIG_DEBUG_NET is enabled, it will cause assertions. |
| - Backed out a small part of the NuttX 6.33 write buffering changed. |
| David G says that this causes problems in connecting to a server. |
| - In DHCPD, there was a place where the logic was calling ntohl() |
| inappropriately; the address was already in the correct order. How |
| could DHCPD have worked with this bug? |
| |
| * TI Tiva/Stellaris Drivers: |
| |
| - Fixed cut'n'paste error that prevented UARTS2-7 from being used with |
| the LM4F120 Launchpad. |
| - Fixed several errors there were unmasked with UARTs > UART2 are |
| enabled (grom Gosha). |
| |
| * Allwinner A10 Drivers: |
| |
| - Fixed cut'n'paste error that prevented UARTS2-7 from being used with |
| the pcDuino. |
| |
| * NXP LPC17xx Drivers: |
| |
| - Fix an compilation error that crept into the LPC17xx USB host driver. |
| |
| * STMicro STM32 Drivers: |
| |
| - Fix cloned typo in the serial driver: FLOWCONTROL vs FLOWCONROL. |
| - Disable SPI before changing DPI CR1 register (from David Sidrane). |
| - stm32 TIM: Set the timer CCMR when selecting timer channel. From |
| David Sidrane. |
| - Fix typo in a Makefile: stm32_pwm.c not stm32_psm.c. Noted by Max |
| Kriegleder. |
| |
| * Library: |
| |
| - More sscanf() bug fixes from David Sidrane. |
| |
| * Header files: |
| |
| - cstdbool: Ignore _Bool8 if CONFIG_C99_BOOL8=y |
| |
| * Configuration/Build System: |
| |
| - Several changes to restore the broken native Windows build |
| |
| * NuttShell (NSH): |
| |
| - Use strncpy vs strcpy in the Telnet console logic to avoid |
| overrunning the username and password buffers (from Bertold Van den |
| Bergh). |
| - Add a newline after printing the file in the 'cat' command. This |
| prevents the NSH prompt from be in the same line as the final line |
| of the file in the case where there is no newline at the end of the |
| file. |
| |
| NuttX-7.2 |
| --------- |
| |
| The 102nd release of NuttX, Version 7.2, was made on April 29, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.2.tar.gz and |
| apps-7.2.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Add support for CLOCK_REALTIME. From Macs N. |
| |
| * Network Utilities: |
| |
| - Add a very primitive NTP client. |
| - DNS resolver: Long needed major clean up for coding style and |
| unification of naming conventions (resolv vs dns). |
| |
| * Common Drivers: |
| |
| - Add a new MTD driver that can be used to contain another driver and |
| force its apparent sector size to be 512 bytes. |
| - If DCD can support queuing of stall requests, then the USB MSC stall |
| work around delays are not necessary. |
| - Redesign threading module used with the USB MSC driver. It was using |
| pthreads before and these were changed to a kernel thread. The reason |
| for this has to do with task grouping: A pthread is a memory of the |
| group of the task that started it. A kernel thread is independent of |
| the task that started in (other than knowing it as the parent). This |
| allows me to remove so kludge logic to "deparent" the pthread on |
| startup. |
| - Update the MIO183QT-9A LCD driver to support reading from the LCD. |
| From Toby Duckworth. |
| - Timer "upper half" driver and l"lower half" interface definition from |
| Bob Doiron. |
| |
| * Atmel SAM4E/4S Board Support: |
| |
| - All SAM4E configurations updated to run with 120MHz CPU speed and |
| with the CMCC enabled. |
| - Support for the SAM4S Xplained Pro board from Bob Doiron. |
| - Add watchdog driver. From Bob Doiron. |
| |
| * Atmel SAM4E/4S Drivers: |
| |
| - Add a USB full speed device driver (UDP) for the SAM4E. |
| - Add support in HSMCI and SPI drivers to invalidate cached memory if |
| the CMCC is enabled. |
| - Add logic to handle SPI word widths > 8 |
| - Port RTC driver from SAMA5 to SAM3/4. From Bob Doiron. |
| - HSMCI: Extensions from Bob Doiron needed to support PDC-based HSMCI |
| DMA transfers. Verified on the SAM4S Xplained Pro. |
| |
| * Atmel SAMA5: |
| |
| - Add support for the SAMA5D36 chip. |
| - Add functions to calculate PLLACK, PCK, and MCK frequencies given |
| the main clock frequency. |
| - Implemented RAM functions. When booting directly into NOR flash, |
| reconfiguring the PLL while executing out of NOR FLASH causes |
| crashes. This was fixed by David Sidrane by implementing RAM |
| functions. The killer code is copied and executed from ISRAM and |
| the crash is avoided. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - Add support for the SAMA5D3 DBGU. |
| |
| * Atmel SAMA5 Board Support: |
| |
| - Add a board support configuration for the Atmel SAMA5D3 Xplained |
| board running out of SDRAM. When booting from SDRAM, start-up logic |
| needd to query the PMC registers to determine the MCK, PCK, etc. |
| - For all SAMA5 boards, added support for 528MHz clocking. |
| |
| * TI Tiva/Stellaris: |
| |
| - Modify the logic to disables the interrupts and sets the default |
| interrupt priority so that it uses the ICTR to get the number of |
| interrupt lines/registers. This is instead of using some fixed |
| number of initializations based a priori knowledge of the number |
| of interrupt lines in the MCU. |
| |
| * STMicro STM32 |
| |
| - Add support for the STM401RE. From Frank Bennett. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F4Discovery: Add support to register keyboard and mouse |
| classes if so configured. From Leo. |
| - Add support for the Nucleo-F401RE board. From Frank Bennett. |
| |
| * STMicro STM32 Drivers: |
| |
| - Add STM32 Ethernet IGMP hashing support. From Manuel Stühn. |
| - OTG FS Host: USB host tracing added by Leo. |
| |
| * Freescale Kinetis |
| |
| - Modify the logic to disables the interrupts and sets the default |
| interrupt priority so that it uses the ICTR to get the number of |
| interrupt lines/registers. This is instead of using some fixed |
| number of initializations based a priori knowledge of the number |
| of interrupt lines in the MCU. |
| |
| * NXP LPC17xx |
| |
| - Modify the logic to disables the interrupts and sets the default |
| interrupt priority so that it uses the ICTR to get the number of |
| interrupt lines/registers. This is instead of using some fixed |
| number of initializations based a priori knowledge of the number |
| of interrupt lines in the MCU. |
| |
| * ZiLOG ZNEO Drivers |
| |
| - Added ZNEO ESPI driver. |
| |
| * Library: |
| |
| - Finish incomplete support for ferror(). From Macs N. |
| |
| * Documentation: |
| |
| - UsbTrace.html: Add some discussion of the USB monitor. |
| |
| * Configuration/Build System: |
| |
| - compiler.h: Add macro UNUSED() that can be used to eliminate |
| warnings about variables that are set to values that are not |
| used. |
| |
| * Debugging Support: |
| |
| - Add a configuration option to enable dumping of the USB trace buffer |
| on assertion. |
| |
| * Applications: |
| |
| - IGMP Example: Fill out Kconfig file; update makefile so that the |
| IGMP example can be used as an NSH built-in application. From Manuel |
| Stühn. |
| - lcdrw Example: Fill out empty Kconfig file. |
| - touchscreen Example: Add a configuration option to indicate if |
| architecture-specific initialized is required, yes or no. |
| - System usbmsc: Back out the USBMSC daemon... it is no longer needed |
| with the recent fix to the USBMSC class driver. |
| - NSH: malloc/free IOBUFFER for 'cat' and 'hexdump' commands instead of |
| using the stack. From Bob Doiron. |
| - cpuhog, serialblaster, and serialrx Examples: Stress test examples |
| added by Bob Doiron. |
| |
| Bugfixes (see the ChangeLog for details). Some of these are very important: |
| |
| * Core OS: |
| |
| - errno_get_errno_ptr() and getpid(): Add some checks. If these |
| functions are called very early in initialization before the tasking |
| structures are initialized, they would not behave properly. |
| |
| * Networking: |
| |
| - IGMP-related bug fixes from Manuel Stühn. |
| - In netdev_findbyaddr(), skip network devices that are in the "down" |
| state. It does not make sense to consider an address match with a |
| "down" device. From Brennan Ashton. |
| |
| * Network Utilities: |
| |
| - DHCPD: The correct value of the PAD option. Should be zero, not |
| one. From Brennan Ashton. |
| - Corrections to the NTP client from Manuel Stuehn. |
| |
| * Common Drivers: |
| |
| - usbhost.h: Fix some USB HID-related conditional compilation. From Leo. |
| - USB HID mouse driver: Don't include NAKs from the device in the error |
| count. From Leo. |
| |
| * TI Tiva/Stellaris: |
| |
| - Add corrected control logic for TM4C125GXL based on logic from Daniel |
| Carvalho with modifications. The LM4F120 also works well with this |
| change. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F2 SPI: Correct a mapping for SPI MOSI pin. From dlsitzer. |
| - OTG FS Host: Fixes related to low-speed devices and interrupt |
| endpoints from Leo. Necessary in order to use a USB HID mouse |
| device. |
| - STM32 SDIO: The dmaflight method must be conditioned on |
| CONFIG_SDIO_PREFLIGHT. Noted by Pelle Windestam. |
| - Sourceforge Ticket #26. up_prioritize_irq should not be called |
| if CONFIG_ARCH_IRQPRIO is not defined. |
| |
| * Atmel SAM3/4: |
| |
| - Fix some backward conditional compilation in the start-up logic. |
| - Fix initialization of the default interrupt priorities. This is |
| a critical bug fix! |
| - SAM4S: Fix error in macros that disable peripheral clocking. From |
| Bob Doiron. |
| |
| * Atmel SAMA5: |
| |
| - Fix double mapping of SDRAM when executing out of SDRAM. In this |
| case, the SDRAM was already mapping in arm_head.S. |
| - In clock configuration, the BMS bit handling was fixed to match |
| what the HW really does. From David Sidrane. |
| - TLB Bufferable bit did not do what I thought it was going to do. |
| I though I was selecting a write-through cache, but the result was |
| that all caching was disabled and NOR FLASH accesses were very slow. |
| - Move the un-definitions of __ramfuncs__ from the clock configuration |
| .c file to the .h file. Otherwise, the attribute will be applied |
| differently for the prototype and the function definition. |
| Sourceforge patch 38 from Luciano Neri. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - Fix a case in the UDPHS driver where received status was not being |
| cleared, causing OUT SETUP commands to fail. |
| - TWI data sending fails to increment the number of bytes transferred |
| on first byte sent. from David Sidrane. |
| - If running from SDRAM, then BOARD_MCK_FREQUENCY is not a constant |
| and cannot be used in conditional compilation. All drivers fixed |
| EXCEPT for the PWM and Timer/Counter drivers which will need some |
| more extensive redesign. |
| |
| * Atmel SAMA5 Boards: |
| |
| - SAMA5D3x-EK: The red LED is controlled by PE24 which is also the |
| camera/ISI interface reset line. So if the a camera is installed, |
| then we must avoid controlling the red LED or we inadvertently |
| also reset the camera module. Noted by David Sidrane. |
| - Header files reference type xcpt_t in certain configurations and |
| so must include nuttx/irq.h. This is Sourceforge bug 25 submitted |
| by Luciano Neri. |
| |
| * NXP LPC17xx Drivers |
| |
| - arm/src/lpc17xx/Kconfig and lpc17_ethernet.c: The default interrupt |
| priority should be default, not the highest priority (2014-4-19). |
| |
| * ZiLOG ZNEO |
| |
| - Fix calculation of timer reload and prescaler. The timer frequency |
| was way too fast. |
| |
| * Library: |
| |
| - strncpy(): Change ordering of test and copy. Logic would have |
| failed if n=0; one byte was always copying before testing |
| for the end of the copy. |
| - Fix a counting error in the return value from sscanf(). Noted by |
| kfrolov. Also, sscanf() should return EOF if no values were |
| converted. |
| - Fix a logic error in ftell(). It was simply using the file offset |
| and did not take into account data buffered in memory. From Macs N. |
| - sccanf(): Use stroul() vs strol() with %u format otherwise, range |
| of values is restricted because of sign bit. From kfrolov. |
| |
| * Configuration/Build System: |
| |
| - Fix a build error that occurs when only USB device tracing is enabled. |
| |
| * NuttShell (NSH): |
| |
| - Fix NuttShell version number display in the NSH welcome message. |
| version.h was not being included. |
| |
| * Other Applications: |
| |
| - sysinfo: CONFIG_VERSION_BUILD is a string an needs to be |
| printed with %s, not %d. Noted by Librae. |
| - nxplayer: Compilation failure in one configuration reported by |
| Manuel Stuhn. |
| - System sdcard: Remove an STM32 dependency. From Bob Doiron. |
| - telnetd Example: Naming is confused. In someplaces 'telnetd', |
| and in others 'shell.' All changes to telnetd. Noted by Pelle |
| Windestam. |
| |
| NuttX-7.3 |
| --------- |
| |
| The 103rd release of NuttX, Version 7.3, was made on June 25, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.3.tar.gz and |
| apps-7.3.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Dynamic loader: Framework to support Pascal P-Code as a binary |
| format that can be exec'ed from a file system. |
| - Dynamic Loader: Extend the binfmt interface to handle error |
| conditions where format-specific clean-up is needed in the event |
| of error conditions. This is needed by the P-Code binfmt. |
| |
| * Networking |
| |
| - IOB: Add a generic I/O buffer chain logic. This logic uses small, |
| pre-allocated buffers that can be chained together to support |
| transfers of any size, using fewer resources and also without |
| committing in advance to a TCP window size. There is now only |
| one I/O type used in the networking and it is these I/O buffer |
| chains. |
| - TCP Write Buffering: TCP write buffering logic converted to use |
| I/O buffer chains. |
| - TCP Read-Ahead Buffering: TCP read-ahead buffering logic converted |
| to use I/O buffer chains. |
| - Includes logic to support throttling of read-ahead buffering if |
| the read-ahead buffering is competing with write buffering for |
| I/O buffers. |
| - Raw Sockets: Add support for the AF_PACKET socket family. From |
| Daniel Lazlo Sitzer. |
| |
| * Common Drivers: |
| |
| - W25 Serial FLASH driver extended by Mark Whitehorn to support the |
| 8Mbit W25Q80BV part. |
| - Add support for Fujitsu MB85RS1MT RAMTRON part. From Charles Ash. |
| - Enhancements to the generic timer interface to support capture mode |
| from Bob Doiron. |
| - Add an rxflowcontrol method to the serial interface to better |
| support RX flow control. This involves common changes in addition to minor updates to all MCU-specific serial drivers (only fully implemented for the STM32). From Jussi Kivilinna. |
| |
| * Atmel SAM4C |
| |
| - Add support for the SAM4CM family. From Max Neklyudov. |
| |
| * Atmel SAM4E/4S Drivers: |
| |
| - RTT driver from Bob Doiron. Also added high resolution RTC |
| emulation using the RTT for the sub-second counter. |
| |
| * Atmel SAM4E/4S Board Support: |
| |
| - The SAM4S Xplained Pro now uses the extended timer/counter |
| features. From Bob Doiron. |
| - Added a touchscreen and LCD driver for the SAM4E-EK board (the LCD, |
| however, not yet fully functional). |
| |
| * Atmel SAMA5: |
| |
| - Optimized, high performance, assembly language memcpy(). This is |
| the same optimized memcpy() function that Mike Smith brought in |
| for the ARMv7-M with minor tweaks by David Sidrane to work with |
| the ARMv7-A. |
| - Basic support added for the SAMA5D4 family. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAMA5D4: New drivers unique to the SAMA5D4: XDMAC, SAIC, and |
| others. |
| |
| * Atmel SAMA5 Board Support: |
| |
| - SAMA5D4-MB: Initial board support for the SAMA5D4-MB/EK boards. |
| |
| * STMicro STM32 |
| |
| - Add support for the STM32152 and STM32162 Medium+ density parts |
| (plus miscellaneous other improvements to the original STM32151 |
| logic). From Jussi Kivilinna and Sami Pelkonen. |
| |
| * STMicro STM32 Boards: |
| |
| - Support for the Olimex STM32 H405 board contributed by Martin |
| Lederhilger. |
| |
| * STMicro STM32 Drivers: |
| |
| - Implement the rxflowcontrol method to the serial interface to better |
| support RX flow control. From Jussi Kivilinna. |
| |
| * NXP LPC17xx Drivers: |
| |
| - Added support for the RTC, ADC, DAC, Timers, PWM and MCPWM |
| drivers. From Max (himax). |
| |
| * NXP LPC17xx Boards: |
| |
| - Support for the RTC, ADC, DAC, Timers, PWM and MCPWM integrated |
| in the LPCXpresso LPC1768 board support. From Max (himax). |
| |
| * Library: |
| |
| - Add support for seek-able streams. |
| |
| * Configuration/Build System: |
| |
| - Restructured network directories, header files, and naming to |
| better modularize the networking and to better integrate the |
| networking with the rest of NuttX. |
| |
| * Applications: |
| |
| - prun: An NSH built-in application that can be used to run |
| Pascal P-Code programs either programmatically or from the NSH |
| command line. |
| - netpkt: A "raw" socket test from Lazlo Sitzer. |
| - hex2bin: A library and built-in task to convert from |
| Intel HEX to binary format. It can write the binary data to a file or it can store the binary data to memory (to support, for example, a loader). |
| |
| 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: |
| |
| - Dynamic Loader: Fix an error in a symbol table search function. |
| Noted by Pelle Windestam. |
| - Dynamic Loader: Fix a critical error in exec(); argv was not |
| being passed. |
| - mq_notify: Test for a valid signal number was inverted; this |
| function could not have been working correctly before??? From |
| eero.nurkkala. |
| - Fix typo in conditional compilation: CONFIG_CLOCK_MONOTONIC vs. |
| CLOCK_MONOTONIC. From Manuel Stühn. |
| |
| * Graphics |
| |
| - Fix typos in several RGB conversion macros. |
| |
| * Networking: |
| |
| - Modify TCP timeout handling to provent situations where connections |
| may not be freed. From Max Holtzberg. |
| - Improved TCP fallback allocation logic from Max Holtzberg. Also, |
| fallback mechanism is disabled when SO_LINGER is to prevent |
| deadlocks. |
| - Write Buffering: Add checks from buffer allocation failures. From |
| Max/Himax. |
| |
| * Network Utilities: |
| |
| - webserver: httpd_fs_open() should return OK on success and ERROR on |
| failure, not 1 and 0. |
| |
| * Common Drivers: |
| |
| - Make sure that all references to up_prioritize_irq() are |
| conditioned on CONFIG_ARCH_IRQPRIO. Problem noted by Mike Smith. |
| - CC3000: Correct SPI mode for CC3000 is CPOL=0 CHPA=1. From Jussi |
| Kivilinna. |
| - CC3000: Fix a race condition in thread start-up logic. From Jussi |
| Kivilinna. |
| - CC3000: Additional fixes including a compilation failure if POLL is |
| enabled. From Jussi Kivilinna. |
| |
| * USB Drivers: |
| |
| - CDC/ACM and PL2303 device: Reset RX head to avoid resending last |
| serial data when USB cable disconnected/re-connected. From |
| Lizhuoyi. |
| |
| * TI Tiva/Stellaris Boards: |
| |
| - The Nucleo-F401RE has no on-board crystals and, hence, needs to run |
| with the PLL input from the on-chip HSI clock. |
| |
| * STMicro STM32 Drivers: |
| |
| - Serial: Handle configuration for the case of 8-bit data with |
| parity. From Freddie Chopin. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - There was a cloned error in all SAM3/4 board configurations (and |
| for a few other architectures as well). Button interrupts not |
| being disabled after being detached. As a result, unexpected |
| interrupts could be received after the button interrupt was |
| detached. |
| |
| * Atmel SAMA5: |
| |
| - Fix some critical typos in the SAMA5D3 DMA definitions. |
| |
| * STMicro STM32 Drivers |
| |
| - I2C: Add an alternative I2C implementation for the STM32 F103 that |
| works around errata in that specific part. From Patrizio Simona. |
| - RTCC: Add retry logic to RTC initialization. It sometimes takes |
| longer for the RTC to initialize, at least as noted on an F2 part. |
| From Daniel Lazlo Sitzer. |
| |
| * NXP LPC17xx Drivers |
| |
| - GPDMA: Fix an error when DMA is started: The read-modify-write |
| fails when the DMA is started. This is because the value read is |
| not the same as the value set (on write it is the number of |
| transfers to do; on read it is the number of transfers completed). |
| From Lizhuoyi. |
| |
| * Library: |
| |
| - snprintf(): If the size passed to snprintf() is zero, then |
| snprintf() must write nothing, but instead return the size of the |
| buffer needed to hold the entire string. From Sami Pelkonen. |
| |
| * Configuration/Build System: |
| |
| - The alternate console device CONFIG_NSH_CONDEV must not be defined |
| unconditionally. This causes errors when using Telnet sessions. |
| This was solved by adding CONFIG_NSH_ALTCONDEV: CONFIG_NSH_ALTCONDEV enables or disables the feature then, if |
| enabled, CONFIG_NSH_CONDEV provides the alternative console |
| device name. |
| - Many files: Convert all old-style GCC variadic macros to the C99 |
| form. Recent GCC changes tightens up that behavior and can cause |
| some problems (at least for the IAR compiler for some reason). |
| Noted by Bob Grimes. |
| - tools/configure.sh: In-place SED edit messes up permissions on |
| windows. From Hannes Delago. |
| |
| * Build Tools: |
| |
| - tools/mkfsdata.pl: Apparently, the trailing the 0x00 in http |
| server files is seen as a bug in javascript and images. From |
| Max/Himax. |
| |
| * Other Applications: |
| |
| - I2C Tool: Fix to show the updated register address on each |
| fetch (vs. showing the same starting address each time). From |
| Ryan VanSickle. |
| - CLE was not returning the terminating newline character. But |
| reported by Max kriegleder. |
| |
| NuttX-7.4 |
| --------- |
| |
| The 104th release of NuttX, Version 7.4, was made on August 15, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.4.tar.gz and |
| apps-7.4.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Beginnings of a crypto/ subsystem from Max Neklyudov |
| - Tickless operation: NuttX now supports a mode with no periodic |
| timer interrupts. Rather, timed events are handle via an interval |
| timer. This (1) lowers the rate of interrupt processing to timer |
| events, (2) gives much high timing resolution, and (3) allows lower |
| power modes of operation where the CPU is not constantly being |
| interrupted by the timer. |
| - Restructured the OS files under sched/ to better support the already |
| modular nature of the RTOS. |
| |
| * Networking |
| |
| - Substantial directory and header file reorganization and renaming to |
| make the NuttX networking implementation more modular. |
| - Add network device ioctl to access PHY registers. From Daniel Lazlo |
| Sitzer |
| |
| * Binary Loader: |
| |
| - Various changes associated with symbol tables from Pelle Windestam. |
| |
| * Graphics: |
| |
| - colorcmp(): New utility to compare two colors. |
| - The initial background color is now configurable. Includes logic to |
| eliminates multiple background updates to get the right color. |
| - Minor configuration changes to handle mouse X/Y and touchscreen |
| X/Y differently. |
| |
| * File System/Block Drivers: |
| |
| - SmartFS: Increase some variables from uint16_t to uint32_t to handle |
| larger device sizes. From Ken Pettit. |
| - Add configurable AES encryption support to the block-to-character |
| (BCH) driver. This allows any block device to be accessed as an |
| encrypted character device. From Max Nekludov |
| - Add an MTD layer that will add read-ahead or write buffering to any |
| MTD driver (incomplete). |
| - Automounter: Add support for an auto-mounter that will automatically |
| mount and unmount a file system a media is inserted and removed |
| |
| * Audio/Audio Drivers |
| |
| - WM8904 audio CODEC driver. |
| - PCM .WAV file decoder. Fast forward implemented with sub-sampling |
| (currently no rewind support). |
| - Add a NULL audio device that can be used to simply unit-level testing |
| of audio decoders. |
| - Audio subsystem now supports interfaces for fast-forward and rewind |
| needed by CMediaPlayer; add hooks for equalizer settings needed by |
| the WM8904 CODEC. |
| |
| * Other Common Drivers: |
| |
| - MTD: Extend erase block size to 18-bits in order (decrease block |
| size to 14-bits) to handle parts with large erase blocks. From Kosma |
| Moczek |
| - maxTouch: Add support for the Atmel maXTouch touchscreen controller. |
| |
| * Host Simulation: |
| |
| - Provides the timers needed to support the Tickless mode of operation. |
| |
| * Atmel SAM4C: |
| |
| - Add SAM4CM IPC register header file. From Max Neklyudov |
| - Various fixes PMC and clock configuration for the SAM4CM port from |
| Max Neklyudov |
| |
| * Atmel SAM4E/4S Drivers: |
| |
| - SAM4 AES driver. Contributed by Max Neklyudov |
| |
| * Atmel SAMA5: |
| |
| - Add logic to redirect all SAMA5D4 interrupts to the AIC |
| - Add a configuration option to reserve DRAM for a framebuffer when |
| executing out of DRAM. This optional was available before when |
| executing out of NOR, but needs to work a little differently in |
| this case. |
| - Add SAMA5 slow (32.768KHz) clock support. |
| - Add support for the ARM L2CC-PL310 L2 cache. The system runs with |
| L2CC cache enabled but there is some issues still with the LCD DMA; |
| I suspect that the memory timing configuration for L2CC needs to |
| be tuned. |
| - Provides the timers needed to support the Tickless mode of operation. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - XDMAC-based HSCMI driver for the SAMA5D4 |
| - Adapt the SAMA5D3 LCDC driver to work with the SAMA5D4 which has |
| no hardware cursor. |
| - PIO: Add a new interface sam_pio_forceclk() that can be used to |
| force PIO clocking on. I am afraid I was too conservative with |
| PIO clocking in the initial design; this is the price. |
| - TWI: Now supports the up_i2creset() method. |
| - TWI: Use sam_pio_forceclk() so that we can read the current state |
| of an open-drain output in the TWI reset logic. |
| - SSC: SCC Frame Synch Delay and Start Delay are now configurable. |
| - PCK: Add the slow clock and the main clocks as options for the |
| PCK configuration. |
| - Timer/Counter: Can now handle non-constant BOARD_MCK_FREQUENCY. Also |
| now supports methods to attach client interrupt handlers |
| - One shot and free-running timers. These are wrappers around the low |
| level timer/counter logic to provide one-shot and free-running |
| timers. These were developed to support the Tickless operation, but |
| can be used for any purpose. |
| |
| * Atmel SAMA5 Board Support: |
| |
| - Add a boot loader that runs from ISRAM and loads an Intel HEX file |
| into DRAM. |
| - Add a configuration that will load a bootloader into AT25 Serial |
| FLASH |
| - SAMA5D4-EK NSH configuration supports many more features: RTC, HSCMI |
| card detection, maXTouch touchscreen, TM7000 LCD, the command line |
| media player (currently using the NULL audio device), automounter, |
| and others. |
| - SAMA5D4-EK: Add an NxWM configuration using the TM7000 LCD with |
| the maXTouch multi-touch touchscreen. |
| - SAMA5D4-EK NxWM: Uses new, larger icons in configuration instead of |
| scaling. |
| - SAMA5D4-EK NxWM: The NxPlayer and audio system are now enabled in |
| the default configuration (but currently using the NULL audio |
| device). The automounter is used to automatically mount media |
| on an SD card. |
| - SAMA5D3x-EK: Add a configuration to support the command line |
| NxPlayer and to verify the WM8904 CODEC driver. |
| |
| * STMicro STM32: |
| |
| - Add support for the STM32F103RC and RD. From Kosma Moczek |
| - Add a procfs entry to show the state of the CCM heap usage. |
| From Pelle Winderstam |
| |
| * STMicro STM32 Drivers: |
| |
| - Unconfigure GPIO pins when closing a serial port to prevent back |
| effects from back-powering on the TX pin. From Kosma Moczek |
| |
| * NXP LPC17xx Drivers: |
| |
| - ADC: Added burstmode ADC conversion mode, with CONFIG_ADC_BURSTMODE |
| option in Kconfig. From Max |
| - Ethernet: Added option to use the kernel worker thread to do most of |
| the workload with CONFIG_NET_WORKER_THREAD option in Kconfig. From Max |
| - Ethernet: Critical bugfix: From time to time (after some hours) the |
| Ethernet receiver would lose one receive interrupt and the IP stack |
| never recover because there is no receive watchdog as the transmit |
| watchdog. From Max |
| |
| * NXP LPC17xx Boards: |
| |
| - mbed: Port ADC, DAC, and PWM logic from the configs/zkit-arm-1769. |
| From Max |
| - mbed: Eliminated a problem with PHY DP83848C : it doesn't need a |
| specific initialization on mbed. From Max |
| |
| * Library: |
| |
| - Adds support for localtime. From Max Neklyudov |
| |
| * Configuration/Build System: |
| |
| - Make variable definitions 'static const' when possible to save RAM |
| usage. From Kosma Moczek |
| |
| * Applications: |
| |
| - system/mdio: New PHY tool from Daniel Lazlo Sizter. |
| - NSH: Networking logic modified to handler the case of SLIP |
| transport. From Max Neklyudov. |
| - NSH: Add a configuration to use a USB keyboard for the stdin |
| device. |
| - NSH: Software assigned MAC address is now configurable. From Lazlo. |
| - NSH: Also add an option to let platform-specific logic select the |
| MAC address. |
| - NSH: There is now a configuration option that will bring up the |
| network on an separate thread. Since the network bring-up is |
| asynchronous, there are no serial console start-up delays due |
| to the network negotiation time. |
| - NxPlayer: Changes to integrate with Ken's NxWM::CMediaPlayer. |
| - NxPlayer: Add interfaces for fast-forward and rewind needed by |
| CMediaPlayer; add interface for equalizer settings needed by the |
| WM8904. |
| - NxPlayer: Supports new way of identifying the end of the audio |
| stream (see the Audio section above). |
| - Sudoku: Add a sudoku game. |
| |
| 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): |
| |
| * Graphics: |
| |
| - NxConsole: Fix scrolling for the case of the framebuffer device. In |
| this case, the logic for clearing the vacated region at the bottom |
| was missing so garbage would scroll up from the last, uncleared |
| line. |
| |
| * Networking: |
| |
| - Important fix to the read-ahead buffer queue management: Consumed |
| bytes were being trimmed from the head of the queue, but the queue |
| head itself was not being updated. From Rony XLN. |
| - Fix an error in SLIP escaping. From Max Neklyudov |
| |
| * Network Utilities: |
| |
| - Fix an include file ordering problem when CONFIG_NET_STATISTICS=y. |
| - Move statistics from uip.h to new netstats.h to remove a circular |
| inclusion problem |
| - Various fixes for networking and tiny webserver from Max |
| - webclient: Fix to offset calculation from Rony Xln. Prevents 0x0a |
| at the beginning of lines. |
| - webserver: Fix some configuration usage issues. From Max. |
| - webserver: Missing logic to close sockets on loop termination. |
| |
| * File System / Block Drivers: |
| |
| - SmartFS: Fix for a bug that would show up if CONFIG_MTD_BYTE_WRITE |
| was not selected and the SMART sector size was larger than the MTD |
| device's block size (like it would be if using SMARTFS on larger |
| flash devices). From Ken Pettit. |
| |
| * Audio: |
| |
| - Change how the end of the audio stream is detected by the leaf audio |
| component. This used to be done by looking for the first partial |
| buffer. That does not work with the in-place sub-sampling performed |
| by the PCM decoder: That always reduces the size of the buffer so |
| that all buffers only partially filled by the time they get to the |
| leaf. Now, a flag is set in the audio buffer flags set to indicate |
| the final buffer in the stream. |
| |
| * Common Drivers: |
| |
| - RAMLOG putc() method needs to set the errno and return EOF on a |
| failure. |
| - Add missing configuration option to select the MAX11802 touchscreen |
| controller. From Petteri Aimonen |
| |
| * Atmel SAMA5D3/4: |
| |
| - Fix logic in conversion of physical and virtual DRAM addresses when |
| running out of DRAM. This is an important bug fix for the SAMA5D3 |
| and 4 when running out of DRAM . |
| - Critical SAMA5D3 and 4 bug fix: PIO clocking must be enabled for |
| all input pins or else the value that is read never changes. |
| |
| * Atmel SAMA5D3/4 Drivers: |
| |
| - OHCI: Fix an error in a DEBUGASSERT statement. Caused an |
| assertion to fire inappropriately when a low- or full-speed device |
| was removed and CONFIG_DEBUG=y |
| - OHCI: Pointers to allocated port values were not being |
| nullified after being deallocated. This caused some assertions |
| to fire when debug was enabled |
| - SSC: Needs to account for data offset in audio buffer |
| |
| * ARMv7-M: |
| |
| - Correct the initial value of the BASEPRI register. This was |
| apparently never being initialized! From Max |
| |
| * STMicro STM32 Drivers: |
| |
| - I2C: Fix missing configuration of GPIO pins in I2C driver. Fix |
| from Alex D. |
| - STM32 OTGFS device: Various changes to try to reduce that amount of |
| time in interrupts handles and with interrupts disabled. From |
| Petteri Aimonen |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - Ethernet: Wrong bits being cleared before OR-ing in new settings. |
| - Ethernet: Fix an error in the function that determines the number |
| of free TX descriptors. This is an important bugfix on busy |
| networks. |
| - I2C: Test for read or write operation was reversed. How could |
| this have worked before? |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM4S Xplained-Pro: Correct description of LEDs and usage. From |
| Kosma Moczek |
| |
| * Atmel SAMA5: |
| |
| - PIO: Fix definitions that could disable PIO interrupt support if only |
| PIOE interrupts were enabled |
| - PIO: Macro SAM_PION_VBASE is not define-able for the SAMA5D4 and must |
| be replaced with a table lookup. |
| - PIO: Fix a typo in Schmitt trigger configuration; Configure pin as a |
| vanilla input first so that final pin configuration is more read-able |
| (i.e., easier to debug) |
| - PIO: Logic for Schmitt trigger selection backward |
| - SAMA5D4: Correct system timer frequency. Input clock is MCK/2, not MCK. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - Ethernet: Wrong bits being cleared before OR-ing in new settings. |
| - Ethernet: Fix an error in the function that determines the number |
| of free TX descriptors. This is an important bugfix on busy |
| networks. |
| - HSMCI: The 8-byte SCR transfer was failing silently with the DMA |
| transfer, leaving the SD card in single bit mode. Fixed by adding |
| a non-DMA read transfer mode. |
| - HSMCI: Fix a problem on card insertion/removal callback handling. |
| Interrupts were being disable so that the callbacks occurred with |
| interrupts disabled. This resulted in loss of some interrupts and |
| some not-so-good behaviors. The solution is to perform all |
| callbacks on the work thread unconditionally |
| |
| * Atmel SAMA5 Boards: |
| |
| - PIO: Fix some cloned errors in SAM GPIO interrupt setup |
| |
| * NXP LPC17xx Drivers: |
| |
| - Ethernet: Comment out an assertion that is reported to fire |
| inappropriately. From Max |
| |
| * Library: |
| |
| - stdint.h: Correct naming of [U]INT_LEASTn_{MAX|MIN} and |
| [U]INT_FASTn{MAX|MIN}. From Kosma Moczek |
| - unistd.h: POSIX definitions should be defined to a value. rom Kosma |
| Moczek |
| - Fixes associated with rint() and related interfaces in the math |
| library. |
| |
| * Configuration/Build System: |
| |
| - NAME_MAX not available on SunOS; use FILENAME_MAX or MAXNAMELEN. |
| Noted by Douglas Beattie |
| |
| * Applications: |
| |
| - NSH: if # appears on line, need to comment ignore additional |
| commands on the line |
| - NxPlayer: Check for file read errors and end-of-file with zero |
| bytes read. Other error handling corrected as well. |
| - NxPlayer: NxPlayer needs to set curbyte field to zero before |
| enqueuing a buffer. Otherwise, it looks like beginning of the |
| buffer has already been consumed. |
| |
| NuttX-7.5 |
| --------- |
| |
| The 105th release of NuttX, Version 7.5, was made on September 28, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.5.tar.gz and |
| apps-7.5.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Watchdog Timer Allocation: (1) If we run out of pre-allocated |
| watchdog times, the logic will now allocate additional timers |
| from the heap. A reserve of pre-allocated watchdog timers is |
| maintained so that there will always be timers available for |
| interrupt handlers. (2) Added support for statically allocated |
| watchdog timer |
| - Address Environment Support: (2) New OS APIs integrated into all |
| platform-specific context switching logic (up_block_task(), |
| up_unblock_task(), _exit(), and others). |
| - Kernel Build Support: (1) The MPU based "kernel build" renamed to a |
| protected build (CONFIG_BUILD_PROTECTED); added support for the a |
| new MMU-based "kernel build" (CONFIG_BUILD_KERNEL), (2) The system |
| call library can now be built with CONFIG_NUTTX_KERNEL. New |
| selection: CONFIG_LIB_SYSCALL. |
| - System Startup: Add configuration options to start the system from |
| a program on a file system (versus an address in memory). |
| - Startup Parameter Passing. There used to be two ways to pass |
| parameters to new tasks, depending upon the configuration: Either |
| (1) argv[] as created as an array with each string strdup'ed. Or |
| (2) argv[] array and strings were created on the stack before the |
| new task was started. Now, there is only one way, way (1). Way |
| (2) might be slightly more compact, but this is not worth carry the |
| complexity of two different ways of doing the same thing. |
| - Board Initialization: Add capability to perform initial board |
| initialization on a separate worker thread. This is needed because |
| there are many cases where initialization logic cannot execute on |
| the start-up/IDLE thread. That is because blocking or waiting is |
| not permitted on the IDLE thread. |
| |
| * Memory Management: |
| |
| - Granule Allocator: (1) Add a new function to reserve un-allocatable |
| regions in the granule heap. (2) Add interfaces to support |
| un-initializing a granule allocator. |
| - Page Allocator: Add a simple physical page allocator based on the |
| existing NuttX granule allocator. I am not certain if the granule |
| allocator is sufficiently deterministic for long range use, but it |
| gets get a page allocator in place for testing very quickly. |
| - Remove CONFIG_MM_MULTIHEAP. Non-multiheap operation is no longer |
| supported. |
| - sbrk(): sbrk() is now supported in the kernel build to permit |
| dynamically sized, per-process heaps. |
| - Per-Process Heaps: Space at the beginning of the process data space |
| is now reserved for user heap management structures. In the kernel |
| build mode, these heap structures are shared between the kernel and |
| use code in order to allocate user-specific data. |
| - User Heap Management: When a privileged thread exits, we have to |
| use the kernel allocator to free memory; when an unprivileged thread |
| exits, we don't have to do anything... heap memory will be cleaned |
| up when the address environment is torn down. |
| - Inter-Process Shared Memory Support: (1) Add implementation and |
| documentation for shmget(), shmctl(), shmat(), and shmdt(). (2) |
| Add system system calls to support the user call gate to the shared |
| memory interfaces. (3) Add platform-specific interface definitions |
| needed to support the shared memory feature. |
| - Virtual Page Allocator: Add support for a per-process virtual page |
| allocator. This is a new member of the task_group_s structure. The |
| allocator must be initialized when a new user process is started and |
| uninitialize when the process group is finally destroyed. It is |
| used by shmat() and shmdt() to pick the virtual address onto which |
| to map the shared physical memory. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - SMART FS and SMART FS procfs updates from Ken Pettit. |
| - The MTD Read-ahead/Write buffer layer appears is now functional. |
| |
| * Binary Formats: |
| |
| - Add logic to initialize the per-process user heap when each user |
| process is started. |
| |
| * Graphics: |
| |
| - Change all occurrences of NxConsole to NxTerm. |
| |
| * Networking: |
| |
| - PHY Interrupts: (1) Standardize a PHY interrupt attachment |
| interface. (2) Add support for an ioctl that can be used to notify |
| an application when there is a change in the network status |
| signalled by a PHY interrupt. |
| - Improved Send Logic: In the past, the first packet send to a new |
| network peer would fail; there would be no entry in the ARP table |
| for the peer and so an ARP request could replace that first packet. |
| Now as an option if CONFIG_NET_ARP_SEND=y, all send logic will (1) |
| check if the peer MAC address is in the ARP table and, if not, (2) |
| send ARP requests periodically to get the mapping and (3) wait for |
| the ARP response. Then (4) when the ARP response is received then |
| the actual send logic will be initiated. Thus there may be a delay |
| with the first packet sent to a new peer, but the packet should not |
| be lost |
| |
| * Host Simulation: |
| |
| - Emulated SPI FLASH driver for the sim target from Ken Pettit. |
| |
| * Intel x86: |
| |
| - The default host is now x86_64 and the -m32 option will be |
| automatically selected for simulation builds. |
| |
| * Intel 8051 Family: |
| |
| - Removed all support for the 8051 family architecture from the NuttX |
| source tree. The obsoleted code along with the removal patch can |
| now be found at misc/Obsoleted/. This code was removed because (1) |
| although some functionality has been demonstrated, I am not aware of |
| any really successful ports of NuttX to any 8051, and (2) the 8051, |
| with its hardware stack, forces limitations and complications to the |
| other architectures and make growth and development of NuttX more |
| complex. |
| |
| * ZiLOG ZNeo Boards: |
| |
| - configs/16z: Support for this board has been removed from the NuttX |
| source tree (but still can be found in the misc/Obsoleted |
| directory). This port is not ready for usage but may return to the |
| NuttX tree at some point in the future. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM4E-EK: Add (1) a fully-functional ILI9341-based LCD driver and |
| (2) a fully-functional NxWM configuration. |
| |
| * ARMv7-A: |
| |
| - Address Environments: Add support for application address |
| environments using the Cortex-A MMU. Implement standardized |
| platform-specific interfaces of NuttX address environment |
| support. |
| - Cache Operations: Implement standardized, platform-specific cache |
| operations. These are called from the ELF loader in order to flush |
| D-cache and invalidate I-cache after an ELF module has been loaded |
| into memory. With this change, ELF modules work correctly on the |
| SAMA5/Cortex-A platform. |
| - Kernel Build: (1) Add implementations of system call gate. (2) Add |
| CRT0 start-up file that can be linked with separately built user |
| programs. (3) Add support for delivery of use-mode signals in the |
| kernel build. (4) Add logic to initialize the per-process user heap |
| when each user process is started. (5) ARMv7-A exception handling |
| needs to work a little differently if we support user mode |
| processes. This is because R13 and R14 are paged differently |
| between user and SVC mode. |
| - Shared Memory Support: (1) Add logic necessary to handle remapping |
| of shared memory on context switches. (2) Extend virtual/physical |
| address conversions to include addresses in shared memory. (3) Add |
| implementation of platform-specific shared memory support. |
| |
| * Atmel SAMA5D Drivers: |
| |
| - Implement all network ioctls, including the new ioctl to setup PHY |
| event notifications. |
| - In kernel build with address environment, need logic to map user |
| virtual addresses to physical addresses, and vice versa. |
| |
| * Atmel SAMA5D Boards: |
| |
| - SAMA5D3 Xplained, SAMA5D3-EK, and SAMA5D4-EK: Convert existing |
| board specific PHY interrupt interfaces to use newly defined |
| standard interface. |
| - SAMA5D4-EK: Add a configuration for testing the kernel build |
| configuration. There are configurations to boot either from an SD |
| card or from and in-memory ROMFS file system. |
| - SAMA5D4-EK: Add documentation/support for Rev E. board. |
| |
| * STMicro STM32 Drivers: |
| |
| - Ethernet: Modified to support the change to the network ioctl |
| signature changes. Also add support for new ioctl to setup PHY |
| event notifications. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F4Discovery with STM32F4DIS-BB: Add a network enabled NSH |
| configuration for the STM32F4Discovery board with the STM32F4DIS-BB |
| base board installed. Includes support for the microSD card slot on |
| the STM32F4DIS-BB base board. |
| |
| * TI Tiva Drivers: |
| |
| - Add support for the TI CC3200. From Jim Ewing. |
| |
| * TI Tiva Boards: |
| |
| - Add support for the TI CC3200 Launchpad. From Jim Ewing. |
| |
| * C Library: |
| |
| - Re-implemented poll() delay using sem_timedwait(). |
| |
| * Configuration/Build System: |
| |
| - Export Target: In the kernel or protected builds, (1) only the user |
| libraries should be exported, (2) do not copy internal header files |
| or build scripts if this is a kernel or protected build, and (3) |
| needs to bundle up the user C startup file (crt0), not the kernel |
| head object for the kernel and protected builds. |
| - Add logic that will permit us to build user libraries with different |
| CFLAGS than kernel code. This is needed because we need the |
| -fno-common option when building ELF code to prevent SHN_COMMON |
| relocations. |
| |
| * Applications: |
| |
| - NSH: Extend the NSH network initialization logic. There is now an |
| option that will create a network monitor thread that will monitor |
| the state of the link. When the link goes down, the code will |
| attempt to gracefully put the Ethernet driver in a down state; When |
| the link comes back, the code will attempt to bring the network back |
| up. |
| - ELF Example: The ELF test/example has been extended so the |
| individual ELF test programs can link against the SYSCALL library |
| (if it is available) or against the C library to eliminate or |
| minimize the need for symbol tables. |
| - Change all occurrences of NxConsole to NxTerm. |
| - MTDRWB Example: Add an example to test MTD R/W buffering. |
| - OS Test Example: Add a trivial test of sem_timedwait. |
| |
| * Application Configuration/Build System: |
| |
| - Import Target: (1) Add logic that will allow building applications |
| against a NuttX export package (vs. the nuttx/ source tree). (2) |
| Add .config file to export package. (3) Create apps/import. Create |
| apps/import/Make.defs that does things like define CFLAGS; ELF build |
| requires -fno-common in CFLAGS. Copy some base logic from |
| nuttx/tools/Config.mk to apps/import/Make.defs. (4) Add |
| apps/import/scripts/gnu-elf.ld GCC linker script for ELF import |
| builds. |
| - All Makefiles: (1) Add an install target to all makefiles. For |
| the import build, the top-level Makefile now does two passes: (1) |
| builds libapp.a, then (2) installs the programs into apps/bin. (2) |
| Add program installation for CONFIG_BUILD_KERNEL in all Makefiles |
| that build a main(). (3) For kernel build, the object file |
| containing main cannot go into library because of name collisions. |
| The object file must be handled as a special case in every Makefile. |
| - All Built-In Programs: With kernel build (CONFIG_BUILD_KERNEL), |
| entry point to all tasks is main(), not some xyz_main(). |
| - NSH: Several commands must be disabled in the kernel build because |
| they depend on interfaces that are not available outside of the |
| kernel: dd, df, losetup, mkfatfs, mkdr, and ps. |
| - apps/tools/: (1) Add mkimport.sh to expload an NuttX import package |
| and install in apps/import. (2) Add mkromfsimg.sh script to create |
| a BOOT ROMFS filesystem image. |
| - ELF and NxFLAT Examples: Do not build test cases that use |
| task_create() if there is an address environment. |
| |
| * Tools: |
| |
| - refresh.sh: Add a tool to make refreshing configurations easier |
| when you want to do a lot of them. |
| - mksyscall.c: Build syscalls that do not need header files. |
| - mkexport.sh: Add .config file to export package. |
| - See above for new apps/tools scripts. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| * Galileo: Similarly, there are fragments in place for an Intel Galileo |
| port. The port not been started in earnest either. |
| |
| 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: |
| |
| - Kernel build fixes: (1) IDLE TCB setup needs to indicate that the |
| IDLE thread is a privileged, kernel thread. (2) Don't build |
| task_create() or task_spawn() interfaces if there is an address |
| environment. (3) posix_spawn() kernel proxy thread should be a |
| kernel thread, not a user task. |
| - Several pthread interfaces: Add const storage class to phthread |
| parameters. From Freddie Chopin. |
| - sched/clock: Remove vestiges of g_tickbias; need, instead, to apply |
| time bias to g_basetime in order to provide the correct system time. |
| - System Calls: (1) Several typos fixed; corrected integration of |
| exevc(), execvl(), posix_spawn, and posix_spawnp system calls. (2) |
| If we are configured to use a kernel stack while in SYSCALL handling, |
| then we need to switch back to the user stack to deliver a signal. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - procfs: Fix some procfs breakage introduced by reorganizing some |
| non-reorganizable data structures. From Ken Pettit. |
| - AT45: In at45db_bwrite , the buffer is not increased when writing |
| more than 1 page. Sourceforge bug #34. |
| |
| * Binary Formats: |
| |
| - ELF relocations. Some relocation types do not have a named symbol |
| associated with them. The design did not account for that case. |
| - ELF Loader: Critical bugfix.. BSS was not being cleared. |
| |
| * Memory Management: |
| |
| - Granule allocator initialization uses wrong allocator to setting |
| aside kernel memory. |
| - Add a flag to group structure: If the group is created by a kernel |
| thread, then all resources in the group must be privileged. |
| |
| * Cryptogrphic Support: |
| |
| - crypto/cryptodev.c: Path segments reversed in include file path. Noted by Brennan Ashton. |
| |
| * Common Drivers: |
| |
| - Common CAN upper-half: In can_txdone, waiters on the semaphore |
| should be informed regardless of the return value of can_xmit. First |
| it returns -EIO if there are no new packets, and second the |
| information of the waiters is about the last transferred packet. |
| From Daniel Lazlo Sitzer. |
| |
| * ARM: |
| |
| - System Calls: Fix a typo in system call when fetching parameter from |
| the stack: regs[REG_PC]+4 is the address, not regs[REG_PC+4]. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F401 UART: Correct support for USART6 on this chip. From |
| Freddie Chopin. |
| - STM32 FLASH fixes: use size_t instead of uint16_t, make interface |
| more generic. From Freddie Chopin. |
| - Fix for UART7 and UART8 on STM32 clock enable from Aton. |
| - CAN: At the end of the interrupt handler, the interrupts were being |
| disabled, if all packets have been transferred when the interrupt |
| handler was invoked. This is problematic, because the interrupt |
| handler calls can_txdone of the upper half which can enqueue new |
| packets to send. Removed the block altogether, because can_txdone |
| calls can_xmit which disables interrupts if there are no new packets |
| to send. From Daniel Lazlo Sitzer. |
| - Additional STM32 CAN correction suggested by Max Holtzberg. |
| |
| * STMicro ST32 Boards: |
| |
| - configs/mikroe-stm32f4: Fix a few compile bugs and minor corrections |
| to the mikroe-stm32f4 configuration source. From Ken Pettit. |
| |
| * ARM9/ARMv7-A: |
| |
| - System Calls: Fix ARM7/9 and Cortex-A SYSCALLs: For threads in SVC |
| mode, the SVC instructions clobbers R14. This must be taken account |
| in the inline assembly. |
| - Task Setup: All tasks, even user mode tasks, must start in |
| supervisor mode until they get past the start-up trampoline. |
| - ARMv7-A: Modify up_fullcontextrestore() for CONFIG_BUILD_KERNEL. |
| It changed CPSR while in kernel. That will crash if the new CPSR is |
| user mode while executing in kernel space. Fixed by adding a |
| SYS_context_restore system call. There is an alternative, simpler |
| modification to up_fullcontextrestore() that could have been done: |
| It might have been possible to use the SPSR instead of the CPRSR and |
| then do an exception return from up_fullcontextrestore(). That |
| would be more efficient, but I never tried it. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM3X/Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK |
| definitions to board.h header file. From Fabien Comte. |
| - SAM3 RTT: Only SAM4 family has RTTDIS bit in the MR register. |
| SourceForge bug #33 from Fabien Comte. |
| |
| * C Library: |
| |
| - sscanf(): NuttX libc tried to guess how many characters to parse, |
| extracted them into a buffer, then ran strtol() on that buffer. |
| That guess was often wrong. A better approach would be to call |
| strtol() directly on the input data, using the endptr return value |
| to determine how many characters to skip after parsing. From Kosma |
| Moczek. |
| - Corrected atan2 implementations from Denis Arnst. |
| - Change to lib_dtoa() to fix precision error from trailing zeroes. |
| From Bob Doiron. |
| |
| * Applications: |
| |
| - Fix NSH PS command: If there are no arguments, it could print |
| garbage for argument list. |
| |
| * Configuration/Build System: |
| |
| - Null Example: Need to include config.h it order know if this is or |
| is not a kernel build. This problem still exists in several other |
| file that may need to define main(). |
| |
| NuttX-7.6 |
| --------- |
| |
| The 106th release of NuttX, Version 7.6, was made on November 26, 2014, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.6.tar.gz and |
| apps-7.6.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Moved name semaphore and message queue support out of the OS and |
| into the VFS. These improves the architecture by unifying the |
| management of named resources, removes redundant resource management |
| logic, and makes named semaphores and message queues visible in the |
| file system. By default, these are visible at /var/lock and |
| /var/mqueue. |
| - Add SIGPOLL for use as part of the AIO implementation. |
| - Remove CONFIG_MAX_TASK_ARGS configuration. There is now no |
| predetermined limit on the number of arguments that may be passed |
| to a new task on start-up. |
| |
| * Work queues: |
| |
| - Add support for priority inheritance on the low priority worker |
| queue. That is, if a higher priority thread has scheduled work, the |
| priority of the low priority worker thread(s) will be boost to the |
| priority of the queuing thread. At work is performed at at least |
| thread priority of the scheduling thread. If there are multiple |
| worker threads, then all threads get reprioritized. Currently |
| only implemented for AIO. |
| - Add support for multiple low-priority work queue threads. This |
| allows individual worker threads to block indefinitely for I/O as |
| necessary without halting the entire work queue. |
| |
| * VFS/General Drivers: |
| |
| - Implement create() (as a macro). |
| - Add pread() and pwrite(). Also added pread() and pwrite() |
| system calls. |
| - AIO: Add aio_read(), aio_write(), aio_return(), aio_error(), |
| aio_suspend(), aio_canel(), lio_listio(), and aio_fsync(). This |
| logic minimizes the creation of new threads by using the new |
| features also added to the low priority work queue with this |
| release. It uses the new low priority worker thread interface |
| to adjust the priority of the worker thread according to the |
| priority of the AIO client thread |
| - Implement standard syslogmask() to control logging (also removing |
| the non-standard syslog_enable()). |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - Extend MTD support to the M25P16. From Sébastien Lorquet. |
| |
| * Drivers: |
| |
| - BCH (Block-to-Character): Add support for seeking in BCH. From |
| Sébastien Lorquet. |
| |
| * Graphics Support/Graphics-Related Drivers: |
| |
| - Add support for a generic ILI9341 LCD driver. From Marco Krahl. |
| - Add ANSI/VT100 foreground and background color commands. |
| - Add driver for ST7565 LCD that works with NHD-C12864KGZ display. From Pierre-noel Bouteville. |
| |
| * Networking: |
| |
| - Verify that multiple networks can be supported. |
| - Add support for the case where there are multiple networks: One |
| being Ethernet and the other not (SLIP, PPP, ...). The primary |
| difference from the standpoint of the stack is that (1) ARP may or |
| may not be necessary, (2) the size of the link layer header will |
| vary, and (3) different MTUs and TCP receive windows may be used |
| with each link. Suggested by Brennan Ashton. |
| - Extensions to UDP and TCP connection structures for the case of |
| multiple networks. In this case, assigned port numbers only have to |
| be unique with respect to the IP address. So, for example, you |
| could have multiple port 80's, one on each network. |
| |
| * Host Simulation: |
| |
| - Removed the old, strange up_stdio.c and implemented a simulated UART |
| driver to provide the console input. The new logic starts a |
| separate, Linux domain pthread to read the console input in raw mode |
| and provides the incoming data to NuttX via standard NuttX domain |
| IPCs. |
| - Add support for 64-bit longjmp/setjmp in simulator platform. This |
| will permit operation of the simulation natively on a 64-bit |
| platform. |
| |
| * ARMv7-M: |
| |
| - Add ARMv7-M CMSIS ITM header file and library. From Pierre-noel |
| Bouteville. |
| - Add ARMv7-M CMSIS DWT and TPI header files. From Pierre-noel |
| Bouteville. |
| - Add ARMv7-M support to use ITM for SYSLOG debug output. Includes |
| logic from Pierre-noel Bouteville. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - Add support for SAM3/4 basic serial TERMIOS and flow control. |
| There are issues with IFLOW control: PDC or DMAC support is |
| required. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM4E-EK: Add support for PHY interrupt. |
| |
| * Atmel SAMA5D Boards: |
| |
| - SAMA5D3-Xplained: Add a configuration that provides a simple test |
| for the EMAC and GMAC on the SAMA5D3 working together. |
| - SAMA5D4-EK: Add a configuration that provides a simple test for the |
| EMAC0 and EMAC1 on the SAMA5D4 working together. |
| |
| * Freescale KL: |
| |
| - Add an I2C header file for the Freescale KL family. From Alan |
| Carvalho de Assis. |
| |
| * NXP LPC32xx: |
| |
| - Add support for tickless operation using the NXP LPC43xx. From |
| Brandon Warhurst. |
| |
| * SiLabs EFM32: |
| |
| - Add a basic port for the SiLabs EFM32 family. Includes many files |
| contributed by Pierre-noel Bouteville . |
| |
| * SiLabs EFM32 Boards: |
| |
| - Add board support for the EFM32 Gecko Starter Kit. |
| - Add board support for the Olimex EFM32G8809128 STK. NOTE: I am |
| unable to test this configuration due to tool-related issues. |
| - Add board support for the SiLbas EFM32GG Giant Gecko Starter kit. |
| |
| * STMicro STM32: |
| |
| - Add support for the STM32 F411RE from Serg Podtynnyi. |
| - Add support for the STM32F103RG. From Murilo Ponte. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F4: Add logic that implement true high speed support for the |
| STM32 OTGHS peripheral and concurrent support for both LS and HS |
| OTG. New OTGHS drivers provided for both device and host. From |
| Brennan Ashton. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32 Nucleo-F411RE: Extend this board configuration to also support |
| the Nucleo-F411RE. From Serg Podtynnyi. |
| - Add support for the STM32F429i Discovery's LCD (SPI based). From |
| Marco Krahl. |
| - configs/stm32f100rc_generic: Removed this generic board configuration. |
| I have decided to stop support of generic board configurations. Generic |
| board configurations do not provide support for any specific hardware |
| but can be useful only if there are not other examples for the setup |
| for a particular architecture. Not the case here. |
| |
| * C Library: |
| |
| - Add a mostly bogus wchar.h header file. This file is mostly bogus |
| because none of the wide character operations are currently |
| supported in the Nuttx C library. The file does provide the wchar_t |
| types needed by some software, however. |
| - Add isatty() function. From Alan Carvalho de Assis. |
| - Add mktemp(), mkstemp(), tmpnam() and tempnam(). |
| |
| * Configuration/Build System: |
| |
| - Add a PRELINK macro to Config.mk. From Kriegleder. |
| - compiler.h: Defines inline functions as not instrumented - this is |
| relevant for anyone using instrumentation. From Lorenz Meier. |
| |
| * Applications: |
| |
| - apps/interpreter/bas: Added in the Michael Haardt's BAS 2.4 adapted |
| for use by NuttX by Alan Carvalho de Assis. Includes support for |
| VT100 terminals and color commands. |
| - Examples: Added bastest/ which holds a special version of Michael |
| Haardt's BAS 2.4 test files adapted for use by NuttX on a ROMFS file |
| system. |
| - Examples: Add a simple UDP relay bridge for testing configurations |
| with multiple networks. Includes a host-side test driver for |
| testing the bridge. |
| - Netutils: Add implementation of timeouts for the netutils webclient. |
| From Brennan Ashton |
| - NSH: Add support for a custom NSH ROMFS startup image header file |
| location. From Martin Lederhilger. |
| - OS test: Add a simple test of named semaphores. |
| - OS test: Add AIO test case in OS test. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| * Galileo: Similarly, there are fragments in place for an Intel Galileo |
| port. The port not been started in earnest either. |
| |
| 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): |
| |
| I ran cppcheck against the entire code base and correct many latent bugs |
| including things as serious as memory leaks, two locations where interrupts |
| were be disabled but never re-enabled, and errors in the Tickless mode of |
| operation. My thanks to the developers of cppcheck! I am impressed! |
| |
| * Core OS: |
| |
| - vfork(): Now that arguments are kept on the stack, the way that |
| arguments are passed from parent to child in vfork() must change. |
| This bug has always been present, but was not visible with the |
| old strdup() way of passing arguments. |
| - vfork() problem: If we get to vfork() via system call, then we |
| need to clone some system call information so that the return form |
| the cloned system call works correctly. |
| - Fixes to tickless operation code, especially in alarm mode. From |
| Brandon Warhurst. |
| - Fix an important bug in the watchdog timer creation logic. |
| - Calling mq_timedreceived() with immediate timeout was getting stuck |
| and not timing out. Immediate timeout is achieved by setting absolute |
| timeout value to past time, for example abstime={ .tv_sec=0, |
| .tv_nsec=0 }. However absolute time was converted to relative time |
| using unsigned integer arithmetic and resulted large ticks count by |
| clock_abstime2ticks, instead of expected negative ticks value. |
| Change corrects clock_abstime2ticks() to return negative ticks, if |
| absolute time is in the past. From Jussi Kivilinna. |
| |
| * Memory Management: |
| |
| - Fix a place in the memory manager where it explicitly assumed that |
| the size of a pointer is 4 bytes. That assumption was OK if the |
| actual size is smaller but made the heap unstable when used with |
| the x86_64 host simulation. |
| - Granule Allocator: If the INTR granule allocator mode is enabled, |
| there is no semaphore to destroy. From Lorenz Meier. |
| |
| * Networking: |
| |
| - Network routing: I don't think that the net_route() function has |
| ever worked correctly. The source IP was updated in the match |
| struct instead of the route IP. From Brennan Ashton. |
| - Move and rename IP header flag definitions. The problem fixed here |
| is that there IP header flag definitions were not available when TCP |
| was disabled. The IP flags are used in ICMP and IGMP. |
| - Network routing: Refuse to perform routing table lookups for the |
| Broadcast IP address. From Brennan Ashton. |
| - Network routing: Add logic to netdev_findbyaddr() to return the |
| correct network device for the case where a broadcast |
| address is used. This change caused trivial ripples through other |
| files because additional parameters are required for |
| netdev_findbyaddr() when CONFIG_NET_MULTINIC. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - NXFFS Dump: Fix problems with redefinitions of fdbg macro. With the |
| fix to the syslog prototype, a LOG priority must now be the first |
| parameter. Fixed by replacing all occurrences of fdbg with |
| syslog(LOG_DEBUG, and eliminating the macro redefinitions. Noted |
| by Sebastien Lorquet. |
| - poll() was not waking up from signals (for example mq_notify() |
| events). From Jussi Kivilinna. |
| - poll(): Add proper handling for sem_timedwait errnos. From Jussi |
| Kivilinna. |
| - include/nuttx/fs/fs.h: Fix typo in conditional compilation. From |
| Alan Carvalho de Assis. |
| |
| * Graphics/Graphic-Related Drivers: |
| |
| - Remove warnings when CONFIG_NXTK_BORDERWIDTH is set to zero. From |
| Pierre-Noel Bouteville. |
| |
| * Common Drivers: |
| |
| - Make standard syslog and vsyslog POSIX compliant (also modify |
| non-standard syslog functions for compatibility). |
| - R/W buffering: Fix typo that can cause compilation error. |
| |
| * Atmel SAM3/4: |
| |
| - SAM4S: Add missing SPI0 clock configuration macro for the SAM4S. From spasbyspas. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4E-EK: Fix an error in a USART1 pin number. |
| |
| * Atmel SAMA5D3/4 Drivers: |
| |
| - SAMA5DF4: Fix several typos that will prevented EMAC1 from |
| initializing properly. |
| |
| * NXP LPC43xx: |
| |
| - Fixes to allow compile of lpc43_gpioint.c. From Brandon Warhurst. |
| |
| * STMicro STM32: |
| |
| - Add missing ADC pinmap definitions for the STM32 F103R from Martin |
| Lederhilger. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 EXTI: Correct STM32 RTC EXTI bit definition. From Lazlo. |
| - STM32 IWDG, WWDG, DBGMCU: Fix watchdog stop bit usage. From Lazlo. |
| - STM32 OTGFS: Correct a typo in the STM32 OTGFS register bit definitions. |
| |
| * ARM: |
| |
| - ARM up_internal.h: Add protection from C++ name mangling in the |
| ARM up_internal.h. From Lorenz Meier. |
| |
| * MicroChip PIC32MX: |
| |
| - PIC32MX7: DEVCFG0 bit 2 must be set. Writing bit 2 as zero can |
| brick the CPU on some versions. From Cris Kvist. |
| |
| * C Library: |
| |
| - The implementation of access() as vararg macro has the issue that |
| any function call with the same name (even in a C++ class) will |
| match with it and result in a compile error. Replaced with a small |
| function. This resolves the compile issue, and shouldn't have |
| negative side effects for users of the function. From Lorenz Meier. |
| - The definition of strncpy() is that empty space should be zero- |
| filled, the change adds the zero filling (See the POSIX spec here: |
| http://pubs.opengroup.org/onlinepubs/7908799/xsh/strncpy.html). From |
| Lorenz Meier. |
| - limits.h: Remove the definition of INT_FAST32_MIN which is already |
| defined in stdint.h (the correct location). From Lorenz Meier. |
| |
| * Applications: |
| |
| - apps/: Correct everything under apps to use the corrected syslog |
| interfaces. Remove any non-portable uses of syslog. |
| - NSH: Fix ls -l output for regular files. |
| - NSH: Fix reversed in/out file closing in DD command when an error |
| occurs. From Ken Pettit. |
| - NSH: Add logic to restart the console wait if an error occurs |
| while reading from the console. In USB console startup, the logic |
| must be able to open the USB serial and receive 3 newlines. |
| However, it the USB driver is disconnected or otherwise fails before |
| the 3 newlines are received, the receive loop becomes a killer, |
| infinite loop, CPU hog. Noted by spasbyspas. |
| - Netutils: Fix memcpy of host address in netlib_gethostaddr(). From |
| Brennan Ashton. |
| - Netutils: If you make a DNS request before the DNS address it would |
| cause an assertion. The state of the IP setting is not something the |
| application should be aware of, it should only be concerned with |
| whether or not the name was resolved. From Brennan Ashton. |
| - Netutils: Fix md5 hashing when digest[$i] islower that 16. From |
| Sergey. |
| - Stack Monitor: Fix compile problems introduced when the syslog() |
| prototype changed; Also update Makefile for kernel build From |
| Radoslaw Adamczyk. |
| - Examples: Update NxTerm makefile for kernel-build issues. From |
| Radoslaw Adamczyk. |
| - Examples: Fixes to keypadtest from Pierre-Noel Bouteville. |
| - Examples: These examples all set the IP address of eth1 but the |
| netmask and gateway of eth0 if DHCP is enabled: discover, tcpecho, |
| webserver, xmlrpc. That can't be right. |
| |
| NuttX-7.7 |
| --------- |
| |
| The 107th release of NuttX, Version 7.7, was made on January 26, 2015, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.7.tar.gz and |
| apps-7.7.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Task exit handling: Add logic to clean up after task_delete() or |
| pthread_cancel() if the task happens to be waiting on a semaphore |
| when was is cancelled. |
| - Stack coloration: Removed CONFIG_DEBUG_STACK and replaced it with |
| CONFIG_STACK_COLORATION that does the same thing but without enabling |
| debug. From David Sidrane. |
| |
| * Common Drivers: |
| |
| - Discrete joystick driver: Added an interface definition and upper |
| half driver for a discrete joystick device (where X/Y changes are |
| indicated with button presses). |
| - Analog joystick driver: Added an interface definition and upper |
| half driver for a analog joystick device (where X/Y positions are |
| sampled, numeric values). |
| - Add driver support for the ADXL345 accelerometer. From Alan |
| Carvalho de Assis |
| - Generic serial driver: Add watermark levels to the serial RX flow |
| control logic. Modify the rxflowcontrol method to accept the number |
| of bytes in the buffer and a boolean indication of which watermark |
| was crossed. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - Add procfs write support. From Ken Petit. |
| - Implemented wear-leveling in the SmartFS. From Ken Pettit. |
| - MMC/SD Interface: MMCSD SDIO: Add support for a new |
| SDWAIT_WRCOMPLETE condition. The previous logic used a busy-wait |
| loop to poll the card R1 status to determine when the card was |
| ready for the next transfer. That busy-wait can be quite long -- |
| up to hundreds of milliseconds. An alternative is to look the SD D0 |
| pin which will change state when the card is no longer busy. This |
| change avoids the busy-wait poll by reconfiguring the SD D0 pin as a |
| GPIO interrupt, then waiting for the card to become ready without |
| taking up CPU cycles. From David Sidrane. |
| |
| * Drivers: |
| |
| - Add support for a generic EEPROM driver that accesses EEPROM as a |
| character driver (vs. an MTD driver). From Sébastien Lorquet. |
| |
| * Graphics Support: |
| |
| - Many new fonts converted for use with NuttX and added by |
| Pierre-noel Bouteville |
| |
| * Networking: |
| |
| - IPv4 support is now conditioned on CONFIG_NET_IPv4. |
| - Implemented and verified IPv6 support conditioned on |
| CONFIG_NET_IPv6. Either IPv4 or IPv4 or both may be selected. |
| Sockets, of course, must be bound to one or the other. Added support |
| for IPv6 ioctls to manipulate IP addresses. |
| - Integrated support for ICMPv6 and the ICMPv6 Neighbor Discovery |
| Protocol and ICMPv6 ECHO request/reply needed to support ping logic. |
| - All Ethernet drivers: Modified to support. Most, however, are |
| still missing address filtering logic required for ICMPv6 Neighbor |
| Discovery Protocol. See |
| https://cwiki.apache.org/confluence/display/NUTTX/IPv6 |
| - Also added missing raw/packet socket support to all Ethernet drivers. |
| |
| * Host Simulation: |
| |
| - Add a configuration build and test the Traveler first person game |
| using the simulator. |
| - Add an X11 mouse-based simulation of an analog joystick device |
| |
| * Atmel SAMA5D Boards: |
| |
| - Add analog Joystick shield support for the SAMA5D3 Xplained board. |
| |
| * Freescale KL Drivers: |
| |
| - Add GPIO interrupt capability for the KL architecture. From Alan |
| Carvalho de Assis |
| |
| * Freescale KL Boards: |
| |
| - Freedom-KL25Z: Add board support for the ADXL345 accelerometer. From |
| Alan Carvalho de Assis |
| - Freedom-KL25Z: Update the Freedom KL25Z board CC3000 support to use |
| the current CC300 interfaces. From Alan Carvalho de Assis |
| |
| * NXP LPC43xx Boards: |
| |
| - A port of NuttX to the LPC4357-EVB from Toby Duckworth. This port |
| is a leverage of the LPC3330-Xplorer port and still have a some |
| misinformation from that port that needs to be updated for the |
| LPC4357-EVB. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - Serial: Add support for serial termios TCGET and TCSET. For the |
| moment, only set/get speed is implemented. From Pierre-noel |
| Bouteville. |
| - RMU: Add support for the EFM32 reset management unit (RMU). From |
| Pierre-noel Bouteville. |
| |
| * SiLabs EFM32 Boards: |
| |
| - Add support for timer/PWM on the EFM32GG. From Pierre-noel |
| Bouteville |
| |
| * STMicro STM32: |
| |
| - Enable support for the STM32 F102. From the PX4 team. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F429 LTDC: Add interface to perform hardware accelerated layer |
| operation. Provides access to a reference of a specific ltdc layer. |
| From Marco Krahl |
| - STM32 F429 LTDC support: Implemented LTDC framebuffer support for the |
| generic nuttx framebuffer interface. Also implements the interface to |
| perform hardware accelerated layer operation by the ltdc controller |
| and dma2d controller later. From Marco Krahl. |
| - STM32: Add support for the internal low speed clock (LSI) as a |
| source of the RTC clock. Some boards do not have the external |
| 32kKhz oscillator installed, for those boards we must fallback to |
| the crummy internal RC clock. From Kevin Hester |
| - STM32 SDIO: Add support for the new SDWAIT_WRCOMPLETE condition. |
| From David Sidrane |
| |
| * STMicro STM32 Boards: |
| |
| - Add a discrete Joystick support for the STM3210E-EVAL. |
| - Add analog Joystick shield support for the Nucleo F4x1RE boards. |
| - STM32 F429i-Disco: Add support for initializing of the ltdc |
| controller and the lcd device connected on the stm32f429i-disco. |
| From Marco Krahl. |
| - Removed the px4-v2_upstream configuration. This was not the |
| official configuration for the PX4 board and has led to confusion |
| by NuttX users. The board configuration also requires some ongoing |
| maintenance and customization to support ongoing PX4 testing and |
| evaluation. It is best retained the PX4 repositories where it can |
| be properly maintained and not in the upstream NuttX repository. |
| |
| * TI Tiva: |
| |
| - Add support for the TI Tiva TM4C 129X family. Some unverified |
| support for the TM4C 1294 is also in place. |
| |
| * TI Tiva Drivers: |
| |
| - Added support for Tiva I2C driver. Verified on the Tiva TM4C123G |
| and TM4C129X. |
| - Added a Tiva TM4C129X Ethernet driver. |
| - Add a timer library for generic support of Tiva timers |
| - Add a driver lower half for drivers/timer.c. Only 32-bit periodic |
| timers are supported. This provides userspace access to timers. |
| |
| * TI Tiva Boards: |
| |
| - TM4C123G Launchpad: Add initialization logic for an external AT24 |
| EEPROM. This is intended only to support testing of the Tiva I2C |
| driver. |
| - Board support for the Tiva DK-TM4C129x Connected Development Kit. |
| - DK-TMC129X: Add an IPv6-enabled NSH configuration. |
| |
| * C Library/Header Files: |
| |
| - Added support for a variadic ioctl() function. The ioctl() |
| interface is a non-standard, Unix interface. NuttX has always used |
| the older, three-parameter version. Most contemporary systems now, |
| however, use a variadic form of the ioctl() function. Added an |
| option to insert a shim layer to adapt the three-parameter ioctl() |
| to use the variadic interface form. Internally, the ioctl handling |
| is the same three-parameter logic. The only real complexity to the |
| shim is in how the system calls must be handled. |
| - Added sys/custom_file.h. Used when CUSTOM_FILE_IO is define and |
| avoids re-definition errors about the FILE define. From Thomas |
| Gruber via the PX4 repository |
| - Add CRC8 support to the C library. From Ken Pettit. |
| - math.h: Added support for the expm1 functions. From Brennan Ashton |
| |
| * Applications: |
| |
| - apps/examples/djoystick: Add a test of the discrete joystick |
| driver. |
| - apps/examples/ajoystick: Add a test of the analog joystick |
| driver. |
| - apps/examples/ltdc: Add ltdc test example. From Marco Krahl |
| - apps/system/lm75: Add a tiny application to read the temperature |
| from an LM-75 (or compatible) temperature sensor |
| - apps/examples/timer: Add a trivial test of the timer driver |
| |
| - apps/system/cu: Add a minimalist implementation of the 'cu' |
| terminal program (part of Taylor UUCP for ages). Using it, you can |
| simply open a serial port and interact with it. Using '~.' you can |
| leave the terminal program and drop back to nsh. This might come |
| in handy for people that have e.g. GSM modems, GPS receivers or |
| other devices with text based serial communications attached to |
| their Nuttx systems. From Harald Welte |
| - apps/interpreters/micropython: A port of Micro Python to NuttX. |
| Contributed by Dave Marples |
| |
| - apps/netutils/dnsclient: Can select to be either IPv4 or IPv6, but |
| not both (IPv6 still does not compile) |
| - apps/netutils/netlib: Add new library functions to manipulate IPv6 |
| addresses. |
| - apps/examples/nettest: Update test so that it can be used to test |
| IPv6 TCP sockets |
| - apps/examples/udp: The UDP test example has been extend to support |
| IPv6 domain sockets |
| |
| - apps/nshlib: Add logic to initialize IPv6 addresses |
| - apps/nshlib: Add the ping6 command to support checking IPv6 networks. |
| - apps/nshlib: Clean up network status presentation for IPv6 |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * IPv6. While basic IPv6 support was completed in NuttX-7.7, |
| there are lingering issues with getting IPv6 compatibility |
| with applications and network utilities. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| * Galileo: Similarly, there are fragments in place for an Intel Galileo |
| port. The port probably will not happen (I gave my Galileo board away!). |
| |
| 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: |
| |
| - POSIX message queues: msg type should be char * not void * in |
| mq_send, mq_timedsend, mq_receive, and mq_timedreceive. Noted by |
| Pierre-Noel Bouteville |
| - POSIX message queues: In message queue creation return ENOSPC error |
| if size exceeds the configured size of pre-allocated messages; Use |
| ENOSPC vs ENOMEM per OpenGroup.org. From Pierre-Noel Bouteville. |
| - Task Names: strncpy() will not copy the terminating \0 into the |
| destination if the source is larger than the size of the |
| destination. Ensure that the last byte is always zero and let |
| strncpy() only copy CONFIG_TASK_NAME_SIZE bytes. The issue of |
| unterminated names can be observed in ps when creating a pthread |
| while CONFIG_TASK_NAME_SIZE is set to 8. From Daniel Willmann |
| |
| * Memory Management: |
| |
| - Granule allocator: Fixes some issues found by the PX4 team using |
| Coverity. From Pavel Krienko |
| |
| * Networking: |
| |
| - Several fixes correcting issues with the CC3000 networking. From |
| Jussi Kivilinna |
| - CC3000 Fix: Data can be unaligned. When dereferenced as an input |
| ntosh(), a bad value is returned. Reported by Alan Carvalho de |
| Assis |
| - Correct naming of fields in struct sockaddr_in6: sin6_port and |
| sin6_family, not sin_port and sin_family. |
| - accept(): Correct the value returned by accept() in the case where |
| net_lockingwait() is called. It was returning -1 and losing the |
| errno value. Noted by Rony Xln |
| |
| * Common Drivers: |
| |
| - Loop device should return -EINTR is interrupted by a signal. |
| - M25P serial flash driver: Add subsector size of the M24P16 part. |
| From Lazlo |
| - Common serial driver: In case a thread is doing a blocking operation |
| (e.g. read()) on a serial device, while it is being terminated by |
| pthread_cancel(), then uart_close() gets called, but the semaphore |
| is still blocked. This means that once the serial device is opened |
| next time, data will arrive on the serial port (and driver |
| interrupts handled as normal), but the received characters never |
| arrive in the reader thread. The problem was fixed by re- |
| initializing the semaphores on the last uart_close() on the device. |
| From Harald Welte |
| - Pipes: Fixes some issues found by the PX4 team using Coverity. From |
| Pavel Krienko |
| - CDC/ACM driver: Fixes some issues found by the PX4 team using |
| Coverity. From Pavel Krienko |
| |
| * NXP LPC43xx Drivers: |
| |
| - LPC4357: Changes required to get USART 2 & 3 working on the |
| lpc4357-evb. From Toby Duckworth. |
| |
| * STMicro STM32: |
| |
| - Several fixes correcting issues with the STM32 header files from |
| Jussi Kivilinna |
| |
| * STMicro STM32 Drivers: |
| |
| - Ported Tridge's STM32 I2C noise resilience logic from the PX4 |
| repository. |
| - STM32 F2 and F4: Set the GPIO_SPEED_50MHz on all F2 and F4 SPI pin |
| configurations. This is based on an F411 SPI1 errata but the fixed |
| is generalized to all SPI and all F2 and F4. Discovered and fixed |
| by Sebastien Lorquet. |
| - Fix for STM32 OTGHS device driver working in FS mode. From Ken |
| Pettit. |
| - For STM32 OTG HS DEV (in FS mode): Disable ULPI clock enable in RCC |
| AHB1 Register. If Both ULPI and the FS clock enable bits are set in |
| FS mode, then the ARM never awakens from WFI due to a chip issue. |
| This is only an issue if you are using the internal PHY. From Ken |
| Pettit. |
| - STM32 F429 LTDC: Add missing clut register definition. From Marco |
| Krahl |
| - STM32 serial: fix declaration and definition of up_receive() and |
| up_dma_receive() to match fields in the interface definition of |
| struct uart_ops_s. From Freddie Chopin. |
| |
| * TI Tiva Drivers: |
| |
| - Fix Tiva IRQ control logic; was limited to only 64 IRQs. That is a |
| problem for higher numbered IRQs on many platforms |
| |
| * C Library/Header Files: |
| |
| - avsprintf(): Fix a bug in usage of va_list on x86. On x86, |
| va_list is a pointer to a single copy on the stack. avsprintf() |
| calls lib_vsprintf() twice and so traverses the va_list twice using |
| va_start. va_start modifies that single copy on the stack so that |
| the second call to lib_vsprintf() fails. This appears to be an |
| issue with x86 only so far. |
| - stdint.h: Don't use hex values to specify minimum values of fixed |
| width, signed values. Hex values are inherently unsigned and not |
| usable for this purpose in all contexts. |
| - strncpy(): Would trash a lot of memory if n == 0. From Yasuhiro |
| Osaki. |
| - sscanf(). Accept %X and %F as well as %x %f as a format specifiers. |
| From Sébastien Lorquet |
| |
| * Applications: |
| |
| - apps/examples/romfs: fix romfs example builtin app registry issue. |
| From Librae |
| - apps/system/cdcacm, composite and usbmsc: Fix some strangely placed |
| conditional compilation. Looks like an automated update went awry |
| - apps/netutils/telnetd: Add protection when CONFIG_SCHED_HAVE_PARENT |
| is enabled: Call sigaction with SA_NOCLDWAIT so that exit status is |
| not retained (no zombies) and block receipt of SIGCHLD so that |
| accept is not awakened by a signal. If accept() is awakened by a |
| signal, do not do anything crazy like exit. Most from Rony Xln |
| - apps/nshlib/: NSH TFTP get command: Wrong file name used for the |
| destination. From Lazlo |
| |
| NuttX-7.8 |
| --------- |
| |
| The 108th release of NuttX, Version 7.8, was made on February 11, 2015, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.8.tar.gz and |
| apps-7.8.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| This release is primarily a bugfix release for the NuttX-7.7 version that |
| was release just two weeks prior. That release included substantial |
| modifications in the NuttX networking to accommodate support for IPv6. This |
| release follows close behind NuttX-7.7 in order to correct some the problems |
| discovered in that networking code. This release does, however, include a |
| small number of new features and bug fixes unrelated to NuttX networking. |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Tickless Mode: added limit of maximum delay that can be request |
| by the scheduler tickless logic. This is necessary so that the |
| tickless logic does not request a delay beyond the capability of the |
| underlying hardware. From Macs Neklyudov. |
| |
| * Common Drivers: |
| |
| - VFS Unlink: Add an unlink method to both the character and block |
| driver interface. This is important because if the driver inode is |
| unlinked and there are no open references to the driver, then the |
| driver resources will be stranded. On the unlink call, the driver |
| has the opportunity (1) check if there an any open references, and |
| if not, (2) free the driver resources. |
| - Pipes and FIFOs: Implement the unlink method. If the pipe/FIFO is |
| unlinked, it will marked the pipe/FIFO as unlinked. If/when all |
| open references to the driver are closed, all of the driver |
| resources will be freed. |
| - Added an option to use the syslog'ing device as the system console. |
| This option enables a low-level, write-only console device at |
| /dev/console (similar to the low-level UART console device). From |
| Pierre-noel Bouteville. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - RAM/ROM disk: Add logic to dispose of the driver and RAM buffer |
| when the RAM disk has been unlinked and all open references to the |
| RAM disk have been closed. Add new parameters to romdisk() to |
| specify what should be done with the RAM/ROM buffer in this case -- |
| Should it be freed or not? Changed all calls to ramdisk() to use |
| these new parameters. |
| |
| * Networking: |
| |
| - Add support for local, Unix domain sockets. Support included for |
| both SOCK_STREAM and SOCK_DGRAM style local socket. |
| - UDP enhancement: Add UDP read-ahead support. In addition to |
| eliminating the main reason for lost UDP packets, then change |
| enables support for for poll/select on UDP sockets and also non- |
| blocking UDP sockets. From Macs Neklyudov. |
| - SLIP interface improvements. From Macs Neklyudov. |
| - IPv6 Neighbor Solicitation: Added logic to support verification |
| that we have the IPv6 address in the Neighbor Table before sending |
| any packets. If not, then the Neighbor Solicitation message is |
| sent. This feature is important because otherwise the first packet |
| sent to a remote peer will fail (it would have been replaced with a |
| Neighbor Solicitation). |
| - IPv6 Autonomous Auto-Configuration: Added support for sending |
| ICMPv6 Router Solicitation and receiving Router advertisement. The |
| local IPv6 address, mask, and router address are then auto-configured |
| from the response.. |
| - IPv6 Router Support: Add logic to behave like a router (if so |
| configured) only in the sense that NuttX will send the router |
| advertisement message in response to any received router solicitation |
| messages. Thus, one NuttX node in a network can configure the IPv6 |
| addresses of all other nodes in the network. |
| - Optional IPv6 address filtering added to all Ethernet drivers for |
| the all-routers multicast address. |
| |
| * Atmel AVR: |
| |
| - Added architecture support for the Atmel AVR ATMega1284P MCU. From |
| Jedi Tek'Unum. |
| |
| * Atmel AVR Boards: |
| |
| - Added support for the LowPowerLab MoteinoMEGA that is based on the |
| Atmel AVR ATMega1284P MCU. From Jedi Tek'Unum. |
| |
| * Atmel SAMA4: |
| |
| - Add support for Tickless mode of operation for the SAM4CM platform. |
| From Macs Neklyudov. |
| |
| * Atmel SAMA4 Drivers: |
| |
| - Ethernet: The SAM4E Ethernet driver can now be configuration to |
| perform all network processing on the work queue. This greatly |
| reduces the amount of interrupt level processing to service Ethernet |
| packets. |
| - SAM4E Ethernet: Add support multicast address matching and IPv6. |
| |
| * Atmel SAMA4 Boards: |
| |
| - SAM4E-EK: The nsh configuration now configures the Ethernet driver |
| for execution on the work thread. |
| |
| * Atmel SAMA5D Drivers: |
| |
| - SAMA5D4 Ethernet: The SAMA5D4 Ethernet driver can now be configuration |
| to perform all network processing on the work queue. This greatly |
| reduces the amount of interrupt level processing to service Ethernet |
| packets. |
| - SAMA5D3 and SAMA5D4 Ethernet: Add support multicast address matching |
| and IPv6. |
| |
| * Atmel SAMA5D Boards: |
| |
| - SAMA5D4-EK; Added a configuration to testing IPv6. |
| - SAMA5D4-EK: Converted the nsh and ipv6 configurations to configure |
| the Ethernet driver to use the work queue (vs. interrupt level |
| processing). |
| |
| * Freescale KL: |
| |
| - Add architectural support for the K26Z128VLH4 chip. From Derek B. Noonburg. |
| |
| * Freescale KL Boards: |
| |
| - Add board support for the Freedom KL26Z board. From Derek B. Noonburg. |
| |
| * NXP LPC17xx Drivers: |
| |
| - Ethernet: Add support multicast address matching and IPv6. |
| |
| * SiLabs EFM32: |
| |
| - Add configurable option to unconditionally enable LE clocking. Even |
| you don't use core clock LE as source for LFA or LFB, to read are |
| write any register not clocked by HFPERCLK or HFCORECLK, HFCORECLKLE |
| should be enabled. From Pierre-noel Bouteville. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - EFM32 RTC: RTC driver using BURTC. From Pierre-Noel Bouteville. |
| |
| * STMicro STM32 Drivers: |
| |
| - AES: Add driver for STM32L162XX AES peripheral. From Juha Niskanen. |
| - Ethernet: The STM32 Ethernet driver can now be configuration to |
| perform all network processing on the work queue. This greatly |
| reduces the amount of interrupt level processing to service Ethernet |
| packets. |
| - Ethernet: Add support multicast address matching and IPv6. |
| |
| * STMicro STM32 Boards: |
| |
| - Added an IPv6 configuration for the STM32F4-Discovery board (with the |
| STM32-DISCO_BB base board). |
| - Converted all STM32F4-Discovery configurations (with base board) to |
| configure the Ethernet driver to use the work queue (vs. interrupt |
| level processing). |
| |
| * TI Tiva Drivers: |
| |
| - Added support for TM4C123G timers. From Calvin Maguranis. |
| - Added a Tiva ADC driver. From Calvin Maguranis. |
| |
| * TI Tiva Boards: |
| |
| - Added TM4C123G timers on the TM4C123G Launchpad. From Calvin Maguranis. |
| - Added Tiva ADC support to the TM4C123G-Launchpad. From Calvin Maguranis. |
| |
| * C Library/Header Files: |
| |
| - Math Library: Added support for inverse hyperbolic functions, |
| isfinite(), error functions, nan(), copysign(), and trunc() |
| functions. From Brennan Ashton. |
| |
| * Applications: |
| |
| - apps/examples/ustream: Add a simple test of Unix domain stream |
| sockets. |
| - apps/examples/udgram: Add a simple test of Unix domain datagram |
| sockets. |
| - apps/netutils/netlib: Add utilities to convert to/from prefix |
| lengths from/to 128-bit network masks. |
| - apps/nshlib: Modify the NSH IPv6 ifconfig command to show the more |
| standard post-pended prefix value, rather than the full 128-bit |
| netmask. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| 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: |
| |
| - Work Queues: Fix a backward calculation when determining the time |
| to the next interesting event. . From Liio Chen via the PX4 |
| repository. |
| - clock_systimespec(): Fixes for compilation errors in certain |
| configurations. From Macs Neklyudov. |
| |
| * Graphics |
| |
| - Fixed a problem with one of the font files. From Pierre-noel Bouteville. |
| |
| * Networking: |
| |
| - IOB Deadlock: There were issues with the TCP write-ahead buffering |
| if CONFIG_NET_NOINTS was enabled: There is a possibility of |
| deadlocks in certain timing conditions: The network should never |
| wait for TCP read-ahead buffering space to be available. It should |
| drop the packets immediately if no buffering is available. This was |
| fixed by duplicating most of the IOB interfaces: The versions that |
| waited are still present (like iob_alloc()), but now there are non- |
| waiting versions of the same interfaces (like iob_tryalloc()). The |
| TCP read-ahead logic now uses only these non-waiting interfaces. |
| - TCP Deadlock: Fix another deadlock when CONFIG_NET_NOINTS is enabled. |
| tcp_write_buffer_alloc() calls sem_wait() with network locked. That |
| worked if CONFIG_NET_NOINTS was not defined because interrupts are |
| automatically restored when the wait happens. But with |
| CONFIG_NET_NOINTS=y, the wait blocks with the network locked -- bad |
| style and also can lead to a deadlock condition. |
| - ARP response waiting: Fixes another CONFIG_NET_NOINTS issue. When |
| called sem_timedwait() with the network locked, the network stays |
| locked while we wait which is not what we want (without CONFIG_NET_NOINTS, |
| interrupts are re-enabled while we wait and all is well). |
| - TCP accept(): Fix a major TCP bug introduced with the NuttX-7.7 |
| IPv6 changes: Some connection logic was reordered; setting the |
| socket as 'connected' got moved to BEFORE the point where the check |
| was made if the socket was already connected. The resulting behavior |
| was odd: Telnet would connect, but then when you exit and reconnect, |
| it would fail to connect. But then if try again, it would connect |
| okay. So the symptom was connect-fail-connect-fail-... |
| - Lots of build problems introduced into multiple NIC support with the |
| IPv6 changes of NuttX-7.7. Many places where conditional logic based |
| on CONFIG_NETDEV_MULTINIC is confused with CONFIG_NET_MULTILINK. |
| Lots of code changed with IPv6 that was never compiled with MULTINIC |
| enabled. |
| |
| * Common Drivers: |
| |
| - Pipes and FIFOs: Fix a race condition between FIFO buffer operations |
| and the opening and closing of FIFOs which necessary when the FIFOs |
| are used to support Unix domain, datagram sockets. The default |
| policy is the deallocate FIFO buffering when the last client closes |
| the pipe. When when used for datagram communications, packets left |
| in the FIFO will be lost. Some like UDP read-ahead is needed: The |
| buffered data in the FIFO needs to be retained until the reader gets |
| a chance to re-open the FIFO. Added an ioctl (PIPEIOC_POLICY) to |
| control the buffer policy. Default (0) is the legacy behavior; Unix |
| domain datagram logic sets the alternative policy so that the packet |
| data persists after the FIFO is closed. |
| - RAMTRON: Table of parts is not terminated properly if |
| CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David |
| Sidrane. |
| |
| * All Architectures: |
| |
| - Removed all occurrences of up_maskack_irq() that disables interrupts |
| with up_ack_irq() that only acknowledges the interrupts. This is only |
| used in interrupt decoding logic. Also remove the logic that |
| unconditionally re-enables interrupts with the interrupt exits. This |
| interferes with the drivers ability to control the interrupt state. |
| This is a necessary, sweeping, global change and unfortunately |
| impossible to test. |
| |
| * ARM |
| |
| - ARMv7-A and ARMv7-M memcpy(): Optimized ARM assembly language |
| memcpy's were not returning a value in R0 they are required to do. |
| From David Sidrane. |
| - ARMv7-A interrupt handler should not automatically re-enable interrupts |
| on interrupt return. That interferes with the driver's ability to |
| manage interrupts. Analogous change made to all other architectures |
| as well (ARM7, ARM9, HC, SH, x86, z16, z80, etc,. See above.). |
| |
| * STMicro STM32: |
| |
| - GPIO Interrupts: Disabling any of EXTI 5-9 interrupts was disabling |
| interrupts for all EXTI 5-9. Same issue with EXTI 10-15. From Jussi |
| Kivilinna. |
| |
| * STMicro STM32 Drivers: |
| |
| - RTCC: Fix for recent changes that caused compilation failrues with |
| STM32L15XX configurations. From Jussi Kivilinna. |
| - SPI: The source clock for SPI 4,5, and 6 should be PCLK2, not PCLK1 |
| (for F411, F427, and F429). Per David Sidrane. |
| |
| * C Library/Header Files: |
| |
| - execl(): Fix bad logic in counting the number of arguments. |
| execl() parameter passing could never have worked. Noted by |
| Pierre-noel Bouteville. |
| |
| * Applications: |
| |
| - Fix for building with parallel make. Build-server sometimes failed |
| 'make -j24' with errors in the builtin line or or sometimes silently |
| succeeds but generated builds that contain a random subset of |
| configured NuttX applications. There are two root causes for this: |
| (1) Recipes for building builtin_list.h and builtin_proto.h are |
| not linearizable, and (2) Nothing ensures that 'make context' is run |
| first for apps/builtin. This change address both issues. From Juha |
| Niskanen. |
| |
| NuttX-7.9 |
| --------- |
| |
| The 109th release of NuttX, Version 7.9, was made on April 14, 2015, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.9.tar.gz and |
| apps-7.9.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Core OS: |
| |
| - Assertions: Add support for dumping board-specific information on |
| assertions. From David Sidrane. |
| - boardctl(): : Add a new non-standard OS interface called boardctl(). |
| This is similar to a driver IOCTL call. But this is an IOCTL call |
| directly on the board logic. This function will eventually replace |
| all of the ad hoc OS interfaces that are current used to perform |
| application specific initialization and application driver test |
| configuration. It essentially formalizes and institutionalizes |
| these rogue interface in to at least a single crazy call. |
| |
| * Graphics: |
| |
| - Line Joins: Line drawing graphic functions now take an argument that |
| will draw a circular "cap" on the ends of lines to support cleaner |
| joining of lines segments.. |
| |
| * Common Drivers: |
| |
| - SPI iInterface: Add an SPIDEV_USER so that there can be board- |
| specific definitions of SPI devices. |
| - I2C Interface: Add a user provided void * argument to the I2C |
| callback method for the I2C slave interface. Suggested by Nate |
| Weibley. |
| - AT24 EEPROM Driver: Add support for (1) the byte-oriented read() |
| method, (2) devices that have extended memory regions, and (3) |
| devices that use 8-bit addressing. |
| - Freescale MPL115A barometer: Add driver for the Freescale MPL115A |
| barometer. From Alan Carvalho de Assis. |
| - CS2100-CP: Add a driver for the CS2100-CP Fractional-N Multipler |
| chip. |
| - RTC IOCTls: Added the definitions of a driver based RTC interfaces |
| and RTC upper half driver. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - umount2(): Added to support un-mount flags. umount() is now a macro |
| that just calls umount2() with flags = 0. |
| - File system interface: Pass the umount2() flags to every unbind() |
| implementation. That is where the decision to umount or not and how |
| to umount will be made. |
| - FAT unbind: Add support for umount2(target, MNT_FORCE) in the FAT |
| file system. |
| |
| * Networking: |
| |
| - netdev_register(): Improve the network device registration logic. |
| When multiple link types are used, modify how each interface number |
| is assigned to the device name by incrementing the device number |
| individually for each interface link type. From Max Neklyudov. |
| - Add TUN network device. Used to support the Netutils PPPD |
| implementation. From Max Neklyudov. |
| |
| * ARMv7-M |
| |
| - ARM Cortex-M7: Add basic support for the Cortex-M7 architecture. |
| - ARMv7 Common Lazy Exception handling. Add common support for lazy |
| FPU state saving. MCU-specific lazy FPU saving was already in place. |
| This change just makes the code share-able. |
| |
| * Atmel SAMA5D3/4 Drivers: |
| |
| - SAMA5 Serial: Backport support for flowcontrol and termios from |
| SAM3/4. |
| |
| * Atmel SAMV7: |
| |
| - Atmel SAMV7: Add architecture support for the Atmel SAMV7 family |
| (Cortex-M7) |
| |
| * Atmel SAMV7 Boards: |
| |
| - Atmel SAMV71 Xplained Ultra: Add board support for this SAMV7 board. |
| This initialize release includes support for: SDRAM, TWI/I2C, SPI, |
| Ethernet, HSMCI, DMA, GPIOs, UARTs, AT24 EEPROM and the maXTouch |
| Xplained Pro LCD. Drivers are available for SSC/I2C, the WM8904, |
| the maXTouch trouchscreen, and USB device but have not yet been |
| fully integrated in this release. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - EFM32 USB Device is now functional with the efforts of From Pierre- |
| noel Bouteville. |
| - EFM32 I2C: Add I2C driver. From Pierre-noel Bouteville. |
| |
| * STMicro STM32: |
| |
| - STM32F372/F373: Adds architecture support for this STM32 parts. |
| Tested on STM32F373CC. Contributed by Marten Svanfeldt. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 RTCC: Break out a new internal interface, stm32_rtc_setdatetime(). |
| This eliminates some un-necessary time conversions. From Freddie Chopin. |
| - STM32 RTCC: Add an implementation of the RTC lower half interface |
| for the STM32. |
| - STM32 RTCC: Extend the RTC interface to support reading subseconds. |
| From Jussi Kivilinna. |
| - STM32 BBSRAM: Adds the ability to use the STM32F2 and STM32F4 Battery |
| Backed SRAM in the file system. With an option to Save Panic context |
| to one of the files. From David Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - Olimexino-STM32: Board support for the Olimexino STM32 board from David |
| Sidrane. |
| - Viewtool-STM32F107: Add support for an optional, add-on Freescale |
| MPL115A baramoter. From Alan Carvalho de Assis. |
| |
| * TI Tiva: |
| |
| - TM4C1294: Add support for the TM4C1294. Contributed by Frank Sautter. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva ADC: Updated files to allow for ADC and PWM triggering by a |
| timer. Refactoring of ADC implementation. From Calvin Maguranis. |
| - Tiva Timer: Refactoring by Calvin Maguranis |
| |
| * TI Tiva Boards: |
| |
| - TM4C123G-launchpad: Add ADC support. From Calvin Maguranis. |
| - TM4C123G-launchpad: Add board button interrupt support. From Calvin |
| Maguranis. |
| - TM4C1294 Launchpad: Add support for the TM4C1294 Launchpad. |
| Contributed by Frank Sautter. |
| |
| * Microchip PIC32 |
| |
| - PIC32MZ: Add architectural support for the PIC32MZ (MIPS32 M14k). |
| Includes contributions from Kristopher Tate. |
| |
| * Microchip PIC32MZ Boards |
| |
| - PIC32MZ Starter Kit: Add basic board support for the PIC32MZ. |
| Includes contributions from David Sidrane. |
| |
| * C Library/Header Files: |
| |
| - gettimeofday(): This function is no longer a core OS interface. It |
| is only a wrapper around clock_settime(). |
| - settimeofday(): Added. gettimeofday has been deprecated in POSIX |
| 2008. settimeofday() was never part of POSIX, but I decided to add |
| it to libc as well just for symmetry. |
| - Day-of-Week: Add CONFIG_TIME_EXTENDED to support the last 3 members |
| of the tm struct and support for filling them in with the day of the |
| week. From David Sidrane. |
| - sighold(), sigrelse(), sigignore(), sigset() and sigpause(): New |
| signal handling functions. |
| - sys/select.h: Extend the fd_set type definition so that it can |
| handle more than 32 descriptors (if so configured). From Max |
| Neklyudov. |
| - netdb.h: Add a mostly-commented-out version of the standard netdb.h |
| header file. |
| - include/nuttx/board.h: Remove common board function prototypes from |
| other files and consolidate them in this new header file. |
| |
| * Applications: |
| |
| - OS test: Improved error checking for sem_timedwait() from Juha |
| Niskanen. |
| - OS test: Add a simple test of sigprocmask, sighold, and sigrelse. |
| - PPPD test: Add PPPD test case. Split out from the PPPD daemon by |
| Brennan Ashton. |
| - Netutils: Add a PPP daemon. From Max Neklyudov. |
| - NSH: NSH initialization now calls boardctl(BOARDIOC_INIT) instead |
| of nsh_archinitialize(). Remove support for CONFIG_NSH_ARCHMAC. |
| It is not used and there are better ways to do that operation. |
| - NSH: Allow NSH 'date' command with no hardware RTC. This command |
| is useful without an RTC too. Also, this permits testing on the |
| simulator which never has an RTC. |
| - apps/examples/: Several tests changed (touchscreen adc, pwm, |
| graphics). No longer call directly into the OS, but rather |
| indirectly via boardctl(). |
| - Modbus: Includes extensions to support RTU master mode by |
| Armink(383016632@qq.com): https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32. |
| Ported to NuttX by Darcy Gong. |
| - TZ database: All logic to build timezone database needed for |
| localtime() support. Does not do much else yet. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| 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: |
| |
| - atexit(): Fix compile failure due to reference to undefined variable |
| in certain configurations. From Juha Niskanen. |
| - syscalls: Last changes to message queue prototypes did not make it |
| into call gate logic. Some additional errors had crept as well since |
| the system calls are seldom used. |
| - waitpid(): Do not use uninitialized boolean in waitpid(). From Juha |
| Niskanen. |
| - Timing functions: Fix some nanosecond comparisons. Comparisons should |
| be greater than OR EQUAL TO 1000000000 for maximum value of nanoseconds |
| in struct tm. From Juha Niskanen. |
| - Time initialization: Fix an error in time initialization when there |
| is no RTC and the time is initialized from a fixed configured value. |
| The call to clock_calendar2utc() was returning the time in units of |
| seconds. The initialization logic, however, was expecting to get |
| time in units of days. This problem has been there forever but |
| obviously has not significant impact to behavior in systems where |
| time is not visible. |
| - mq_timedsend(): Should not check for valid time if there is space |
| in the message queue. Noted by Freddie Chopin. |
| - select() and sem_timedwait(): Fix places where the errno value was |
| being overwritten by subsequent actions so that the returned errno |
| value was incorrect. From Max Neklyudov. |
| - clock_systimer64(): Fix a problem in clock_systimer64 that occurs |
| when (1) the 64-bit system time is enabled, and (2) the value of |
| CONFIG_USEC_PER_TICK is less than 1 milliseconds (such as when using |
| the tickless mode of operation). In that case, the conversion of |
| time to 64-bit millisecond value in clock_systmer64() causes some |
| bad times to be returned. Time was converted to milliseconds, then |
| to configured ticks. Precision was lost in the millisecond |
| conversion. The fix is to first convert time to a 64-bit microsecond |
| value, then to the configured tick value. Noted by David Sidrane. |
| - clock_systimespec(): When an RTC is used clock_systimespec() must |
| subtract the basetime from the returned time. It needs to return |
| the time since power up, no the current time. Issue noted by Max |
| Neklyudov. |
| - AIO: correct some backward tests in aio_read() and aio_write(): |
| Socket descriptors have higher numbers than file descriptors. In |
| aio_contain(), Copy u.ptr (void *) when initializing aioc and not |
| the case specific u.aioc_filep. From Michal Ulianko. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - procfs: Fix potential NULL pointer dereference of 'node'. From |
| Juha Niskanen. |
| - FAT: fat_unbind() was accessing 'fs->fs_sem' after freeing the 'fs' |
| struct. From Juha Niskanen. |
| - mkfatfs: Use DMA memory for mkfatfs when needed. This makes mkfatfs |
| use fat_dma_alloc() when CONFIG_FAT_DMAMEMORY is set. This is needed |
| to ensure mkfatfs operates with boards that use DMA for microSD. |
| From Andrew Tridgell via the PX4/NuttX repository. |
| - FAT unmount: Fix a bug in the FAT unbind() logic. There were |
| problems with the way certain internal list handling was |
| implemented. The end result is that newly opened or cloned file |
| structures were never being added to the list of open files. So |
| when the unmount() happens, it always looked like there were not |
| open files and a crash could ensue. |
| - FAT mounting: Fix misthink when CONFIG_ENDIAN_BIG=y. From Lwazi Dube. |
| |
| * Common Drivers: |
| |
| - CAN upper half driver: Some lines had to be reordered in the can_open |
| function otherwise the open count will only be incremented from 0 to |
| 1. This caused problems when trying to open the can bus from two |
| different tasks. SourceForge Patch #46. |
| |
| * Crypto: |
| |
| - crypto: Fix issues when AES support was added for the STM32L1. |
| From Juha Niskanen. |
| |
| * Networking: |
| |
| - Network initialization: Divide net_intiialize() into net_setup() and |
| net_initialize() to solve a chicken-and-egg problem. net_setup() |
| must be called before up_initialize() is called so that networking |
| data structures are ready to register new network devices. |
| net_initialize() now does only timer related operations and is |
| called AFTER up_initialize() where the timers are configured. |
| Problem noted by Max Neklyudov. |
| - netdev_unregister(): Fix a list handling error. From Max Neklyudov. |
| - Socket dup: Do not call sockfd_socket() twice. From Juha Niskanen. |
| |
| * Common Drivers: |
| |
| - max11802 touchscreen: Fix possible unmatched IRQ restore (not |
| normally a problem, but could happen in certain configurations). |
| Noted by Juha Niskanen. |
| - MMCSD SPI Multi-block transfers: ACMD23 must be preceded with CMD55 |
| command as any other ACMD commands. Also, after the block reading |
| wait loop must be inserted before writing the next block of data to |
| the sd card. From Dmitry Nikolaev via Jussi Kivilinna. |
| - MMCSD SDIO: Fix some bad logic when file system debug is turned on: |
| Arguments to syslog were missing so that garbage was being printed. |
| - Common upper-half serial driver: Report correct number of bytes free |
| in serial buffer with FIONWRITE. From Sami Pelkonen via Jussi Kivilinna. |
| - Pipes/Fifos: Fix zero-lenth writes to pipes/FIFOs. From Jussi Kivilinna. |
| - USB device MSC: Add NULL pointer check. From Juha Niskanen. |
| - BCH driver: Avoid NULL pointer dereference when bch->refs == 255. |
| From Juha Niskanen. |
| - Various drivers: The inode unlink method should not be support if |
| operations on the root pseudo-filesystem are disabled. |
| |
| * ARMv7-M |
| |
| - ARMv7M MPU: Bad syntax in ARMv7-M MPU logic would cause failure to |
| write the correct value to the MPU_RASR register. From Juha Niskanen. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM3/4 Serial TERMIOS: A side-effect of changing serial settings |
| via TERMIOS (such as tcsetattr) is that serial interrupts were being |
| left disabled. This is not a problem if the serial configuration is |
| changed when there are no open references to the serial device. In |
| that case, serial interrupts are disabled and will not be enabled |
| enabled until the serial device is first opened. But it is fatal if |
| the serial device is already opened and if there is a task waiting |
| to receive data. In that case, the side-effect of disabling |
| interrupts is fatal: That task is then left hanging with interrupts |
| disabled. |
| - SAM3/4 Serial: The IMR register is read-only. This means that |
| sam_restoreints() did not actually re-enable UART interrupts |
| (Fortunately, that function was not being used up to this point). |
| - SAMA5 HSMCI: Fix a bug in SAMA5 HSMCI. The bitfield mask and shift |
| values were reversed resulting in a trashed value for the number of |
| blocks in the BLOCKR register. This was sufficient to prevent DMA |
| writes from working. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAMA5 Timer/Counter: Fix typos in timer/counter header file. From |
| Bob Doiron. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 PWR and RTC: Changes to support fully write protecting the |
| backup domain. N.B. stm32_pwr_enablebkp did not account for the delay |
| from enable to the domain being writable. The KISS solution is a |
| up_udelay. A more complex solution would be a negated write test |
| with restore. From David Sidrane. |
| - STM32 SPI: Add missing SPI callback functions to the STM32 SPI |
| driver. From Freddie Chopin. |
| - STM32 I2C: Add missing NULL check. From Juha Niskanen. |
| - STM32 USB device: Fix stale initialization invalidating later NULL |
| check. From Juha Niskanen. |
| - STM32 UART: Fix RX DMA setup for UART5. From Jussi Kivilinna. |
| - STM32 UART: Make input hardware flow-control work with RX DMA. From |
| Jussi Kivilinna. |
| - STM32 RTC and clock control: The STM32F4Discovery board doesn't |
| come with a Low speed external oscillator so the default LSE source |
| for the RTC doesn't work. In stm32_rtcc.c the up_rtc_initialize() |
| logic doesn't work with the LSI. The check on RTC_MAGIC on the BK0R |
| register lead to rtc_setup() call that rightfully enables the LSI |
| clock; but the next times, when the rtc is already setup, the |
| rtc_resume() call does NOT start the LSI clock! The right place to |
| put LSE/LSI initialization is inside stm32_stdclockconfig() in |
| stm32fxxxxx_rcc.c. Doing this I checked the possible uses of the |
| LSI and the LSE sources: the LSI can be used for RTC and/or the |
| IWDG, while the LSE only for the RTC (and to output the MCO1 pin). |
| This change is not verified for any other platforms. From Leo |
| Aloe3132 |
| |
| * Tiva Drivers: |
| |
| - Tiva GPIO driver needed small fixes in the configuration routines and |
| discovered false-positive bugs in interrupt testing: interrupts are |
| now verified to actually be working reliably. From Calvin Maguranis . |
| |
| * MIPS32: |
| |
| - mips32/Toolchain.mk: Current Pinguino toolchain uses the prefix p32- |
| instead of mips-. |
| |
| * C Library/Header Files: |
| |
| - sigaddset() and sigdelset(): Need to set errno if a bad signal |
| number is received. |
| - sfrtime(): Missing implementation of %C in sfrtime() C (was being |
| treated as %y). From Freddie Chopin. |
| - pthread.h: Fix PTHREAD_COND_INITIALIZER. |
| - ungetc.c: Fix NULL pointer dereference in ungetc() if 'stream' was |
| NULL, 'stream->fs_oflags' was evaluated. From Juha Niskanen. |
| - Fixes to asinh(), atanh(), and sinh(): The 'basic' expansions all |
| exhibited bad cancellation errors near zero (<= 1E-10). This can be |
| easily seen e.g. with x = 1E-30, the results are all zero though they |
| should be extremely close to x. The cutoff values (1E-5, 1E-9) are |
| chosen so that the next term in the Taylor series is negligible (for |
| double). Functions could maybe be optimized to use only first term (x) |
| and a smaller cutoff, just bigger than where the cancellation occurs |
| - localtime(): Inconsistent configuration name: CONFIG_LIBC_TZDIR vs |
| CONFIG_LIBC_TZ_TZDIR. Former wins. |
| |
| * Applications: |
| |
| - Modbus: Fix some compile problems when TCP is enabled. |
| |
| NuttX-7.10 |
| ---------- |
| |
| The 110th release of NuttX, Version 7.10, was made on June 9, 2015, |
| and is available for download from the SourceForge website. Note |
| that release consists of two tarballs: nuttx-7.10.tar.gz and |
| apps-7.10.tar.gz. Both may be needed (see the top-level nuttx/README.txt |
| file for build information). |
| |
| Additional new features and extended functionality: |
| |
| * Binary Loader: |
| |
| - ARMv-7M, binfmt/, STM32: Add support uClibc++ exceptions. This |
| involved additional handling for relative relation types, additional |
| support for unwinding, as well as additional changes. The |
| culmination of a big effort from Leo Aloe3132. |
| |
| * Graphics/Graphic Drivers: |
| |
| - RA8875 LCD driver contributed by Marten Svanfeldt. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - Union File System: Add support for a union file system that can be |
| used to overlay and merge the content of two mounted file systems. |
| |
| * USB Host: |
| |
| - USB Hub Support: Bring in USB hub-related files from |
| https://github.com/kaushalparikh/nuttx. This is the work of Kaushal |
| Parikh. This is quite a bit more hub logic was needed in before the |
| USB hub support was fully functional. This involved changing many |
| USB host controller driver interfaces and modifications to many |
| drivers. |
| - USB host CDC/ACM class driver: Added initial implementation of a |
| host-side CDC/ACM driver. Initial version was a great learning |
| experience, but probably should be partially redesigned (as |
| discussed in the top-level TODO file). |
| - IPv6 Routing: Complete implementation of the IPv6 routing logic. |
| From Max Neklyudov. |
| |
| * Networking: |
| |
| - Local Sockets: Add poll support for Unix stream sockets. From Jussi |
| Kivilinna. |
| - net/: ARP, ICMP, ICMPv6, PKT, TCP, and UDP now all receive event |
| notifications from both network device packet processing, but now |
| also from Device-specific events such as when the network goes down. |
| The device notification callback structure is now supports dual |
| linkages so that the client can receive notifications from both |
| source; The device structure now includes a list of clients that |
| want to receive device related notifications. This prevents network |
| actions from hanging when the device goes down and will be an |
| essential part of future support for removable network devices. |
| Some of the core logic was contributed by Max Neklyudov. |
| - TUN: Misc. improvements to the TUN driver, mostly related to poll(). |
| Also several bugfixes. From Max Neklyudov. |
| |
| * Simulation Platform: |
| |
| - Simulator: Add logic to test localtime and TZ database. See |
| apps/system/README.txt for info. |
| - Simulation: Add a configuration for testing the Union File System. |
| |
| * Calypso: |
| |
| - Calypso Compal-E86: Updates for execution out of FLASH on the C139 |
| phone. From Craig Comstock. |
| |
| * Atmel SAMD/L: |
| |
| - SAML21 Support: And chip definitions, configuration framework, |
| memory map and pin configuration files for SAML21 support. |
| |
| * Atmel SAMD/L Boards: |
| |
| - SAML21-Xplained: Add a board support for the SAML21 Xplained Pro. |
| This is based on the similar SAMD20 Xplained Pro board. |
| |
| * Freescale/NXP KL: |
| |
| - KL25Z64: Added support for the KL25Z64. The KL25Z64 is a lower |
| memory variant of the KL25Z128 and is used on the Teensy LC. From |
| Michael as SourceForge patch 50. |
| |
| * Freescale/NXP KL Boards: |
| |
| - Teensy-LC: Add board support for the Teensy LC board. Support is |
| based off the Freedom KL25Z board. LED, PWM, and UART0 have been |
| tested. The SPI pins are mapped correctly but have not yet been |
| tested. From Michael Hope as SourceForge patch 51. |
| |
| * NXP LPC111x: |
| |
| - LPC111x: Support for the LPC11xx family (the LPC1115 MCU in |
| particular). Contributed by Alan Carvalho de Assis. |
| |
| * NXP LPC111x Boards: |
| |
| - LPCXpresso LPC1115: Support for the LPCXpression LPC1115 |
| board. Contributed by Alan Carvalho de Assis. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC17xx Ethernet: Add support for the Micrel KSZ8041 PHY to the |
| LPC17xx Ethernet driver. |
| |
| * NXP LPC17xx Boards: |
| |
| - Lincoln60: Add a network enabled configuration for the Lincoln60 |
| board. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4CM: Add support for optical mode for the SAM4CM UART1. From |
| Max Neklyudov. |
| |
| * Freescale (NXP) Kinetis: |
| |
| - Kinetis K20: Basic support for the Kinetis K20 architecture. Taken |
| from PX4. This is the work of Jakob Odersky. |
| |
| * Atmel SAMV7 Boards: |
| |
| - SAMV71-Xplained w/maXTouch Xplained Pro: A TWIHS fix was the last |
| barrier to getting the touchscreen working in the maXTouch Xplained |
| Pro LCD. Added the NxWM integrated graphics demonstration |
| configuration. |
| |
| * STMicro STM32: |
| |
| - STM32: Added support for STM32F302K8 and STM32F302K6. From Ben Dyer |
| via PX4/David Sidrane. |
| - STM32F205RG: Add basic support for the STM32F205RG. From SourceForge |
| Ticket 40 (anonymous, 2015-05-31). |
| - STM32 F3: Add DBGMCU register definitions for the F3 family. From |
| Greg Meiste. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 LCDC: Defined a second interface for the dma2d controller. |
| LTDC only controls the display visibility but the DMA2D controller |
| changes the content of the frame buffer (buffer of the layer). From |
| Marco Krahl. |
| - STM32 PVD: Added support for STM32's Programmable Voltage Detector |
| (PVD) feature. By Dmitry Nikolaev, submitted by Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429i-Disco: Add support for the new DMA2D features to the LTDC |
| configuration. From Marco Krahl. |
| |
| * TI Tiva Boards: |
| |
| - TM4C1294 Launchpad: Added TM4C1294NCPDT EN0_LED2 (10/100-Base-Tx); |
| removed all booster pack pin definitions. From Frank Sautter. |
| |
| * C Library/Header Files: |
| |
| - libc: Add an option to disable support for long long formats in |
| lib_vsprintf(). On very tiny platforms, this reduces the footprint |
| by omitting large libgcc.a libraries to perform the 64-bit |
| arithmetic operations. From Alan Carvalho de Assis. |
| |
| * Applications: apps/system: |
| |
| - nuttx/zoneinfo: Add logic to build a ROMFS file system |
| containing the timezone data. |
| |
| * Applications: apps/nshlib: |
| |
| - Add poll support for Unix stream sockets. From Jussi Kivilinna. |
| - Enhancements to NSH ifconfig for case of multi-link operation, TUN |
| device and local connections. From Max Neklyudov. |
| - Enhanced output to NSH ping command from Max Neklyudov. |
| - The NSH mount command now recognizes the Union filesystem type when |
| listing mounted file systems. |
| |
| * Applications: apps/netutils: |
| |
| - apps/netutils/thttpd/ and apps/examples/thttpd/: Add support for |
| using binfs/ with the Union FS instead of NXFLAT. NXFLAT is |
| probably the better solution but recently compiler changes make it |
| unusable. binfs or ELF are fallback binary formats. This commit |
| adds an option to use binfs with the Union FS. |
| |
| * Applications: apps/examples: |
| |
| - Modify/simpify apps/examples build files. From Roman Saveljev. |
| - apps/examples/ltdc: Add testing support for the STM32 LTDC's 2D DMA. |
| From Marco Krahl. |
| - apps/examples/ostest: Add a test of nested signals. There are no |
| failures to handle signals but neither am I getting any nested signal |
| handling. |
| - apps/examples/elf: Add configuration options to support building the |
| hello++4 example that depends upon having uClibc++ available. Also |
| add hello++5 to the ELF example From Leo aloe3132. |
| - apps/examples/unionfs: Add a test of the union file system to |
| apps/examples. |
| |
| Efforts In Progress. The following are features that are partially |
| implemented but present in this release. They are not likely to be |
| completed soon. |
| |
| * Processes. Much of the work in this release is focused on the |
| realization of Unix-style user processes in NuttX. There is more to |
| be done, however. The full roadmap and status is available at: |
| https://cwiki.apache.org/confluence/display/NUTTX/Memory+Configurations |
| |
| * XMega: There are some fragments in place for an XMega port. That |
| port has not really started, however. |
| |
| 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: |
| |
| - boardctl(): Add missing case causing that caused failures of PWM |
| test. |
| - pthread_kill(): Re-implemented pthread_kill(). It was just a simple |
| wrapper around kill() but since the correct dispatching of signals |
| for multi-threaded task groups has been implemented, calling kill() |
| does not do what pthread_kill() is supposed to do. The corrected |
| implementation of pthread_kill() will direct the signal specifically |
| to the specific pthread and no other. |
| - uint32_t callbacks: Update the type passed to watchdog timer |
| handlers. Using uint32_t is a problem for 64-bit machines because |
| it is too small to pass a pointer. uintptr_t is a more appropriate |
| type. |
| - mq_timedreceive(): move the location where the errno value is set; |
| the ETIMEDOUT errno setting was being overwritten by subsequent |
| actions before returning. Noted by Freddie Chopin. |
| - POSIX message queues: Move mq_setattr() and mq_getattr() from |
| nuttx/libc/mqueue to nuttx/sched/mqueue. Also add syscall support |
| for mq_setattr() and mq_getattr(). This is necessary in protected |
| and kernel builds because in those cases the message queue |
| structure is protected and cannot be accessed directly from user |
| mode code. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - MTD: Increase the size of the fields in the geometry structure |
| (again) to support larger FLASH sizes. Needed by Sebastien Lorquet. |
| |
| * Common Drivers: |
| |
| - poll(): Fix resource leak and memory corruption on poll failure. |
| From Jussi Kivilinna. |
| |
| * USB Host: |
| |
| - LPC31xx and SAMA5Dx EHCI: Fix cache related problem in LPC31 and |
| SAMA5Dx EHCI drivers. All buffers are now aligned with the cache |
| line size in both starting address and in length. This cause major |
| problems in unlucky builds where the USB host buffers where |
| unaligned and abutting other data. The cache flush and invalidate |
| operations could be subverted by accesses to adjacent data or could |
| have unexpected side effects. This bug has been in the ECHI drivers |
| forever, but was only revealed due to unlucky memory allocations |
| during the integration of the hub feature. |
| |
| * USB Device: |
| |
| - All USB device class drivers: There needs to be a check to make |
| sure that the size of a returned string does not exceed the size of |
| the allocated request buffer. Strings such as vendor names or |
| product names will be truncated to fit in the request buffer. |
| |
| * Networking: |
| |
| - TCP: Correct failures in long Telnet sessions by increasing th |
| size of the number of bytes sent from uint16_t to uint32_t. This |
| avoids an integer overflow that causes a long Telnet session to be |
| closed unexpectedly. From Rony XLN. |
| - Network locks: Correct some network lock logic: Two error |
| conditions where the network was not being unlocked and one where it |
| was getting unlocked twice. From Jussi Kivilinna. |
| - Local Sockets: Local stream sockets had problem of double releasing |
| pipes (both server and client attempt release), which causes wrong |
| pipe pair being closed in multi-client case. Solve by adding per |
| connection instance ID to pipe names. From Jussi Kivilinna. |
| - TCP: Fix an important TCP networking bug: 16-bit flags was being |
| converted to 8-bits in a few locations, causing loss of status |
| indications. |
| - TCP: net_startmonitor() always returned OK. In the race case |
| where a socket has already been closed, it correctly handled the |
| disconnection event but still returned OK. Returning OK caused the |
| callers of net_startmonitor() to assume that the connection was |
| okay, undoing the good things that net_startmonitor() did and |
| causing the socket to be incorrectly marked as connected. This |
| behavior was noted by Pelle Windestam. |
| - setsockopt() failed when setting timeouts to values less tha 100 |
| msec. That is because the timeout is limited to stops of 1 |
| decisecond and because the conversion of structure timeval was |
| truncating the microsecond remainder. The utility |
| net_timeval2dsec() now accepts and option to determine how it |
| handles the remainder: truncate, discarding the remainder, use |
| the remainder to round to the closed decisecond value, or use any |
| non-zero remainder to the next larger whole decisecond value. Bug |
| discovered by Librae. |
| - TCP: In the TCP connection operation, it was trying to setup the |
| network monitor BEFORE the socket was successfully connected. This, |
| of course, has ALWAYS failed because the socket is not yet connected |
| and the TCP state is not yet correct for a connected socket. However, |
| because of other changes net_startmonitor() now returns a failure |
| condition that causes worse problems when trying to connect. The fix |
| is to move the logic that starts the network monitor to AFTER the |
| socket has been successfully connected. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4CM and SAMA5D Free-running timer: Logic that samples the free |
| running counter reads the pending interrupt status register and can |
| cause interrupts to be lost. So, if when the status register is |
| read, the logic must also handle the timer overflow event. Found |
| and fixed by Max Neklyudov. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAM3/4 Serial: When reconfigured, serial does not receive bytes |
| from UART. This happens because RX interrupt was disabled in the |
| setup routine. Fixed this I save interrupt configuration before |
| UART shutdown and restore it after. From Max Neklyudov. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC176x GPIO: Reorder steps when an output GPIO is configured in |
| order to avoid transient bad values from being output. From Hal |
| Glenn. |
| - LPC17 USB OHCI: Correct some initialization of data structures. |
| When hub support is enabled, it would overwrite the end of an array |
| and clobber some OS data structures. |
| - LPC17xx Ethernet: Review, update, and modify the Ethernet driver so |
| that it works better with CONFIG_NET_NOINTS=y. Also, update all |
| LPC17xx networking configurations so that they have |
| CONFIG_NET_NOTINTS=y selected. |
| |
| * SiLabs EMF32 Drivers: |
| |
| - EFM32 SPI: Add missing SPI GPIO pin initialization. From Pierre-noel |
| Bouteville. |
| |
| * STMicro STM32: |
| |
| - STM32 F3: Added missing EXTI definitions for the STM32 F3; Correct |
| an error the port D base address in the STM32 F30x and F37x memory |
| maps. From Greg Meiste. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM23 RTC: Fix an error introduced into stm32_pwr_enablebkp(). |
| That function must preserve the previous state of backup domain |
| access on return. |
| - STM32 RTC counter: Now need to enable backup domain write access |
| when setting the time. From Darcy Gong. |
| - STM32 OTG FS and HS: Added protection in the event that out-of-bound |
| endpoint numbers are received. From David Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429i Disco: (1) Fix a bad return value if the LCD driver is |
| already initialized. (2) The LCD driver initialization is now |
| performed during the early boot sequence. (3) Increased the size |
| of the message queue from 32 to 64 in the lcd configuration. From |
| Marco Krahl. |
| |
| * TI Tiva |
| |
| - Fixes for Tiva TM4C1294NCPDT. From Frank Sautter. |
| |
| * Atmel SAMV71 Drivers: |
| |
| - SAMV7 TWIHS: Fix SAMV TWIHS logic that performs multi-message |
| transfers with and without repeated starts. |
| |
| * Atmel SAMA5D3/4 Dirvers: |
| |
| - SAMA5 CAN: Fix SAMA5 CAN frame construction. From Max Holtzberg. |
| |
| * C Library/Header Files: |
| |
| - stdlib.h: MAX_RAND should be RAND_MAX. |
| - assert.h: Wrap definitions of assertion macros in do while so that |
| they are valid C statements. Numerous places throughout the code |
| where semicolons were missing at the end of an assertion also had to |
| be fixed. Suggested by orbitalfox. |
| - inetntoa(): Correct errors in printing IP address when type char is |
| signed and the value is >= 128. From Max Neklyudov. |
| |
| * Tools: |
| |
| - Tools: Fix test for the existence of the apps/ directory in |
| configure.c. Fix backward interpretation of options, -l was selecting |
| Windows and -w was selecting Linux. This was SourceForege Ticket #39. |
| |
| * Applications: apps/nshlib: |
| |
| - apps/nshlib/nsh_timcmds.c: Check return values from time functions. |
| - apps/nshlib/: Fix handling of gmtime_r return value in time commands. |
| gmtime_r returns a pointer, not an int. |
| |
| * Applications: apps/netutils: |
| |
| - apps/netutils/ntp: Fix mismatched sched_lock/unlock. Noted by Juha |
| Niskanen. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/nxlines: Fix missing right bracket that causes |
| compile error when CONFIG_NX_XYINPUT=y. From Librae. |
| - apps/examples: When boardctl() fails, need to print errno not the |
| returned value which will always be -1. |
| - apps/examples: Correct use of the BOARDIOC_GRAPHICS_SETUP boardctl() |
| call. |
| |
| NuttX-7.11 Release Notes |
| ------------------------ |
| |
| The 111th release of NuttX, Version 7.11, was made on August 13 2015, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.11.tar.gz and |
| apps-7.11.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: |
| |
| - clock_gettime(): Use up_timer_gettime for CLOCK_MONOTONIC in |
| tickless mode. From Max Neklyudov. |
| - waitpid(): Implement WNOHANG for waitpid() only and for the case of |
| CONFIG_SCHED_HAVE_PARENT not selected. From Max Neklyudov. |
| - SCHED_SPORADIC: Add a sporadic scheduler to NuttX. |
| - Extend the processor-specific interface to include information to |
| support the Sporadic Scheduler. |
| - sem_tickwait(): Added this function for internal use within the OS. |
| It is a non-standard but more efficient version of sem_timedwait() |
| for use in higher performance device drivers. |
| |
| * Binary Loader: |
| |
| * Graphics/Graphic Drivers: |
| |
| - Graphics: Implement anti-aliasing in order to clean the drawing of |
| all edges. Anti-aliasing is supported in the horizontal, raster |
| direction only. |
| - SSD1306 LCD Driver: Modify the SSD1306 LCD driver to support either |
| the SPI or I2C interface. From Alan Carvalho de Assis. |
| |
| * File Systems/Block Drivers/MTD: |
| |
| - mount: Add the ability to mount a file system on top of en existing |
| node in the pseudo-file system. |
| - epoll(): Add a very simple epoll layer just around poll calls. To |
| satisfy build app requirements. From Anton D. Kachalov. |
| |
| * Common Device Drivers: |
| |
| - IOCTL: Add relay IOCTL definitions. From Max Neklyudov. |
| - I/O Expander Framework: Add an I/O expander driver framework. From |
| Sebastien Lorquet |
| - NXP PCA9555 I/O Explander. Add PCA9555 driver.From Sebastien |
| Lorquet |
| - BMP180 Barameter: Add support to Bosch BMP180 barometer. From |
| Alan Carvalho de Assis. |
| - CAN IOCTLs: Add CAN IOCTL command definitions to manage CAN message |
| filtering |
| - CAN Driver: Add configuration to support DLC to byte conversions |
| needed for CAN FD mode. |
| - SPI Slave Interface: Add a definition of an SPI slave interface. |
| - LM92 Temperature Sensor: Add a driver for the LM92 temperature |
| sensor. Contributed by Paul Alexander Patience. |
| - AS5048B Rotary Magnetic Sensor: Add support for an AS5048B rotary |
| magnetic sensor. From Paul Alexander Patience. |
| - Ramtron Driver: Update to include supportf for newer RAMTRON parts. |
| From David Sidrane. |
| - MB7040 Sonar Driver: Add support for a MB7040 sonar driver. From |
| Paul Alexander Patience. |
| - ms5805 Altimeter Driver: Add support for an MS5805 altimeter. From |
| Paul Alexander Patience. |
| |
| * Networking: |
| |
| - DNS Client: Implement the low-level network DNS packet protocol to |
| request and receive IPv6 address mappings. |
| - NetDB: Add support for a DNS host name resolution cache. This can |
| save a lot of DNS name server lookups (but might also have the |
| negative consequence of using stale IP address mappings. |
| - NetDB: Name resolution logic now supports lookups from a file like |
| /etc/hosts. |
| - Network Initialization: Add CONFIG_NETDEV_LATEINIT that can be |
| used to suppress calls to up_netinitialize() from early in |
| initialization. |
| - FTMAC100 Ethernet MAC Driver. Add support for Faraday FTMCA100 |
| Ethernet MAC/ From Anton D. Kachalov. |
| - UDP Networking: Add support for send() for connected UDP sockets. |
| |
| * Crypto: |
| |
| - Add CFB and MAC AES modes. From Max Neklyudov. |
| |
| * Simulation Platform: |
| |
| - Simulation: Implement board_power_off() for the simulation platform. |
| This allows for a graceful exit from the simulation. |
| |
| * MoxaRT: |
| |
| - MoxaRT SoC: Add support for MoxaRT SoC found in the most Moxa serial |
| converters such as NP51x0, NP66xx, UC72xx. From Anton D. Kachalov. |
| |
| * MoxaRT Boards: |
| |
| - Moxa NP51x0: Moxa NP51x0 series of 2-port advanced RS-232/422/485 |
| serial device servers. From Anton D. Kachalov. |
| |
| * ARMv6-M: |
| |
| - ARMv6-M Assertions: Port some per-process stack dumping logic from |
| ARMv7-M to ARMv6-M. From Alan Carvalho de Assis. |
| |
| * Atmel SAMD/L Boards: |
| |
| - SAML21: DMA: Add SAML21 DMA support. |
| - SAMD21: Add architecture support for the SAMD21 family. |
| - SAMD21-Xplained: Board configuration for the SAMD21 Xplained board. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4E: Add default loop optimization if EEFC_FMR is available in the |
| configuration (i.e., for SAM4S and 4E). From Marco Aurélio da Cruz. |
| - crypto/ and SAM4CM: Add CFB and MAC AES modes. From Max Neklyudov. |
| - SAM3/4: Add a TWI driver for the SAM4CM. From Max Neklyudov. |
| |
| * Freescale (NXP) Kinetis: |
| |
| - Kinetis: Add support for MK20DN--VLH5 and MK20DX---VLH5. Needed |
| for backward compatible support for Teensy-3.0. |
| |
| * Freescale (NXP) Kinetis Boards: |
| |
| - Teensy 3.x: Add board support for the PJRC Teensy-3.0 and |
| Teensy-3.1 boards. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SAMV7: Add an MCAN driver for the SAMV7 platform. |
| - SAMV7 SPI Slave Driver: Add the an SPI slave driver. |
| |
| * STMicro STM32: |
| |
| - STMicro STM32 F7: Add architecture support for the STMicro STM32 |
| F7. |
| - STM32 F446: Add support for the STMicro STM32 F446. From David |
| Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F7: Add an STM32 F7 Ethernet driver. |
| - STM32 F7: Port the STM32 F4 DMA driver. |
| - STM32 F4 ADC: Add DMA support to the ADC driver for STM32 F4. From |
| Max Kriegler. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F762G-Disco: Add support for the STMicro STM32 F7 Discovery |
| board. |
| - STM32F4-Disco: Add support to BMP180 driver on the STM32F4 Discovery. |
| From Alan Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - Add asctime(), asctime_r(), ctime(), and ctime_r(). |
| - sethostname(): Add support for sethostname(). |
| - gethostbyname() and gethostbyaddr(): Add support for |
| gethostbyname() and gethostbyaddr(). Also support included for the |
| non-standard gethostbyname_r() and gethostbyaddr_r(). This moves |
| the DNS client logic from apps/ into the NuttX libc implementation. |
| |
| * Tools: |
| |
| - testbuild.sh: Add a script that can be used to perform building |
| testing for several board configurations. |
| |
| * Build/Configuration System: |
| |
| - apps/ Build System: No longer depends on hardcoded lists of |
| directories. Instead, it does a wildcard search to find all |
| appropriate directories. This means that to install a new |
| application, you simply have to copy the directory (or link it) into |
| the apps/ directory. If the new directory includes a Makefile and |
| Make.defs file, then it will automatically be included in the build. |
| - mkkonfig.sh: Add the tool mkkconfig.sh that dynamically builds the |
| apps/Kconfig file at configuration time. The hardcoded |
| configuration file has been removed and now the top-level Makefile |
| executes tools/mkkconfig.sh to auto-generate the top-level Kconfig |
| file. A new apps/ make target call preconfig: was added to support |
| this operation. Now you do not have to modify the top-level Kconfig |
| file to add a new directory into the configuration; the top-level |
| subdirectory simply needs to include a Kconfig file and it will |
| automatically be included in the configuration. The native Windows |
| build is temporarily broken until a new apps/tools/mkconfig.bat |
| script is generated. |
| - mkkconfig.bat: Add the Windows script corresponding to |
| apps/tools/mkkconfig.sh. Needed for a Windows native build. |
| |
| * Applications: apps/nshlib: |
| |
| - NSH shutdown command: NSH will now support an (optional) shutdown |
| command if the board provides the option CONFIG_BOARDCTL_POWEROFF. |
| The command can also be used to reset the system if |
| CONFIG_BOARDCTL_RESET=y. |
| - NSH uname command: Add support for a uname command. |
| - NSH nslookup command: Add an nslookup command. |
| |
| * Applications: apps/system: |
| |
| - NetDB: Add a system command to access the network database. |
| - readline(): Add support for Unix-style tab complete to readline. |
| Contributed by Nghia Ho. |
| - readline(): Extended the tab-completion support to also expand NSH |
| command names. |
| - readline(): Add support for an in-memory command line history that |
| can be retrieved using the up and down arrows. Contributed by Nghia |
| Ho. |
| |
| * Applications: apps/netutils: |
| |
| - DNS client: Moved the DNS client logic into the NuttX C library. |
| It is a necessary part for the full implementation of the netdb logic |
| and provides more flexibility in that location. |
| - Replace calls to the non-standard dns_gethotip() with calls to |
| standard gethostbyname(). |
| - NetLib: Create netlib wrapper functions around dns_getserver() and |
| dns_setserver() to isolate application code from changes to those |
| interfaces. |
| |
| * Applications: apps/examples: |
| |
| - OS test: Extend the OS test to include a test of |
| pthread_mutex_trylock() for recursive mutexes. From Juha Niskanen. |
| - OS test: Add a test for the sporadic scheduler. |
| |
| 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: Use -1 instead of 0 as PID for unclaimed mutexes. From |
| Juha Niskanen. |
| - pthreads: Implement pthread_mutex_trylock() for recursive mutexes. |
| From Juha Niskanen. |
| - pthread_create(): Group binding needs to be cleared before |
| sched_releasetcb(), as otherwise group_leave() will be called and |
| group->tg_nmembers decremented or group being released. group_leave() |
| should be called only after group_join() is called, not after |
| group_bind(). From Jussi Kivilinna. |
| - Protected Mode User Memory Allocator: Redesigned how the user space |
| heap is accessed from the kernel code in protected mode. It used to |
| call memory management functions in user space via function pointers |
| in the userspace interface. That is inefficient because the first |
| thing that those memory management functions do is to trap back into |
| the kernel to get the current PID. Worse, that operation can be |
| fatal is certain fragile situations such as when a task is exiting. |
| The solution is to remove all of the memory management function |
| calls from the interface. Instead, the interface exports the users |
| pace heap structure and then kernel size implementations of those |
| memory management functions will operate on the userspace heap |
| structure. This avoids the unnecessary system calls and, more |
| importantly, failures do to freeing memory when a test exits. |
| - pthread_create(): Fix an (unlikely) error in fallback value in the |
| event of a failure (which should never occur). |
| |
| * Common Drivers: |
| |
| - STMPE811 Driver: In stmpe811_instanciate() when |
| CONFIG_STMPE811_MULTIPLE is enabled, and the call to |
| stmpe811_checkid() fails, then the linked device list is not |
| restored to its previous state. From Sebastien Lorquet. |
| - CAN driver: Fix an issue in the CAN driver where the rx_sem count |
| can grow beyond bounds. |
| |
| * File System/Block Drivers: |
| |
| - NFS client: Fix prototype of unbind method. The function prototype |
| was not updated for NFS after a recent change to the file system |
| interface. From Manuel St??. |
| |
| * Networking/Network Drivers: |
| |
| - netconfig.h: Fix some backward compilation that was emitting #error |
| in the wrong condition when SLIP was enabled. |
| - SLIP Driver: Fix a missed name change when many of network |
| interface names changed sometime back but were apparently never |
| updated for SLIP. |
| - Networking: Allow receipt of empty UDP packets. From Max Neklyudov. |
| |
| * ARMv6-M: |
| |
| - ARMv6-M: Fix Cortex-M0 assembly error when the interrupt stack is |
| enabled. From Alan Carvalho de Assis. |
| |
| * Atmel SAMD/L Drivers: |
| |
| - SAMD20, D21, L21: In the SAML21, SERCOM5 uses a different SLOW clock |
| channel (and, hence, also a different SLOW GCLK generator). This |
| means that the channel selection cannot be a global definition but |
| must be a per SERCOM configuration setting. |
| - SAMD/L: Several fixes to register definitions and types. From |
| Janne Rosberg. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM3/4 UART: Back out an error introduced with commit |
| 02c33f66c5a8be774034cd40e4125e9323c7b4d8. Causes an infinite loop in |
| up_lowputc(). From Max Neklyudov. |
| - SAM4CM: Fix SUPC register definitions. From Max Neklyudov. |
| - SAM3/4 WDT: Correct some problems with SAM3/4 watchdog driver. |
| Includes some small improvements. From Max Neklyudov. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SAMV7 UART: Also back the bad cloned change o sam_lowputc.c for |
| SAMV7 platform. |
| |
| * NXP LPC43xx Drivers: |
| |
| - LPC4350: Correct some LPC4350 GPIO pin configurations. From |
| Alessandro Temil. |
| |
| * SiLabs EMF32 Drivers: |
| |
| - EFM32 SPI: Correct write to incorrect register in EFM32 SPI driver. |
| From Pierre-noel Bouteville. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F15x: STM322 F15x stm32_stdclockconfig() was calling |
| stm32_pw_setvos() which accessed PWR_CR via an inactive APB From |
| Juha Niskaneni. |
| - STM32 Ethernet: Extend STM32 Ethernet operating frequency to 180MHz. |
| From Sebastien Lorquet. |
| |
| * STMicro STM32 Boards: |
| |
| - SAMV7 Xplained: In clock configuration, divider was set to 25 to get |
| 25*12MHz=300MHz CPU clock. The correct multiplier is 24 because the |
| calculation if (24+1)*12MHz. So the board was running at 312MHz. |
| From Efim Monjak. |
| |
| * ARMv7-A: |
| |
| - Cortex-A5 vfork(): Fix a Cortex-A compilation error when system |
| calls are enabled in modes other than CONFIG_BUILD_KERNEL. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAMA5Dx EHCI: Fix some bad conditional compilation that left a |
| function undefined if CONFIG_USBHOST_ASYNCH is not selected. |
| |
| * C Library/Header Files: |
| |
| - getopt(): Uninitialized variable can cause hardfault from getopt() |
| if required argument is missing. From George McWilliams. |
| |
| * Applications: apps/nshlib: |
| |
| - NSH/THHPD: Change decoding to handle the increased size of the |
| scheduling policy field in the TCB. |
| |
| * Applications: apps/netutils: |
| |
| - THTTPD: Fix compilation problems when |
| CONFIG_THTTPD_GENERATE_INDICES is defined. |
| - THTTPD: Missing gci-src as a dependency path when building with |
| BINFS enabled. |
| |
| * Applications: apps/examples: |
| |
| - poll() example: Fix a few bit-rot compilation errors. |
| - Nx Lines example: If CONFIG_NX_ANTIALIASING=y, then the nxlines |
| example now erases a line that is 2 pixels longer and 2 pixels wider |
| than the line it drew. That eliminates edges effects due to |
| applying the anti-aliasing algorithm twice. A better solution |
| would be to make anti-aliasing an option for each graphics call so |
| you would rend the line with anti-aliasing ON and clear it with |
| 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 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. |
| |
| NuttX-7.13 Release Notes |
| ------------------------ |
| |
| The 113th release of NuttX, Version 7.13, was made on December 5, 2015, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.13.tar.gz and |
| apps-7.13.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: |
| |
| - External RTC: Added OS support for external RTC chips. |
| - boardctl(): Add a command to the boardctl() interface to obtain a |
| board unique ID. |
| |
| * File Systems: |
| |
| - TMPFS: Add support for a new TMPFS, RAM file system. The TMPFS |
| file system does not require any significant amount of memory |
| itself. It will grow dynamically as files are added and shrink back |
| when files are deleted. A very low overhead way to retain temporary |
| files. |
| - VFS: The VFS was extended to support standard file operations on |
| block drivers (open, close, read, write, etc.). The open() interface |
| accomplishes this by creating a temporary character driver to mediate |
| the character oriented accesses to the block driver. |
| - HOSTFS: Added a HOSTFS file system for use with the simulator. The |
| HOSTFS file system mounts in the simulated Nuttx context by provides |
| proxied access to the file system on the host PC. This is useful for |
| providing file system content and nonvolatile storage of files in the |
| simulation environment. From Ken Pettit. |
| - MTD/PROCFS: Add an interface to un-register an MTD procfs entry. |
| From Ken Pettit. |
| - filemtd: A new MTD conversion layer that will convert a regular file |
| (or driver file) to an MTD device. This is useful for testing on the |
| simulation using the HOSTFS. From Ken Pettit. |
| - PROCFS: Extended to include networking entries in the procfs. Device |
| status, device statistics, and network statistics are now available |
| from the PROCFS. |
| - PROCFS: The PROCFS file system can now be configured so that it |
| supports runtime registration of PROCFS entries with |
| CONFIG_FS_PROCFS_REGISTER=y. |
| |
| * Graphics/Graphic Drivers: |
| |
| - ST7565 Driver: Extend to include support for the ERC12864-3. From |
| Pierre-noel Bouteville. |
| |
| * Common Device Drivers: |
| |
| - User buttons: Added a character driver to support application access |
| to board buttons. Supports notification of button activity via |
| signals. |
| - User LEDs: Added a character driver to support application access |
| to on-board LEDs. |
| - Zero Cross: Added a Zero Cross device driver support. From Alan |
| Carvalho de Assis. |
| - MAX6675: Added support to Thermocouple-to-Digital converter MAX6675. |
| From Alan Carvalho de Assis. |
| - BCH: Block-to-character (BCH) driver should forward ioctl() calls |
| to the contained block driver. |
| - S25FL1xx: Added a S25FL1xx QuadSPI FLASH driver. |
| - On-Chip FLASH: Added an upper half MTD device that can use the |
| interfaces defined in included/nuttx/progmem.h to provide a |
| standard MTD driver. |
| - Serial: Implemented high level DMA infrastructure for serial |
| devices. From Max Neklyudov. |
| - AT24XX: Add support for multiple AT24xx EEPROM parts, each with |
| unique I2C addresses, but otherwise identical. |
| - External RTC: Added drivers for external I2C RTC chips: DS3102, |
| DS1307, DS3231, DS3232, and NXP PCF85263. |
| - W25: Added support for byte write mode to the W25 FLASH driver. From |
| Ken Pettit. |
| - dev/loop: Added a loop character device. losetup() and loteardown() |
| should not be called directory from applications. Rather, these |
| functions are now available as IOCTL commands to the loop driver. |
| - dev/smart: Added support for a /dev/smart loop device. From Ken |
| Pettit. |
| |
| * Networking: |
| |
| - Driver Statistics: Most network drivers do not support statistics. |
| Those that do only supported them when DEBUG is enabled. Each |
| driver collected an architecture specific set of statistics and |
| there was no common mechanism to view those statistics. Thus, |
| the driver feature was mostly useless. This release standardizes |
| the driver statistics and puts the definition in the common network |
| device structure defined in netdev.h where they can be accessed by |
| network applications. All Ethernet drivers that collect statistics |
| have been adapted to use these common statistics. |
| |
| * Simulation Platform: |
| |
| - W25 FLASH: Added support for W25 FLASH simulation. From Ken Pettit. |
| - HOSTFS: Added support for the HOSTFS file system (see "File Systems", |
| above). |
| |
| * Atmel SAMV7: |
| |
| - SAME70: Added support for the SAME70 family of chips. |
| - Tickless: SAMV7 now supports the tickless mode of operation. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - MPU: Added MPU and protected build support. |
| - QSPI: Added a QuadSPI FLASH driver. This driver operates in the |
| memory-mapped, Serial Memory Mode (SMM). |
| - FLASH: Added support to write on-chip FLASH. |
| - Timer/Counter: TC driver ported to SAMV7 from the SAMA5. Free-running |
| and one-short timer logic also ported. |
| - PCK: Brought programmable clock (PCK) logic from SAMA5 into SAMV7. |
| - Timer/Counter: Support PCK6 as an optional source for the timer/ |
| counter clock. |
| |
| * Atmel SAMV7 Boards: |
| |
| - SAME70-Xplained: Add NSH and networking configurations for the |
| SAME70 Xplained board. Includes verified support for serial console, |
| LEDs, buttons, SDRAM, HSMCI SD card, and networking. |
| - SAMV7-XULT and SAME70-Xplained: If Tickless mode is selected then |
| enable PCK6 as a timer/counter clock source |
| |
| * STMicro STM32: |
| |
| - CCM PROCFS: Is no longer a part of the 'base' procfs entries and can |
| now only be supported via run time registration with |
| CONFIG_FS_PROCFS_REGISTER=y. |
| |
| * STMicro STM32 Drivers: |
| |
| - Timers: Add a compatible lower-half timer driver for use with the |
| common timer upper-half driver. From Wail Khemir. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F4-Discovery: Add low level support for the Zero Cross driver |
| for the STM32F4-Discovery. From Alan Carvalho de Assis. |
| - STM32F4-Discovery: Add board config to support for the MAX6675. From |
| Alan Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - bsearch(): Added the bsearch() function from NetBSD. |
| - freopen(): Added support for freopen(). |
| - strftime(): Added day-of-week support (when available). |
| |
| * Tools: |
| |
| - nxstyle: Add crappy style checking tool nxstyle.c. See thee tools/ |
| README file for more info. |
| |
| * Applications: NSH |
| |
| - mksmartfs command: Add configuration option to supported multiple |
| rootdirectories. From Ken Pettit. |
| - Add support for 'basename' and 'dirname' commands. |
| - set command: Like bash, NSH set command now strips off any leading |
| or trailing whitespace. |
| - mount command: The mount commands now accepts mount options |
| (currently needed only for the hostfs file system). From Ken |
| Pettit. |
| - losetup command: NSH no longer calls losetup() and loteardown |
| directly. Now it opens /dev/loop and accomplishes these things |
| using ioctl() calls. |
| - ifconfig command: If CONFIG_NETDEV_STATISTICS=y, then print the |
| network driver statistics in the ifconfig. |
| - ifconfig, ifup, and ifdown: These commands now uses /proc/net/<dev> |
| to view network device configuration and status and /proc/net/stat |
| to show network statistics. A consequence of this is that you |
| cannot view this network information if the procfs is not enabled |
| and mounted at /proc. |
| - losmart command: Added a new NSH losmart command. losmart setups |
| up a loop device for the smart MTD driver similar to losetup but |
| with different syntax. From Ken Pettit. |
| - ps command: The 'ps' command now uses /proc/<pid>/ to obtain task |
| status information. A consequence of this is that you cannot use |
| the 'ps' command if the procfs is not enabled and mounted at /proc. |
| |
| * Applications: apps/system: |
| |
| - apps/system/hexed: Port the hexed command line hexadeciamal editor |
| to Nuttx. See http://apps.venomdev.net/hexed/. |
| |
| * Applications: apps/fsutils: |
| |
| - apps/fsutils/smartfs: Move into apps/fsutils from kernel, now uses |
| only open and ioctl. From Ken Pettit. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/fstest: Add a generic file system test. This is |
| essentially the same as examples/smart, but has all of the SmartFS |
| specific logic ripped out. This was created for testing the new |
| TMPFS. |
| - apps/examples/zerocross: Add a Zero Cross application example. From |
| Alan Carvalho de Assis. |
| - apps/examples/media: Add a simple test for access of media via a |
| block driver or MTD driver. |
| |
| 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: |
| |
| - Fixed an error in clock_timespec_subtract(). Found by Lok. |
| - pthreads: CRITICAL BUGFIX: Logic was wiping out the indication that |
| of the type of a pthread. Hence, it could be confused as a task. |
| Found because this was causing a crash when /proc/nnn/cmdline was |
| printed. |
| |
| * File System/Block Drivers: |
| |
| - SMART MTD: Fix some Smart wear-leveling bugs. Fixed SmartFS wear |
| level error that occurs when the logical sector size is too small to |
| save all wear level status bytes in a single sector. Logical |
| sectors 1 and 2 were simply not being allocated and then the |
| read_sector and write_sector routines were failing. From Ken |
| Pettit. |
| |
| * Graphics/Graphic Drivers: |
| |
| - ILI9432: Fixed errors in orientation. Portrait, RPortrait, and |
| Landscript should work correly now. They were displayed mirrored. |
| From Marco Krahl. |
| |
| * Common Drivers: |
| |
| - CAN: Fix a problem in the CAN upper-half driver that occurs only |
| for CAN hardware that support a H/W FIFO of outgoing CAN messages. |
| In this case, there can be a hang condition if both the H/W and |
| S/W FIFOs are both full. In that case, there may be no event to |
| awaken the upper half driver. Add a new (conditional) CAN upper |
| half interface called can_txready() that can be used by the lower |
| half driver to avoid this hang condition. |
| - MS58xx: Fix some issues with initialization and with CRC |
| calculation. From Karim Keddam. |
| - W25: Fixed W25 FLASH driver page read/write logic. From Ken Pettit. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - USART1 pin configuration: Reconfigure System I/O when using USART1. |
| From Frank Benkert. |
| - MCAN: Added a call to can_txready() to the MCAN driver. |
| |
| * STMicro STM32 Drivers: |
| |
| - stm32 F4: Fix some TIM12 pin mappings. From Max Kriegleder. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429i-Disco: Calculated partition boundaries based on page |
| block sizes but mtd_partition() is expecting calculations based on |
| erase block size. From Alan Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - sys/types.h: When building on a 64-bit machine, the size of size_t |
| should be 64-bits. In general, I believe that sizeof(size_t) should |
| be the same as sizeof(uinptr_t). mmsize_t should always be 32-bits |
| in any event. The last change to stddef has been backed out. With |
| these changes, the simulator builds without errors or warnings an a |
| 64-bit machine. |
| |
| * Applications: apps/nshlib: |
| |
| - The I/O buffer, g_iobuffer, should not be a global buffer. That |
| will not work in an environment where there are multiple NSH |
| sessions. The I/O buffer must, instead, be a part part of the |
| session-specific data defined in nsh_console.h. |
| |
| NuttX-7.14 Release Notes |
| ------------------------ |
| |
| 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. |
| |
| 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 |
| https://cwiki.apache.org/confluence/display/NUTTX/SMP. The |
| new platform interfaces are also described in the NuttX porting |
| guide: https://nuttx.apache.org/docs/latest/quickstart/organization.html. |
| 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 taste 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/refresh.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/system/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. |
| |
| NuttX-7.16 Release Notes |
| ------------------------ |
| |
| The 116th release of NuttX, Version 7.16, was made on June 1, 2016, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.16.tar.gz and |
| apps-7.16.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - Power Management: Add activity domain to all PM interfaces and |
| driver callbacks. If CONFIG_PM_NDOMAINS == 1, then the legacy |
| behavior is preserved. If CONFIG_PM_NDOMAINS > 1, then multiple |
| PM domains are supported. This will allow separate control for |
| certain power management groups. For example, a network can be |
| shut down without affect an ongoing UI (and vice versa). |
| - board_app_initialize(): board_app_initialize() now accepts an |
| argument that may be used to support initialization in different |
| configurations. |
| |
| * File System and Block and MTD Drivers: |
| |
| - N25Qxxx: Add MTD support for Micron N25Qxxx family of QSPI flash. |
| From Dave (ziggurat29). |
| - SST26F: Add an MTD driver for SST26F spi/qspi flash devices (SPI |
| mode only). From Sebastien Lorquet. |
| - File Descriptor Detach: Add logic to detach a file structure from a |
| file descriptor. This is for use only within the OS. It permits an |
| open file or driver to be used across multiple threads. |
| |
| * Networking and Network Drivers: |
| |
| - listen()/accept(): Separate out psock_listen() and psock_accepti() |
| for internal, thread independent OS usage (i.e., without a socket |
| descriptor). |
| - VNC Server: Add support for a VNC server. This logic is code |
| complete and functional, but not well tested. |
| |
| * Graphics and Graphic Drivers: |
| |
| - Framebuffer driver: Add a display number to each interface in order |
| to support multiple display devices. |
| - VNC Server: Add support for a VNC server. This logic is code |
| complete and functional, but not well tested. |
| - LCD Backpack: Add support for PCF8574 LCD Backpack driver. This |
| driver supports an interface board that is based on the PCF8574 I/O |
| expander and supports the HD44780-based (or compatible) LCD modules. |
| There are a myriad of different vendors of such, but they are |
| principally the same, save wiring and minor features like jumpers |
| for I2C addresses. This driver supports known and unknown variants. |
| From Dave (ziggurat29). |
| |
| * Common Device Drivers: |
| |
| - RTC: Simplify the RTC interface. The old interface was way too |
| complex and was not fully implemented anywhere. |
| - BH1750FVI: Add a character driver for Rohm Ambient Light Sensor |
| BH1750FVI. From Alan Carvalho de Assis. |
| - CAN: Improve CAN error reporting. From Frank Benkert. |
| - aes.h: Modifications to the crypto API needed for LPC43xx. From |
| Alexander Vasiljev. |
| - ADC: Interface no longer uses global adc_receive() call. Added a |
| new bind() method to the ADC interface. Now the ADC upper half |
| driver will register its receipt-of-data callback. This change |
| allows the ADC lower half driver to be used with a differ ADC upper |
| half. |
| |
| * Simulation Platform: |
| |
| - Linux Host Networking: Enhance networking support for the |
| simulation under Linux. Includes updated support for Linux TUN/TAP, |
| and the addition of support for Linux bridge devices. From Steve. |
| |
| * ARMv7-A, ARMv7-R, and ARMv7-M: |
| |
| - ARMv7-M: Convert more assembly language files for use with the IAR |
| toolchain. From Kha Vo. |
| - ARMv7-A: Complete re-design of SMP-related logic to initialize each |
| CPUn, n > 0, when CONFIG_SMP=y. |
| |
| * Atmel SAMV7: |
| |
| - Add a JTAG config and ERASE config to Kconfig to set the |
| CCFG_SYSIO SYSIO Pins. From David Sidrane. |
| - System Reset: Add the up_systemreset interface to the samv7 arch. The |
| approach is slightly different in that: 1) It enables ARCH_HAVE_RESET |
| and allows the user to set if, and for how long, to drive External |
| nRST signal. It also does not contain a default board_reset, as that |
| really should be done in the config's src if CONFIG_BOARDCTL_RESET |
| is defined. From David Sidrane. |
| |
| * Atmel SAMV7 Boards: |
| |
| - SAMV71-XULT: Add configuration(s) that were be used to verify VNC |
| graphics output as well as mouse and keyboard input. |
| |
| * NXP Freescale i.MX6 Boards: |
| |
| - Sabre-6Quad: The basic i.MX6 port is complete. This is a minimal |
| port at present and probably still has some as-of-yet-undiscovered |
| issues. |
| - Sabre-6Quad: Basic SMP NSH configuration is now working. But this |
| is probably only because the SMP test case does not stress the |
| logic. There are know outstanding SMP issues as noted in the |
| Sabre-6Quad README.txt file. |
| |
| * NXP Freescale LPC43xx: |
| |
| - LPC4337jet100: Add definitions for the LPC4337jet100 chip. From |
| Alexander Vasiljev. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - AES: Add AES support. From Alexander Vasiljev. |
| |
| * STMicro STM32: |
| |
| - STM32 L4: Add configuration options to allow SRAM2 to be used for |
| heap, or not at all, and to zero-initialize it on OS start, or not |
| at all. From Dave dev@ziggurat29.com. |
| - STM32 L4: Add support for HSE and MSI clocks, and auto trim of MSI |
| to LSE (needed for USB). From Dave (ziggurat29) |
| - STM32 L4: Add support for unique id function to arch; modified board |
| to support unique id boardctl. From Dave (ziggurat29) |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F4 RTC: Add a custom RTC driver with support for alarms. From |
| Neil Hancock. |
| - STM32 L4 QSPI: Add a QSPI driver with DMA support and (optional |
| memory mapped mode support. From Dave ziggurat29). |
| - STM32, STM32 L4, and STM32 F7 Serial: Add support for compliant |
| SD-style breaks. From David Sidrane. |
| - STM32 L4 CAN: Add CAN support for STM32L4. From Sebastien Lorquet. |
| - STM32 1-Wire: Add support for a custom 1-wire driver. The serial |
| driver already supports a 1-wire interface, but this driver uses the |
| same serial logic to implement a lower half driver much like the |
| I2C lower half driver. From Aleksandr Vyhovanec. |
| - STM32 L4 SPI: Add support for SPI 4 and 5 on stm32f411 chips. From |
| Konstantin Berezenko. |
| - STM32 ADC: Allow omitting use of channels in a lower part of PWM. |
| From Pierre-noel Bouteville. |
| - STM32 L4 I2C: Get I2C working for STM32L4. From Dave (ziggurat29). |
| |
| * STMicro STM32 Boards: |
| |
| - STM3220G-EVAL: Add support for both the IAR and uVision GCC IDEs. |
| From Kha Vo. |
| - STM32F429I Discovery: Add support for the uVision GCC IDE. From |
| Kha Vo. |
| - STM32F4 Discovery: Integrate BH1750FVI driver in the STM32F4 Discovery |
| board. From Alan Carvalho de Assis. |
| - STM32L476VG Discovery: Add support for QSPI based N25Qxxx flash. |
| From Dave (ziggurat29) |
| - STM32L476VG Discovery: Add board ioctls for allowing user application |
| to cause QSPI memory mapped mode to be engaged and disengaged. Also |
| partitioned QSPI flash for file system and other (eventually xip). |
| From Dave (ziggurat29) |
| - Nucleo-144: Basic port for the Nucleo-144 board with the STM32F746ZG |
| MCU. From Kconstantin Berezenko. |
| - STM32F103 Minimum: Add support for this minimual STM32F103CBT6 "blue" |
| board. From Alan Carvalho de Assis. |
| - STM32F411E Discovery: Add basic configuration for stm32f411e-disco |
| board with STM32F411VE chip. From Konstantin Berezenko. |
| |
| * Build/Configuration System: |
| |
| - Moved NuttX repository to https://bitbucket.org/nuttx/nuttx. |
| Eliminated use of sub-modules. |
| - Add support for the IAR toolchain for the limited case of the ARMv7-M |
| architecture and the STM32 chip. From Aleksandr Vyhovanec. |
| - make export: Pass top-level make to the script to allow -j greater |
| than 1. From David Sidrane. |
| - fs/Kconfig: Allow CONFIG_FS_WRITABLE to be manually selectable. This |
| is needed when there are no writable file systems, but write support |
| is still needed in BCH or FTL. |
| - arch/*/Makefile: Add definitions that can be overrided to use GCC |
| instead of LD in the final link. From Paul Alexander Patience . |
| |
| * Applications: apps/netutils: |
| |
| - apps/netutils/esp8266: ESP8266 driver application. From Pierre-noel |
| Bouteville. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/alarm: Add a simple test of the ALARM iotcl calls of |
| the RTC driver. |
| - apps/examples/nximage: Add a configuration option to select |
| greyscale. |
| |
| * Platforms: apps/platform: |
| |
| - apps/platform/nucleo-144: Add platform files for NUCLEO-144 |
| (NUCLEO-F746ZG). From Mark Olsson. |
| - apps/examples/media: You can now override the default device driver |
| path by providing an alternal path on the command line. From |
| Sébastien Lorquet. |
| |
| Works-In-Progress: |
| |
| * IEEE802.14.5/6LowPAN. Hooks and framework for this effort were |
| introduced in NuttX-7.15. Work has continued on this effort on |
| forks from the main repositories, albeit with many interruptions. |
| The completion of this wireless feature will postponed until at |
| least NuttX-7.17. |
| |
| * i.MX6 SMP. Partially functional, but there is more that still |
| needs to be done. |
| |
| 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: |
| |
| - Various places: Search for places where a stray semicolon following |
| an if condition cause the if body to be executed unconditionally. |
| Fixes in all SAM DMA logic, unionfs, OS signalling logic, and others. |
| - enter/leave_critical_section() may attempt to access task lists |
| before they have been initialized in the SMP configuration. |
| |
| * File System/Block Drivers: |
| |
| - SMART MTD: Return code of smart_scan not checked, can cause success |
| result in failure case, leading to 'dev' pointer being invalid. From |
| Dave (ziggurat29) |
| - mount: Fix a backward debug assertion. Noted by David Sidrane. |
| |
| * Common Drivers: |
| |
| - NRF24L01: Fix backward calculation of relative frequency. Noted by |
| Henry Zhang. |
| - PCA9555 I/O expander: Fix an error in the PCA9555 driver: Under |
| certain error conditions, interrupts were not being re-enabled. |
| Sebastien Lorquet. |
| - ADS1255: Must not do SPI access from interrupt handler. Use the |
| worker thread instead. Must also lock the SPI bus before using it. |
| - Several SPI-based drivers modified. All drivers that use SPI must |
| call SPI_LOCK and SPI_UNLOCK. This is not optional. |
| - MS583730: Fix a bug in crc computation for ms583730. Implement |
| POSIX read. |
| |
| * Atmel SAMV7: |
| |
| - Fix typo in MATRIX register definitions. From Stefan Kolb. |
| - SAMV7 Tickless Mode: This is a fix to a problem in the handling of |
| the oneshot timer. Due to a wrong assumption concerning the behavior |
| directly after the start of the timer/counter the function |
| sam_oneshot_cancel calculates the wrong remaining time. The code |
| assumes that the counter register is zero directly after the start |
| of the timer, but this is not true. To start the time/counter a |
| software trigger is invoked, this trigger starts the timer/count and |
| sets the counter register to zero, but the reset of the counter |
| register is not performed instantly. According to the datasheet: |
| "The counter can be reset by a trigger. In this case, the counter |
| value passes to zero on the next valid edge of the selected clock." |
| Thus the counter is set to zero between 0 and USEC_PER_TICK |
| microseconds after the clock was started. |
| In my fix I use the freerun count value to determine if at least one |
| tick passed since the start of the timer and thus if the value of |
| the oneshot counter is correct. I also tried to use the function |
| up_timer_gettime to achieve this but, at least if compiled with |
| no optimization the problem vanishes without using the value of the |
| function, the function call takes too long. |
| Another problem treated in the fix is that if the oneshot timer/counter |
| is canceled, we only know the remaining time with a precision of |
| USEC_PER_TICK microseconds. This means the calculated remaining time |
| is between 0 and USEC_PER_TICK microseconds too long. To fix this I |
| subtract one tick if the calculated remaining time is greater than |
| one tick and otherwise set the remaining time to zero. By doing so |
| the measured times are much more precise as without it. From Stefan |
| Kolb. |
| |
| * Atmel SAMA5: |
| |
| - SAMA5: Stefan Kolb's change to the SAMV7 Oneshot Timer should also |
| be applied to the SAMA5 oneshot time since the drivers are identical. |
| |
| * Atmel SAM3/4: |
| |
| - SAM3/4: Stefan Kolb's change to the SAMV7 Oneshot Timer should also |
| be applied to the SAM3/4 oneshot time since the drivers are identical. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SAMV7 TWIHS (as well as SAM3/4 and SAMA5: Ensure that the TWIHS |
| (i2c) hw gets its clock set when the sequence of |
| sam_i2cbus_initialize(), sam_i2cbus_uninitialize(), then |
| sam_i2cbus_initialize() or twi_reset() is called. I found this a |
| while back in the stm32 family, so there may be more arch-es with |
| this sort of bug. I suppose any driver that has the notion of "do |
| not set the freq if it is already set" could be suspect. From David |
| Sidrane. |
| - USBHS Device: Remove disabling of whole USB on suspend of USBHS. |
| This fix removes the disabling of the whole USB peripheral on |
| suspend interrupt. Its enough to freeze the clock instead. When |
| disabling the whole peripheral, the next wakeup-interrupt comes up |
| with an disabled clocking. The unfreeze clock has no effect, because |
| the master clock is disabled. This makes all registers, including |
| the IDR unwriteable and the IRQ falls in an endless loop blocking |
| the whole system. Furthermore the disabling of the peripheral clock |
| prevents hotplugging or reconnecting the USB. From Frank Benkert. |
| - MCAN: Fix missing unlock of device in MCAN mcan_txempty(). From |
| Frank Benkert. |
| |
| * STMicro STM32: |
| |
| - STM32 L4 Clocking: Problem with resetting backup domain clears |
| clocking options set up before in *rcc.c use INITS flag to avoid |
| magic reg value to detect power up reset state of RTC correct a |
| problem clearing interrupt flags (they weren't) which prevented an |
| alarm from ever being used more than once per reset cycle. From |
| Dave (ziggurat29) |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32L4 SPI: That STM32Lr SPI driver is quite different. They now |
| handle frames of arbitrary size between 4 and 16 bits. It was broken |
| before a new bit has to be set (RX fifo threshold) to handle <= 8-bit |
| transactions. If not set, the default is 16-bit packed >=8-bit |
| frames and the RXNE bit is never set (it is set when 16-bits are |
| received). weird things as always. This also add 8-bit access |
| routines to the data register, because a 16-bit access to the data |
| register when the frame size is below 9 bits is interpreted as a |
| packed dual frame exchange. Sebastien Lorquet. |
| - STM32: Correct some bad commits that broke the LTDC display example. |
| From Marco Krahl. |
| - STM32 F4 RTC: Fix logic in F4 RTCC driver that prevent ALARM |
| interrupt. From Neil Hancock. |
| - STM32 F1 ADC: Fix STM32 ValueLine ADC IRQ number selection. From |
| David Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429I Discovery: Correct some bad commits that broke the LTDC |
| display example. From Marco Krahl. |
| |
| * TI Tiva: |
| |
| - GPIO Interrupts: Fix a bug of GPIO falling-edge interrupt for tiva. |
| From Young. |
| |
| * C Library: |
| |
| - math: Add a NAN test on 'x' in asin function of lib_asin.c. Suggested |
| by Pierre-noel Bouteville. |
| |
| * Build/Configuration System: |
| |
| - Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' |
| message weirdness when 'make clean' is done with no .config or |
| Make.defs file. |
| |
| NuttX-7.17 Release Notes |
| ------------------------ |
| |
| The 117th release of NuttX, Version 7.17, was made on July 25, 2016, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.17.tar.gz and |
| apps-7.17.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| * File System and Block and MTD Drivers: |
| |
| - drivers/mtd: Add a driver of IS25xP SPI flash devices. Based on |
| sst25xx driver. From Marten Svanfeldt. |
| |
| * Networking and Network Drivers: |
| |
| - Break out internal interface psock_ioctl(). |
| |
| * Common Device Drivers: |
| |
| - PTYs: Added support for pseduo-terminals: Device drivers that can be |
| used for communications between tasks (usually with re-directed I/O). |
| Based on existing pipe logic. |
| - Button upper half driver: Added support for poll(). |
| - CAN: Add support for poll. From Paul Alexander Patience. |
| - GPIO: Add support for a simple GPIO driver. It supports only pre- |
| configured input, output, and interrupting pins with basic input and |
| output operations. Interrupt events can lead to notification via a |
| signal. |
| - I/O Expander: Shadow-Mode: The output- and configuration registers of |
| the IO-Expander are held in the microcontrollers memory and only |
| written to the IO-Expander. This reduces bus traffic and is more |
| error-proof than the normal read-modify-write operation. Retry Mode: |
| If enabled and an error occurs while writing to the IO-Expander the |
| current transmission is automatically repeated once. From Michael |
| Spahlinger. |
| - Pipes/FIFOs: Add support to allocating different sizes for pipe and |
| fifo buffers. Adds mkfifo2() and pipe2() which are just like mkfifo() |
| and pipe(), but allow control of the size of the underlying, in-memory |
| circular buffer. Move pipe() and mkpipe() to the C library, they are |
| no longer core OS interfaces. Capability currently used only by PTY |
| logic to support, configurable, smaller buffers for PTYs. |
| |
| * SYSLOG/Debug Output: |
| |
| - SYSLOG: Consolidated all SYSLOG logic in drivers/syslog. Added an |
| abstraction layer that supports: (1) redirection of SYSLOG outpout. |
| This is usually so that you can boot with one SYSLOG output but |
| transition to another SYSLOG output when the OS has initialialized, |
| (2) adds common serialization of interrupt output as a configuration |
| option. Without this configuration setting, interrupt level output |
| will be asynchronous. And (3) vsyslog is now a system call and is |
| usable with other-than-FLAT builds. |
| - SYSLOG: syslog() will now automatically redirect output to |
| lowsyslog() if called from an interrupt handler. |
| - Extended SYSLOG logic so that we can send SYSLOG output to a file. |
| - SYSLOG character device channel will now expand LF to CR-LF. |
| Controllable with a configuration option. |
| - Add a SYSLOG character device that can be used to re-direct output |
| to the SYSLOG channel (Not be be confused the SYSLGO output to a |
| character device). |
| - Debug features are now enabled separately from debug output. |
| (1) CONFIG_DEBUG is gone. It is replaced with CONFIG_DEBUG_FEATURES. |
| (2) The macros dbg() and vdbg() have renamed as _err() and _info(), |
| respectively. This also applies to all of the variants as well, |
| XXdbg() and XXvdbg(). (3) Add a new debug level, _warn() (and |
| all variants XXwarn(), XXvwarn(), etc.). (4) Debug assertions can |
| now be enabled separately from debug output. (5) You can now enable |
| subsystem/device driver debug output at different output levels. For |
| example, CONFIG_DEBUG_FS no longer enables file system debug output |
| It enables general file system debug logic and enables selection of |
| CONFIG_DEBUG_FS_ERROR, CONFIG_DEBUG_FS_WARN, and CONFIG_DEBUG_FS_INFO. |
| - Since the SYSLOG layer now automatically handles low-level vs. |
| high-level output, the low-level (ll) variants of the debug macros |
| were eliminated. |
| - Reviewed all uses of *err(). These macro family should indicate |
| only error conditions. Convert *err() to either *info() or add |
| ERROR:, depending on if an error is reported. |
| - _alert(): New debug macro: _alert(). This is high priority, |
| unconditional output and is used to simplify and standardize crash |
| error reporting. |
| - Many CONFIG_DEBUG_* options did not have matching macros defined in |
| include/debug.h. Rather, there were various definitions scattered |
| throughout the sourse tree. These were collected together and |
| centralized with single macro definitions in include/debug.h |
| |
| * Simulation Platform: |
| |
| - Added the simulated QSPI (N25Q) flash to the simulation and extended |
| flash simulation capabilities to run with MTD drivers based on config |
| options (currently m25p, sst26 and w25). From Ken Pettit. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SPI: SPI-Freq. 40MHz; VARSELECT; hw-features This change adds the |
| following improvements: |
| |
| o Increase the allowed SPI-Frequency from 20 to 40 MHz. |
| o Correct and rename the "VARSELECT" option This option was |
| included in the code as "CONFIG_SPI_VARSELECT" but nowhere |
| defined in a Kconfig file. The change renames it to |
| "CONFIG_SAMV7_SPI_VARSELECT" and corrects the implementation |
| according the datasheet of Atmel. In short, this option |
| switches the processor from "fixed peripheral selection" |
| (single device) to "variable peripheral selection" (multiple |
| devices on the bus). |
| o Add a new Function to the interface to control the timing and |
| delays of the chip according the ChipSelect lines. This function |
| can control the delay between the assertion of the ChipSelect and |
| the first bit, between the last bit and the de-assertion of the |
| ChipSelect and between two ChipSelects. This is needed to tune |
| the transfer according the specification of the connected devices. |
| o Add three "hw-features" for the SAMV7, which controls the behavior |
| of the ChipSelect: |
| - force CS inactive after transfer: this forces a (short) de- |
| assertion of the CS after a transfer, even if more data is |
| available in time |
| - force CS active after transfer: this forces the CS to stay |
| active after a transfer, even if the chip runs out of data. |
| Btw.: this is a prerequisite to make the LASTXFER bit working |
| at all. |
| - escape LASTXFER: this suppresses the LASTXFER bit at the end |
| of the next transfer. The "escape"-Flag is reset automatically. |
| |
| From Frank Benkert |
| - TWISHS: Driver improvements from Michael Spahlinger. |
| - GPIO-Driver fixed for Open-Drain Pins: |
| |
| o sam_gpioread: Now the actual line level from the pin is read |
| back. This is extremely important for Open-Drain Pins, which |
| can be used bidirectionally |
| o Re-Implemented twi_reset-function and enhanced it so it can be |
| called from inside the driver (see next point) |
| o Glitch-Filter: Added a configuration option to enable the twi- |
| built-in glitch filter |
| o Added a "Single Master Mode": In EMC Testing the TWI-Bus got |
| stuck because the TWI-Master detected a Multi-Master access (but |
| there is no second master). With the option "Single Master" we |
| detect these events and automatically trigger a twi_reset. We |
| also do an automatic recovery if a slave got stuck (SDA stays |
| low). |
| |
| With the above changes I2C-Bus reliability in harsh environments (eg. |
| EMC) is greatly improved. The small change in the GPIO-Driver was |
| necessary because otherwise you cannot read back the correct line |
| status of Open-Drain Outputs and this is needed by the twi_reset |
| function. From Michael Spahlinger |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - EMC: Extend LPC43xx EMC code to support SDRAM on a dynamic memory |
| interface. From Vytautas Lukenskas. |
| |
| * NXP Freescale Kinetis: |
| |
| - Kinetis K64: Add basic support for the K64 family. I leveraged the |
| changes from https://github.com/jmacintyre/nuttx-k64f and merged |
| into the existing kinetis code with a lot of changes and additions |
| (like pin multiplexing definitions). |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Add a KinetisUSB device controller driver. Derived from the pic32mx |
| usb driver, which uses the same usb controller. From kfazz. |
| - Kinetis pwm support, based on the KL pwm driver. From kfazz. |
| - Kinetis Ethernet: Add support for the KSZ8081 PHY. |
| - Kinetis Ethernet: Modified Ethernet driver to try all PHY addresses |
| and then only fail if the driver cannot find a usable PHY address. |
| This means that you no longer have to specific the PHY address in |
| advance. |
| - Kinetis Ethernet: Add support for CONFIG_NET_NOINTS. The driver no |
| longer runs the networking at interrupt level but can defer interrupt |
| work to the high-priority work queue. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Teensy-3.x: Add USB support and a usbnsh configuration. |
| From kfazz (2016-06). |
| - Freedom-K64F: Add support for the NXP Freedom-K64F board at 120MHz. |
| This is primarily the work of Jordan Macintyre. I leveraged this |
| code from https://github.com/jmacintyre/nuttx-k64f which was, itself, |
| a leverage from the old K60 TWR configuration. This includes |
| significant corrections (LEDs, buttons, README, etc) and extensions |
| and updates to match more recent BSPs. |
| - Freedom-K64F: Added a configuration that supports networking. |
| |
| * STMicro STM32: |
| |
| - STM32 F1-4: Added support for the STM32F105R. From Konstantin |
| Berezenko. |
| - STM32 F4: Added support for the STM32FF76xxx and STM32FF7xx |
| families. From David Sidrane. |
| - STM32 F1-4: Add support for Tickless mode (two timer |
| implementation). From Max Neklyudov. |
| - STM32 L4: Add support for tickless OS, and incidentally timers, |
| PWM, oneshot, free-running.... From ziggurat29. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F1-4: Add the up_getc() function to STM32 in order to support |
| the minnsh configuration. From Alan Carvalho de Assis. |
| - STM32 F7: Add SPI driver. From David Sidrane. |
| - STM32 F7: Add SPI, I2C, and ADC drivers. From Lok Tep. |
| - STM32 L4: Add ioctls to set/get CAN bit timing in stm32l4. Add |
| ioctl hooks to allow future management of can id filters. From |
| Sebastien Lorquet. |
| - STM32 L4: Add some CAN mode IOCTL calls. These will be useful for |
| device autotest when the application boots. They are redundant |
| with the CONFIG_CAN_LOOPBACK option, which can now just be |
| interpreted as a default setting. From Sebastien Lorquet. |
| - STM32 F1-4: Port STM32L4 CAN IOCTLs to STM32. From Sebastien Lorquet. |
| - STM32 L4: Implementation of loopback IOCTLs. From Sebastien |
| Lorquet. |
| - STM32 F7: Added SDMMC1 support for stm32F7 74-75. From Lok Tep. |
| - STM32 F7: Add USB support. From Lok Tep. |
| - STM32 F7: Added PWR, RTC, and BBSRAM support for stm32f7. From David |
| Sidrane. |
| - STM32 F7: Added STMF7xxx RTC. From David Sidrane. |
| - STM32 F7: Added STM32F7 DBGMCU. From David Sidrane. |
| - STM32 L4: Port support for both RX FIFOs from STM32 CAN. From Paul |
| Alexander Patience. |
| |
| * STMicro STM32 Boards: |
| |
| - Added a minnsh configuration for the STM32F103-Minimum board. From |
| Alan Carvalho de Assis . |
| - Added support for the Nucleo-F767ZI board. From David Sidrane. |
| - Nucleo-144/Nucleo-F767ZI: Add test for STM32 F7 SPI. From David |
| Sidrane. |
| - Nucleo-144: Added SDMMC support to Nucleo-144. From David Sidrane. |
| - Olimex STM32-E4077: Add support for Olimex STM32 E407 board. From |
| Mateusz Szafoni. |
| - Nucleo-144: Added USB OTG device to Nucleo-144. From David Sidrane. |
| - Nucleo-144: Added bbsram test to Nucleo-144. From David Sidrane. |
| - STM32F4 Discovery: Add CAN support for STM32F4 Discovery. From |
| Matthias Renner. |
| - STM32F4 Discovery: added a canard configuration files. From |
| Matthias Renner. |
| - STM32F4 Discovery: Add FPU support for ostest for the STM32F4 |
| Discovery platform. From David Alessio. |
| - STM32L476 Discovery: Update stm32l476 disco to include init code for |
| smartfs and nxffs for cases where those fs are included in build. |
| From ziggurat29. |
| |
| * C Library/Header Files: |
| |
| - include/assert.h: Check if NDEBUG is defined. From Paul Alexander |
| Patience. |
| - assert.h: Define static assert for C++ usage. From Paul Alexander |
| Patience. |
| - Add crc64 support. From Paul Alexander Patience. |
| - hex2bin: Move the portable library portion of apps/system/hex2bin |
| the C library with the OS internals. It is used in certain internal |
| boot-loader builds. |
| - Add raise(). |
| - libm: This change should significantly improve the performance of |
| single precision floating point math library functions. The vast |
| majority of changes have to do with preventing the compiler from |
| needlessly promoting floats to doubles, performing the calculation |
| with doubles, only to demote the result to float. These changes only |
| affect the math lib functions that return float. From David Alessio. |
| - printf(): If there are no streams, let printf() fall back to use |
| syslog() for output. |
| - Move pipe() and mkpipe() to nuttx/libc, they are no |
| longer core OS interfaces. Capability currently used only by PTY logi |
| to support, configurable, smaller buffers for PTYs. |
| - Move driver-related files from include/nuttx to include/nuttx/drivers. |
| Move driver related prototypes out of include/nuttx/fs/fs.h and into |
| new include/drivers/drivers.h. |
| - include /nuttx/lib: Move library-related files from include/nuttx to |
| include/nuttx/lib. |
| |
| * Build/Configuration System: |
| |
| - Custom Board Configuration: Add logic to support custom board |
| directories that include a Kconfig file. During the context phase |
| of the build, any Kconfig file in the custom board directory is |
| copied into configs/dummy, replacing the existing Kconfig file with |
| the target Kconfig file. |
| - Remove the includes/apps link to apps/include. It is no longer |
| used. From Sebastien Lorquet. |
| |
| * Tools: |
| |
| - tools/tesbuild.sh will now build NxWM configurations. |
| |
| * Application Build/Configuration System: |
| |
| - Change to the way that apps/ Kconfig files are generated in |
| order to better support reuse of the apps/ directory in NuttX |
| products. Changes include: Make the full tree use wildcards |
| make.defs, Add empty preconfig rules to 'leaf' makefiles, Use |
| directory.mk for recursive dir makefiles, Individual app kconfig |
| fixes, Recursive Kconfig autogeneration, Add kconfig files for |
| pcode and tiff, and fix a gitignore rule, From Sébastien Lorquet. |
| - apps/include directory structure reorganized. There are no longer |
| any header files in the apps/include/. directory. Rather, sub- |
| directories were added to match the partitioning of apps/ sub- |
| directories and the header files were moved into the appropriate |
| sub-directory. This change is intended to help with some changes |
| being considered by Sébastien Lorquet. |
| - Call all includes from <apps/bla/bla.h> to "bla/bla.h". From Sebastien |
| Lorquet. |
| - Add apps/include to include path in top-level Make.defs file. |
| |
| * Applications: apps/nshlib: |
| |
| - Make NSH net-initialization be a configuration option. From Marten |
| Svanfeld. |
| - Add NTP client initialization in NSH network startup logic. From |
| David S. Alessio . |
| - 'ps' command now prints out the stack usage if stack coloration is |
| enabled. From Frank Benkert. |
| - Allow stack usage to be disabled on constrained systems. From David |
| Sidrane. |
| |
| * Applications: apps/netutils: |
| |
| - NTP Client: Add retries. From David S. Alessio. |
| - NTP Client: The NTP client will now optionally use pool.ntp.org as |
| the NTP server; and reset the retry count upon success -- more robust. |
| From David Alessio. |
| - ESP8266: Add logic to set the BAUD rate. From Pierre-noel Bouteville. |
| - ESP8266: In Kconfig, select ARCH_HAVE_NET when NETUTILS_ESP8266 is |
| selected. This allows, among other things, support for network debug |
| output. From Pierre-noel Bouteville. |
| |
| * Applications: apps/fsutils: |
| |
| - flash_eraseall: IOCTL wrapper for MDCIO_BULKERASE command. Was in |
| nuttx/drivers/mtd. Moved to apps/fsutils because the call directly into |
| the OS was incorrect. |
| |
| * Applications: apps/canutils: |
| |
| - canlib: Basic CAN utility library. From Sebastien Lorquet. |
| |
| * Platforms: apps/system: |
| |
| - flash_eraseall: Now uses the IOCTL wrapper at apps/fsutils/flash_eraseall. |
| |
| * Platforms: apps/platform: |
| |
| - Add platform files for Olimex STM32 E407. From Mateusz Szafoni. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/canard: Add canard example application. From |
| Matthias Renner. |
| - apps/examples/pty_test: PTY test program. From Alan Carvalho de |
| Assis. |
| |
| Works-In-Progress: |
| |
| * IEEE802.14.5/6LowPAN. Hooks and framework for this effort were |
| introduced in NuttX-7.15. Work has continued on this effort on |
| forks from the main repositories, albeit with many interruptions. |
| The completion of this wireless feature will postponed until at |
| least NuttX-7.18. |
| |
| * i.MX6 SMP. Partially functional, but there is more that still |
| needs to be done. |
| |
| 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: |
| |
| - semaphores: Need to set errno to EINVAL on errors in sem_post() |
| and sem_wait(). From Paul Alexander Patience. |
| |
| * File System/Block Drivers/MTD Drivers: |
| |
| - Several MTD FLASH drivers nullify the freed 'priv' structure and |
| failed to return NULL as stated in the comments. Result, will |
| operate on a NULL pointer later. Noted by David Sidrane. |
| - VFS ioctl(). Per comments from David Sidrane, file_ioctl() should |
| not return succeed if the ioctl method is not supported. It |
| probably should return ENOTTY in that case. |
| - SST26 Driver: Before accessing the sst26 flash, the "Global Unlock" |
| command must me executed, which I do in the sst26 driver. BUT re- |
| reading the datasheet, the WREN instruction is required to enable |
| the execution of this command. This was not done. I have no idea how |
| the driver currently works except by chance. The writes should never |
| happen at all, the flash is half-enabled! From Sebastien Lorquet. |
| - N25Qxx Driver: Alter the notion of 'blocksize' to be equivalent to |
| 'flash write page size' in order to align with assumptions in the |
| smartfs driver (at least, maybe other things do as well). Correct a |
| bug that was previously masked by having blocksize=eraseblocksize |
| which would cause buffer overflows and delicious hardfaults. |
| Trivial spelling changes in comments, etc. From ziggurat29. |
| - SmartFS: Fix a 32-byte memory leak. From Ken Pettit. |
| - SMART MTD layer: Fixes freesector logic error when sectorsPerBlk=256, |
| adds DEBUGASSERT for invalid geometry and additional memory debug |
| logic. Also fixes the dangling pointer on error bug. From Ken |
| Pettit. |
| |
| * Common Drivers: |
| |
| - USB CDC/ACM Device Class: cdcacm_unbind leaks write request objects. |
| This arises due to freeing the bulk IN endpoint before the loop |
| that frees the requests via cdcasm_freereq. That function checks |
| the parameters and skips the freeing if either is NULL. Freeing |
| the bulk IN endpoint will cause the first param to be NULL, thereby |
| bypassing the free operation. To fix, I moved the release of the |
| bulk IN endpoint until after to loop (much as was the case for the |
| OUT and read requests, which did not exhibit the problem). From |
| ziggurat29. |
| - Pipes and FIFOs: Add missing configuration for pipe ring buffer |
| size. From Frank Benkert. |
| - UART 16550: Handle when CONFIG_SERIAL_UART_ARCH_IOCTL is not |
| enabled. From Heath Petersen. |
| - Common Serial Upper Half: Fix a race condition noted by Stefan |
| Kolb. Between the test if the TX buffer is full and entering a |
| critical section, bytes may be removed from the TX buffer making |
| the wait unnecessary. The unnecessary wait is an inefficiency, |
| but not really a problem. But with USB CDC/ACM it can be a problem |
| because the entire TX buffer may be emptied when we lose the race. |
| If that happens that uart_putxmitchar() can hang waiting for data |
| to be removed from an empty TX buffer. |
| - USB MSC Device Class: Add locks when removing request from queue. |
| From Wolfgang Reissnegger. |
| - USB MSC Device Class: Fix reversed logic on waiting for SCSI thread |
| start. The scsi thread was waiting for the wrong condition. |
| However, this was masked by the fact that the code creating the |
| scsi thread was also holding usbmsc_scsi_lock(priv) while |
| initializing data, hence this lock synchronized the scsi thread |
| start with init completion. From Wolfgang Reissnegger. |
| |
| * Graphics and Graphic Drivers: |
| |
| - Correct conditional compilation in ST7565 LCD driver. From Pierre- |
| noel Bouteville |
| |
| * Networking: |
| |
| - In both IPv6 and IPv4 incoming logic: (1) Should check if the |
| packet size is large enough before trying to access the packet |
| length in the IP header. (2) In the comparison between the IP |
| length and the full packet length, need to subtract the size of |
| he link layer header before making the comparison or we will get |
| false positives (i.e., the packet is really too small) |
| - TCP Networking: While working with version 7.10 I discovered a |
| problem in TCP stack that could be observed on high network load. |
| Generally speaking, the problem is that RST flag is set in |
| unnecessary case, in which between loss of some TCP packet and its |
| proper retransmission, another packets had been successfully sent. |
| The scenario is as follows: NuttX did not receive ACK for some sent |
| packet, so it has been probably lost somewhere. But before its |
| retransmission starts, NuttX is correctly issuing next TCP packets, |
| with sequence numbers increasing properly. When the retransmission |
| of previously lost packet finally succeeds, tcp_input receives the |
| accumulated ACK value, which acknowledges also the packets sent in |
| the meantime (i.e. between unsuccessful sending of lost packet and |
| its proper retransmission). However, variable unackseq is still set |
| to conn->isn + conn->sent, which is truth only if no further |
| packets transmission occurred in the meantime. Because of incorrect |
| (in such specific case) unackseq value, few lines further condition |
| if (ackseq <= unackseq)is not met, and, as a result, we are going to |
| reset label. From Jakub Lagwa. |
| |
| * ARMv7-M: |
| |
| - ARM stack check: Fix double fault on IDLE task with stack size = 0. |
| From David Sidrane. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - CAN: CAN Message Filtering fixed: (1) stdfilters didn't work because |
| the filter was never enabled (wrong number of bits to shift), and |
| (2) Filters were never used because the configuration register |
| cannot be written without using the initialization mode. Both bugs |
| are fixed by this change. Filtering has been tested with both |
| standard and extended identifiers and is now working properly. From |
| Michael Spahlinger. |
| |
| * Atmel SAMA5: |
| |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - Fix some errors in AFEC header file. From OrbitalFox. |
| - DAC: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY. From Wolfgang |
| Reissnegge. |
| - Timer: Fix ops check in TCIOC_STOP. From Wolfgang Reissnegge. |
| - I2C: Fix reversed logic in twi_startmessage(). From Wolfgang |
| Reissnegger. |
| - SAM3/4 UDP: Fix handling of endpoint RX FIFO banks. This fixes |
| a race condition where the HW fills a FIFO bank while the SW is |
| busy, resulting in out of sequence USB packets. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - USBHS Device: This change solves a problem which causes data loss |
| while sending data via USB. This problem is caused by an incorrect |
| handling of the endpoint state in the USB driver sam_usbdevhs. This |
| leads under some circumstances to situations in which an DMA |
| transfer is setup while a previous DMA transfer is currently active. |
| Amongst other things I introduced the new endpoint state |
| USBHS_EPSTATE_SENDING_DMA for the fix. To reproduce the problem, I |
| used a program which send as many data as possible via a CDC/ACM |
| device and verified the received data on the PC. From Stefan Kolb. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Timers: Support up to 8 channels per timer. From kfazz. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Teensy 3.x clock fixes: The High Gain bit in MCG_C1 was preventing |
| teensy from booting except after a programming session. The second |
| change doesn't appear to change any functionality, but complies with |
| restrictions in the k20 family reference manual on FEI -> FBE clock |
| transiions. From kfazz. |
| |
| * NXP Freescale LPC17xx Drivers: |
| |
| - LPC17 Ethernet: Needs to correctly ignore PHYID2 revision number |
| when comparing PHY IDs. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - Fix errors in GPIO interrupt logic. From v01d (phreakuencies) |
| - Ethernet: Correct auto-negotiation mode in the LPC43xx Ethernet. |
| From Alexander Vasiljev |
| - Writing zero to NVIC_IRQ_ENABLE has no effect. Disable interrupts |
| with NVIC_IRQ_CLEAR. From Paul Alexander Patience. |
| - SPIFI: If CONFIG_SPIFI_SECTOR512 undefined, lpc43_bwrite doesn't do |
| actual write (probably copy/paste errors). Still not sure about |
| current state of lpc43_spifi implementation, but for me NXFFS works |
| with this change. From Vytautas Lukenskas. |
| |
| * Qemu-i486: |
| |
| - Fix qemu-i486/ostest/Make.defs test for M32. From Heath Petersen. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - Fix EFM32 FLASH conditional compilation. From Pierre-noel |
| Bouteville |
| - Writing zero to NVIC_IRQ_ENABLE has no effect. Disable interrupts |
| with NVIC_IRQ_CLEAR. From Paul Alexander Patience. |
| |
| * STMicro STM32: |
| |
| - STM32 F1-F4: In PWM driver, just update duty if frequency is not |
| changed and PSM started. This removeis glitch or blinking when |
| only duty is frequently changed. From Pierre-noel Bouteville. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F7: Fixed STM32F7 DMA stm32_dmacapable. DMA working on SDMMC. |
| From David Sidrane. |
| - STM32 F1-F4 Timer Driver: Change calculation of per- timer pre-scaler |
| value. Add support for all timers |
| - STM32 F1-F4: Correct conditional compilation in STM32 timer capture |
| logic. From Pierre-noel Bouteville |
| - STM32 F1-F4: Fix STM32 DMA code and configuration for STM32F37X chips. |
| From Marten Svanfeldt. |
| - STM32 F1-F4: Fix compilation errors in debug mode of stm32_pwm.c. |
| From Konstantin Berezenko. |
| - STM32 F1-F4: Correct the CAN2 RX IRQ number for stm32f10xx chips. |
| From Konstantin Berezenko. |
| - STM32 F1-F4: Move backup domain reset to earlier in the |
| initialization sequence (stm32_rcc.c() in order to avoid disabling |
| LSE during RTC initialization. From Alan Carvalho de Assis. |
| - STM32 F1-F4: When configuring a GPIO via stm32_configgpio() the |
| function will first set the mode to output and then set the initial |
| state of the gpio later on. If you have an application with an |
| externaly pulled-up pin, this would lead to a glitch on the line |
| that may be dangerous in some applications (e.G. Reset Line for |
| other chips, etc). This changes sets the output state before |
| configuring the pin as an output. From Pascal Speck . |
| - STM32 F7: Apply Pascal Speck's GPIO STM32 change to STM32 L4. |
| - STM32 L4: Apply Pascal Speck's GPIO STM32 change to STM32 L4. |
| From Sebastien Lorquet. |
| - STM32 F7: BUGFIX: PLLs IS2 and SAI P Calculation. From David |
| Sidrane. |
| - STM32 L4: STM32 CAN fixes need to be backported to STM32L4 as well. |
| - STM32 F1-F4 and L4: Writing zero to NVIC_IRQ_ENABLE has no effect. |
| Disable interrupts with NVIC_IRQ_CLEAR. From Paul Alexander |
| Patience. |
| - STM32 F7: STMF7xxx RTC: (1) Remove proxy #defines, (2) Ensure the |
| LSE(ON) etal are set and remembered in a) A cold start (RTC_MAGIC |
| invalid) of the RTC, and b) A warm start (RTC_MAGIC valid) of the |
| RTC but a clock change. The change was needed because in bench |
| testing a merge of the latest's STM32 53ec3ca (and friends) it |
| became apparent that the sequence of operation is wrong in the |
| reset of the Backup Domain in the RCC code. PWR is required before |
| the Backup Domain can be futzed with. !!!This Code should be tested |
| on STM32 and if needed rippled to the STM32 families. From David |
| Sidrane. |
| - STM32 F1-F4: STM32 BBSRAM fixed (and formatted) flags. From David |
| Sidrane. |
| - STM32 F7: STM32F7 BBSRAM fixed (and formatted) flags. From David |
| Sidrane. |
| - STM32 L4: Fix incorrect clock setup for LPTIM1. From ziggurat29. |
| - STM32 F4/L4 RTC ALARM: were enabling interrupts too early in the |
| power-up sequence, BEFORE the interrupt system was being |
| initialized. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32 board.h: Fix STM32 timer input clock definitions. From David |
| Sidrane. |
| |
| * TI Tiva Drivers: |
| |
| - Bug Fix in tiva_serial.c - UART5, UART6 and UART7 were not being |
| configured as TTYS0 for printing over serial console. From Shirshak |
| Sengupta. |
| |
| * C Library/Header Files: |
| |
| - include/signal.h: Change type of SIG_ERR, SIG_IGN, ... to |
| _sa_handler_t. The type void does not work with the IAR toolchain. |
| From Aleksandr Vyhovanec. |
| - crc16: fix error. From Paul Alexander Patience. |
| - strtoul() and strtoull(): Fix errno settings required by function |
| definition. Resolved Bitbucket Issue #1. From Sebastien Lorquet. |
| |
| * Build/Configuration System: |
| |
| - Build system: This change fixes a build problem that only occurs |
| when reconfiguring from Linux to Windows or vice-versa. It is a |
| problem that was present but not usually experienced until two |
| things happened: (1) The pre_config target was added to run before |
| the menconfig operation and (2) the context target was added before |
| the pre_config target in order to set up the correct symbolic links |
| (in the apps/platform directory) needed by the pre_config target. |
| But then now if you start with a Linux system and run 'make |
| menuconfig' to switch to Linux, the context target will execute |
| first and set up POSIX style symbolic links before doing the |
| menuconfig. Then after the menuconfig, the make will fail on |
| Windows if you are using a Windows native toolchain because that |
| native toolchain cannot follow the Cygwin- style symbolic links. |
| The fix here is to also execute the clean_context AFTER executing |
| menuconfig. A lot more happens now: It used to be that doing |
| 'make menuconfig' only did the menuconfig operation. Now it does |
| context, pre_config, menuconfig, clean_context. Not nearly as |
| snappy as it used to be. |
| - Need to build the drivers/ directory even it file descriptors are |
| not supported. There are things in the drivers/ directory that are |
| still needed (like SYSLOG logic). |
| - Remove all inclusion of header files from the apps/include |
| directory from NuttX core logic. There should be no dependency on |
| logic within NuttX on logic within apps/. This caused a lot of |
| reshuffling of logic: binfmt pcode support, usbmonitor is now a |
| kernel thread, TZ/Olson database moved to libc/zoneinfo. |
| |
| * Application Build/Configuration System: |
| |
| - Make sure that APPNAME is defined in all Makefiles that generate |
| applications. From Sebastien Lorquet. |
| |
| * apps/builtins: |
| |
| - apps/builtins: exec_builtin was not using the provided open flags. |
| As a result >> redirection was not working; it was treated the same |
| as >. |
| |
| * apps/nshlib: |
| |
| - apps/nshilib: PS Command: When Priority Inheritance is enabled, the |
| format of /proc/<PID>/status changes to show both the current |
| priority and the thread's base priority. This messes up the format |
| of cmd_ps. From David Alessio. |
| |
| * apps/netutils: |
| |
| - apps/netutils, uIP webserver: Fix a data declaration in a header |
| file. |
| |
| * apps/canutils: |
| |
| - apps/canutils/libuavcan: Fix for recent change to STM32 timer |
| frequency definiitions. |
| |
| * apps/examples: |
| |
| - apps/examples/alarm: ioctl call was clobbering file descriptor. |
| - apps/examples/can: Some variables were not declared in all required |
| cases. From Sebastien Lorquet. |
| - apps/examples/media: media example was intended to take either a |
| command line argument, or a compiled-in default value from config. |
| However, the default was ignored, leading to confusing error |
| messages. From ziggurat29. |
| |
| NuttX-7.18 Release Notes |
| ------------------------ |
| |
| The 118th release of NuttX, Version 7.18, was made on October 8, 2016, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.18.tar.gz and |
| apps-7.18.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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 standard adjtime() interface and basic timekeeping support. |
| Normally used with an NTP client to keep system time in |
| synchronization. From Max Neklyudov. |
| - Use the oneshot timer with optional entropy to measure CPU load if |
| so configured. |
| |
| * File System and Block and MTD Drivers: |
| |
| - Add Fujistu MB85RS256B ramtron support. From Beat Küng. |
| - SPI-based MTD driver for Macronix MX25L3233F or MX25L6433F. From |
| Aleksandr Vyhovanec. |
| |
| * Graphics/Display Drivers: |
| |
| - SH1106 0.96 OLED module support (SSD1306 compatible) + I2C fixes. |
| From v01d (phreakuencies). |
| |
| * Sensor Drivers: |
| |
| - Add KXTJ9 Accelerometer driver from the Motorola Moto Z MDK. |
| - Add MFRC522 RFID ISO14443 and Mifare transceiver driver. From Alan |
| Carvalho de Assis. |
| - Add driver for the LIS3MDL 3 axis magnetometer. From Alexander |
| Entinger. |
| - Add driver for the MLX90393 3 axis magnetometer. From Alexander |
| Entinger. |
| - Add driver for the LIS3DSH 3 axis accelerometer. From Alexander |
| Entinger. |
| - Add driver for the Bosch BMG160 3 axis gyroscope. From Alexander |
| Entinger. |
| - Add support for the Sensixs XEN1210 3D-board. This sensor is used |
| on NANOSATC-BR2 a Brazilian CUBESAT project. From Alan Carvalho |
| de Assis. |
| - Add a new ioctl command (set MAXPOS) for Tiva QEI. From Young. |
| |
| * Other Common Device Drivers: |
| |
| - I/O Expander: Remove hard-coded PCA9555 fields from ioexpander.h |
| definitions. Add support for an attach() method that may be used |
| when any subset of pin interrupts occur. |
| - I/O Expander Interface: Encode and extend I/O expander options to |
| include interrupt configuration. |
| - PCA9555 Driver: Replace the signalling logic with a simple callback |
| using the new definitions of ioexpander.h. This repartitioning of |
| functionality is necessary because (1) the I/O expander driver is |
| the lower-lower part of any driver that uses GPIOs (include the GPIO |
| driver itself) and should not be interacting directly with the much |
| higher level application layer. And (2) in order to be compatible |
| with the GPIO driver (and any arbitrary upper half driver), the |
| PCA9555 should not directly signal, but should call back into the |
| upper half. The upper half driver that interacts directly with the |
| application is the appropriate place to be generating signal. |
| - Add a skeleton I/O Expander driver (based on the PCA9555 driver). |
| - Add PCF8574 I/O Expander driver. |
| - GPIO driver: Add IOCTLs to get the pin type and to unregister a |
| signal handler. |
| - Add a GPIO lower-half driver that can be used to register a GPIO |
| character driver for accessing pins on an I/O expander. |
| - Add an SPI helper function that encapsulates and manages a sequence |
| of SPI transfers. |
| - Add an SPI character driver that will permit access to the SPI bus |
| for testing purposes. |
| - Add oneshot timer lower half interface definition. |
| - Add an upper-half, oneshot timer character driver. |
| - Add Audio Tone Generator for NuttX. From Alan Carvalho de Assis. |
| - Add USB host support for composite devices. This feature is not |
| well tested. |
| - drivers/ioexpander: Add an (untested) TCA64XX I/O Expander driver |
| leveraged from Project Ara. |
| |
| * Simulation Platform: |
| |
| - Add a simulated I/O Expander driver. |
| - Add simulator-based test support for apps/examples/gpio. |
| - Add a configuration useful for testing Mini Basic. |
| - Add a simulated oneshot lowerhalf driver. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM4CM: Add option to support oneshot timer without free-running |
| timer. Add oneshot lower half driver. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAMA5D: Add option to support oneshot timer without free-running |
| timer. Add oneshot lower half driver. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SAMV71/SAME70: Add option to support oneshot timer without |
| free-running timer. Add oneshot lower half driver. |
| - Add support for SAMV7 DACC module. From Piotr Mienkowski. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Add support for I2C and RTC. From v01d (phreakuencies). |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Add teensy 3.x I2C support. From v01d (phreakuencies). |
| |
| * STMicro STM32: |
| |
| - Add IAR-style STM32F1xx vectors. Tested on STM32F103RB and |
| STM32F107RC. From Aleksandr Vyhovanec. |
| |
| * STMicro STM32 Drivers: |
| |
| - Add timekeeping support for the STM32 tickless mode. From Max |
| Neklyudov. |
| - Add a oneshot, lower-half driver for STM32. |
| - STM32 L4: Add oneshot lower half driver for STM32 L4. |
| - STM32 L4: Add support for quadrature encoders on STM32L4. Sebastien |
| Lorquet. |
| |
| * STMicro STM32 Boards: |
| |
| - stm32f103-minimum: Add board support to MFRC522 driver. From Alan |
| Carvalho de Assis. |
| - Add oneshot board initialization to stm32f103-minimum. From Alan |
| Carvalho de Assis. |
| - stm32f103-minimum: Add board configuration to initialize Audio Tone |
| Generator. From Alan Carvalho de Assis. |
| - stm32bufferfly2: Add support for the Kamami stm32butterfly2 |
| development board with optional ETH phy. From Michal Lyszczek. |
| - stm32f103-minimum: Add board config support to SPI LCD module |
| JLX12864G-086. From Alan Carvalho de Assis. |
| - stm32l476-mdk: Support basic booting and nsh on Motorola MDK. The |
| Motorola MDK is based off of an earlier version of NuttX. |
| This only provides a basic NSH shell. From Jim Wylder. |
| - STM32 F4 Discovery: Add support for XEN1210 3D-board. From Alan |
| Carvalho de Assis. |
| - stm32f103-minimum: Add stm32_bringup support and userled example to |
| STM32F103 Minimum board. From Alan Carvalho de Assis. |
| - Add support for qencoders on various nucleo boards. From Sebastien |
| Lorquet. |
| - olimex-stm32-e407: Add some networking configurations. From Mateusz |
| Szafoni. |
| |
| * TI Tiva Drivers: |
| |
| - Add tiva PWM lower-half driver implementation. From Young. |
| - Tiva QEI: Add QEI lower-half driver for Tiva series chip. From |
| Young. |
| |
| * C Library/Header Files: |
| |
| - Separate XorShift128 PRNG from /dev/urandom and make it generally |
| available. |
| - Add POSIX type sig_atomic_t. From Sebastien Lorquet. |
| - Add the difftime() function. The function depends on the toolchain- |
| dependent CONFIG_HAVE_DOUBLE so is not available on tiny platforms. |
| From Sebastien Lorquet. |
| - Add support for remove(). From Sebastien Lorquet. |
| - Add system() to stdlib.h. Actual implementation is in |
| apps/system/system. |
| |
| * Build/Configuration System: |
| |
| - Rename arch/sh to arch/renesas. |
| - Remove contactless drivers from drivers/wireless to drivers |
| contactless. From Sebastien Lorquet. |
| - Move all modem-related IOCTL commands to a common file to assure |
| that they will be unique. |
| |
| * Tools: |
| |
| - Add sethost.sh. This is a script that you can use to quickly |
| change the host platform from Linux to Windows/Cygwin. Might save |
| you a lot of headaches. |
| |
| * Applications: apps/nshlib: |
| |
| - Add logic to support an NSH-specific system command. |
| - Add printf command to NSH, e.g., controlling /dev/userleds from |
| command line: nsh> printf \x01 > /dev/userleds. From Alan Carvalho |
| de Assis. |
| |
| * Platforms: apps/system: |
| |
| - Port tee command from NetBSD. |
| - Add a generic system command. Current implementation cannot use |
| /bin/sh and spawns the custom NSH system command directly. |
| |
| * Platforms: apps/platform: |
| |
| - Add C++ support for STM32L476-MDK. |
| |
| * Platforms: apps/interpreters: |
| |
| - Add a port of Mini Basic, version 1.0, written by Malcom McLean and |
| released under the Creative Commons Attribution license. |
| |
| * Applications: apps/examples: |
| |
| - Add a simple test of the GPIO driver. |
| - Add RFID_READUID sample application. From Alan Carvalho de Assis. |
| - Add Oneshot timer example. |
| - Add a simple test of the system command. |
| |
| Works-In-Progress: |
| |
| * IEEE802.14.5/6LowPAN. Hooks and framework for this effort were |
| introduced in NuttX-7.15. Work has continued on this effort on |
| forks from the main repositories, albeit with many interruptions. |
| The completion of this wireless feature will postponed until at |
| least NuttX-7.19. |
| |
| 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: |
| |
| - Explicitly initialize the group tg_exitsem with sem_init(). The |
| existing logic worked because the correct initialization value is |
| all zero, but it is better to initialize the semaphore explicitly. |
| - The TCB nchildren field should not be incremented when pthreads are |
| created. |
| - Move fields related to parent/child task relationship out of TCB |
| into group structure where they belong. Child is a group, not a |
| thread. |
| - mq_send() was not setting the errno value on certain failures to |
| allocate a message. |
| - Define 'group' even if HAVE_GROUPID is not set. From Mateusz |
| Szafoni. |
| - Vector table should have dimension NR_IRQS, not NR_IRQS+1. From |
| Sagitta Li. |
| - pthreads: When a pthread is started, there is a small bit |
| of logic that will run on the thread of execution of the new |
| pthread. In the case where the new pthread has a lower |
| priority than the parent thread, then this could cause both the |
| parent thread and the new pthread to be blocked at the priority of |
| the lower priority pthread (assuming that CONFIG_PRIORITY_INHERITANCE |
| is not selected). This change temporarily boosts the priority of the |
| new pthread to at least the priority of the new pthread to at least |
| the priority of the parent thread. When that bit of logic has |
| executed on the thread of execution of the new pthread, it will then |
| drop to the correct priority (if necessary) before calling into the |
| new pthread's entry point. |
| |
| * File System/Block Drivers/MTD Drivers: |
| |
| - FAT performance improvement. In large files, seeking to a |
| position from the beginning of the file can be very time consuming. |
| ftell does lssek(fd, 0, SET_CURR). In that case, that is wasted |
| time since we are going to seek to the same position. This fix |
| short-circuits fat_seek() in all cases where we attempt to seek to |
| current position. Suggested by Nate Weibley. |
| - MTD: Fixed cloned typos in several FLASH drivers. From Aleksandr |
| Vyhovanec. |
| - mount: Corrects a bad assertion noted by Pierre-noel Bouteville. |
| Also fixes a reference counting problem in an error condition: |
| When the mountpoint inode is found but is not an appropriate |
| mountpoint, the reference count on the inode was not being |
| decremented. |
| |
| * Common Drivers: |
| |
| - Various serial drivers: Fix FIONWRITE and add FIONSPACE. All |
| implementations of FIONWRITE were wrong. FIONWRITE should return |
| the number of bytes waiting in the outgoing send queue, not the free |
| space. Rather, FIONSPACE should return the free space in the send |
| queue. |
| - Add missing prototype for btn_lower_initialize(). |
| - Make DAC sample structure packed. From Marc Rechté. |
| |
| * Networking: |
| |
| - TCP: tcp_ipvX_bind() not actually using the port selected with |
| port==0. Also removes duplicate call to pkt_input(). Issues noted |
| by Pascal Speck. |
| - drivers/net: NET_TUN=y => NET_MULTIBUFFER=y. From Vladimir |
| Komendantskiy. |
| - slip driver: Fix calculations using MSEC_PER_TICK. If |
| USEC_PER_TICK is less than 1000, then MSEC_PER_TICK will be |
| zero. It will be inaccurate in any case. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM3/4 GPIO: Enable peripheral clock for GPIO port when GPIO is |
| configured as input. The value of a GPIO input is only sampled when |
| the peripheral clock for the port controller the GPIO resides in is |
| enabled. Therefore we need to enable the clock even when polling a |
| GPIO. From Wolfgang Reissnegger. |
| - All SAM Ethernet Drivers: Add support so that the drivers can be |
| built with CONFIG_NET_MULTIBUFFER=y. |
| - SAM3/4: Fix GPIO pull-up/down code. Enabling the pull-down resistor |
| while the pull-up resistor is still enabled is not possible. In this |
| case, the write of PIO_PPDER for the relevant I/O line is discarded. |
| Likewise, enabling the pull-up resistor while the pull-down resistor |
| is still enabled is not possible. In this case, the write of |
| PIO_PUER for the relevant I/O line is discarded. From Wolfgang |
| Reißnegger. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - All SAM Ethernet Drivers: Add support so that the drivers can be |
| built with CONFIG_NET_MULTIBUFFER=y. |
| - SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7. |
| |
| * Atmel SAMA5: |
| |
| - Add missing oneshot max_delay method. |
| - All SAM Ethernet Drivers: Add support so that the drivers can be |
| built with CONFIG_NET_MULTIBUFFER=y. |
| - SAM GPIO: Apply Wolfgang's change for SAM3/4 to SAMA5 and SAMV7. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - LPC43xx serial: Fix typos in LPC43 serial driver. Found by Vytautas |
| Lukenskas. |
| - LPC43xx Serial: There are some small problems in LPC43xx RS485 mode |
| configuration. In particular: (1) UART0,2,3 do not have DTR pins |
| (different from UART1), so, Kconfig needs to be adjusted. (2) |
| lpc43_uart.c in RS485 mode only configures DIR pin, but doesn't |
| enable pin output for UART0,2,3. (3) should be option to reverse DIR |
| control pin output polarity. (4) lpc43xx/chip/lpc43_uart.h doesn't |
| have USART3 definitions. NOTE: I didn't modified and didn't tested |
| USART1, as it has different hardware. From Vytautas Lukenskas. |
| From Vytautas Lukenskas. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - EFM32 SPI drivers adopted incompatible conventions (See STM32 for |
| details of the issue). |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32, STM32 L4, and EFM32 SPI drivers adopted incompatible |
| conventions somewhere along the line. They set the number of bits |
| to negative when calling SPI_SETBITS which had the magical side- |
| effect of setting LSB first order of bit transmission. This is not |
| only a hokey way to pass control information but is supported by no |
| other SPI drivers. This change three things: (1) It adds |
| HWFEAT_LSBFIRST as a new H/W feature. (2) It changes the |
| implementations of SPI_SETBITS in the STM32 and EFM32 drivers so |
| that negated bit numbers are simply errors and it adds the |
| SPI_HWFEATURES method that can set the LSB bit order, and |
| (3) It changes all calls with negative number of bits from all |
| drivers: The number of bits is now always positive and |
| SPI_HWFEATURES is called with HWFEAT_LSBFIRST to set the bit order. |
| - Add missing SPI2 and SPI3 support for STM32F3F3. Add STM32F37XX DMA |
| channel configuration. For STM32F37XX, SYSCFG_EXTICR_PORTE defined |
| twice. From Alan Carvalho de Assis. |
| - STM32: Make stm32_pwr_enablebkp thread safe. From Max Neklyudov. |
| - Fix bad pllmul values for STM32F1XX connectivity line. STM32F1XX |
| connectivity line supports only x4, x5, x6, x7, x8, x9 and x6.5 |
| values. From Michal Lyszczek. |
| - STM32F3 SPI: Fix the number of bit setting for the F3. That and |
| data packing work differently on the STM32F3 than for other STM32 |
| parts. |
| - STM32 and STM32 L4: Enabling SPI DMA loses other bits in CR2. |
| - STM32F3 SPI: Cannot write always 16-bit value to DR register |
| because of how the F3 implements data packing. |
| - STM32F411 and STM32F446 map i2c2_sda_4 to different alternate |
| function numbers. From Konstantin Berezenko. |
| - STM32 DMA Fix: Change stm32 adc dma callback to send channel |
| number instead of index. From Konstantin Berezenko. |
| - STM32 OTGFS device: Fix for lost first word from FIFO |
| |
| 1) Do not overwrite Reserved Bits in GINTSTS (per ref manual)* |
| 2) Acknowledge all pending int on entry to ISR that are Only rc_w1* |
| 3) Do not disable RXFVL* |
| 4) Loop until RXFVL is cleared* |
| 5) Only clear the NAK on the endpoint on the OTGFS_GRXSTSD_PKTSTS_SETUPDONE to not loose the first WORD of FIFO all the data (Bug Fix) |
| |
| Changed marked *are just driver clean up and ensure ints are not lost. The bug fix is #5 |
| |
| Test case open putty and observer the Set/Get LineCoding. Without this fix #5 the Get will not match the Set, and in fact the data might be skewed by 4 bytes, that are lost from the FIFO if the OTGFS_DOEPCTL0_CNAK bit is set in the OTGFS_GRXSTSD_PKTSTS_SETUPRECVD as opposed to the OTGFS_GRXSTSD_PKTSTS_SETUPDONE |
| |
| Set Line Coding DATA1: 4B | 00 c2 01 00 00 00 08 | c8 1B |
| Get Line Coding DATA1: 4B | .. .. .. .. 00 00 08 c8 .. 00 00 07 | 7a 72 |
| |
| From David Sidrane. |
| - STM32 L4 OTGFS device: Apply stm32 fix to stm32l4. From Sebastien |
| Lorquet. |
| - STM32 F7: Remove duplicate call to pkt_input from Ethernet driver. |
| Issues noted by Pascal Speck. |
| - STM32 L4: Add support for USART3-USART5. For STM32L4 parts, the |
| higher number USART ports supported varies. Add the HAVE_USARTx |
| definitions to the configuration to allow enabling the higher |
| numbered USART ports. From Jim Wylder. |
| - STM32 USB: Set USB address to avoid a failed assertion. From |
| Pierre-noel Bouteville. |
| - STM32 L4 and L7 USB: Pierre's assertion-avoidance change should |
| also be applied to STM32 F7 and L4. |
| - STM32, L4, and F7: Remove GPIO_ETH_RMII_TX_CLK. TX_CLK is not |
| present in RMII. Mateusz Szafoni. |
| - STM32 Ethernet: Correct typo in conditional logic. From Neil |
| Hancock. |
| - STM32 L4 USB Device: Fixed L4 USB Driver by avoiding SETUPDONE and |
| EPOUT_SETUP. From David Sidrane. |
| - STM32 SPI: stm32_modifycr2 should be available on all platforms if |
| DMA is enabled. |
| - STM32 DMA2D: fix an error in up_dma2dcreatelayer where an invalid |
| pointer was returned when a certain underlying function failed. |
| From Jens Gräf. |
| |
| * TI Tiva Drivers: |
| |
| - Fix two bugs of tiva pwm lower-half driver implementation. From |
| Young. |
| - Tiva Ethernet: Needs support for CONFIG_NET_MULTIBUFFER=y. |
| |
| * C Library/Header Files: |
| |
| - lib_dumpbuffer() now prints a large on-stack buffer first to avoid |
| problems when the syslog output is prefixed with time. From |
| Pierre-noel Bouteville. |
| - libc/math: This fixes the following libc/math issues: (1) asin[f l]() |
| use Newton's method to converge on a solution. But Newton's method |
| converges very slowly (> 500,000 iterations) for values of x close to |
| 1.0; and, in the case of asinl(), sometimes fails to converge (loops |
| forever). The attached patch uses an trig identity for values of |
| x > sqrt(2). The resultant functions converge in no more than 5 |
| iterations, 6 for asinl(). (2) The NuttX erf[f l]() functions are |
| based on Chebyshev fitting to a good guess. The problem there's a |
| bug in the implementation that causes the functions to blow up with |
| x near -3.0. This patch fixes that problem. It should be noted that |
| this method returns the error function erf(x) with fractional error |
| less than 1.2E-07 and that's fine for the float version erff(), but |
| the same method is used for double and long double version which |
| will yield only slightly better precision. This patch doesn't |
| address the issue of lower precision for erf() and erfl(). (3) a |
| faster version of copysignf() for floats is included. From David S. |
| Alessio. |
| - strtod() was not returning endptr on error conditions. |
| - libc/math: floor(), floorf(), and floorl(): Fix logic error. Was |
| not correctly handling negative integral value. |
| - isatty() should be prototyped in unstid.h, not termios.h. From |
| Sebastien Lorquet. |
| - nxglib: Fix handling of near-horizontal lines of width 1 in |
| nxgl_splitline(). Missing handling for degenerate condition caused |
| width 1 lines such as (0, 0) - (100, 10) to have gaps in the |
| drawing. From Petteri Aimonen. |
| |
| * Build/Configuration System: |
| |
| - Top-Level Makefiles: Fix a chicken-and-egg problem. In the menuconfig |
| target, the context dependency was executed before kconfig-mconf. That |
| was necessary because the link at apps/platform/board needed to be set |
| up before creating the apps/Kconfig file. Otherwise, the platform |
| Kconfig files would not be included. But this introduces the chicken- |
| and-egg problem in some configurations. In particular: (1) An NX |
| graphics configuration is used that requires auto-generation of |
| source files using cpp, (2) the configuration is set for Linux, but |
| (3) we are running under Cygwin with (4) a Windows native toolchain. |
| In this case, POSIX-style symbolic links are set up but the Windows |
| native toolchain cannot follow them. The reason we are running |
| 'make menuconfig' is to change from Linux to Cygwin, but the target |
| fails. During the context phase, NX runs CPP to generate source files |
| but that fails because the Windows native toolchain cannot follow |
| the links. Checkmate. This was fixed by changing all of the make |
| menuconfig (and related) targets. They no longer depend on context |
| being run. Instead, they depend only on the dirlinks target. The |
| dirlinks target only sets up the directory links but does not try |
| to run all of the context setup; the compiler is never invoked; no |
| code is autogenerated and things work. |
| - CXXFLAGS: Add -fcheck-new whenever -fno-exceptions is used. From |
| Beat Küng. |
| |
| * Tools |
| |
| - tools/refresh.sh: Recent complexities added to apps/ means that |
| configuration needs the correct Make.defs file in place in order to |
| configure properly. |
| - tools/kconfig2html.c: Update to handle absolute paths when sourcing |
| Kconfig files. |
| - tools/mkfsdata.pl was still generating the old-style apps/include |
| inclusion paths. |
| |
| * Application Build/Configuration System: |
| |
| - Add DIRLINK and DIRUNLINK tool definitions to apps/Make.defs. |
| |
| * apps/nshlib: |
| |
| - Fix FIFO_SIZE vs PIPE_SIZE. |
| - Fix hex representation of IP address in Kconfig. Noted by Michal |
| Lyszczek. |
| - nsh_syscmds.c: missing semicolon. From Mateusz Szafoni. |
| - In system command, don't try to flush output streams if stdio |
| buffered I/O is not supported. |
| |
| * apps/canutils: |
| |
| - libuavcan: Under certain circumstances, DELIM is not be defined in |
| Makefile. |
| - Add definition for APPNAME in apps/canutils/canlib. From Sebastien |
| Lorquet. |
| |
| * apps/gpsutils: |
| |
| - Fix an error minmea. From Aleksandr Vyhovanec. |
| |
| * apps/examples: |
| |
| - apps/examples/oneshot: If the requested delay is > max_delay, then |
| break the delay up into several pieces. |
| |
| NuttX-7.19 Release Notes |
| ------------------------ |
| |
| The 119th release of NuttX, Version 7.19, was made on December 26, 2016, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.19.tar.gz and |
| apps-7.19.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - sched/semaphore, sched/phread/, libc/semaphore, libc/pthread: Add |
| pthread_mutexattr_get/set_protocol and non-standard |
| sem_get/set_protocol. These may use to enable or disable priority |
| inheritance on a single semaphore. |
| - Spinlocks: Added capability to provide architecture-specific memory |
| barriers. |
| - SMP: Add spin_trylock(). Use this in conditions where other CPUs need |
| to stopped but we cannot call enter_critical_section(). |
| - sched note: Extend OS instrumentation to include some SMP events. |
| Also add spinlock instrumentation; In SMP configurations, add a |
| filter mask to log only notes from certain CPUs. |
| - sched note: Permit spinlock and critical section notes in in-memory |
| buffer iff sched_not_get() interfaces is disabled. |
| - sched note: Add additional note to see if/when CPU is started in SMP |
| mode. |
| - sched note: Record ID enumeration now results on constant values; ID |
| values do not change with configuration. This makes writing post-processing software much easier. |
| - boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the |
| NX server as a kernel thread. |
| - pthreads: Add pthread_cleanup_push() and pthread_cleanup_pop(). |
| - pthreads: Added pthread_setcanceltype() and pthread_testcancel(). |
| - pthreads: Add support for cancellation points. |
| - task_delete() now obeys all cancellation point semantics. |
| - Add task_setcancelstate(), task_setcanceltype(), and |
| task_testcancel(). These are non-standard interfaces analogous to the |
| corresponding pthread_ interfaces that provide cancellation controls |
| for tasks. |
| |
| * Graphics/Display Drivers: |
| |
| - boardctl: Add new boardctl() command, BOARDIOC_NX_START, to start the |
| NX server as a kernel thread. |
| |
| * Networking/Network Drivers: |
| |
| - Network drivers: Add option to use low-priority work queue to all |
| Ethernet and MAC level drivers. |
| - Network Drivers: Adapt all Ethernet (and other MAC) drivers to work |
| as though CONFIG_NET_MULTIBUFFER were set. Remove all references to |
| CONFIG_NET_MULTIBUFFER. |
| - Eliminate CONFIG_NO_NOINTS. There is no longer any support for |
| interrupt level processing of the network stack. Lots of files changed. |
| |
| * Other Common Device Drivers: |
| |
| - Vishay VEML6070: Add Vishay VEML6070 driver. From Alan Carvalho de |
| Assis. |
| |
| * ARMv7-A |
| |
| - ARMv7-A/i.MX6: Add SCU register definitions. Add some controls to |
| enable SMP cache coherency in SMP mode. Makes no difference, however |
| -- cache still incoherent on i.MX6. |
| - ARMv7 GIC: SGIs are non-maskable but go through the same path as |
| other, maskable interrupts. Added logic to serialize SGI processing |
| when necessary. |
| |
| * Atmel SAM3/4: |
| |
| - SAM3/4: Add SMP support for the dual-core SAM4CM. From Masayuki |
| Ishikawa. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - Add support for the SAM5CMP-DB board. From Masayuki Ishikawa. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM4CMP-DB: Add support for the Atmel SAM4CMP-DB board running in an |
| SMP configuration. From Masayuki Ishikawa. |
| - SAM4CMP-DB: Add hooks to auto-mount the procfs file system on startup |
| in board bring-up logic. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SAMv7: Register the watchdog device at the configured device path |
| CONFIG_WATCHDOG_DEVPATH vs. hard-coded /dev/wdt. From Frank Benkert. |
| |
| * Calypso |
| |
| - Calyps: Remove all Calypso board configurations. Remove Calypso |
| architecture support and support for Calypso SERCOMM driver. |
| |
| * Misoc LM32: |
| |
| - Misoc LM32: Adds basic support for the Misoc procoessors and the LM32 |
| in particular. From Ramtin Amin. |
| - Misoc LM32: Add signal handling logic. From Ramtin Amin. |
| - Misoc LM32: Add logic to flush/invalidate caches. From Ramtin Amin. |
| |
| * Misoc LM32 Drivers: |
| |
| - Misoc LM32 Serial: Add interrupting Misoc serial driver. From Ramtin |
| Amin. |
| - Misoc LM32 Timer: Add timer driver. From Ramtin Amin. |
| - Misoc LM32: Add Misoc Ethernet driver From Ramtin Amin. |
| |
| * Misoc LM32 Boards: |
| |
| - Misoc LM32 Qemu: Board support for testing Misoc LM32 with Qemu. From |
| Ramtin Amin. |
| - Misoc LM32 Qemu: Integrate network support into configs/misoc/hello. |
| From Ramtin Amin. |
| - Misoc LM32 Qemu: Remove configs/misoc/include/generated directory. I |
| suppose the intent now is that this is a symbolic link? DANGER! |
| This means that you cannot compile this code with first generating |
| these files a providing a symbolic link to this location! There is a |
| sample directory containing generated sources. This is really only |
| useful for performing test builds. You really must generate the Misoc |
| architecture for a real-life build. From Ramtin Amin. |
| |
| * NXP Freescale i.MX6 Drivers: |
| |
| - i.MX6: Add an untested SPI driver taken directly from the i.MX1 port. |
| |
| * NXP Freescale Kinetis: |
| |
| - Kinetis: Added missing headers. Kinetis broke out SPI to |
| kinetis/kinetis_spi.h. Broke out DMA to use the modern Nuttx chip |
| inclusion - still STUBS. Add Kinetis support for ARMV7-M Common |
| Vector and FPU. Allow CONFIG_ARMV7M_CMNVECTOR, |
| CONFIG_STACK_COLORATION, CONFIG_ARCH_FPU. Fix i2c driver offset |
| swapped for value in kinetis_i2c_putreg. From David Sidrane. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Kinetis: Add UID Unique ID. From Neil Hancock. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Freedom-K64F board: Add support for UID Unique ID. From Neil Hancock. |
| |
| * NXP Freescale LPC17xx Boards: |
| |
| - Olimex-LPC1766-STK: Enable procfs in NSH configuration. Automount |
| /proc on startup. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - LPC43xx: Add timer driver: From Alan Carvalho de Assis. |
| - LPC43xx GPDMA driver: The GPDMA block is basically the same as the |
| LPC17xx. Only the clock configuration is different and LPC43xx has |
| four different DMA request sources, where LPC17xx has only two. From |
| Alan Carvalho de Assis. |
| |
| * NXP Freescale LPC43xx Boards: |
| |
| - Bambino 200E: Add basic support to Micromint Bambino 200E board. |
| This includes contributions from Jim Wolfman. From Alan Carvalho de |
| Assis. |
| - Bambino 200E: Add support for timer driver. From Alan Carvalho de |
| Assis. |
| |
| * RGMP: |
| |
| - Remove RGMP and RGMP drivers. |
| |
| * RISC-V: |
| |
| - RISC-V: Add support for the RISC-V architecture and |
| configs/nr5m100-nexys4 board. The board support on this is pretty |
| thin, but it seems like maybe a good idea to get the base RISC-V stuff |
| in since there are people interested in it. From Ken Pettit. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F3: Implementation of the STM32 F37xx SDADC module. There are |
| also changes to ADC, DAC modules. SDADC has only been tested in DMA |
| mode and does not support external TIMER triggers. This is a work in |
| progress. From Marc Rechté. |
| - STM32 F3: Add PWM driver support for STMF37xx. The changes have been |
| tested successfully for TIM4 and TIM17 (different IPs). From Marc |
| Rechté. |
| - STM32 F4: Support oversampling by 8 for the STM32 F4. From David |
| Sidrane. |
| - STM32 F4: Added Timers 2-5 and control of SAI and I2S PLLs. Added |
| support for stmf469 SAI and I2S PLL configuration and STM446 fixes. |
| From David Sidrane. |
| - STM32 F4: Expanded OTGFS support to stm32F469 and stm32f446. Added |
| missing bit definitions, Used stm32F469 and stm32f446 bit |
| definitions, Removed unused header file. From David Sidrane. |
| - STM32 F4: Allow dma in 1 bit mode in STM32F4xxx. From David Sidrane. |
| - STM32 F7: Allow the config to override the clock edge setting. From |
| David Sidrane. |
| - STM32 L4: Support Complementary PWM outputs on STM32L4. From |
| Sebastien Lorquet. |
| - STM32 L4: Add implementation of dumpgpio for stm32l4, was required |
| for pwm debug. From Sebastien Lorquet. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103 Minimum: Add button support. From Alan Carvalho de Assis. |
| - STM32F103 Minimum: Add support to PWM on STM32F103-Minimum board. |
| From Alan Carvalho de Assis. |
| - STM32F103 Minimum: Add RGB LED support on STM32F103 Minimum board. |
| From Alan Carvalho de Assis. |
| - STM32F103 Minimum: Add Vishay VEML6070 driver support to the |
| STM32F103-Minimum board. From Alan Carvalho de Assis. |
| - Nucleo-F303RE: Add STM32 F303RE hello configuration. From Marc |
| Rechté. |
| - Nucleo-L476: Support PWM testing on board Nucleo L476. From |
| Sebastien Lorquet. |
| - Nucleo L476: Add support for timers to Nucleo L476. From Sebastien |
| Lorquet. |
| - Hymini STM32v: Enable CONFIG_RTC in the hymini-stm32v/nsh2 |
| (kitchensink) config. From Maciej Wójcik. |
| - Olimex STM32-p407: Add support for the Olimex STM32 P407 board. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva PWM: Support PWM_PULSECOUNT feature for TI tiva. From Young.Mu. |
| |
| * Xtensa/ESP32 |
| |
| - Xtensa ESP32: Basic architectural support for Xtensa processors and |
| the Espressif. ESP32 added. |
| - Xtensa ESP32: Add EXPERIMENTAL hooks to support lazy Xtensa |
| co-processor state restore in the future. |
| - Xtensa ESP32: Basic port is function in both single CPU and dual CPU |
| SMP configurations. There is an NSH configuration for each CPU |
| configuration. Outstanding issues include missing clock configuration |
| logic, missing partition tables to support correct configuration from |
| FLASH, and some serial driver pin configuration issues. |
| - Xtensa ESP32: Add stack checking logic. |
| |
| * Xtensa/ESP32 Boards: |
| |
| - ESP32 Core v2: Basic support for Espressif ESP32 Core v2 board |
| added. The initial release includes an NSH and an SMP test |
| configuration. |
| - ESP32 Core v2: Add configuration to support linking NuttX for |
| execution out of IRAM. |
| - ESP32 Core v2: Automatically mount /proc at start-up. |
| - ESP32 Core v2: Add an OS test to verify the port. |
| |
| * C Library/Header Files: |
| |
| - libc/locale: Add a dummy setlocale() function to avoid drawing the |
| function from newlib. Add clocale header file. |
| - include/locale.h: Modify locale.h to add localeconv() and lconv |
| structure. From Alan Carvalho de Assis. |
| - libc/locale: Allows c++ code to compile with or without |
| CONFIG_LIBC_LOCALE and will generate a link error if |
| CONFIG_LIBC_LOCALE is not defined and setlocale is referenced. With |
| CONFIG_LIBC_LOCALE defined setlocale will act as if MB string is not |
| supported and return "C" for POSIX. C and "". From David Sidrane. |
| - libc/wchar: Add wcslen, wmemchr, wmemcmp, wmemcpy wmemset, btowc, |
| mbrtowc, mbtowc, wcscmp, wcscoll, and wmemmove to NuttX. From Alan |
| Carvalho de Assis. |
| - libc/wctype: Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb, |
| wctype, localeconv, strcoll, strxfrm, swctype, towlower, towupper and |
| wcsftime. Add wctype.h; Move lib_wctype.c to libc/wctype. From Alan |
| Carvalho de Assis. |
| - include/ctype.h : Add isblank() macro to ctype.h. From Alan Carvalho |
| de Assis. |
| - lic/stdlib: Add strtof() and strtold() as simply a copy of strtod |
| with types and limits changed. |
| - sscanf(): Use strtof() instead of strtod() if a short floating point |
| value was requested. The should help performance with MCUs with |
| 32-bit FPU support with some additional code size. |
| - sscanf(): Add scansets to the scanf function. Enabled |
| CONFIG_LIBC_SCANSET option. From Aleksandr Vyhovanec. |
| - include/inttypes.h: Add architecture-specific inttypes.h. From Paul |
| A. Patience. |
| - C Library: Allow option to enable IP address conversions even when |
| the IP address family is not supported. |
| |
| * Build/Configuration System: |
| |
| - The Smoothie project needs to compile C++ inside config/boardname/src/ |
| to use with High Priority Interruption, then I modified the board |
| configs Makefile to support it. It works fine for the first time |
| compilation, but if we execute "touch config/boardname/src/Pin.cxx" |
| and execute "make" it will not detect that Pin.cxx was modified. I |
| think there is some other place I should modify, but I didn't find |
| it. From Alan Carvalho de Assis. |
| |
| * Tools: |
| |
| - tools/: Add tools/showsize.sh. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH: dd command will show statistics. From Masayuki Ishikawa. |
| |
| * Applications: apps/system: |
| |
| - apps/system/sched_note: Extend to include additions to instumentation |
| for SMP. |
| - apps/system/sched_note: Add support for spinlock notes. |
| - apps/system/sched_note: Add support for new scheduler instrumentation. |
| |
| * Platforms: apps/platform: |
| |
| - ESP32 Core v2: Add platform support for the ESP32 core v2 board. |
| - Olimex STM32-p407: Add platform support for the Olimex STM32 P407. |
| |
| * Graphics: apps/graphics |
| |
| - graphics/traveler/tcledit and libwld: Add an X11 Tcl/Tk tool that can |
| be used to edit Traveler world files. |
| - Graphics: Remove all NX server taks. Instead, call boardctl() to the |
| NX server kernel thread. |
| |
| * Applications: apps/examples: |
| |
| - examples/buttons: Add a new buttons example that uses the button |
| character driver instead of the architecture buttons directly. From |
| Alan Carvalho de Assis. |
| - examples/cctype: Add an example to verify cctype functions. |
| - Remove RGMP example. |
| - examples/ostest: Extend the pthread cancellation test to exercise |
| pthread_cleanup_push() (and pthread_cleanup_pop() indirectly via |
| pthread_cancel() and pthread_exit(). |
| - examples/ostest: enhance pthread cancellation test some. |
| |
| Works-In-Progress: |
| |
| * IEEE802.14.5/6LowPAN. Hooks and framework for this effort were |
| introduced in NuttX-7.15. Work has continued on this effort on |
| forks from the main repositories, albeit with many interruptions. |
| The completion of this wireless feature will postponed until at |
| least NuttX-7.20. |
| |
| 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: |
| |
| - sched/semaphore: Within the OS, when a thread obtains a semaphore |
| count it must call sem_addholder() if CONFIG_PRIORITY_INHERITANCE is |
| enabled. If a count is available, then sem_wait() calls |
| sem_addholder(), otherwise it waited for the semaphore and called |
| sem_addholder() when it eventually received the count. This caused a |
| problem when the thread calling sem_wait() was very low priority. |
| When it received the count, there may be higher priority threads |
| "hogging" the CPU that prevent the lower priority task from running |
| and, as a result, the sem_addholder() may be delayed indefinitely. |
| The fix was to have sem_post() call sem_addholder() just before |
| restarting the thread waiting for the semaphore count. This problem |
| was noted by Benix Vincent who also suggested the solution. |
| - Many files: Make sure that priority inheritance is not enabled for |
| semaphores whose primary use is signaling (vs locking of resources) by |
| calling sem_setprotocol(). |
| - sched/semaphore: sem_trywait() no longer modifies the errno value |
| UNLESS an error occurs. This allows these functions to be used |
| internally without clobbering the errno value. From Freddie Chopin. |
| - sched/clock: Correct clock initialization. The correct range for the |
| month is 0-11 but is entered as 1-12 in the .config file. Add ranges |
| to START_YEAR, MONTH, and DAY in sched/Kconfig. |
| - sched/clock: Correct calculation for the case of Tickless mode with a |
| 32-bit timer. In that case, the calculation was returning millisecond |
| accuracy. That is not good when the timer accuracy is < 1 msec. From |
| Rajan Gill. |
| - Work Queue: When queuing new LP work, don't signal any threads if |
| they are all busy. From Heesub Shin. |
| - Work Queue: Signal sent from work_signal() may interrupt the low |
| priority worker thread that is already running. For example, the |
| worker thread that is waiting for a semaphore could be woken up by the |
| signal and break any synchronization assumption as a result. It also |
| does not make any sense to send signal if it is already running and |
| busy. This change fixes it. From Heesub Shin. |
| - Fix DEBUGASSERT() in group_signal.c. From Masayuki Ishikawa. |
| - Eliminate bad boardctl() commands: Remove all references to |
| BOARDIOC_PWMSETUP and board_pwm_setup(). Remove all references to |
| BOARDIOC_ADCSETUP and board_adc_setup(). Remove |
| BOARDIOC_CAN_INITIALIZE. CAN initialization is now done in the board |
| initialization logic just like every other device driver. |
| - pthreads: Fix an error in pthread_mutex_destroy(). An error could |
| occur while destroying a mutex after a pthread has been canceled while |
| holding the mutex. |
| - task_restart: Make sure new task starts with pre-emption disabled and |
| not in a critical section. |
| - Enter/leave Critical Sections. Major redeign to |
| enter/leave_critical_section logic to deal with the case where |
| interrupts are disabled only on the local CPU. In this case, some |
| rather complex spinlocks must be used to maintain the critical section |
| across all CPUs. |
| - SMP Critical Sections: Fixes for the SMP case: (1) Change order for |
| SMP case in enter_critical_section: (1) Disable local interrupts |
| BEFORE taking spinlock and (2) If SMP is enabled, if any interrupt |
| handler calls enter_critical_section(), it should take the spinlock. |
| - SMP wdogs: Wdog timers use a tasking interface that to manipulate |
| wdogs, and a different interface in the timer interrupt handling logic |
| to manage wdog expirations. In the single CPU case, this is fine. |
| Since the tasking level code calls enter_critical_section, interrupts |
| are disabled and no conflicts can occur. But that may not be the case |
| in the SMP case. Most architectures do not permit disabling |
| interrupts on other CPUs so enter_critical_section must work |
| differently: Locks are required to protect code. this change adds |
| locking (via enter_critical section) to wdog expiration logic for the |
| the case if the SMP configuration. |
| - SMP vfork(): Fix a race condition in the SMP case. Existing logic |
| depended on the fact that the child would not run until waitpid was |
| called because the child had the same priority as the parent. BUT in |
| the SMP case that is not true... the child may run immediately on a |
| different CPU. |
| - SMP: This change adds a new internal interfaces and fixes a problem |
| with three APIs in the SMP configuration. The new internal interface |
| is sched_cpu_pause(tcb). This function will pause a CPU if the task |
| associated with 'tcb' is running on that CPU. This allows a different |
| CPU to modify that OS data structures associated with the CPU. When |
| the other CPU is resumed, those modifications can safely take place. |
| The three fixes are to handle cases in the SMP configuration where one |
| CPU does need to make modifications to TCB and data structures on a |
| task that could be running running on another CPU. Those three cases |
| are task_delete(), task_restart(), and execution of signal handlers. |
| In all three cases the solutions is basically the same: (1) Call |
| sched_cpu_pause(tcb) to pause the CPU on which the task is running, |
| (2) perform the necessary operations, then (3) call up_cpu_resume() to |
| restart the paused CPU. |
| - SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting |
| for g_cpu_irqlock with interrupts interrupts and CPU0 is waiting for |
| g_cpu_paused. |
| - SMP: Enforce this rule: Tasks which are normally restored when |
| sched_unlock() is called must remain pending (1) if we are in a |
| critical section, i.e., g_cpu_irqlock is locked , or (2) other CPUs |
| still have pre-emption disabled, i.e., g_cpu_schedlock is locked. In |
| those cases, the release of the pending tasks must be deferred until |
| those conditions are met. |
| |
| * File System/Block Drivers/MTD Drivers: |
| |
| - AT24XX EEPROM MTD driver: Added EEPROM timeout. Fromo Aleksandr |
| Vyhovanec. |
| - fs/procfs: Fix procfs status for SMP case. |
| |
| * Graphics/Graphic Drivers: |
| |
| - Fonts: Correct some default font IDs. From Pierre-Noel Bouteville. |
| |
| * Common Drivers: |
| |
| - usbhost/enumerate: Fix possible buffer overwrite. From Janne Rosberg. |
| - usbhost/composite: Fix compile; missing semicolons. From Jann Rosberg. |
| - syslog: Fixes required for file syslog output. From Max Kriegleder. |
| - SPI configuration: Fix Kconfig warning. This change moves the |
| ARCH_HAVE_SPI options outside the check for SPI. Those options don't |
| depend on SPI, and Kconfig files in arch/ enable them even if SPI |
| isn't enabled. Source the driver's Kconfig in drivers/Kconfig only |
| if support for the driver is enabled prevents us from defining these |
| ARCH_HAVE options in the driver's Kconfig. We should probably remove |
| the other checks in drivers/Kconfig and check if the drivers are |
| enabled only in their Kconfig. From Paul A. Patience. |
| - drivers/timer: Remove the timer driver TIOC_SETHANDLER IOCTL call. |
| This calls directly from the timer driver into application code. That |
| is non-standard, non-portable, and cannot be supported. Instead, add |
| timer driver hooks to support signal notification of timer |
| expiration. Signal notification logic added by Sebastien Lorquet. |
| - All timer lower half drivers. Port Sebastien's changes to all other |
| implementations of the timer lower half. |
| - USB MSC Device: Fix length of mode6 sense reply packet. From |
| Wolfgang Reißnegger. |
| - USB Composite Host: Fix end offset in usbhost_copyinterface(). From |
| Janne Rosberg. |
| - USB CDC/ACM Host: Add CDC_SUBCLASS_ACM and CDC_PROTO_ATM to |
| supported class and proto. From Janne Rosberg. |
| - SSD1306: Fix errors in SPI mode configuration. From Gong Darcy. |
| - CDC/ACM Device Class: uart_ops_s portion of cdcacm will not be |
| initialized with correct functions if CONFIG_SERIAL_DMA is selected. |
| |
| * Networking/Network Drivers: |
| |
| - drivers/net/tun.c: Fix bug in TUN interface driver. From Max Nekludov. |
| |
| * ARMv7-A: |
| |
| - ARMv7-A SMP: Add SMP logic to signal handling. |
| |
| * ARMv7-M: |
| |
| - ARMv7-M: Fix double allocation of MPU region in mmu.h. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R: Fix compilation error. This change fixes compilation errors |
| on MPU support for ARMv7-R. From Heesub Shin. |
| - ARMv7-R: fix invalid drbar handling. In ARMv7-R, [31:5] bits of DRBAR |
| is physical base address and other bits are reserved and SBZ. Thus, |
| there is no point in passing other than the base address. From Heesub |
| Shin. |
| - ARMv7-R: Remove the redundant update on SCTLR. mpu_control() is |
| invoking cp15_wrsctlr() around SCTLR update redundantly. From Heesub |
| Shin. |
| - ARMv7-R: Add new Kconfig entries for D/I-cache. Unlike in ARMv7-A/M, |
| Kconfig entries for data and instruction caches are currently missing |
| in ARMv7-R. This change adds those missing Kconfig entries. Actual |
| implementation for those functions will be added in the subsequent |
| patches. From Heesub Shin. |
| - ARMv7-R: Add cache handling functions. This change adds functions for |
| enabling and disabling d/i-caches which were missing for ARMv7-R. |
| From Heesub Shin. |
| - ARMv7-R: Fix typo in mpu support. s/ARMV7M/ARMV7R/g. From Heesub Shin. |
| - ARMv7-R: Fix CPSR corruption after exception handling. A sporadic |
| hang with consequent crash was observed when booting. It seemed to be |
| caused by the corrupted or wrong CPSR restored on return from |
| exception. NuttX restores the context using code like this: msr spsr, |
| r1. GCC translates this to: msr spsr_fc, r1. As a result, not all |
| SPSR fields are updated on exception return. This should be: msr |
| spsr_fsxc, r1. On some evaluation boards, spsr_svc may have totally |
| invalid value at power-on-reset. As it is not initialized at boot, the |
| code above may result in the corruption of cpsr and thus unexpected |
| behavior. From Heesub Shin. |
| - ARMv7-R: Fix to restore the Thumb flag in CPSR. Thumb flag in CPSR is |
| not restored back when the context switch occurs while executing thumb |
| instruction. From Heesub Shin. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM3/4 UDP: Add delay between setting and clearing the endpoint RESET |
| bit in sam_ep_resume(). We need to add a delay between setting and |
| clearing the endpoint reset bit in SAM_UDP_RSTEP. Without the delay |
| the USB controller will (may?) not reset the endpoint. If the |
| endpoint is not being reset, the Data Toggle (DTGLE) bit will not to |
| be cleared which will cause the next transaction to fail if DTGLE is |
| 1. If that happens the host will time-out and reset the bus. Adding |
| this delay may also fix the USBMSC_STALL_RACEWAR in usbmsc_scsi.c, |
| however this has not been verified yet. From Wolfgang Reißnegger. |
| - SAM3/4: Remove unused 'halted' flag from UDP driver. From Wolfgang |
| Reißnegger. |
| - SAM3/4: Remove 'stalled' flag from the UDP driver. This flag is not |
| necessary because the state of the endpoint can be determined using |
| 'epstate' instead. From Wolfgang Reißnegger. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM4S Xplained Pro: Configuration uses old, improper timer interface. |
| CONFIG_TIMER disabled in configuration. Remove obsolete timer |
| initialization logic. |
| |
| * Atmel SAMV7 Drivers: |
| |
| - SAMv7 USBDEVHS: A problem occurred with the SAMV7 USBDEVHS driver if |
| the USB cable is unplugged while a large amount of data is send over |
| an IN endpoint using DMA. If the USB cable is plugged in again after a |
| few seconds it is not possible to send data over this IN endpoint |
| again, all other endpoints work as expected. The problem occurs |
| because if the USB cable is unplugged while an DMA transfer is in |
| flight the transfer is canceled but the register SAM_USBHS_DEVDMACTRL |
| is left in an undefined state. The problem was fixed the problem by |
| resetting the register SAM_USBHS_DEVDMACTRL to a known state. |
| Additionally all pending interrupts are cleared. From Stefan Kolb. |
| - SAMV7 MCAN: Prevent Interrupt-Flooding of ACKE when not connected to |
| CAN-BUS. An Acknowledge-Error will occur every time no other CAN Node |
| acknowledges the message sent. This will also occur if the device is |
| not connected to the can-bus. The CAN-Standard declares, that the Chip |
| has to retry a given message as long as it is not sent successfully |
| (or it is not cancelled by the application). Every time the chip tries |
| to resend the message an Acknowledge-Error-Interrupt is generated. At |
| high baud rates this can lead in extremely high CPU load just for |
| handling the interrupts (and possibly the error handling in the |
| application). To prevent this Interrupt-Flooding we disable the ACKE |
| once it is seen as long we didn't transfer at least one message |
| successfully. From Frank Benkert. |
| - SAMV7 MCAN: Make delete_filter functions more robust. From Frank |
| Benkert. |
| |
| * Atmel SAMA5 Drivers: |
| |
| - SAMA5 PWM: Driver does not build when executing from SDRAM before |
| board frequencies are not constant. Rather, the bootloader configures |
| the clocking and we must derive the clocking from the MCK left by the |
| bootloader. This means lots more computations. This is untested on |
| initial change because I don't have a good PWM test setup right now. |
| |
| * Misoc LM32: |
| |
| - Misoc LM32: Corrects a bug that never occurred in qemu on simulation or |
| real fpga. The error was that the r1 register was being modified out |
| of context switching and not restoring it. From Ramtin Amin |
| |
| * NXP Freescale i.MX6: |
| |
| - i.MX6 interrupt handling: Additional logic needed to handle nested |
| interrupts when an interrupt stack is used. Nesting can occur because |
| SGI interrupts are non-maskable. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - LPC43xx serial: Fix a typo in ioctl TIOCSRS485 ioctl. From Vytautas |
| Lukenskas. |
| - LPC43xx serial: Restore RS485 mode on serial port open (if RS485 is |
| enabled via menuconfig). From Vytautas Lukenskas. |
| - LPC43xx SD/MMC: Correct some definitions on SMMC control register in |
| lpc43_sdmmc.h. From Alan Carvalho de Assis. |
| - LPC43xx SD card: Correct pin configuration options needed for SD card |
| pins. From Alan Carvalho de Assis. |
| |
| * SiLabs EFM32: |
| |
| - EFM32: Fix a compilation error. From Pierre-noel Bouteville. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 CHxN channels are always outputs. From Sebastien Lorquet. |
| - STM32 DAC: Fix shift value whenever there are is a DAC2 and, hence, |
| up to three interfaces. From Marc Rechté. |
| - STM32 F1: Add TIM8 to STM32F103V pinmap. From Maciej Wójcik. |
| - STM32 F1: Fix for F1 RTC Clock, tested on F103. From Maciej Wójcik. |
| - STM32 F3: STM32F303xB and STM32F303xC chips have 4 ADCs. From Paul |
| A. Patience. |
| - STM32 F4: A new implementation of the STM32 F4 I2C bottom half. The |
| common I2C as this did not handled correctly in the current |
| implementation (see also https://github.com/PX4/NuttX/issues/54). The |
| changes almost exclusively affect the ISR. From Max Kriegleder. |
| - STM32 F4 OTGHS Host: If STM32F446 increase number of channels to |
| 16. From Janne Rosberg. |
| - STM32 F4: I think, that Size is (highest address+1 - Base address). |
| Base address has been removed and if address+count >= size we are |
| outside of the Flash. From David Sidrane. |
| - STM32 F4: Fix ADC compilation error when DMA isn't enabled. From Paul |
| A. Patience. |
| - STM32 F4: STM32F427 was rebooting. Over reached family. From David |
| Sidrane. |
| - STM32 F4: Added STM32F469 RAM size and deliberated STM32F446 size. |
| From David Sidrane. |
| - STM32 F4: Typo in stm32f76xxxx_pinmap.h edited online with |
| Bitbucket. From David Sidrane. |
| - STM32 F7: stm32_i2c.c Dejavu. Fixes a bug previously found in the |
| F4. From David Sidrane. |
| - STM32 F7: OTGDEV fixed typo. From David Sidrane. |
| - STM32 F7: Fix to SPI-Master driver. Without this the chip select |
| decoding feature will not work properly. From Michael Spahlinger. |
| - STM32 F7: STM32F7 SD/MMC driver depends on CONFIG_SDIO_DMA which is |
| only defined in stm32/Kconfig. Changed to CONFIG_STM32F7_SDMMC_DMA |
| and defined in stm32f7/Kconfig. |
| - STM32 F7: Fix some STM32F7 copy paste errors. From David Sidrane. |
| - STM32 L4: Complementary PWM outputs on STM32L4" (1) too many |
| parentheses when calculating max chan count and (2) channel 4 does not |
| have a complementary output. From Sebastien Lorquet. |
| - STM32 L4: Fix I2C devices RCC registers. From Sebastien Lorquet. |
| - STM32 L4: Enable and renaming for 32l4 UARTs 4 and 5. From Sebastien |
| Lorquet. |
| - STM32 L4: Change the way to configure quadrature encoder prescalers. |
| From Sebastien Lorquet. |
| - STM32 L4: Correct USART1/2 definitions. Use default mbed UART4 |
| settings. From Sebastien Lorquet. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103 Minimum: Fix Timers 2 to 7 clock frequencies. From Alan |
| Carvalho de Assis. |
| - Nucleo-F303RE: Remove duplicate setting from board.h. From Marc |
| Rechté. |
| - Nucleo F303RE: Various fixes to get the ADC configuration building |
| again after PR. Refresh all configurations. |
| - Nucleo L476RG: Add better selection of timer. |
| |
| * TI Tiva Boards: |
| |
| - DK-TM4C129x: Typo fix. From Wolfgang Reißnegger. |
| |
| * Xtensa ESP32: |
| |
| - ESP32 core v2: Flush the UART TX buffer in the esp32 serial shutdown |
| routine. The ROM bootloader does not flush the FIFO before handing |
| over to user code, so some of this output is not currently seen when |
| the UART is reconfigured in early stages of startup. From Angus |
| Gratton. |
| - Xtensa ESP32: Corrects a problem with dispatching to signal |
| handlers: Cannot vector directly to the signal handling function as |
| in other ABIs under the Xtensa Window ABI. In that case, we need to |
| go through a tiny hook when performs the correct window call (call4) |
| otherwise registers will be scrambled in the signal handler. |
| |
| * Xtensa ESP32 Boards: |
| |
| - ESP32 core v2: Changes the openocd config file's default flash |
| voltage from 1.8V to 3.3V. This is not necessary right now, but may |
| save some hard-to-debug moments down the track (3.3V-only flash |
| running at 1.8V often half-works and does weird things...). From |
| Angus Gratton. |
| |
| * C Library/Header Files: |
| |
| - libc/stdio: Fixes sscanf() %sn where strlen(data) < n. From David |
| Sidrane. |
| - libc/stdio: Include wchar.h in lib_libvsprintf.c to fix compilation |
| error. From Alan Carvalho de Assis. |
| - include/sys/time.h: timersub macro modified per recommendations of |
| phreakuencies. |
| - include/ctype.h and cxx/cctype: Implement ctype.h functions as inline |
| if possible. cctype can then properly select namespace. |
| - include/: Fix a number of header files with mismatched 'extern C {' |
| and '}'. |
| - libc/unisted: Change brings strtol() and related functions more |
| conformant with POSIX. Corner cases like strtol(-2147483648, NULL, |
| 10) now pass clang -fsanitize=integer without warnings. From Juha |
| Niskanen. |
| - libc/unistd: sleep() was returning remaining nanoseconds (kind of), |
| instead the remaining seconds. From Eunbong Song. |
| - termios.h: Fix CRTSCTS define to include input and output flow. From |
| Lorenz Meier. |
| |
| * Build/Configuration System: |
| |
| - configs/*/defconfig: The buttons example was changed to archbuttons. |
| As a result all of the button configurations are broken and need some |
| renaming in the defconfig files. Noted by Frank Berkert. |
| - config/*/defconfgs: More fallout from name change of |
| apps/examples/buttons to archbuttons. |
| - configs: All QE encoder files. Last change made timer hard-coded to |
| 3. Make configurable. |
| - configs: Remove all traces of the no-longer existent ARCHBUTTONS |
| example. Remove all button configurations that depended on the |
| obsoleted ARCHBUTTON example. |
| - minnsh Configurations: Remove minnsh configurations and support |
| logic: up_getc() and lowinstream. This was an interesting exercise |
| to see just how small you could get NuttX, but otherwise it was not |
| useful: (1) the NSH code violated the OS interface layer by callup |
| up_getc() and up_putc() directly, and (2) while waiting for character |
| input, NSH would call up_getc() which would hog all of the CPU. Not a |
| reasonable solution other than as a proof of concept. |
| |
| * Application Build/Configuration System: |
| |
| - Make.defs: Using wrong link script if native window tool used with |
| Cygwin. |
| |
| * apps/platform: |
| |
| - ESP32 Core v2 Platform: Fix some naming that prevented building the |
| C++ support. |
| |
| * apps/nshlib: |
| |
| - NSH Library: nsh_getdirpath(), use snprint instead of sprintf to |
| avoid possibility of buffer overrun. Noted by Chung Hwan Kim. |
| |
| * apps/system: |
| |
| - Remove std_readline(). This called up_getc() and up_putc() directly, |
| violating the POSIX OS interface. |
| |
| * apps/netutils: |
| |
| - FTPD: Fixed bug that didn't free ftpd resources on exit. From Pascal |
| Speck. |
| - NTP client: Fix missing left parenthesis. From Pierre-Noel Bouteville. |
| - cJSON: Import patch to fix:cJSON_PrintUnformatted() behaves unexpected |
| if an empty array shall be printed to text. from Jerome Lang |
| 2012-04-19. From Pierre-Noel Bouteville. |
| - esp8266 update cosmetic and many bug fix. From Pierre-Noel Bouteville. |
| - FTPD: Fix bug un ftpd file or socket may be not closed. From |
| Pierre-Noel Bouteville. |
| |
| * apps/modbus: |
| |
| - Modbus Master is missing many files and doesn't compile at all. More |
| details in |
| https://groups.yahoo.com/neo/groups/nuttx/conversations/topics/13734. |
| From Vytautas Lukenskas. |
| |
| * apps/examples: |
| |
| - The examples/qencoder app was trying to init the encoder by a direct |
| call into the board, cheating in a local header to declare the |
| normally unavailable function prototype. From Sebastien Lorquet. |
| - apps/examples/timer: Should detach signal handler before exiting. |
| - examples/qencode: The examples/qencoder app was trying to init the |
| encoder by a direct call into the board, cheating in a local header to |
| declare the normally unavailable function prototype. From Sebastien |
| Lorquet. |
| - apps/examples/archbuttons: Removed because it violates OS interface |
| principles. |
| - examples/adc, pwm, can: Remove all usage of BOARDIOC_ADCTEST_SETUP, |
| BIOARDIOC_PWMSETUP. Remove BOARDIOC_CAN_INITIALIZE. CAN |
| initialization is now done in the board initialization logic just like |
| every other device driver. |
| - examples/ostest: Add some delays to the pthread cancellation test. |
| With deferred cancellation enabled, things happen more asynchronously. |
| |
| NuttX-7.20 Release Notes |
| ------------------------ |
| |
| The 120th release of NuttX, Version 7.20, was made on March 8, 2017, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.20.tar.gz and |
| apps-7.20.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - Kernel Modules: Module initializer may now return a symbol table. |
| - Modules: Extend the module interface so that we can access symbols |
| exported by the module. |
| - Shared Libraries: In the FLAT build mode, kernel modules may be |
| used to provide minimal shared library functionality. |
| - Modules/Shared Libraries: Add support for dependencies between |
| modules. |
| - Module Library: Add build a configuration logic for a shared module |
| library. |
| - Shared Libraries: Implement module based shared libraries for the |
| PROTECTED mode build. |
| - Interrupt handling: irq_attach() now includes an argument of type |
| xcpt_t that retained with the handler address. That argument is |
| then provided to the interrupt handler when the interrupt occurs. |
| The common parameter passing replaces the ad hoc parmater passing |
| implemented in current drivers. From Mark Schulte. |
| - Adapt many drivers to utilize the IRQ argument feature. |
| - All functions that used to return an xcpt_t old handler value, now |
| return an int error code. The oldhandler value is no longer useful |
| with the recent changes to the interrupt argument passing. Some of |
| the functions effected include board_button_irq(), arch_phy_irq(), |
| STM32 EXTI functions (Alarm, COMP, PVD), GPIO interrupt logic like |
| kinetis_pinirq(), stm32_gpiosetevent(), and others. |
| - IRQ subsystem: Add support for smaller interrupt tables as |
| described at |
| https://cwiki.apache.org/confluence/display/NUTTX/Smaller+Vector+Tables. |
| This is partially the work of Mark Schulte. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - Pseudo File System: Add support for soft links in the top-level |
| pseudo file system. |
| - Soft links: Add an implementation of readlink(). |
| - Add fstat() support. Implement fstat() method in binfs, romfs, |
| unionfs, tmpfs, nxffs, nfx, hostfs, procfs, and smartfs. |
| - fstat: Add fstat() support to FAT. From Alan Carvalho de Assis. |
| |
| * Graphics/Display Drivers: |
| |
| - Fonts: Add support for Tom Thumb small mono-space font. From Alan |
| Carvalho de Assis. |
| - Graphics: Separated of font cache from graphics/nxterm. Now in |
| libnx/nxfronts where it can be shared with other graphics |
| applications. |
| |
| * Networking/Network Drivers: |
| |
| - Ethernet drivers: Add framework for serialization in the case where |
| multiple low-priority work queues are used. |
| |
| * Other Common Device Drivers: |
| |
| - Add capabilities() method to SDIO interface. Remove |
| CONFIG_SDIO_WIDTH_D1_ONLY. That should not be a global propertie, |
| but rather a capability/limitation of single slot when there may be |
| multiple slots. |
| - Removed dmasupported() method from the SDIO interface. That is now |
| a bit in the capability set. |
| - drivers/sensors: Add driver for the ST L3GD20 3 axis gyro. From |
| raiden00. |
| |
| * Atmel SAM3/4: |
| |
| - SAM3/4: Add support for ATSAM4S4C. From Wolfgang Reißnegger. |
| |
| * NXP Freescale i.MX6 Boards: |
| |
| - Sabre 6quad: Enable examples/smp test in i.MX6 SMP/NSH |
| configurations. |
| |
| * NXP Freescale Kinetis: |
| |
| - Kinetis: Added support for CHIP_MK60FN1M0VLQ12 chip. From Maciej |
| Skrzypek. |
| - Kinetis: Add support for K64/K66 RTC lower half driver. From Neil |
| Hancock. |
| - Kinetis: Extensive modification of MCG support based feature |
| configuration. From David Sidrane. |
| - Kinetis: Add support for K66 family. From David Sidrane. |
| - Kinetis: Created a kinetis SIM versioning scheme pulled in by |
| Kinetis chip.h. From David Sidrane. |
| - Created a kinetis PMC versioning scheme pulled in by Kinetis |
| chip.h. From David Sidrane. |
| - Kinetis: Extend clock configuration logic. Refactor |
| implementation. From David Sidrane. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Kinetis Ethernet: Kinetis Support RMII clock source select. This |
| defined the RMII clock source select bits and allows the selection |
| to be made via Kconfig. From David Sidrane. Freedom-K66F uses |
| ENET_1588_CLKIN as RMII clock |
| - Kinetis Serial: Added configurable 1|2 stop bits. |
| HAVE_SERIAL_CONSOLE -> HAVE_UART_CONSOLE to be consistent with |
| HAVE_LPUART_CONSOLE naming. From David Sidrane. |
| - Kinetis LPserial: Add LPUART serial driver and Clock |
| configuartaion to freedom-k66f board. From David Sidrane. |
| - Kinetis USB device: Refactor clocking in kinetis_usbdev. From |
| David Sidrane. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Add support for NXP Freedom-k66f development board. From David |
| Sidrane. |
| - Kinetis Freedom K66F: Add Ethernet support. From David Sidrane. |
| - Add twr-k64f120m config. From Marc Rechté. |
| |
| * NXP Freescale LPC43xx Boards: |
| |
| - Bamboo-200E: Add netnsh configuration. From Alan Carvalho de Assis. |
| - Add usbnsh config to Bambino 200E board. From Alan Carvalho de |
| Assis. |
| |
| * STMicro STM32: |
| |
| - STM32 F7: Allow board to configure HSE clock in bypass-mode. This |
| is needed to enable HSE with Nucleo-F746ZG board. From Jussi |
| Kivilinna. |
| - STM32 F7: stm32_allocateheap: allow use DTCM memory for heap. |
| STM32F7 has up to 128KiB of DTCM memory that is currently left |
| unused. This change adds DTCM to main heap if |
| CONFIG_STM32F7_DTCMEXCLUDE is not enabled. From Jussi Kivilinna. |
| - Add basic support for the STM32F334. From Mateusz Szafoni. |
| - STM32F33XX DAC, OPAMP, COMP, ADC, HRTIM headers. From Mateusz |
| Szafoni. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F7 SDMMC: Add support for single bit operation on SDMMC2. |
| - STM32 L4: Port STM32L4 SAI driver from MDK. |
| - STM32 L4: Bring power management logic from Motrola MDK into NuttX. |
| - STM32 L4: Bring LPTIM driver in from the Motorola MDK. |
| - STM32 L4 COMP: Port from Motorola MDK. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429i Discovery: Add support for NxWM on STM32F429i-Disco |
| board. From Alan Carvalho de Assis. |
| - STM32F103 Minimum: Add support for nRF24 on STM32F103-Minimum |
| board. From Alan Carvalho de Assis. |
| - Olimex STM32 P407: Add a NSH protected build configuration; Enable |
| procfs/ in all configurations. |
| - Olimex STM32 P407: Add support for on-board microSD slot. |
| - STM32F429i Discovery: Add support for the L3GD20 driver. From |
| raiden00. |
| - STM32F103 Minimum: Add support to QEncoder on STM32F103 Minimum |
| board. From Alan Carvalho de Assis. |
| - Olimex STM32 P407: Add external SRAM support. |
| - Add basic support for the Nucleo F334R8 board. From Mateusz |
| Szafoni. |
| - STM32F103 Minimum: Add SDCard support over SPI on STM32F103-Minimum |
| board. From Alan Carvalho de Assis. |
| - STM32F103 Minimum: Add support to USB Device on STM32F103-Minimum |
| board. From Alan Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - compiler.h: packed_struct replaced by begin_packed_struct and |
| end_packed_struct. Now support IAR style packed structures. From |
| Aleksandr Vyhovanec. |
| - Math library: Leverage optimized ARMv8-M functions from BSD license |
| ARM file. |
| - Shared libraries: Add a non-standard dllfnc.h function to set the |
| symbol table. |
| - C Library: Add a support for setvbuf(). This is a collaborative |
| effort. Alan Carvalho de Assis did the initial prototype. |
| - C Library: Add setbuf() which is a trivial wrapper around setvbuf(). |
| - C library: Add swab(). |
| - C library: Add strtoimax and strtoumax. |
| - C library: Add ffs(), rindex(), an index(). Add strings.h. Move |
| strcasecmp, strncasecmp, bzero, bcmp, and bcopy to where they |
| belong in strings.h.h, not string.h. bzero, bcmp, and bcopy are |
| legacy functions; the contemporary counterparts should be used |
| instead. |
| - C library: Add fstatfs(). |
| - Update cwchar. Add cwctype. |
| |
| * Build/Configuration System: |
| |
| - Add configuration support for builds with Ubuntu under Windows 10. |
| |
| * Tools: |
| |
| - tools/noteinfo.c: A hack tool that I use to analyze some sched_note |
| output. Needs a home and may be useful to others. |
| - tools/mkconfig.c: Add logic to keep all of the buffering options in |
| sync. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH: Add support for the 'ln' command. |
| - NSH ls command: if node is a symobolic link, use readlink() to get |
| and the display the target of the symbolic link. |
| - NSH: Add readlink command. |
| |
| * Applications: apps/examples: |
| |
| - apps/examples/nxtext: Make line spacing configurable. |
| - apps/system/zmodem/host/nuttx/compiler.h synchronized with |
| nuttx/nuttx/include/nuttx/compiler.h. From Aleksandr Vyhovanec. |
| - apps/examples/sotest: Add a test for shared libraries. |
| - apps/examples/ostest: Add a test of setvbuf(). |
| - apps/examples/stat: Add a simple test for stat(), fstat(), |
| statfs(), and fstatfs(). |
| |
| Works-In-Progress: |
| |
| * IEEE802.14.5/6LowPAN. Hooks and framework for this effort were |
| introduced in NuttX-7.15. Work has continued on this effort on |
| forks from the main repositories, albeit with many interruptions. |
| The completion of this wireless feature will postponed until at |
| least NuttX-7.21. |
| |
| 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: |
| |
| - SMP: There were certain conditions that we must avoid by preventing |
| the release of the pending tasks while withn a critical section. |
| But this logic was incomplete; there was no logic to prevent other |
| CPUs from adding new, running tasks while on CPU is in a critical |
| section. This commit corrects this. This is matching logic in |
| sched_addreadytorun to avoid starting new tasks within the critical |
| section (unless the CPU is the holder of the lock). The holder of |
| the IRQ lock must be permitted to do whatever it needs to do. |
| - SMP: Make checks for CPU lock set more robust. There are certain |
| conditions early in initialization on during interrupt handling |
| where things need to be done a little differently. |
| - sched_cpulocked: Avoid use of spinlock. That has been reported to |
| cause a deadlock (2016-12-28). |
| - SMP: Fix a gap where we may try to make modifications to the task |
| lists without being in a critical sections. That permits |
| concurrent access to the tasks lists and many subtle problems. |
| This fix just remains in the critical section throughout the |
| operation (and possible until the task is restore in the event of a |
| context switch). Makes a big difference in stability. |
| - SMP: Fix an error in critical section logic when performing a |
| context switch from an interrupt handler. The g_cpu_irqset bit was |
| not being set for the CPU so other CPUs did not know about the |
| critical section. |
| - SMP Signals: Fix some SMP signal delivery logic. Was not handling |
| some critical sections correctly and was missing logic to signal |
| tasks running on other CPUs. |
| - SMP: Fix timer related issues: Round robin and sporadic |
| scheduling were only being performed for tasks running on the CPU |
| that processes the system timer interrupt. Similarly, CPU load |
| measurements were only be processed for running on the CPU that |
| receives the sampling interrupt. |
| - sched_note: Fix spinlock instrumentation. From Masayuki Ishikawa. |
| - In all implementations of _exit(), use enter_critical_section() vs. |
| disabling local interrupts. |
| - sigtimedwait: When timer expires, up_unblock_task() is called. |
| This is okay in the single CPU case because interrupts are disable |
| in the timer interrupt handler. But it is insufficient in the SMP |
| case. enter_ and leave_critical_section() must be called in order |
| to manage spinlocks correctly. |
| - Fix a compile error: in sched_cpuload.c:Line136, the variables ts |
| and secs are not defined if CONFIG_CPULOAD_ONESHOT_ENTROPY = 0. |
| However, these variables are used regardless of |
| CONFIG_CPULOAD_ONESHOT_ENTROPY at lines~180:onwards. From Rajan Gill. |
| - CPU load: Correct computation of the nominal period to use when the |
| source is a oneshot timer. |
| - Cancellation points: Fix some backward logic in conditional |
| compilation. |
| - Remove an unused variable when calling sigwaitinfo() and |
| sigtimedwait(). From Masayuki Ishikawa. |
| |
| * File System/Block and MTD Drivers: |
| |
| - procfs: Correct to snprintf-related errors in fs_procfsproc.c. |
| Resolves issue #24. |
| - Add logic to VFS rename: If target of rename exists and is a |
| directory, then the source file should be moved 'under' the target |
| directory. POSIX also requires that if the target is a file, then |
| that old file must be deleted. |
| - Fix open() a block device with |
| CONFIG_DISABLE_PSEUDOFS_OPERATIONS=y. From Masayuki Ishikawa. |
| - File System: Don't build block driver proxy if PSEUDOFS_OPERATIONS |
| are disabled. |
| - sendfile(): Fix error introduced with commit |
| ff73be870e38959b0aaee5961dc47b4b58dc2d86. Noted by Maciej Wójcik. |
| |
| * Graphics/Graphic Drivers: |
| |
| - NxWM configurations. If using a 7-bit character set, then the |
| cursor character cannot be 137 (graphic block). Use 95 |
| (underscore) instead. |
| - NX server: Correct message queue names. Should not be at /dev, |
| but rather relative to /var/mqueue. |
| |
| * Common Drivers: |
| |
| - MMCSD_SDIO: Only wait for card ejected if card detection is |
| supported. From Alan Carvalho de Assis. |
| - Typos withim mtd/ with Macronix MX25L. In |
| NuttX/drivers/mtd/Make.defs letters X between M and 25 are |
| missing. Noted by Oleg Evseev. |
| - USBMSC: Always set LUN readonly flag. From Wolfgang Reißnegger. |
| - drivers/lcd: ssd1306_configspi() must have global scope. |
| - MMC/SD SDIO: Some drivers need to start DMA before sending CMD24 |
| and some AFTER. From Alan Carvalho de Assis. |
| - drivers/tone.c: Handle configuration with multiple PWM channels. |
| This resolves issue #30: Audio Tone Generator and PWM Multiple |
| Output Channel options. |
| - drivers/tone.c: 50% duty needs to be expressed a a fixed precision |
| number. |
| - drivers/spi/Kconfig: There is too much SPI in the configuration |
| menu; SPI Driver Support menu is empty. From Maciej Wójcik. |
| - option to enable Memory Card debug output was hidden with SD cards |
| connected through SPI. From Maciej Wójcik. |
| - usbhost_cdcacm: fix tx outbuffer overflow and remove now invalid |
| assert. From Janne Rosberg. |
| |
| * Networking/Network Drivers: |
| |
| - Networking: Fixed some issues that prevented IPv6 from working with |
| IPv4 enabled. From Pascal Speck. |
| - Networking: fixed a nullptr-dereference on iob_clone. From Pascal |
| Speck. |
| - Ethernet: Need two work structures (minimum) in all Ethernet |
| drivers so that pending poll work is not lost when an interrupt |
| occurs. |
| |
| * ARMv7-R: |
| |
| - I found an issue inside the cp15_coherent_dcache function: The |
| "mcr CP15_BPIALLIS(r0)" should only be used with SMP |
| configurationa. In non-SMP configuration this instruction could |
| become undefined. From Manohara HK. |
| |
| * Atmel SAM3/4 Drivers: |
| |
| - SAM3/4: GPIO bit numbering typo fixes. From Wolfgang Reißnegger. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - Add missing sched_note_*() calls in sam4cm SMP functions. |
| |
| * NXP/Freescale Kinetis: |
| |
| - Kinetis: Fixed wrong MCG VDIV calculation on new NXP K60. From |
| Maciej Skrzypek. |
| - Kinetis: Need to set HAVE_UART_DEVICE when UART4 is selected. From |
| Maciej Skrzypek. |
| - Kinetis MCG: Wrong FRDIV set in MCG_C1. From Maciej Skrzypek. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis Serial: Fixed compile error when UART5 is selected. From |
| Maciej Skrzypek. |
| - Kinetis SDHC - Enable clock after selected. From David Sidrane. |
| - Kinetis: Correct some SPI and I2C configuration issues. From |
| David Sidrane. |
| - Kinetis Ethernet: Add #define for number of loops for auto |
| negotiation to complete. From Marc Rechté. |
| - Kinetis Werial: Fixed up_rxint - did not disable the RX |
| interuppts. There was an OR where and AND NOT was needed. From |
| David Sidrane. |
| |
| * NXP/Freescale LPC43xx: |
| |
| - LPC43 pinset definitions: Add more 1 bit to pinset to reach |
| SFSCLK0-SFSCLK3. Remove PINCONFIG_DIGITAL. From Alan Carvalho de |
| Assis. |
| |
| * NXP/Freescale LPC43xx Drivers: |
| |
| - LPC43 serial: Correct conditional logic that selects /dev/ttySN. |
| Problem noted by Alan Carvalho de Assis. |
| |
| * NXP/Freescale i.MX6: |
| |
| - i.MX6: Fix clearing GPT status register. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32, STM32L4 Oneshot: Fix logic so that it can support multiple |
| oneshot timers. |
| - STM32 F7: Added missing ARCH_HAVE_RESET for F7. From David Sidrane. |
| - STM32: Add missing STM32_BKP_BASE. From David Sidrane. |
| - STM32 and STM32F7: Fixes the BKP reference counter issue. From |
| David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - Fix for SAMv7 SPI: DLYBS value was calculated, but never written to |
| any registers. This led to incorrect timings on the bus. From |
| Michael Spahlinger. |
| - STM32 QEncoder: Fix QEncoder driver, based on STM32L4 driver. From |
| Alan Carvalho de Assis. |
| - STM32 QEncoder: Enable clocking to the timer on QE setup; disable |
| clock on QE teardown. |
| - STM32 Ethernet: Need two work structures so that pending poll work |
| is not lost when an interrupt occurs. This change has also been |
| ported to all all other effected Ethernet drivers. |
| - STM32 OTGHS host: stm32_in_transfer() fails and returns NAK if a |
| short transfer is received. This causes problems from class |
| drivers like CDC/ACM where short packets are expected. In those |
| protocols, any transfer may be terminated by sending short or NUL |
| packet. From Janne Rosberg. Adapted Janne Rosberg's patch to |
| STM32 OTGHS host to OTGFS host, and to similar USB host |
| implementations for STM32 L4 and F7. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F4 Discovery: Fix issues with QEncoder support. From Alan |
| Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - Add debug assertion in libdtoa to catch attempts to use floating |
| point output formats from within an interrupt handler. That will |
| cause assertions or crashes downstream because __dtoa will attempt |
| to allocate memory. From Pierre-noel Bouteville. |
| - libc: Fix ARMv7-A/R memcpy assembly. |
| - Fix return value if x is NaN. From Aleksandr Vyhovanec. |
| |
| * apps/nshlib: |
| |
| - NSH: Eliminate a warning when all memory inspection commands are disabled. |
| |
| * apps/graphics: |
| |
| - apps/graphics/traveler/tools: Fix linkage issue. The -lm should |
| come after -o binname. From Alan Carvalho de Assis. |
| |
| * apps/netutils: |
| |
| - The CONFIG_NETUTILS_HTTPD_PATH constant is used by httpd_mmap.c and |
| httpd_sendfile.c but It was not present in Kconfig menu. From |
| Maciej Wójcik. |
| |
| * apps/examples: |
| |
| - Configurations that enable OSTEST must not disable signals. |
| - apps/examples/ostest: Was ignoring |
| CONFIG_EXAMPLES_OSTEST_FPUTESTDISABLE. |
| - In apps/examples/mtdpart/mtdpart_main.c where |
| CONFIG_EXAMPLES_MTDPART_NPARTITIONS defining is checked should be |
| #ifndef instead of #ifdef. Noted by Oleg Evseev. |
| |
| NuttX-7.21 Release Notes |
| ------------------------ |
| |
| The 121st release of NuttX, Version 7.21, was made on June 6, 2017, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.21.tar.gz and |
| apps-7.21.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - pthread rwlocks: Add an implementation for read/write locks |
| (rwlocks) into the pthread library. These locks are writer |
| priority, such that if any writers come in they are given priority |
| for writing. From Mark Schulte. |
| - pthread robust mutexes: Implement robust mutex support: |
| pthread_mutex_lock() and trylock() will return EOWNERDEAD if the |
| mutex is locked by a thread that no longer exists. Add |
| pthread_mutex_consistent() to recover from this situation. Keep |
| list of all mutexes held by a thread in a list in the pthread's TCB. |
| When pthread exits or is cancelled, mutexes held by thread are |
| marked inconsistent and the highest priority thread waiting for the |
| mutex is awakened. There is a configuration option to (a) support |
| only robust mutexes, (b) support only traditional unsafe mutexes, |
| or (c) Support both unsafe and robust mutexes via |
| pthread_mutexattr_get/setrobust(). |
| - pthread cancellation points: Add logic to disable cancellation |
| points within the OS. This is useful when an internal OS function |
| that is NOT a cancellation point calls an OS function which is a |
| cancellation point. In that case, irrecoverable states may occur if |
| the cancellation is within the OS. From Juha Niskanen. |
| - clock: Add clock_resynchronize and use subseconds RTC. Add |
| clock_resynchronize for better synchronization of CLOCK_REALTIME and |
| CLOCK_MONOTONIC to match RTC after resume from low-power state. Add |
| up_rtc_getdatetime_with_subseconds under |
| CONFIG_ARCH_HAVE_RTC_SUBSECONDS to allow initializing (and |
| resynchronizing) system clock with subseconds accuracy RTC. From |
| Jussi Kivilinna. |
| - clock: Add new type ssystime_t for relative 64-bit ticks, change |
| ticks<->time conversion functions to use ssystime_t. From Jussi |
| Kivilinna. |
| - clock: Add testing for 32-bit overflow of 64-bit system timer. From |
| Jussi Kivilinna. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - drivers/mtd/w25.c: Erase sector only if it is not in erased state. |
| From Jussi Kivilinna. |
| |
| * Graphics/Display Drivers: |
| |
| - drivers/lcd: Extend st7565 driver to include support for the |
| AQM_1248A. From Masayuki Ishikawa. |
| - drivers/lcd: Add driver for Nokia 5110 (Philips PCD8544). From Alan |
| Carvalho de Assis. |
| |
| * Networking/Network Drivers: |
| |
| - Extensive modifications to support wireless network (see below). |
| - TUN driver: Implement TAP (OSI layer 2) mode. Enable by setting the |
| IFF_TAP flag instead of the IFF_TUN flag in ifr_flags. From Thomas |
| Keh. |
| - Add user-space networking stack API (usrsock). User-space |
| networking stack API allows user-space daemon to provide TCP/IP |
| stack implementation for NuttX network. Main use for this is to |
| allow use and seamless integration of HW-provided TCP/IP stacks to |
| NuttX. For example, user-space daemon can translate /dev/usrsock |
| API requests to HW TCP/IP API requests while rest of the user-space |
| can access standard socket API, with socket descriptors that can be |
| used with NuttX system calls. From Jussi Kivilinna. |
| - net/: Network driver now retains Ethernet MAC address in a union so |
| that other link layer addresses may be used in a MULTILINK |
| environment. |
| |
| * Wireless Networking/Wireless Drivers: |
| |
| - BCM43362: Support for Broadcom's BCM43362 WiFi chip was contributed |
| by Simon Piriou as part of the port of the Particle Photon board. |
| Only station functionality is available at present. This work |
| includes not on the WiFi driver, but the support Particle Photon |
| board, the infrasture for IEEE 802.11 FullMAC networking including |
| the network device interface, WiFi configuration, AP scanning and |
| authentication and association with an AP. |
| - IEEE 802.11 networking tools and support. |
| - IEEE 802.15.4 MAC support. This is an effort that was started some |
| time back by Sebastien Lorquet (with some help from Matte Poppe). |
| Recently, Anthony Merlino has taken on this effort and has made |
| some significant progress. Using the Microchip MRF24J40 module with |
| the Mikroe Clicker2-STM32 board along with a PC-based IEEE 802.15.4 |
| sniffer, Anthonly has verified correct transmission and receipt of |
| basic frames. |
| - Microchip MRF24J40: As mentioned above, this IEEE 802.15.4 radio |
| driver is now basically functional. |
| - IEEE 802.15.4 Network Driver: A driver that interfaces the NuttX |
| network with the IEEE 802.15.4 MAC has been developed but is still |
| incomplete and has not been verified. |
| - IEEE 802.15.4 Network Loopback Driver: A simple IEEE 802.15.4 MAC |
| loopback driver was developed. This driver allowed for parallel |
| development of the IEEE 802.15.4 MAC and 6LoWPAN. |
| - 6LoWPAN: The Contiki 6LoWPAN stack has been ported so that works |
| within the NuttX networking framework and interfaces with the new |
| IEEE 802.15.4 MAC via the network driver. Live testing with |
| IEEE 802.15.4 radios has not yet been done; all testing has used |
| the loopback driver. There are no known problems and the stack |
| is ready for additional testing. |
| - Add option to enable wireless debug output. |
| |
| * Other Common Device Drivers: |
| |
| - Add entropy pool and strong random number generator. Entropy pool |
| gathers environmental noise from device drivers, user-space, etc., |
| and returns good random numbers, suitable for cryptographic use. |
| Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm |
| for CSPRNG output. Patch also adds /dev/urandom support for using |
| entropy pool RNG and new 'getrandom' system call for getting |
| randomness without file-descriptor usage (thus avoiding file- |
| descriptor exhaustion attacks). The 'getrandom' interface is similar |
| as 'getentropy' and 'getrandom' available on OpenBSD and Linux |
| respectively. From Jussi Kivilinna. |
| - XBox One controller: Adds USB host driver support for the XBox One |
| controller. Currently only the latest version (XBox One X) |
| controller works. The older XBox One controllers do not enumerate |
| correctly. From Brian Webb. |
| - drivers/analog: Add basic COMP driver. From Mateusz Szafoni. |
| - drivers/analog: Add driver for the LTC1767L ADC. From Martin |
| Lederhilger. |
| - drivers/analog: Add basic OPAMP driver. From Mateusz Szafoni. |
| - drivers/sensors: Add driver for ST HTS221 humidity sensor. From |
| Juha Niskanen. |
| - drivers/sensors: Add driver for ST LPS25H pressure sensor. From |
| Juha Niskanen. |
| - drivers/sensors: Add driver for ST LIS2DH accelerometer. From Timo |
| Voutilainen. |
| - drivers/usbmisc: Add driver for Fairchild FUSB301 USB type-C |
| controller. From Harri Luhtala. |
| - RTC: Add interface for check if RTC time has been set. New |
| interface allows checking if RTC time has been set. This allows to |
| application to detect if RTC has valid time (after reset) or should |
| application attempt to get real time by other means (for example, by |
| launching ntpclient or GPS). From Jussi Kivilinna. |
| - Buttons: Change return value of board_buttons() and the type of |
| btn_buttonset_t to uint32_t so that more than 8 buttons can be |
| supported. |
| - drivers/syslog: Use monotonic clock for timestamp when available. |
| From Jussi Kivilinna. |
| - SPI: Add an instance argument to the SPIDEV definitions. Thus, |
| instead of specifying a FLASH device, for example, as SPI_FLASH, you |
| would now use SPI_FLASH(0) where the "instance" argument now |
| distinguishes multiple FLASH devices on the same SPI bus. From |
| Sebastien Lorquet. |
| - IOBs: Move from net/iob to a better location in mm/iob where they |
| can be shared outside of the networking logic. Current also used |
| by IEEE 802.15.4 MAC and by syslog (when buffering enabled). |
| - syslog: Add option to buffer SYSLOG output to avoid interleaving. |
| Uses new shareable IOBs. Additional logic to assure that the the |
| write from the buffer is a single atomic write in normal debug |
| output. |
| - drivers/can: Move CAN subsystem to its own directory and put device |
| drivers there. From Alan Carvalho de Assis. |
| - drivers/can: Add Microchip MCP2515 CAN Bus controller driver. From |
| Alan Carvalho de Assis. |
| - drivers/audio: Add cs43l22 audio driver. From Taras Drozdovsky. |
| - drivers/input: Add Cypress MBR3108 CapSense touch button driver. |
| From Juha Niskanen. |
| |
| * Simulation |
| |
| - configs/sim/sixlowpan: Configuration for testing the 6LoWPAN with |
| the IEEE 802.15.4 loopback network driver. |
| |
| * Infineon XMC4xxx: |
| |
| - arch/arm/src/xmc4: Initial, partial support for Infineon XMC4xxx. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - XMC4500 Relax: Add basic board support infrastructure of Infineon |
| XMC4500 Relax Lite v1. Basic serial, LED, and button button support |
| for a simple NSH configuration. There are still stome remaining |
| issues with serial communications. |
| |
| * MicroChip PIC32MX Boards: |
| |
| - pic32mx7mmb: Add support for the Pinquino toolchain. |
| - pic32mx7mmb: Add support for PROCFS file system. |
| |
| * NXP Freescale Kinetis: |
| |
| - Kinetis: Allow board to add pullups on SDHC lines. From David |
| Sidrane. |
| - Kinetis: Use optional BOARD_OSC_CR and BOARD_OSC_DIV in clock |
| configuration. From David Sidrane. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Kinetis: Add Timer PWM Module (TPM) to K66 chip. From David |
| Sidrane. |
| - Kinetis: Added HW flow control and termios. From David Sidrane. |
| - Kinetis: Add ARCH_HAVE_I2CRESET. From David Sidrane. |
| |
| * NXP Freescale LPC43xx: |
| |
| - Add support for LPC4337FET256. From Andreas Bihlmaier. |
| |
| * STMicro STM32: |
| |
| - Change STM32 tickless to use only one timer. From Konstantin |
| Berezenko. |
| - STM32 F7: Add support for LSE RTC and enable RTC subseconds. From |
| Jussi Kivilinna. |
| - STM32 L1: stm32l15xx_rcc: Add support for using MSI as system |
| clock. From Juha Niskanen. |
| - STM32 L1: stm32l15xxx_rcc: configure medium performance voltage |
| range and zero wait-state when allowed by SYSCLK setting. Zero |
| wait-state for flash can be configured when: (1) Range 1 and |
| SYSCLK <= 16 MHz, (2) Range 2 and SYSCLK <= 8 MHz, or (3) Range 3 |
| and SYSCLK <= 4.2 MHz. Medium performance voltage range (1.5V) |
| can be configured when SYSCLK is up to 16 MHz and PLLVCO up to |
| 48 MHz. From Juha Niskanen. |
| - STM32 F0: Add basic support for STM32F0. From Alan Carvalho de |
| Assis. |
| - STM32 F0: Add basic support for STM32F07x family. |
| - STM32 L1: stm32l15xx_rcc: Allow board to configure HSE clock in |
| bypass-mode. Allows using MCO output from ST-link chip (on Nucleo |
| and Discovery boards) as HSE input. From Juha Niskanen. |
| - STM32 L1: Add support for STM32L152CC, STM32L152RC and STM32L152VC. |
| From Juha Niskanen. |
| - STM32 F0: Add support for HSI48. |
| - STM32 L4: Add support for the STM32L496XX family. From Juha |
| Niskanen. |
| - STM32 L4: modularize Kconfig to support different product |
| lines/families. This is modeled after STM32F7. Idea is to declare |
| each chip in Kconfig but allow for flash size override. Commit adds |
| many STM32L4_HAVE_XXX feature test macros. From Juha Niskanen. |
| - STM32 L4: Separate SYSCFG into product line specific files for |
| clarity. From Juha Niskanen. |
| - STM32 L4: Add support for many new MCUs from the STM32L4X3XX |
| product line. From Juha Niskanen. |
| - STM32 L4: Add dbgmcu header files. From Juha Niskanen. |
| - STM32 F410: Add support for STM32F410. STM32F410 is a version of |
| STM32F4 with 32 KB of RAM and 62 or 128 KB of flash. From Gwenhael |
| Goavec-Merou. |
| |
| * STMicro STM32 Drivers: |
| |
| - SDIO: Extensions to support the SDIO interface to the BCM43362 from |
| Simon Piriou. |
| - STM32 F2: Add USB OTG HS support for stm32f20xxx cores. From Simon |
| Piriou. |
| - STM32 F2, F4, and F7: Add BOARD_DISABLE_USBOTG_HSULPI flag. From |
| Simon Piriou. |
| - STM32 F33: Move DMA logic to a separate files + add ADC support. |
| From Mateusz Szafoni. |
| - STM32 F3: Add COMP support. From Mateusz Szafoni. |
| - STM32 F33: Support for COMP character driver. From Mateusz Szafoni. |
| - STM32 F4: Implement DMA support for the STM32F4 I2C. From Rajan Gill. |
| - STM32 F7: Add stm32 RNG support. This is copied from stm32l4. |
| Tested on STM32F746ZG board. From Juha Niskanen. |
| - STM32 L1: Add STM32L162VE to chip.h. From Juha Niskanen. |
| - STM32 F4: Add I2C3 SDA pin mapping for STM32F411. From no1wudi. |
| - STM32 L1: stm32_flash: Add EEPROM writing for STM32L15XX. From |
| Juha Niskanen. |
| - STM32 F7: Serial: Add interface to get uart_dev_t by USART number, |
| stm32_serial_get_uart. From Jussi Kivilinna. |
| - STM32 F4: Provide TIM5 definition for STM32F429. From Matias v01d. |
| - STM32 F0: Add an untested port of the F1 USB device to the STM32F0. |
| - STM32 F0: Add support for the STM32F09X family. From Juha |
| Niskanen. |
| - STM32 F0: Initial cut at I2C driver. Still a work in progress. |
| From Alan Carvalho de Assis. |
| - STM32 F33: Add OPAMP support. From Mateusz Szafoni. |
| - STM32 L4: stm32l4_i2c: Add I2C4 code. From Juha Niskanen. |
| - STM32 L4: Add GPIO_PORTI definition. From Juha Niskanen. |
| - STM32 F7 Serial: Allow configuring Rx DMA buffer size. From Jussi |
| Kivilinna. |
| - STM32 L4: Firewall for stm32l4x3xx. Not tested for any product |
| family, but now it at least compiles. L496 devices can have one bit |
| wider Volatile Data Segment. From Juha Niskanen. |
| - STM32 TIM: Add method to get timer width. Freerun timer: Use timer |
| width to get the correct clock rollover point. |
| - STM32 L4: Add internal flash write support. From Juha Niskanen. |
| - STM32 L4: Port stm32l4_serial_get_uart function from STM32F7. From |
| Juha Niskanen. |
| - STM32 Ethernet: Add support for KSZ8081 PHY interrupts. From |
| Sebastien Lorquet. |
| - STM32 F4: Add I2S driver. From Taras Drozdovsky. |
| - STM32 L4: Add IWDG peripheral. This is the same as for STM32 |
| except that prescale and reload can be changed after watchdog has |
| been started, as this seems to work on L4. From Juha Niskanen. |
| - STM32 F7: Add SPI DMA support. From Jussi Kivilinna. |
| |
| * STMicro STM32 Boards: |
| |
| - Support for the Particle Photon board was contributed by Simon |
| Piriou. The Photon board is based on a STM32F205G MCU with and on- |
| board BCM43362 WiFi chip that interfaces via the STM32's SDIO |
| interface. Board configuration support includes, in addition, |
| buttons, LEDS, IWDG, USB OTG HS, and procfs support. Configurations |
| available for nsh, usbnsh, and wlan configurations. |
| - Clicker2-STM32: Support for the Mikroelektronika Clicker 2 for |
| STM32 was added by Anthony Merlino. This board, along with the |
| MRF24J40 Click board is the platform used to deveop the IEEE |
| 802.15.4 support. The boad configuration includes the MRF24J40 |
| initialization logic and SPI support. Configurations exist for nsh, |
| knsh, usbnsh, and mrf24j40-radio. |
| - Nucleo_F334R8: Add ADC example. From Mateusz Szafoni. |
| - Nucleo-F334R8: Add COMP support. From Mateusz Szafoni. |
| - Nucleo-F334R8: Use new COMP driver. From Mateusz Szafoni. |
| - Adds USB host support to stm32f411-disco board. From Brian Webb. |
| - Add stm32f0discovery board support. From Alan Carvalho de Assis. |
| - Nucleo-F072RB: Add board configuration. |
| - Nucleo-F334R8: Add OPAMP support. From Mateusz Szafoni. |
| - Nucleo-F072RB: Add support for the I2C driver used by I2C tools. |
| - Nucleo-L496ZG: Add nucleo-l496zg board files. From Juha Niskanen. |
| - Nucleo-F091RC: Add nucleo-f091rc board files. From Juha Niskanen. |
| - Nucleo-L432KC: Add nucleo-l432kc board files. From Sebastien |
| Lorquet. |
| - Nucleo-L452RE: Add nucleo-l452re board files. From Juha Niskanen. |
| - stm32f103-miniumum: Add board support to use the Nokia 5110 |
| LCD display driver. From Alan Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - C library: Add strerror_r(). |
| - C Library: Add wcstoull(), swprintf(), wcstod(), wcstof(), wcstol(), |
| wcstold(), wcstoul(), wcstoll() functions. Add mbsnrtowcs() and |
| wcsnrtombs() (just returning success). Add mbtowc() and wctomb() to |
| C++ std namespace. From Alan Carvalho de Assis. |
| - C Library: Add ffsl(), ffsll(), fls(), flsl(), flsll() and use |
| GCC's __builtin_ctz/__builtin_clz for faster implementation of these. |
| From Jussi Kivilinna. |
| - fixedmath: Add square root and b32_t conversion operators. From |
| Jussi Kivilinna. |
| - locale.h: Add a bogus definition of locale_t. |
| - C library: Versions mbrlen and mbsrtowcs taken and adapted from |
| FreeBSD code (at https://github.com/freebsd/freebsd/). From Matias |
| v01d. |
| |
| * Build/Configuration System: |
| |
| - Include C++ library in 'make export'. From Alan Carvalho de Assis. |
| - configs: Remove all setenv.sh and setenv.bat files. Remove all |
| references to setenv.sh and setenv.bat from all config README files. |
| - Kconfig/deconfigs: Add CONFIG_ARCH_TOOLCHAIN_GNU to indicate that |
| the toolchain is based on GNU gcc/as/ld. This is in addition to the |
| CPU-specific versions of the same definition. |
| - Move prototype for up_cxxinitialize() from nuttx/include/nuttx/arch.h |
| to apps/include/platform/cxxinitialize.h. |
| |
| * Tools: |
| |
| - Add initialconfig.c so that perhaps in the future we will be able to |
| use this to generate a new configuration from scratch (rather than |
| having to derive new configurations from existing configurations). |
| NOTE: Not yet intregated into the build system. |
| |
| * NSH: apps/nshlib: |
| |
| - Added support for set [{+|-}{e|x|xe|ex}] [<name> <value>]. Set the |
| 'exit on error control' and/or 'print a trace' of commands when |
| parsing scripts in NSH. The settings are in effect from the point |
| of execution, until they are changed again, or in the case of the init |
| script, the settings are returned to the default settings when it |
| exits. Included child scripts will run with the parents settings and |
| changes made in the child script will effect the parent on return. |
| Use 'set -e' to enable and 'set +e' to disable (ignore) the exit |
| condition on commands. The default is -e. Errors cause script to |
| exit. Use 'set -x' to enable and 'set +x' to disable (silence) |
| printing a trace of the script commands as they are ececuted. The |
| default is +x. No printing of a trace of script commands as they are |
| executed. From David Sidrane. |
| - Print expanded variables if -x. From David Sidrane. |
| - ifconfig command: Extend ifconfig to support 6LoWPAN. Adapt to |
| some changes in configuration variable usage. |
| - Network initialization: If IEEE802.11 selected use wlan0 instead of |
| eth0 for network device name. |
| - Network initialization: NSH now has configuration options to select |
| the wireless properties. It builds the configuration structure and |
| passes this to wpa_driver_wext_associate() so that it will set the |
| network as configured. |
| - Network initialization: Add a new option CONFIG_NSH_NETLOCAL that |
| will suppress some built in operations and will support manual |
| configuration of a wireless network through command line tools. |
| |
| * Examples/Tests: apps/examples: |
| |
| - examples/xbc_text: Adds a test program for the XBox One controller |
| driver. From Brian Webb. |
| - examples/ostest: Add a test of robust mutexes. |
| - examples/ostest: Add tests for pthread_rwlock. Adding tests to be |
| used to verify the pthread_rwlock lock works. From Mark Schulte. |
| - examples/ostest: Additional test for rwlock and one for cancel |
| cleanup handlers. From Juha Niskanen. |
| - examples/usrsocktest: Add application for USRSOCK testing. From |
| Jussi Kivilinna. |
| - examples/nettest: Adapt for use in testing 6LoWPAN. |
| - examples/nettest: If doing loopback, but not using the official |
| loopback device, then use the server should use the configured client |
| IP address. |
| - examples/udpblaster: Several fixes to work with 6LoWPAN. |
| - examples/udpblaster: Add logic to bind the local UDP socket to a |
| well-known address. |
| - examples/configdata: Add stacksize and priority. From Juha Niskanen. |
| |
| * Network Utilities: apps/netutils: |
| |
| - netutils/netlib: Add IEEE 802.11 wireless IOCTL wrappers. |
| - netutils/netlib: Add a helper function to convert a string to a |
| 6LoWPAN node address. |
| - netlib and NSH: Add logic to get/set the IEEE802.15.4 PAN ID. |
| - netutils/dhcpc: Make the network device name a configuration |
| option. Was hardcoded to eth0 but may, instead, need to be wlan0. |
| - netutils/dhcpc: Remove hard-coded interface device. Now passed as |
| a parameter to dhcpc_open(). From Sebastien Lorquet. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - wireless/wapi: Port of Wapi wireless services. The original |
| depended on features not supported by NuttX: Removed logic that |
| depends on Linux netlink. Removed functionality that depended on |
| the Linux procfs: This includes only 1) listing of available |
| interfaces and 2) listing of all routes. |
| - wireless/wapi: Create command line Wapi application based on |
| Wapi sample code. |
| - wireless/wapi: wpa_driver_wext_associate() now accepts a |
| configuration parameter that can be used to specify the wireless |
| properties. |
| - wireless/wapi: Add basic wapi_event_stream_extract implementation. |
| From Simon Piriou. |
| - wireless/ieee802154: Add iwpan and i8sak tools. iwpan is similar |
| in concept to wapi. From Anthony Merlino (i8sak was originally |
| by Sebastien Lorquet). |
| - wireless/ieee802154/libmac: IEEE 802.15.4 MAC library. |
| - wireless/wext: Add drivers_wext from the WPA supplicant; Integrate |
| into NSH. From Simon Piriou. |
| |
| * System Utilities (apps/system) |
| |
| - apps/system/dhcpc: Add a command to renew or establish a lease on an |
| IPv4 address. |
| - apps/system/ntpc: Add a command to start or stop the NTPC daemon. |
| - apps/system/ramtest: Make stacksize and priority conigurable. |
| |
| * Platform-Specific Support (apps/platform) |
| |
| - apps/platform: Create gnu/ subdirectory that contains the one and |
| only GNU C++ initialization function. Remove all other C++ |
| initialization functions. |
| |
| 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: |
| |
| - Priority inheritance: When CONFIG_SEM_PREALLOCHOLDERS==0, there is |
| only a single, hard-allocated holder structure. This is problem |
| because in sem_wait() the holder is released, but needs to remain in |
| the holder container until sem_restorebaseprio() is called. The call |
| to sem_restorebaseprio() must be one of the last things the |
| sem_wait() does because it can cause the task to be suspended. If in |
| sem_wait(), a new task gets the semaphore count then it will fail to |
| allocate the holder and will not participate in priority |
| inheritance. This fix is to add two hard-allocated holders in the |
| sem_t structure: One of the old holder and one for the new holder. |
| - Priority inheritance: sem_holder sem_findholder missing |
| inintalization of pholder. sem_findholder would fail and code |
| optimization covered this up. From David Sidrane. |
| - Partial Fix priority inheritance CONFIG_SEM_PREALLOCHOLDERS=0. From |
| David Sidrane. |
| - Priority inheritance: sem_boostholderprio prevent overrun of |
| pend_reprios. The second case rtcb->sched_priority <= |
| htcb->sched_priority did not check if there is sufficient space in |
| the pend_reprios array. From David Sidrane. |
| - lp_worker: Guard from pend_reprios overflow. From David Sidrane. |
| - Priority inheritance: Fixes improper restoration of base_priority in |
| the case of CONFIG_SEM_PREALLOCHOLDERS=0. The call to |
| sem_restorebaseprio_task context switches in the |
| sem_foreachholder(sem, sem_restoreholderprioB, stcb); call prior to |
| releasing the holder. So the running task is left as a holder as is |
| the started task. Leaving both slots filled thus failing to perform |
| the boost/or restoration on the correct tcb. This PR fixes this by |
| releasing the running task slot prior to reprioritization that can |
| lead to the context switch. To faclitate this, the interface to |
| sem_restorebaseprio needed to take the tcb from the holder prior to |
| the holder being freed. In the failure case where sched_verifytcb |
| fails it added the overhead of looking up the holder. There is also |
| the additional thunking on the foreach to get from holer to |
| holder->tcb. An alternate approach could be to leve the interface |
| the same and allocate a holder on the stack of sem_restoreholderprioB |
| copy the sem's holder to it, free it as is done in this pr and |
| then pass that address sem_restoreholderprio as the holder. It could |
| then get the holder's tcb but we would keep the same sem_findholder |
| in sched_verifytcb. From David Sidrane. |
| - Priority inheritance: Fixes improper restoration of base_priority. |
| From David Sidrane. |
| - sem_holder: Indexing error. From David Sidrane. |
| |
| if (sem->holder[0].htcb != NULL || sem->holder[**1**].htcb != NULL) |
| - realloc(): When realloc() has to fall back to calling malloc(), size |
| including overhead was being provided to malloc(), causing a slightly |
| larger allocation than needed. Noted by initialkjc@yahoo.com. |
| - scheduler: Fix tg_flags check with GROUP_FLAG_NOCLDWAIT. From Masayuki |
| Ishikawa. |
| - scheduler: Fix CHILD_FLAG_EXITED in include/nuttx/sched.h. From |
| Masayuki Ishikawa. |
| - binfmt/elf: Fix offset value when calling elf_read() in |
| elf_symname(). From Masayuki Ishikawa. |
| - binfmt/elf: Fix offset value when calling elf_read() in |
| elf_sectname(). From Masayuki Ishikawa. |
| - There can be a failure in IOB allocation to some asynchronous |
| behavior caused by the use of sem_post(). Consider this scenario: |
| (1) Task A holds an IOB. There are no further IOBs. The value of |
| semcount is zero. Task B calls iob_alloc(). Since there are not |
| IOBs, it calls sem_wait(). The value of semcount is now -1. (2) |
| Task A frees the IOB. iob_free() adds the IOB to the free list and |
| calls sem_post() this makes Task B ready to run and sets semcount to |
| zero NOT 1. There is one IOB in the free list and semcount is zero. |
| When Task B wakes up it would increment the sem_count back to the |
| correct value. (3) But an interrupt or another task runs occurs |
| before Task B executes. The interrupt or other tak takes the IOB off |
| of the free list and decrements the semcount. But since semcount is |
| then < 0, this causes the assertion because that is an invalid state |
| in the interrupt handler. So I think that the root cause is that |
| there the asynchrony between incrementing the semcount. This change |
| separates the list of IOBs: Currently there is only a free list of |
| IOBs. The problem, I believe, is because of asynchronies due |
| sem_post() post cause the semcount and the list content to become out |
| of sync. This change adds a new 'committed' list: When there is a |
| task waiting for an IOB, it will go into the committed list rather |
| than the free list before the semaphore is posted. On the waiting |
| side, when awakened from the semaphore wait, it will expect to find |
| its IOB in the committed list, rather than free list. In this way, |
| the content of the free list and the value of the semaphore count |
| always remain in sync. |
| - binfmt: Fix .dtor memory allocation. From Masayuki Ishikawa. |
| |
| * File System/Block and MTD Drivers: |
| |
| - SmartFS: If whence is SEEK_END, the file offset shall be set to the |
| size of the file plus offset. Noted by eunb.song@samsung.com. |
| - mtd/progmem: Fix incorrect target address calculation. |
| progmem_read/write() is incorrectly calculating the target address, |
| expecting the offset argument is given in a block number. This is |
| completely wrong and as a result invalid flash region is accessed. |
| Byte-oriented read/write interfaces of mtd device accept the target |
| address in a byte offset, not a block number. From Heesub Shin. |
| - procfs: Fix wrong member IDs are displayed when 'cat |
| /proc/<pid>/group/status'. From Nobutaka Toyoshima. |
| - procfs: Fix incorrect uptime with CONFIG_SYSTEM_TIME64. From |
| Masayuki Ishikawa. |
| - vfs/poll: round timeout up to next full tick. Calling poll() with |
| timeout less than half tick (thus MSEC2TICK(timeout) => 0) caused |
| returning error with EAGAIN. Instead of rounding timeout down, value |
| should be rounded up. Open Group spec for poll says: |
| "Implementations may place limitations on the granularity of timeout |
| intervals. If the requested timeout interval requires a finer |
| granularity than the implementation supports, the actual timeout |
| interval will be rounded up to the next supported value." From Jussi |
| Kivilinna. |
| - mtd/config: erase block between block read and write. From Juha |
| Niskanen. |
| - mtd: Build RAMTRON and AT45DB drivers only if selected. From Juha |
| Niskanen. |
| - mtd/config: Fix byte read interface test. From Juha Niskanen. |
| - mtd: Fix some unallocated and NULL pointer issues. rwb->wrflush and |
| rwb->wrmaxblocks in rwbuffer could get unallocated values from |
| ftl_initialize() in some configurations. Also fixes related assert: |
| |
| up_assert: Assertion failed at file:rwbuffer.c line: 643 |
| |
| that can happen with the following configuration: |
| |
| CONFIG_FTL_WRITEBUFFER=y |
| CONFIG_DRVR_WRITEBUFFER=y |
| # CONFIG_FS_WRITABLE is not set |
| |
| These problems are caused by CONFIG variable differences between the |
| buffer layers. TODO: This is not a perfect solution. readahead |
| support has similar issues. From Juha Niskanen. |
| - net procfs: Fix buffer corruption and refactor netdev_statistics.c. |
| From Masayuki Ishikawa. |
| - FAT: Fix 'Missing unlock' in fs_fat32.c. From Masayuki Ishikawa. |
| - VFS fdopen: Add missing file stream flags clearing. Clear file |
| stream structure regardless of config options. Structure clearing is |
| needed as previous use of stream list entry might leave fs_flags |
| set. From Harri Luhtala. |
| - mtd/smart: Fix use of uninitialized variable. From Jussi Kivilinna. |
| - mtd/w25.c: Enable short delay after sector/chip erase. From Jussi |
| Kivilinna. |
| - mtd/config: Add some error checks for I/O errors. From Juha |
| Niskanen. |
| |
| * Graphics/Graphic Drivers: |
| |
| - net procfs: Some long lines were being generated that cause buffer- |
| related problems and corrupted output. |
| |
| * Networking/Network Drivers: |
| |
| - Fixed wrong assert on udp dgram send. From Pascal Speck. |
| - TCP/IPv6: Fix a compile issue when IPv6, but not IPv4 is enabled. |
| - net/socket/accept: Fix building with CONFIG_NET_LOCAL_STREAM. From |
| Jussi Kivilinna. |
| - Argument of network device IOCTL should be unsigned long, just as |
| will all other IOCTL methods. |
| - net/socket: Fix cloning of local and raw sockets. From Jussi |
| Kivilinna. |
| - TCP: Wait for 3-Way Handshare before accept() returns. From Simon |
| Piriou. |
| - TCP: Send RST if application 'unlistens()' before we complete the |
| connection sequence. |
| - TCP: An RST received during the 3-way handshake requires a little |
| more clean-up. |
| - IPv6: Fix net_ipv6_pref2mask(). From Masayuki Ishikawa. |
| - network IOCTL commands: The only place in net/netdev/netdev_ioctl.c |
| where the interface state should change is for SIOCSIFFLAGS. The |
| other ones .. SIOCSIFADDR, SIOSLIFADDR, SIODIFADDR .. should not |
| change the link state. From Sebastien Lorquet. |
| - TCP: Fix tcp_findlistner() in dual stack mode. From Masayuki |
| Ishikawa. |
| |
| * Common Drivers: |
| |
| - Fix as5048b by adding missing frequency parameter. From Andreas |
| Bihlmaier. |
| - multiple fixes in nrf24l01 driver: (1) signal POLLIN if there is |
| already data in the FIFO, (2) send ETIMEDOUT to userspace after 2 |
| seconds if TX IRQ was not received, (3) handle FIFO overflow, (4) |
| handle invalid pipes/empty FIFO, and (5) multiple cosmetics (missing |
| static, duplicate define, missing \n). From Leif Jakob. |
| - input/mxt: Prevent overriding i2c transfer return value. |
| put_reg/get_reg function was overriding i2c transfer error code with |
| i2creset return value, that lead to OK status although actual |
| transfer failed. From Juha Niskanen. |
| - drivers/audio/wm8904: WM8904 has same problem as that fixed by Juha |
| Niskanen in the MaxTouch driver. |
| - UART 16550: Missing left parenthesis in function prototype. This is |
| Bitbucket Issue #41. |
| - USBMSC: Fix a wrong lun number issue. From Masayuki Ishikawa. |
| - drivers/i2c: Fix compile issues if CONFIG_DISABLE_PSEUDOFS_OPERATIONS |
| is enabled. |
| - drivers/serial: I discovered a problem in the file |
| drivers/serial/serial.c concerning the function uart_close. In the |
| case that a serial device is opened with the flag O_NONBLOCK the |
| function uart_close blocks until all data in the buffer is |
| transmitted. The function close called on an handle opened with |
| O_NONBLOCK should not block. The problem occurred with a CDC/ACM |
| device. From Stefan Kolb. |
| - drivers: Fix some bad NULL checks. From Juha Niskanen. |
| - drivers: Rename newly introduced up_i2creset to I2C_RESET. From |
| Juha Niskanen. |
| - drivers/bch: BCH character driver bch_ioctl() always returns -ENOTTY |
| for DIOC_GETPRIV command. It should returns OK if DIOC_GETPRIV |
| command succeeds. From EunBong Song. |
| - Replace sprintf() with snprintf() in pipe.c. From Nobutaka Toyoshima. |
| - drivers/bch: Fix 'Missing Unlock' in bchdev_driver.c. From Masayuki |
| Ishikawa. |
| - button_upper: Fix interrupt enabling for poll-events. From Jussi |
| Kivilinna. |
| - drivers/{sensors,usbmisc}: Fix uninitialized I2C frequency. From |
| Juha Niskanen. |
| |
| * ARM: |
| |
| - Set EABI stack alignment for all ARM architectures (remove OABI |
| code). From David Cabecinhas. |
| - Remove redundant interrupt stack coloring and OABI code. From David |
| Cabecinhas. |
| - Fix off-by-one interrupt stack allocation in 8-byte aligned |
| architectures. From David Cabecinhas. |
| |
| * ARMv6-M: |
| |
| - CONFIG_DEBUG_HARDFAULT should be available for Cortex-M0 too. |
| |
| * Microchip/Atmel SAM3/4 Drivers: |
| |
| - SAM3/4: Fixed configurations for TWI master. Obviously an |
| incomplete port from SAMA5. |
| |
| * Microchip/Atmel SAMv7 Drivers: |
| |
| - SAMV7: Watchdog: Fix Forbidden Window Value. According the Datasheet |
| the WDD Value is the lower bound of a so called Forbidden Window and |
| to disable this we have to set the WDD Value greater than or equal to |
| the WDV Value. This seems to be a bug in the datasheet. It looks |
| like we have to set it to a greater value than the WDV to really |
| disable this Thing. When triggering the Watchdog faster than the |
| (very slow) clock source of the Watchdog fires, this Forbidden Window |
| Feature resets the System if WDD equals to WDV. This Changeset |
| disables the Forbidden Window by setting the WDD Value to the Maximum |
| (0xfff) Value possible. From Frank Benkert. |
| - SAMV7 EMAC: Add conditional logic to account the fact that the |
| SAMV71 has 6 rather than 3 queues after version 1. From Ian McAfee. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis: Fixed GPIO _PIN_OUTPUT_LOWDRIVE swapped with |
| _PIN_OUTPUT_OPENDRAIN. From David Sidrane. |
| - Ensure interrupts are back on BEFORE running code dependent on |
| clock_systimer. From David Sidrane. |
| - Kinetis k66, k64, k60, k40, k20: Pin mux configure all I2C signals as |
| Open Drain. The output structure of the GPIO for I2C needs to be |
| open drain. When left at the default, one can observe on a scope the |
| slave contending with the push-pull during the ACK. From David |
| Sidrane. |
| - Kinetis K66: Fixed TMP2_CH1 definition. From David Sidrane. |
| - Kinetis K66: Define ALT1 to match ref manual. From David Sidrane. |
| - Kinetis K66: GPIO and pin mux cleanup. From David Sidrane. |
| - Kinetis ADC: Various corrections and updates. From David Sidrane. |
| |
| * NXP/Freescale LPC43xx: |
| |
| - Add missing PINCONF_INBUFFER in several places of |
| lpc4310203050_pinconfig.h. From Andreas Bihlmaier. |
| - Fix logic in preprocessor checks and correct arguments to |
| lpc43_pin_config initialization. From Andreas Bihlmaier. |
| |
| * NXP/Freescale LPC43xx Drivers: |
| |
| - Fix logic error in lpc43_adc. From Andreas Bihlmaier. |
| - Use correct macro for irqid (fortunately both point to |
| LPC43_IRQ_EXTINT+18). From Andreas Bihlmaier. |
| - Actually write modified value to register. From Andreas Bihlmaier. |
| - Increase number of supported PWM channels from 4 to 6. From Andreas |
| Bihlmaier. |
| |
| * Silicon Labs EFM32 Drivers: |
| |
| - EFM32 I2C: Fix timeout calculation. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - As discovered by dcabecinhas. This fix assume the 8 byte alignment |
| options for size stack size or this will overwrite the first word |
| after TOS. See |
| https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778. |
| From David Sidrane. |
| - STM32 F7: In stm32_allocateheap.c There are 5 not 4 configurations. |
| From David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32, STM32 F7, STM32 L4: OTG host drivers: Do not do data toggle |
| if interrupt transfer is NAKed. Suggested by webbbn@gmail.com. |
| - Save elapsed time before handling I2C in stm32_i2c_sem_waitstop(). |
| This change follows the same logic as in previous fix to |
| stm32_i2c_sem_waitdone(). It is possible that a context switch |
| occurs after I2C registers are read but before elapsed time is saved |
| in stm32_i2c_sem_waitstop(). It is then possible that the registers |
| were read only once with "elapsed time" equal 0. When scheduler |
| resumes this thread it is quite possible that now "elapsed time" will |
| be well above timeout threshold. In that case the function returns |
| and reports a timeout, even though the registers were not read |
| "recently". Fix this by inverting the order of operations in the loop |
| - save elapsed time before reading registers. This way a context |
| switch anywhere in the loop will not cause an erroneous "timeout" |
| error. From Freddie Chopin. |
| - STM32, STM32 F7, and STM32 L4: Clone Freddie Chopin's I2C change to |
| similar STM32 I2C drivers. From David Sidrane. |
| - STM32: OTG host implementations of stm32_in_transfer() must obey the |
| polling interval for the case of isochronous and interrupt endpoints. |
| - STM32: Fix erase sector number for microcontrolers with more than 11 |
| sectors. Erase a sector from the second bank cause the bit 4 of SNB |
| being set but never unused, so trying to erase a sector from the first |
| bank was actually eraseing a sector from the second bank. From José |
| Roberto de Souza. |
| - STM32: Make up_progmem thread safe. Writing to a flash sector while |
| starting the erase of other sector have a undefined behavior so lets |
| add a semaphore and synchronize access to Flash registers. But for |
| the semaphore to work it needs to be initialized so each board needs |
| call stm32_flash_initialize() on initialization, so to avoid runtime |
| problems it is only using semaphore and making it thread safe if |
| initialized, after all boards starts to call stm32_flash_initialize() |
| we can remove the boolean and the check. From José Roberto de Souza. |
| - STM32: Add workaround for flash data cache corruption on |
| read-while-write. This is a known hardware issue on some STM32 see |
| the errata of your model and if you make use of both memory banks you |
| should enable it. From José Roberto de Souza. |
| - STM32 Flash fixes. From José Roberto de Souza. |
| - STM32 Flash: Missing unlock on F1 HSI off path. From David Sidrane. |
| - STM32 F4 I2C: I needed to use DS3231, I remember that in past it |
| worked ok, but now for stm32f4xx is used another driver (chip |
| specific, stm32f40xxx_i2c.c) and DS3231 driver doesn't work. After |
| investigating a problem I found that I2C driver (isr routine) has a |
| few places there it sends stop bit even if not all messages are |
| managed. So, e.g., removing stm32_i2c_sendstop (#1744) and adding |
| stm32_i2c_sendstart after data reading helps to make DS3231 working. |
| From Alexander Oryshchenko; verified by David Sidrane. |
| - STM32 F7 Serial: Serial fix for dropped data: (1) Revert the |
| inherited dma bug from the stm32. see |
| https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d |
| for details. And (2) Most all CR1-CR3 settings can not be configured |
| while UE is true. Threfore we make all operation atomic and disable |
| UE and restore it's originalstate on exit. From David Sidrane. |
| - STM32 L1: Fix IWDG and WWDG debug mode stop for STM32L15XX. From |
| Juha Niskanen. |
| - STM32 F7: Fix UART7 and UART8 IFLOWCONTROL options. From Jussi |
| Kivilinna. |
| - STM32 F7: Add warning for RXDMA + IFLOWCONTROL combination. |
| Combination of RXDMA + IFLOWCONTROL does not work as one might |
| expect. Since RXDMA uses circular DMA-buffer, DMA will always keep |
| reading new data from USART peripheral even if DMA buffer underruns. |
| Thus this combination only does following: RTS is asserted on USART |
| setup and deasserted on shutdown and does not perform actual RTS |
| flow-control. Data loss can be demonstrated by doing long up_mdelay |
| inside IRQ critical section and feeding data to RXDMA+IFLOWCONTROL |
| UART. From Jussi Kivilinna. |
| - STM32 F7 Serial: Do not stop processing input in SW flow-control |
| mode. From Jussi Kivilinna. |
| - STM32 L4 DMA: Correct bad channel definition. From Sebastien Lorquet. |
| - STM32 F7: Warn if no DMA2 configured when using ADC with DMA. Also |
| correct ADC channel numbers that DMA callback passes to upper half |
| driver. From Juha Niskanen. |
| - STM32 F7 ADC: Do not override ADCPRE_DIV when measuring |
| internal voltage. From Juha Niskanen. |
| - STM32 L4: Don't think these chips have DPFPU, DTCM or ITCM. From |
| Juha Niskanen. |
| - STM32 F7 Flash: macro naming errors, there is no FLASH_CONFIG_F for |
| F7. From Juha Niskanen. |
| - STM32 L4: stm32l4x6xx_pinmap: Update I2C4 and DCMI pins. From Juha |
| Niskanen. |
| - STM32 L4: stm32l4_i2c: change wrong macro to CONFIG_I2C_POLLED. From |
| Juha Niskanen. |
| - Fix STM32F7 I2C interrupt handler. From Jussi Kivilinna. |
| - STM32: Serial Allow configuring Rx DMA buffer size. From David |
| Sidrane. |
| - STM32 CAN: I had the problem that the transmit FIFO size (= actual |
| elements in FIFO) was slowly increasing over time, and was full after |
| a few hours. The reason was that the code hit the line |
| "canerr("ERROR: No available mailbox\n");" in stm32_cansend, so |
| can_xmit thinks it has sent the packet to the hardware, but actually |
| has not. Therefore the transmit interrupt never happens which would |
| call can_txdone, and so the size of the FIFO size does not decrease. |
| The reason why the code actually hit the mentioned line above, is |
| because stm32can_txready uses a different (incomplete) condition than |
| stm32can_send to determine if the mailbox can be used for sending, |
| and thus can_xmit forwards the packet to stm32can_send. |
| stm32can_txready considered mailboxes OK for sending if the mailbox |
| was empty, but did not consider that mailboxes may not yet be used if |
| the request completed bit is set - stm32can_txinterrupt has to |
| process these mailboxes first. Note that I have also modified |
| stm32can_txinterrupt - I removed the if condition, because the CAN |
| controller retries to send the packet until it succeeds. Also if the |
| condition would not evaluate to true, can_txdone would not be called |
| and the FIFO size would not decrease also. From Lederhilger Martin. |
| - STM32 Serial: Fix freezing serial port. Serial interrupt |
| enable/disable functions do not disable interrupts and can freeze |
| device when serial interrupt is received while execution is at those |
| functions. Trivially triggered with two or more threads write to |
| regular syslog stream and to emergency stream. In this case, freeze |
| happens because of mismatch of priv->ie (TXEIE == 0) and actually |
| enabled interrupts in USART registers (TXEIE == 1), which leads to |
| unhandled TXE interrupt and causes interrupt storm for USART. From |
| Jussi Kivilinna. |
| - STM32 I2C: Make private symbols static. From Juha Niskanen. |
| - STM32 L4 GPIO: Put back EXTI line source selection. From Juha |
| Niskanen. |
| - STM32 L4 RTC: Store RTC MAGIC to backup reg, not to address zero. |
| From Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - Disable serial console on stm32f103-minimum usbnsh example project |
| config. Devices enumerate after this change. From Bob Ryan. |
| - Nucleo-144: Default for choice in Kconfig was not one of the |
| possible choices. |
| - Nucleo-F4X1RE User LEDS: Issue #51 reports compilation problems with |
| stm32_userled.c. Reported by Gappi92. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva I2C: Correct an error in conditional compilation. |
| - Tiva SSI: Resolves issue 52 'Copy-Paste error in |
| tiva_ssibus_initialize()' submitted by Aleksandr Kazantsev. |
| |
| * C Library/Header Files: |
| |
| - C Library vsnprintf(): Fix precision for string formatting. Fixes |
| use of format precision to truncate input string. From Jussi |
| Kivilinna. |
| - C Library vsnprintf(): If size is zero, then vsnprintf() should |
| return the size of the required buffer without writing anything. |
| From Jussi Kivilinna. |
| - C Library netdb: in dns_query_callback, ret != -EADDRNOTAVAIL |
| condition consumes error returns including EAGAIN in this case, |
| dns query retransmission doesn't work. From Ritajina. |
| - C Library netdb: Fix time info in lib_dnscache.c. From Masayuki |
| Ishikawa. |
| - C Library netdb: Fix bugs in lib_gethostbynamer.c. This fix sets |
| h_name in struct hostent returned by gethostbyname(). From Masayuki |
| Ishikawa. |
| - C Library Defect Workaround: replace '%6.6u' format with an |
| equivalent '%06u'. From Tomasz Wozniak. |
| |
| * Tools |
| |
| - Fix mksyscall host binary name. From Alan Carvalho de Assis. |
| |
| * Applications (apps/) |
| |
| - Fix some calls to task_create(): argv[0] is the first parameter, not |
| the name of the task. |
| - Bitbucket Issue 5: I found an unexpected behavior in apps/ |
| configuration generation. Adding external symbolic link in apps/ |
| directory and using Make.defs for Kconfig generation, Kconfig file |
| has a wrong path in the source argument. It contains original dir |
| path outside of the source tree instead path to sub-directory in |
| apps/. The problem is connected with make/system symbolic link path |
| resolution. Corrected by a patch submitted by Artur Madrzak with |
| Issue 5. |
| - apps/: Make more globals static to avoid name clashes. From Juha |
| Niskanen. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH library: In nsh_argexand(), if CONFIG_NSH_ARGCAT is defined but |
| CONFIG_NSH_CMDPARMS defined and/or CONFIG_DISABLE_ENVIRON not |
| defined, then there is a situation that causes an infinite loop in |
| the parser. Noted by Freddie Chopin. |
| - NSH library: Fix building when CONFIG_NET_USRSOCK enabled with other |
| link-layers. From Jussi Kivilinna. |
| - NSH library: Fix some warnings about integer/pointer casts of |
| different sizes (probably only effects 64-bit simulation). |
| - NSH library: Fix open flags in nsh_codeccmd.c. From Masayuki |
| Ishikawa. |
| - I need to look at the registers that are at or around 0xe000ef90. |
| Using mw and xd, I see that nsh does not support pointers greater |
| than 0x7fffffff. A quick look at the source shows that the pointers |
| for those two commands are set with calls to strtol() rather than |
| strtoul(). Changing the two pointer-setting instances to strtoul() |
| fixes the problem, at least for my architecture/config. From Ian |
| McAfee. |
| - NSH library: Fix a resource leak in cmd_hexdump(). From Nobutaka |
| Toyoshima. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/hidkbd: Remove call to arch_usbhost_initialize(). |
| That is violation of the OS interfacing rules and will no longer be |
| supported. USB host should be initialized as part of the normal |
| board bring-up logic as with any other devices and should not involve |
| illegal calls from applications into the OS. |
| - apps/examples/usbterm: Removed because it is not very useful and |
| because it can be configured to use an illegal call into the OS. |
| - examples/mm: Fix Makefile. Built-in was not being registered. |
| - examples/hidkbd: Add some missing configuration settings. |
| - examples/random: Avoid stack overflows. From Juha Niskanen. |
| - examples/nettest: Fix an error in pre-processor expression. |
| - examples/mtdpart: Prevent part array overflow. mtdpart examples |
| create partitions and allocate from 1 index not a 0 index to part[] |
| array. This cause buffer overflow for part array. This change fixes |
| this problem. From EunBong Song. |
| - examples/can: Fix can example app to print data when |
| CONFIG_EXAMPLES_CAN_READ is defined. From Alan Carvalho de Assis. |
| |
| * Network Utilities: apps/netutils: |
| |
| - Not a clean fix, but at least makes DHCP working with |
| CONFIG_NETDEV_MULTINIC. From Andreas Bihlmaier. |
| - Ensure netlib will not be broken when setip will not bring the |
| network up anymore. From Sebastien Lorquet. |
| |
| * CAN Utilities: apps/canutils: |
| |
| - Fix libcanard github download link to get it compiling correctly. |
| From Alan Carvalho de Assis. |
| - Fix to use the new canardInit() function. From Alan Carvalho de |
| Assis. |
| |
| * System Utilities (apps/system) |
| |
| - system/dhcpc: Add missing argument of fprintf. |
| |
| * Tools (apps/tools): |
| |
| - The dedicated windows tool at tools/mkkconfig.bat uses $APPSDIR, |
| which is not a windows shell variable, and is left uninitialized, but |
| in fact should be the current directory. From Sebastien Lorquet. |
| |
| NuttX-7.22 Release Notes |
| ------------------------ |
| |
| The 122nd release of NuttX, Version 7.22, was made on September 9, 2017, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.22.tar.gz and |
| apps-7.22.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - pthreads: Move functions from sched/pthreads to libc/pthreads. These |
| functions just coordinate other OS interface calls but are not a |
| fundamental OS interfaces and, hence, do not belong within the OS: |
| pthread_yield(), pthread_once(), pthread_cond_init(), |
| pthread_cond_destroy(), pthread_barrier_init(), |
| pthread_barrier_destroy(), and pthread_barrier_wait(). |
| - Add power-related debug output. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - RAMTRON: Add support for splitting block writes in chunks. Some |
| Re-RAMs like MB85AS4MT have a write buffer size limitation. From |
| Boris Astardzhiev. |
| - MTD: Add driver for Macronix QuadSPI flash memory. From Simon Piriou. |
| |
| * Graphics/Display Drivers: |
| |
| - SSD1306 LCD Driver: (1) Separate lcd_dev_s setup to separate object. |
| g_oleddev takes 1 KiB because framebuffer and was allocated to .data |
| section because of lcd_dev_s function pointer setup. Move lcd_dev_s |
| setup out, so that g_oleddev goes to .bss and avoid wasting ROM. (2) |
| Fix memory corruption caused by ssd1306_getrun(). ssd1306_getrun was |
| writing one extra byte (with value 0) past target buffer when pixlen |
| is multiple of 8. When pixlen was not multiple of 8, last byte of |
| buffer was fully cleared, instead of modifying only the (pixlen % 8) |
| bits of last byte. (3) Add support for board power control. |
| ThingseeOne has regulator for controlling display power on/off. Patch |
| adds support for board based power control to SSD1306 driver. (4) Add |
| DD-12864WO-4A/SSD1309 support to SSD1306 driver. From Jussi Kivilinna. |
| |
| * Networking/Network Drivers: |
| |
| - Sockets: Support listening sockets in the getsockname() function. |
| From Roland Takacs. |
| - IP Forwarding: At the IP level, network may be configured to forward |
| IP packets that are not destined for the target through a different |
| network device, decrementing the packet TTL. |
| - IP forwarding: Add optional support to forward broadcast and |
| multicast packets. Add missing ICMP support. |
| - ICMPv6: Add 6LoWPAN and IP forwarding support. |
| - ICMPv6: Support source link-layer address option in RA. From |
| Masayuki Ishikawa. |
| - TUN Driver: Add definitions that will permit TUN-only networking. |
| - Socket I/F: Created a socket interface used to provide socket support. |
| Each address family has an interface that describes how to perform |
| socket operations on that address family. Currently only a couple of |
| methods are defined in the socket interface call table |
| - Remove CONFIG_NET_MULTILINK. This increases code size by a little, |
| but greatly reduces the complexity of the network code. |
| - Network procfs: Add support for routing tables at proc/net/route. |
| - Network procfs: Add support for network procfs statistics for the |
| PF_IEEE802154 address family. |
| - Network Driver Backlog: Remove driver based backlog support. This |
| affects the entire network, but is used by only one driver. The only |
| supported RX backlog is now via common read-ahead buffering. |
| |
| * Wireless Networking/Wireless Drivers: |
| |
| - IEEE 802.15.4 MAC / MRF24J60 Driver: Extensive updates for |
| association/beacon-enabled networks. From Anthony Merlino. |
| - IEEE 802.15.4 MAC / MRF24J60 Driver: Hook in setdevmode from newly |
| added radio attribute setting. From Anthony Merlino. |
| - IEEE 802.15.4 MAC: Supports get request for coordinator address. From |
| Anthony Merlino. |
| - IEEE 802.15.4 MAC: Notify radio layer of changes in devmode. From |
| Anthony Merlino. |
| - IEEE 802.15.4: Add special attribute that can be used to perform a |
| regdump of the radio. From Anthony Merlino. |
| - IEEE 802.15.4 loopback driver: Better simulation addressing: short |
| and extended addresses, panid, and IP address conversion. |
| - IEEE 802.15.4 Network Driver: Add logic to setup the network mask, |
| update the MAC-based IPv6 addressing when the network is brought up. |
| The idea is that addressing changes are supposed to occur only while |
| the network is down but won't take effect until the network is up |
| again. |
| - PktRadio: Add an infrastructure to support networking on generic |
| (non-IEEE 802.15.4) packet radios. |
| - PktRadio Loopback Driver: Add a PktRadio loopback network driver to |
| testing testing with 6LoWPAN and PktRadios on the simulator. |
| - Spirit Network Driver: The Spirit1 radio (SPSGRF-915) is the first |
| generic PktRadio Network driver. Based on STMicros STack packets |
| with 8-bit addressing. We need to use the STack packets in order to |
| provide the source address and automatic ACKing. |
| - Network procfs: Fix so that PktRadio address are shown correctly. |
| - Networking: Add support for some packet radio IOCTL commands. |
| - 6LoWPAN: Added handling for TCP and ICMPv6 packets. |
| - 6LoWPAN: Add configurable support for 6LoWPAN star topology. With |
| this change, the endpoints which are the 'points' of the star will |
| forward all traffic to the coordinator. The coordinator is assumed to |
| be the 'hub' of the star. This function also used IPv6 forwarding. |
| - 6LoWPAN: The original, Contiki-based design used only a single buffer |
| for reassemblying larger packets. This could be a problem issue for |
| hub configurations which really need the capability concurrently |
| reassemble multiple incoming streams concurrently. These was also a |
| design issue in that the reassembly buffer could be corrupted by |
| outgoing packets. The design was extended to support multiple |
| reassembly buffers, each associated with the reassembly tag and source |
| address. This assures that there can be be no corruption of the |
| reassembly once it has started. |
| - 6LoWPAN PktRadio: Now radio agnostic. All IEEE 802.15.4 dependencies |
| have been removed or isolated so that 6LoWPAN can be used with any |
| kind of packet radio. This involved things like: (1) generalizing |
| the representation of radio MAC meta-data, (2) changes to handle |
| variable-length radio addresses, (3) removal of all explicit IEEE |
| 802.15.4 types, references, and interfaces, (4) a new radio driver |
| interface to return 'capabilities' of the driver. |
| - ICMPv6: Update so that ICMPv6 can be used with 6LoWPAN. |
| - IPv6 Neighbor: Update table format to support IEEE 802.15.4 MAC |
| addresses. |
| - PF_IEEE802154 Address Family: Add support for the PF_IEEE802154 |
| address family socket type. This socket is similar to the PF_PACKET, |
| "raw" packet address family except that: (1) it supports only |
| SOCK_DRAM, not SOCK_RAW, and (2) works only with IEEE 802.15.4 |
| MAC-based radios. This address family permits simple access to IEEE |
| 802.15.4 IOCTLs and frame-level network transfers. |
| |
| * Other Common Device Drivers: |
| |
| - Dynamically configurable USB composite devices: We developed a huge |
| Changeset over a year ago to make USB Composite configuration |
| dynamical and be able to instantiate the CDC/ACM multiple times inside |
| this device. We use this feature to switch between one in typical USB MSC + CDC/ACM configuration and up to three CDCACMs dynamically. |
| I've changed the interface for some USB-Functions to receive also the |
| dynamic configuration. From Frank Benkert. |
| - Franks' change remained on a branch until all issues were resolved. |
| the current version in Master is complete and ready for use. |
| - power: battery_charger: Add ioctl for charging input current. From |
| Juha Niskanen. |
| - SMPS driver: Add generic upper-half driver for SMPS. From Mateusz |
| Szafoni. |
| - LED Driver: Add support for inverted LEDS. From Jeff. |
| - LED Driver: Add lightness correction for RGB LED driver. From Jeff. |
| - LTC4151 Driver: Add driver for LTC4151 current and voltage monitor. |
| From Giorgio Groß. |
| - Serial TERMIOS: tcdrain() implementation based on a new term ioctl. |
| From Sebastien Lorquet. |
| - Serial TERMIOS: Add support for TCFLUSH. From Sebastien Lorquet. |
| - syslog: Add option to use the CLOCK_MONOTONIC for time stamping. From |
| Jussi Kivilinna. |
| - HC-SR04 Driver: Add support to HC-SR04 distance sensor. From Alan |
| Carvalho de Assis. |
| - COMP Driver: Add poll support. From Pekka Ervasti. |
| - BQ2429X Driver: Add driver for TI BQ2429X battery charger. From Juha |
| Niskanen. |
| - ADC Driver: Add poll support. From Juha Niskanen. |
| - BCH Driver: Add poll support. From Jussi Kivilinna. |
| - RTC Driver: Extend the RTC framework with an alarm read ioctl |
| (RTC_RD_ALARM). Through it consumer could get configuration settings |
| about previously scheduled hardware alarms (active status, hours, |
| minutes, seconds). From Boris Astardzhiev. |
| |
| * Simulation |
| |
| - sim/ipforward: Add an IP forwarding configuration using TUN devices |
| and apps/examples/tun. |
| - Console: Add non blocking read to devconsole driver. From Simon |
| Piriou. |
| - Networking: Poll for TX frames to speed up driver. From Simon Piriou. |
| - pf_ieee802154: Add configuration for testing PF_IEEE802154 address |
| family sockets. |
| - ARM Simulator: Adds necessary functionality to build Simulator under |
| ARM Linux. Tested only on Raspberry3. Currently setjmp/longjmp do not |
| save/restore floating point registers. From Nickolay Semyonov. |
| |
| * MicroChip/Atmel SAML21 Drivers: |
| |
| - SAML21 I2C driver. Developed for and contributed with permissin from |
| Filament company. From Alan Carvalho de Assis. |
| - SAMD/L21 USB Driver: Add a USB driver. Developed for Filament Inc. |
| by Offcode, LTD. From Janne Rosberg. |
| |
| * MicroChip/Atmel SAMv7 Boards: |
| |
| - SAMV71-XULT: Add support for the MRF24J40 radio and create a |
| mrf24j40-starhub configuration. |
| - SAME70-Xplained: Add MRF24J40 support. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Kinetis USB Improvements: usbdev clean up ensuring proper use of HW. |
| Rework suspend and resume logic so they perform properly. Made attach |
| and detach functions optional. As they do not make sense for a bus |
| powered device. From David Sidrane. |
| - Kinetis SPI driver: From David Sidrane. |
| - Kinetis: I2C driver added I2C3, reference counting and reset. |
| Refactored the driver to support reference counting and reset added |
| I2C3. From David Sidrane. |
| - Kinetis RTC: Implementation of the alarm read function. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - configs/teensy-3.x USB: Define USBOTG-FS Read from FLASH access in |
| board config. Allow the board config to define the USBOTG-FS to have |
| Read access to FLASH. From David Sidrane. |
| - configs/teensy-3.x: Removed call to khci_usbattach. The call is not |
| need by the driver if CONFIG_USBDEV_BUSPOWERED=y. On a USB powered device if we are running we are attached. From David Sidrane. |
| - freedom-k66f: Use SPI driver. Initialize SPI1 on connector J6. No |
| real use, as of yet. From David Sidrane. |
| |
| * NXP Freescale LPC43xx: |
| |
| - LPC43xx: Modify up_allocate_(k)heap() to support PROTECTED mode. From |
| Alan Carvalho de Assis. |
| |
| * NXP Freescale LPC4xx Boards: |
| |
| - configs/Bambino: Add protected mode configuration to Bambino board. |
| From Alan Carvalho de Assis. |
| |
| * On Semiconductor LC823450 |
| |
| - LC823450: Initial support for ON Semiconductor LC823450. From Masayuki |
| Ishikawa. |
| - LC823450: eMMC/SD and USB support for LC823450. From Masayuki Ishikawa. |
| |
| * On Semiconductor LC823450 Boards |
| |
| - LC823450-XGEVK: LC823450-XGEVK board support. From Masayuki |
| Ishikawa. |
| - LC823450-XGEVK: Add eMMC/SD and USB support. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32 L4: Add support for the STM32L475 family. |
| - STM32 L4 RCC: Enable ADC clock source. From Juha Niskanen. |
| - STM32: Allow clock frequencies > 168 MHz on stm32f427/429. We need |
| to enable the power overdrive for this case. This change allows the |
| required bits to be set in proper sequence. It also modifies the |
| local register access operations to allow more than 16-bit registers. |
| From Sebastien Lorquet . |
| - STM32 F4: Add support for STM32F433RC. From Alan Carvalho de Assis. |
| - STM32 F7: Add new configuration option for enabling flash ART |
| Accelerator and flash prefetcher. From Jussi Kivilinna. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 TIM: Add the set counter function for stm32 timers. From |
| Sergey Ustinov. |
| - STM32 HRTIM: Update HRTIM definitions. Add HRTIM driver. From |
| Mateusz Szafoni. |
| - STM32 HRTIM: Add HRTIM character driver. From Mateusz Szafoni. |
| - STM32 HRTIM: Fix DAC triggers configuration, Add missing master timer |
| logic, enable DAC triggering. From Mateusz Szafoni. |
| - STM32 HRTIM: Add DMA configuration. From Mateusz Szafoni. |
| - STM32 HRTIM: Add burst mode configuration. From Mateusz Szafoni. |
| - STM32 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to STM32. |
| - STM32 DAC: Add support for HRTIM triggering. Separate dma buffer |
| configuration for channels. From Mateusz Szafoni. |
| - STM32 DAC: Conditional logic for timer triggering, fix TSEL |
| configuration when HRTIM, DMA request remapping, Add DMA buffers |
| initialization logic. From Mateusz Szafoni. |
| - STM32 DAC: Support external triggering for DMA transfer. From Mateusz |
| Szafoni. |
| - STM32 L1 TIM: Add base address for TIM11. From Juha Niskanen. |
| - STM32 F4 FLASH: Enable/disable the flash write protection on any |
| sector. I have verified it to work on the STM32 F427. From Sebastien |
| Lorquet. |
| - STM32 F4 Clocking: To use an external oscillator module (not just a |
| crystal) with the STM32F4, one needs to enable the HSEBYP bit in the |
| RCC_CR register. This change allows an integrator to define |
| STM32_RCC_CR_HSEBYP in their board.h file if they want this |
| configuration. From Jeff. |
| - STM32 F4 USB: I'm working on bringing up USB full-speed support on |
| STM32F405. My board does not include a USB power switch, VBus |
| sensing, over current detection, or ID pin. This commit add a |
| config STM32_OTGFS_VBUS_ CONTROL which lets us selectively disable |
| VBus sensing and control. I also sneaked in a change to disable the |
| configgpio call for the ID pin, which is only used in OTG mode which |
| isn't supported yet. The only pins that need to be initialized should |
| be OTGFS_DP and OTGFS_DM. From Jeff. |
| - STM32 FLASH: Add CONFIG_STM32_STM32F469 support. From David Sidrane. |
| - STM32 COMP: Add default INM configuration and some missing COMP |
| 1,3,5,7 code. From Mateusz Szafoni. |
| - STM32 F33: Add missing SYSCFG CFGR3 definitions. From Mateusz Szafoni. |
| - STM32 L4 Serial: Allow configuring Rx DMA buffer size. From Juha |
| Niskanen. |
| - STM32 L4 COMP: Input minus pin extended selection. From Juha Niskanen. |
| - STM32 L4 COMP: Bind to upper half comp driver. From Pekka Ervasti. |
| - STM32 L4 DAC: Port from STM32. Add ADC register definitions. From |
| Juha Niskanen. |
| - STM32 L4 DAC: Add option for routing DAC output to ADC. Actually |
| write something to the DAC DMA buffer. From Juha Niskanen. |
| - STM32 L4 DAC: Separate DMA buffer configuration for channels. From |
| Juha Niskanen. |
| - STM32 L4 ADC: Implement peripheral. From Juha Niskanen. |
| - STM32 F7: Definitions for I2C4, SDMMC2. Adapted RAM start / size to |
| internal SRAM. From Titus von Boxberg. |
| - STM32 F7 I2C4: I2C4_SDA can also be on GPIO PB7. From Titus von |
| Boxberg. |
| - STM32 F7 LTDC: Option for DSI output, inconsistency: the stm32f746 |
| does not feature a DSI interface. compilable with LTDC_INTERFACE and |
| LTDC_USE_DSI. From Titus von Boxberg. |
| - STM32 F7 Clocking: Added functions for DSI clock source selection. |
| From Titus von Boxberg. |
| - STM32 F7 Clocking: Enable APB2 DSI clock. From Titus von Boxberg. |
| - STM32 F7 LTDC: No board specific dithering values used; corrected |
| dithering init. Corrected LIPOS/LIPCR calculation. Change only |
| polarity bits in LTDC_GCR. From Titus von Boxberg. |
| - STM32 F7 Reset: Added function for reset. From Titus von Boxberg. |
| - STM32 F7 DMA: DMA add dcache alignment check in stm32_dmacapable. In |
| the case dcache write-buffed mode is used (not write-through) buffer |
| alignment is required for DMA transfers because a) |
| arch_invalidate_dcache could lose buffered writes data and b) |
| arch_flush_dcache could corrupt adjacent memory if the maddr and the |
| mend+1, the next next address are not on ARMV7M_DCACHE_LINESIZE |
| boundaries. From David Sidrane. |
| - STM32 F7 SDMMC: SDMMC remove widebus limitation on DMA. There is no |
| documentation for the STM32F7 that limits DMA on 1 bit vrs 4 bit |
| mode. From David Sidrane. |
| - STM32 F7 SDMMC: SDMMC add dcache alignment check in |
| dma{recv|send}setup. In the case where CONFIG_SDIO_PREFLIGHT is not |
| used. |
| - STM32 F7 RTC: Port Boris Astardzhiev's RTC change for STM32L4 to |
| STM32F7. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103-Minimum: Add GPIO device driver example. From Alan |
| Carvalho de Assis. |
| - STM32F103-Minimum: Add small hello example for STM32F103-Minimum |
| board. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add support for SmartFS on Winbond W25 SPI NOR |
| Flash. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: (1) Enable CONFIG_MTD_PARTITION in Kconfig if flash |
| partition is enabled and (2) Update the README.txt file with info |
| needed to get SmartFS working. From Alan Carvalho de Assis. |
| - Nucleo-F334R8: Add HRTIM initialization. From Mateusz Szafoni. |
| - Nucleo-F334R8: UART2 is default serial port (STLINK Virtual Port). |
| From Mateusz Szafoni. |
| - Clicker2-STM32: Add a configuration that was used with the MRF24J60 |
| for 6loWPAN testing. |
| - Clicker2-STM32: Allow both IEEE 802.15.4 MAC character and network |
| devices to be registered. |
| - Clicker2-STM32: Add configurations to support the endpoint and hub |
| roles in a star topology. |
| - Clicker2-STM32: Add support for per-function-call stack checking. |
| From Anthony Merlino. |
| - Clicker2-STM32: Configure EDBG SPI CS just to make that it is |
| disabled. |
| - STM32F4 Discovery: Add logic to register the button driver and the |
| user led driver if so configured. From Jan Pobrislo. |
| - STM32F4-Discovery: Add a configuration for testing libc++. From Alan |
| Carvalho de Assis. |
| - B-L475E-IOT01A: Add support for the STMicro B-L475E-IOT01A board. |
| From Simon Piriou. |
| - B-L475E-IOT01A: Add support for the SPSRGF/Spirit1 radio module. Add |
| a configuration for testing sprit radio. |
| - B-L475E-IOT01A: Add configurations to support a star topology. |
| - B-L475E-IOT01A: Add basic support for external Macronix QuadSPI flash |
| memory. From Simon Piriou. |
| - B-L475E-IOT01A: Enable UDP broadcast test in the spirit-starhub |
| configuration. |
| - STM32F334-DISCO: Add STM32F334-DISCO basic support. From Mateusz |
| Szafoni. |
| - STM32F746-Disco: Add ADC3 support. From Ivan Ucherdzhiev. |
| - STM32L476-Disco: Add a knsh configuration that may be used to test |
| the PROTECTED build mode. |
| - STM32F769I-DISCO: Initial port to STM32F769I-DISCO. From Titus von |
| Boxberg. |
| |
| * C Library/Header Files: |
| |
| - Move TUN ioctl command to include/nuttx/net/ioctl.h so that it will |
| always be unique. |
| - Math Library: Port gamma() and lgamma() from FreeBSD to NuttX. From |
| Alan Carvalho de Assis. |
| - C++: Compilation with recent C++ compiler needs an overloaded delete |
| operator that includes a size_t size argument. New sized delete |
| operators are only for C++14 and above. |
| |
| * Build/Configuration System: |
| |
| - Initial clang compile. From Goran Mekic. |
| - Add CLANG definitions in Kconfig and Toolchain.defs. |
| - drivers/wireless/ieee802154: Moved radios to individual |
| sub-directories. From Anthony Merlino. |
| - Makefile.unix: Add savedefconfig target. From Gwenhael Goavec-Merou. |
| - Add Gwenhael's change to Makefile.win and update README.txt to |
| described the new make target. |
| - All defconfig files are now in the compressed format created with |
| 'make savedefconfig.' The original .config file can be reconstituted |
| using 'make olddefconfig.' |
| - Build System: It is no longer necessary to have a unique Make.defs |
| file for each configuration. A board may share a common Make.defs |
| file in the scripts directory. Duplicate Make.defs files removed; |
| common Make.defs file moved to the scripts/ sub-directory for each |
| board. |
| - Networking: Move INET socket interface out of net/sockets to its own |
| directory net/inet. |
| |
| * Tools: |
| |
| - testbuild.sh: Added -x to fail build on errors for continuous |
| integration (CI). On CI we want to know ASAP of a failure. From |
| David Sidrane. |
| - Improve configure.sh behavior: (1) enable to call from top directory. |
| (2) enable to designate direct path for config. (3) install .gdbinit |
| if the target has. From Hidetaka Takano. |
| - Update tools/configure.c to same functionality as configure.sh. Add |
| an array of optional file names. Currently, .gdbinit is the only |
| optional file but other things like IDE-specific project files might |
| need to be copied as well. |
| - tools/configure.sh will now copy Eclipse project files if they are |
| present in the board directory file. |
| - Update configure.sh, configure.bat, configure.c: With compressed |
| format, part of the installation requires that we run 'make |
| olddefconfig' to restore the uncompressed defconfig format. Also, |
| while I was at it, I also added options to select host platform on |
| configure command line. |
| - tools/refresh.sh: Now runs make savedefconfig before copying the new |
| defconfig file in place; Also, added a new option --defaults. Since |
| the number of defaults that you now have to answer is so large, the |
| option lets you just accept the default values. So it works just like |
| --silent but still prompts you for the decision to save or discard the |
| new defconfig file. |
| - tools/refresh.sh: Update so that it can find the Make.defs file in |
| the new location. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH Library: Add a Telnetd command. This is needed when network |
| initialization is deferred. In that case, telnet daemon cannot be |
| started until the network is finally initialized. The telnetd command |
| was added just for that case: So that the telnet daemon can be |
| started from the NSH command line after the network is configured. |
| - NSH Library: Misc changes needed for PktRadio support. |
| - NSH Library: Extend ifconfig command so that it can set variable |
| length packet radio address. |
| - NSH Library: Update addroute and delroute command. The would support either |
| IPv4 or IPv6, but not both. Allow expression of the netmask in IPv4 CIDR or |
| IPv6 slash notation. This really reduces the pain of using the commands, |
| especially for IPv6. |
| - NSH Library: Add a route command that will dump the content of routing table. |
| |
| * Examples/Tests: apps/examples: |
| |
| - examples/udp: Add configurable network device name; Add option to |
| suppress network initialization which is not needed if started by NSH |
| or for 6LoWPAN. |
| - examples/udp: Fix registration as a built-in program; Change some |
| naming to make room for a second target. Current one endpoint is the |
| target and one is the host. This will (eventually) allow two targets |
| to be both endpoints of the test. Change build so that both server |
| and client can be on a target, rather than one on the target one on |
| the host PC. Server IP address may not be provided on the command line. |
| - examples/udp: Port numbers need to be configurable to work with |
| 6LoWPAN. Need to bind the client socket to a port number. This was |
| not required before so is a apparently a change in the UDP packet |
| dispatch logic. |
| - examples/udp: Enable testing with the broadcast address. |
| - examples/nettest: Support target boards on both ends of the test. |
| Separate out network initialization so that it may be used by both a |
| target server and a target client. Fix client/server naming |
| confusion; Add command line option to select the server address on the |
| target. Add support for both endpoints on target boards vs. one on a |
| target and one on the host PC. |
| - examples/nettest: The send buffer size is now a configuration option. |
| - examples/nettest: Loopback option should be available in Kconfig for |
| PktRadio. |
| - examples/keypadtest: REMOVED and warehoused in the Obsoleted |
| repository. This was just a bad clone of apps/examples/hidkbd for a |
| keypad driver that was removed years ago. It also uses illegal |
| function calls into the OS. So it has no purpose: It is redundant, it |
| uses illegal interfaces, and is a test for non-existent code. |
| - examples/ipforward: Add an IP forwarding example using only TUN |
| devices. Test extended to test forwarding of ICMPv6 multicast messages. |
| - Implement powermonitor example for ltc4151 current and voltage |
| monitor. From Giorgio Groß. |
| - examples/pf_ieee802154: Add for testing PF_IEEE802154 sockets. Add |
| PANID to command line options; Cannot bind to address zero... There is |
| no counterpart to INADDR_ANY for these radios (not now at least). |
| - examples/dac: Add DAC example. From Juha Niskanen. |
| |
| * Network Utilities: apps/netutils: |
| |
| - netutils/telnetc: This a port of libtelnet to NuttX. |
| - netutils/telnetd and users of telnetd: Add support for IPv6. |
| - netutils/thttpd: Remove the netstats demo. This depends on an |
| illegal function call and cannot be supported. That example could be |
| replaced with logic that uses the procfs network entries as was done |
| for NSH which had the same issue. But I am too lazy to implement that. |
| - netutils/netlib: Add support for PktRadio IOCTL commands. |
| - netutils/netlib: Add a helper to decode short addresses. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - wireless/ieee802154/i8sak: Rewrote i8sak to be test CLI for IEEE |
| 802.15.4 MAC layer. From Anthony Merlino. |
| - wireless/ieee802154/i8sak: Updates to i8sak for |
| association/beacon-enabled changes to IEEE 802.15.4. From Anthony |
| Merlino. |
| - wireless/ieee802154/i8sak: Add option to make it easy to send large |
| frame for testing purposes. From Anthony Merlino. |
| - wireless/ieee802154/i8sak: Add scan command. From Anthony Merlino. |
| - wireless/ieee802154/i8sak: Add coordinfo command allowing you to |
| poll various attributes related to the coordinator. From Anthony |
| Merlino. |
| - wireless/ieee802154/i8sak: Add a option to retry on failures to the |
| assoc command (usually meaning tht the coordinator is not yet up). |
| - iwireless/ieee802154/8sak: Add reset command to reset the MAC layer. |
| Adds option to assoc command -t to specify how long to wait for a |
| response from the Coordinator. From Anthony Merlino. |
| - ieee802154/i8sak: Adds command to trigger regdump of radio. From |
| Anthony Merlino. |
| |
| * System Utilities (apps/system) |
| |
| - apps/system/composite: Update to apps/system/composite associated with |
| big changes to the composite device logic. From Frank Benkert. |
| - apps/system/composite: Remove CDC/ACM and MSC configuration logic. |
| This belongs in the OS composite initialization. Add and argument so |
| that you can select the USB composite configuration to be attached. |
| Restore USB tracing; remove unused field in a structure. Remove |
| configuration settings that are no longer used. Fix configuration |
| selecting.. was setting the port number, not the configure ID. Also |
| add a configuration option to select the default configuration. |
| - apps/system/composite: Add a configuration option to the boardctl() |
| calls to support multiple composite device configurations dynamically. |
| - apps/system/composite: Remove references to USBMSC. There still |
| dependencies on CDC/ACM in the serial USB trace output. |
| - apps/system/telnet: Add Telnet Chat daemon and client from |
| libtelent. |
| |
| * Platform-Specific Support (apps/platform) |
| |
| 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: |
| |
| - Fix ELF loader up_checkarch on ARM arch. From Cristian Condurache. |
| - pthread_mutex_unlock(): Missing check for the case where |
| pthread_mutex_lock() is called when the mutex is not locked. In that |
| case, it would increment the underlying semaphore above 1. This is |
| the fix for a problem noted by initialkjc@yahoo.com. |
| - sig_timedwait(): Pending signal structure used after it has been |
| releasd. From anonymous Bitbucket Issue 59. |
| - mm_mallinfo: do heap end debug assert check with heap semaphore held. |
| From Jussi Kivilinna. |
| - sched/: Fix return value in sched_setaffinity(). From Masayuki |
| Ishikawa. |
| - Work Queues: work_queue() must cancel existing work prior to queuing |
| new work, otherwise the work queue list structure can become |
| corrupted. Problem noted by Pascal Speck. |
| - waitpid(): Corrects two problems when CONFIG_SCHED_HAVE_PARENT + |
| CONFIG_SCHED_CHILD_STATUS are enabled: (1) Was erroring out if the |
| waited for task had already exited, and (2) was not freeing resources |
| when a wait was completed. From Boris Astardzhiev. |
| |
| * File System/Block and MTD Drivers: |
| |
| - VFS poll(): Fix timeout calculation. From Jim Paris. |
| - VFS poll(): Fix poll for regular files and block devices. Open Group |
| documentation says that poll (and select) support regular files and |
| that 'Regular files shall always poll TRUE for reading and writing'. |
| From Jussi Kivilinna. |
| - VFS epoll(): Fix epoll_wait function. From Simon Piriou. |
| - Smart FS: Fix wrong freeing of device structure and use-after-free |
| issues on error paths. From Jussi Kivilinna. |
| - MTD FLASH drivers: The byte write method of several drivers had a |
| cloned error: It was not locking the bus while performing byte write |
| operations. |
| - MTD M2PX: If we READ while a write/erase is pending, the command is |
| ignored and the write/erase continues. If we don't catch this situation |
| we will return garbage to the user because the flash will not execute |
| the command. So READ MUST wait for write completion, and before that, |
| the bus must be locked since it's a precondition to calling |
| waitwritecomplete(). From Sebastien Lorquet. |
| - MTD FLASH drivers: Clone Sebastien Lorquet's m25px change to at25, |
| is25xp, ramtron, and sst25xx. |
| - MTD W25: Add missing locking and fix SPI_SELECT usage for |
| w25_unprotect. From Jussi Kivilinna. |
| - MTD W25: Wait for BUSY flag to clear in w25_readid and |
| w25_unprotect. W25Q128 datasheet says that all instructions expect |
| 'Read Status Register' and 'Erase/Program Suspend' are ignored when |
| BUSY flag in status register is '1'. Therefore wait for busy flag to |
| clear in w25_readid() and w25_unprotect(). From Jussi Kivilinna. |
| - Automounter: FS_AUTOMOUNTER should depend on SCHED_LPWORK. From |
| Nickolay Semyonov. |
| |
| * Networking/Network Drivers: |
| |
| - TCP Listen: Throw error when error happens in the tcp_listen |
| function. From Roland Takacs. |
| - Network Device Management: Do not search net device when all-zeros |
| address is used. From Roland Takacs. |
| - Network Device Management: Fix a error in netdev_register(); it was |
| not handling device names properly when TUN is the only network device. |
| - Network Device Management: Fix netdev_dev_lladdrsize(). In some |
| configurations, it could return the wrong size for the address of a |
| packet radio. |
| - Network Device Management: Fix typo for 802.11 devices in |
| netdev_register(). Was being masked before because depended on |
| CONFIG_NET_MULTLINK. |
| - TUN Driver: Use critical section instead of semaphore in |
| tun_ifdown(). From Masayuki Ishikawa. |
| - TUN Driver: Do all polling on worker thread. Otherwise, the stack |
| gets very deep. |
| - TUN Driver: Currently cannot support TAP mode unless Ethenet is |
| enabled. |
| - netdb: Fixed buffer size used for sending DNS queries should depend |
| on the configured DNS name size. From Ritjaina. |
| - UDP networking: The TTL (time to live) was not being set in the IPv4 |
| or IPv6 header unless the UDP socket was bound. |
| - UDP Networking: Fix a copy-paste error that could effect networking |
| when both IPv4 and IPv6 are enabled. |
| - UDP Networking: When upd_input() cannot process a packet, it returns |
| ERROR so that network drivers may try calling ipv4_input() later. In |
| this case, it must also set d_len to zero. Otherwise, all network |
| drivers will assume tht there is also an outgoing packet. This |
| results in a gratuitous ARP. |
| - TCP Networking: Correct some issues that prevent TCP from working |
| correctly when both IPv4 and IPv6 are enabled. |
| - TCP Networking: TCP disconnection callbacks are not retained in a |
| list. This will support multiple callbacks per lower-level TCP |
| connection structure. That is necessary for the cae where a socket is |
| dup'ed and shares the same lower-level connection structure. NOTE: |
| There still needs to be a call to tcp_start_monitor() when the socket |
| is dup'ed. |
| - TCP Networking: Start the network monitor for a socket when a TCP |
| socket is dup'ed. |
| - TCP Networking: If one of the dup'ed socket's is closed, then network |
| monitor resources associated with that one socket must be recovered. |
| Also, in the event that socket is being used on one thread, but then |
| closed on another, any threads waiting for events from the socket |
| should be informed of the closure. That latter requirement is not |
| implemented because current data structures do not support it. |
| - TCP Networking: Fix a race condition. The accept() operation is |
| performed with the network locked. However, the network is unlocked |
| BEFORE the connected state is set. Therefore, a context switch may |
| occur and the socket may no longer be connected when it is marked so. |
| Noted by Pascal Speck. |
| - Network routing tables: Fix a compilation error when IPv6 and |
| routing are enabled. |
| - Network procfs: Fix some spacing when both IPv6 and IPv4 are enabled. |
| - Network Local Sockets: Fix accept for local stream sockets. From |
| Jussi Kivilinna. |
| - Network Local Sockets: Fix server lc_waitsem overflow. From Jussi |
| Kivilinna. |
| - IPv6 Networking: Remove comparisons to the address with all ones |
| set. IPv6 does not support broadcast addresses and certainly not in |
| that form. Replace with multicast addresses beginning with 0xff02. |
| - ICMPv6 Networking: Fix a compilation issue with |
| CONFIG_NET_ICMPv6_AUTOCONF=y. From Masayuki Ishikawa. |
| - Networking: Fix net_lock returning ERROR when instead of real error |
| code on failure. From Jussi Kivilinna. |
| - IGMPv2 Networking: Remove special support for interrupt level |
| processing (there is none) and fix some timer cancellation logic. In |
| many files, correct comments. There is no interrupt level processing |
| in the networking layer. |
| |
| * Wireless/Wireless Drivers: |
| |
| - IEEE 802.15.4 MAC: Need counting protection on the logic that |
| releases the notification resources. Otherwise, notification handlers |
| may be operating with a stale pointer. |
| - IEEE 802.15.4 MAC: Improves internal timer logic to handle work |
| serially. Before, the MAC timer used a watchdog to schedule work with |
| the high priority worker queue. However, since everything in the MAC |
| is supposed to be serialized through the use of the high priority work |
| queue, but the timer uses a watchdog, there are some unintended |
| consequences. To simplify, we now use the delayed work feature of the |
| work queue. From Anthony Merlino. |
| - IEEE 802.15.4 Network Driver: Update RX statistics in network driver. |
| - IEEE 802.15.4 MRF24J40 Driver: Minor timing fix. Matches recommended |
| value in datasheet. Splits up driver into multiple files to make it |
| easier to navigate. Fixes issue with non-beacon enabled mode. From |
| Anthony Merlino. |
| - IEEE 802.15.4 MRF24J40 Driver: Fix a bug causing radio to cease |
| transmitting. From Anthony Merlino. |
| - IEEE 802.15.4 MRF24J40 Driver: Fixes issues with sleeping for beacon |
| enabled networking. From Anthony Merlino. |
| - EEE 802.15.4 MRF24J40 Driver: Fix math error for calculating sleep |
| count values. From Anthony Merlino. |
| - IEEE 802.15.4: Fix timing issues for beacon enabled coordinators and |
| endpoints. From Anthony Merlino. |
| - iIEEE 802.15.4: Fix issue with association on beacon-enabled |
| networking. From Anthony Merlino. |
| - 6LoWPAN: Correct a few addressing issues. Also reserve two bytes at |
| the end of the frame for the FCS. |
| - 6LoWPAN: Fixes needed when extended addressing is enabled; broke short |
| addressing. Loopback driver needs to initialize the MAC meta data; |
| Address decompression logic must have the MAC address to handle the |
| most common compression cases. Fix a src/dest address confusion and |
| other addressing problems. |
| - 6LoWPAN: Add missing IPv6 address creation to HC1 decode logic. Fix a |
| typo in an index that prevented use with HC1 and extended addresses. |
| - 6LoWPAN: TCP logic was not obeying MTU packet size limitations. |
| - 6LoWPAN: Major re-architecting of TCP logic to properly handle TCP |
| stuff like ACKs and TDP windowing which were not properly covered in |
| the initial design. |
| - 6LoWPAN: HC06, copy TCP header as though it were data. TCP packet |
| reassembly now seems to work OK. |
| - 6LoWPAN: Fix duplicate and bad memcpy in loopback driver. |
| - 6LoWPAN: Fix a misconception about HC06 16-bit IPv6 address |
| compression. |
| - 6LoWPAN: TCP send logic was returning a failure in one case when, in |
| fact, the send was successful. |
| |
| * Common Drivers: |
| |
| - USB MSC: Use struct instead of pointer to the struct as sizeof |
| argument in memset in usbmsc.c. Otherwise it leads to error: argument |
| to sizeof in memset call is the same pointer type struct usbmsc_lun_s |
| * as the destination. From Oleg Evseev. |
| - USB MSC: Add missing logic to define endpoints. The composite |
| changes broke the the non-composite, USB MSC only case because it omitted the critical setup when USB MSC was not part of the composite. |
| - USB CDC/ACM. Fix several known problems resulting from merge of USB |
| composite device. That merge now breaks some of the non-composite USB |
| devices. |
| - Button Driver: Interrupts weren't enabled since nothing updates them |
| after btn_poll() marks the file descriptor structure as being polling. |
| From Jan Pobrislo. |
| - ADC Driver: Fix some data alignment issues in the ADC driver. |
| - I2C Drivers: Handle I2C_TRANSFER return value consistently. Some I2C |
| peripherals transfers return zero on success, others number of |
| completed transfers. Make drivers robust against this. From Juha |
| Niskanen. |
| - COMP Driver: Fix compilation errors when poll disabled. From Mateusz |
| Szafoni. |
| |
| * Simulation: |
| |
| - Simulation: Fix mkdir issue in GNU target. From Simon Piriou. |
| - Simulation: x86 stack needs to be aligned to 16-byte boundaries. |
| - Simulation: Fix building 32-bit simulation on 32-bit X86. From Jussi |
| Kivilinna. |
| |
| * ARM: |
| |
| - ARM: The older ARM7 and ARM9 configurations were determining CFLAGS |
| based on the GCC version 4.x.x or not. That needx to be extended for |
| 5.x.x and 6.x.x which also behave like 4.x.x. |
| |
| * ARMv7-M: |
| |
| - Fixed ARMv7-M Toolchain setting. Cortex-M4 only have Single |
| Precision FPU. From Hidetaka Takano. |
| - ARMv7-M syscall logic: Clear bit 0 in PC settings. Bit 0 is the |
| thumb mode indication and should not be set in the PC. This extra bit |
| has not caused problems in the past, but seeing it set in the PC is |
| unnerving. |
| |
| * Espressif ESP32: |
| |
| - Fix ESP32 gpio enable reg and default UART pin. Modify default UART |
| pin for ESP-WROOM-32. Fix gpio enable reg. From Sungki Kim. |
| |
| * Microchip/Atmel SAMD21 Drivers: |
| |
| - SAMD21: Fix some SPI-related issues. From Matt Thompson. |
| - SAMD21 SPI: I was having issues with the bus freezing up .. slaves |
| holding SDL low.. so I rewrote a good portion of the interrupt logic |
| based on the application notes from Atmel. One major improvement is |
| using the RXNACK flag in the STATUS register, which indicates that no |
| device responded to an address packet. Assuming that the chip will |
| always give an interrupt status, I believe it's possible to eliminate |
| the timer as well. From Matt Thompson. |
| - SAMD/L21: Need to preserve errno value across syslog() call. |
| - SAMD21: Changes needed to get USB working. From Matt Thompson. |
| |
| * Microchip/Atmel SAMv7 Drivers: |
| |
| - SAMv7 TWIHS: TWIHS driver add reference counting. From David Sidrane. |
| - SAMv7 CAN: We discovered a problem with the samv7 mcan driver which |
| results, under some circumstances, in a very high CPU load. The |
| problem occurs, and is easily reproducible, if the device is connected |
| to a CAN network with a wrongly configured CAN speed (baud rate). In |
| our tests we set the CAN speed of the device to 1000000 and the speed |
| of the other CAN nodes to 500000. The device is restarted and sends a |
| CANopen "bootup message" to the CAN network. This results in huge |
| amount of errors messages on the CAN bus, probably because of the CAN |
| feature for acknowledging error messages. The error messages can't be |
| read by the device because of the misconfigured CAN speed, instead the |
| CAN chip reports lots of errors, which are reported to the application |
| which uses the CAN driver (CONFIG_CAN_ERRORS is enabled). The CAN |
| errors are reported from the CAN chip via interrupts and thus the |
| interrupt load is very high in this scenario. To fix the problem the |
| driver now disables each RX error interrupt after it is occurred. The |
| RX error interrupts are turned back on if at least one CAN message is |
| received successfully. From Stefan Kolb. |
| - SAMv7 CAN: I discovered while working on the SAMV7 mcan driver that |
| the implementation of the CAN error handling is suboptimal. In the |
| current implementation the many errors are implemented as pending |
| errors. But those errors are not pending, the errors occurred and are |
| gone directly afterwards. This commit changes the described behavior |
| and simplifies the handling of CAN errors. From Stefan Kolb. |
| |
| * Microchip/Atmel SAMv7 Boards: |
| |
| - SAMv71-XULT: Fix MRF24J40 interrupt GPIO number. |
| |
| * NXP/Freescale Kinetis: |
| |
| - Kinetis MPU: Disable MPU when not in protected mode. The hardware |
| reset state of the the MPU precludes any bus masters other than DMA |
| access to memory. Unfortunately USB and SDHC have their own DMA and |
| will not have access to memory in the default reset state. This change |
| disabled the MPU if present on system startup. From David Sidrane. |
| - Kinetis MPU: Fixed warning for kinetis_mpudisable. Missing header |
| file added. From David Sidrane. |
| - Kinetis SIM: Ensure isolation of clock dividers for 0 value case. |
| This fixes a bug were a SoC does not have a clockdivN register and |
| passes a 0 for the init value. This prevents overflow of the 0 |
| decremented to -1 (0xffffffff) spilling over to other clockdivN |
| fields. From David Sidrane. |
| |
| * NXP/Freescale i.MX6 Drivers: |
| |
| - i.MX6: Fix a wrong parameter passed when calling irq_attach() in |
| imx_serial.c. From Masayuki Ishikawa. |
| - Based on Masayuki's change, I review all serial driver vector |
| attachment. I Found one additional error and updated all relevant |
| drivers to current interrupt parameter passing. |
| |
| * STMicro STM32: |
| |
| - STM32 F410 Kconfig: Fix peripherals available on the STM32 F410. |
| This also adds a select for STM32_HAVE_DAC1 present on this STM32 |
| flavor. From Gwenhael Goavec-Merou. |
| - STM32 L4 DMA: Correct USART3_RX bad channel definition. From Juha |
| Niskanen. |
| - STM32 L4 PWR: Correct PWR_SR2 REGLPS and REGLPF bits, add port I |
| registers. Also remove duplicate section from Kconfig. From Juha |
| Niskanen. |
| - STM32 F7: do not enable read-modify-write on DTCM. "AN 4667 - STM32F7 |
| Series system architecture and performance" recommends to disable |
| read-modify-write on DTCM: "If the DTCM-RAM is used as data location |
| and the variables used are byte or/and halfword types, since there is |
| no ECC management in this RAM on the STM32F7 Series, it is recommended |
| to disable the read-modify-write of the DTCM-RAM in the DTCM interface |
| (in the DTCMCR register) to increase the performance." From Jussi |
| Kivilinna. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 TIM3/4 are always 16-bits; never 32-bits. Noted by Eetu |
| Nevalainen.. |
| - STM32 ADC: Invalidate dma buffer before use. Missing invalidation |
| caused old samples being fetched from cache. From Jussi Kivilinna. |
| - STM32, STM32L4, STM32F7 ADC: Fix channel 18 sample time. From Juha |
| Niskanen. |
| - STM32 DAC: Fix some configuration logic. When STM32_NDAC is greater |
| than 1, then second channel is always DAC1OUT2. From Mateusz Szafoni. |
| - STM32 DAC: Fix compilation when DMA disabled for channel. From |
| Mateusz Szafoni. |
| - STM32 F0: Fix some funny shifts in DAC header files. From Juha |
| Niskanen. |
| - STM32 F1 RTC fixes: (1) Compile issues because of missing RTC_MAGIC |
| #defines, (2) missing functionality based on RTC_MAGIC in RTC based on |
| stm32_rtcounter.c, (3) IRQ setup from up_rtc_initialize was later |
| reset in up_irqinitialize, (4) write access to backup registers |
| without enabling access to backup domain, (5) possible races in |
| set/cancel alarm. tested with STM32F103C8 only. device now wakes up |
| from forced STANDBY mode by alarm. From Leif Jakob. |
| - STM32/STM32 L4 PWM: While attempting to output a 70 MHz square wave |
| from the timer output of a STM32 clocked at 140 MHz, found that the |
| reload calculation was off by one. This correction does allow the |
| output up to 70 MHz. I am not sure this affects most users |
| generating slow PWM but for frequencies close to the PCLK, the |
| difference becomes significant. From JM. |
| - STM32 L4 I2C: Set I2C SDA and SCL pins to open drain mode. From Pekka |
| Ervasti. |
| - STM32 L4 I2C: I2C4 was writing to wrong RCC registers. From Juha |
| Niskanen. |
| - STM32 L4 DAC: Report transfer as completed in DMA callback. Without |
| this even O_NONBLOCK writes block the calling task if DAC was using |
| DMA. From Juha Niskanen. |
| - STM32 L4 COMP: comparators share RCC enable bit with SYSCFG. From |
| Juha Niskanen. |
| - STM32 L4 ADC: Correct EXTSEL macros. From Juha Niskanen. |
| - STM32 L4 TIM: TIM15,16,17 are always in APB2. From Juha Niskanen. |
| - STM32 F7 I2C: Set I2C4 SDA and SCL pins to open drain mode. From Juha |
| Niskanen. |
| - STM32 F4 RTCC: ISR register and write protection fix. From Eetu |
| Nevalainen. |
| - STM32 F7 Ethernet: Fix typo in header; Add memory sync barrier |
| between writing to DMA TX descriptor and restarting DMA TX. Avoid |
| calling work_queue on pollwork if it's already queued, just skip a |
| poll cycle instead. Nucleo-144: Fix RMII TXD1 signal, connected to |
| PB13 not to PG14. From savinz. |
| - STM32 F7: Added missing config option for register value debugging. |
| From Titus von Boxberg. |
| - STM32 F7: No FSMC, only FMC for STM32F7. From Titus von Boxberg. |
| - STM32 F7: HEAP2 depends on CONFIG_ARCH_HAVE_HEAP2, not on particular |
| FMC RAM type. From Titus von Boxberg. |
| - STM32 F7: STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; PLLI2S is |
| not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S. |
| From Titus von Boxberg. |
| - STM32F7: Some STM32F7 builds failed in build testing due to undefined |
| STM32_SRAM1_BASE. I think that is because stm32_allocateheap.c was |
| not including chip/stm32_memorymap.h. |
| - STM32 F7: dcache write-buffed mode is used (not write-through) buffer |
| alignment is required for DMA transfers because a) |
| arch_invalidate_dcache could lose buffered writes data and b) |
| arch_flush_dcache could corrupt adjacent memory if the buffer and the |
| bufflen, are not on ARMV7M_DCACHE_LINESIZE boundaries. From David |
| Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103-Minumum SPI: SPIDEV_WIRELESS used when this has |
| changed to SPIDEV_CONTACTLESS. From Nicolas Estibals. |
| - configs/: a few more places where SPIDEV_WIRELELSS should be |
| SPIDEV_CONTACTLESS. |
| - STM32F103-Minumum: Fix a BUG when reading from output pin. We need |
| a different read_ops to read from output pin. This patch fixes the |
| issue. From Alan Carvalho de Assis. |
| - STM32F103-Minumum: Use separated read_ops for GPIO interrupt pins. |
| From Alan Carvalho de Assis. |
| - STM32F103-Minumum: Fix compiler error in MCP2415 logic. |
| - STM32F746G-DISCO: Fix for compilation of STM32F746G-DISCO. From Ivan |
| Ucherdzhiev. |
| - STM32F746G-DISCO: Fix for stm32f746g-disco board for button support |
| with interrupt. This change is tested with buttons app example and it |
| is working with interrupts (signals). I tried the test with polling |
| but at this point it doesn't work. From Ivan Ucherdzhiev. |
| |
| * Build System |
| |
| - Fix -Werror=implicit-fallthrough on gcc7. From Julien Lecoeur. |
| - configs/Board.mk: Remove comment form end of line. In windows native |
| build, it appears to be trying to make that an extra parameter to the |
| AR command. From Jeff. |
| - configs/Board.mk: Remove quotes from CONFIG_ARCH_FAMILY. Causes |
| problems with Windows native build. From Jeff. |
| - Makefile.win would only create uboot images for ARM. MIPS support |
| also needed. From Lwazi Dube. |
| |
| * C Library/Header Files: |
| |
| - C++: Fix C++ __guard implementation for ARM. The standard C++ ABI |
| that most platforms follow defines __guard to be 64 bits. The existing |
| implementation of libxx_cxa_guard.cxx follows this. However, the |
| 32-bit ARM C++ ABI defines it as 32 bits instead, and changes the |
| meaning slightly so only the lowest bit is used. This matters because |
| GCC creates guard symbols without regards to what libxx_cxa_guard.cxx |
| says. So on ARM, gcc allocates 4 bytes, but __cxa_guard_release |
| writes 8 bytes, zeroing out another unlucky variable nearby. Fix it |
| by special-casing 32-bit ARM in libxx_cxa_guard. From Jim Paris. |
| - C++: In cwchar it uses CONFIG_LIBC_WCHAR to only export the wc/mb |
| functions. When a build does not want to use wide or multibyte char |
| CONFIG_LIBC_WCHAR is not set. Therefore we should to only export the |
| wc/mb functions when defined. Regardless of the stat of |
| CONFIG_LIBC_WCHAR the non mb/wc definitions such as mbstate_t, |
| wint_t, wctype_t need to be exported. From David Sidrane. |
| - C Library: Fix an error in mkstemp() the could result in an infinite |
| loop. From Alan Carvalho de Assis. |
| - C Library: (1) Fix an error in mkstemp() the could result in an |
| infinite loop. (2) Fix for wrong output in some cases. For Example: |
| (a) input: "FILEXX", output: "FILE00" and repeats same output for |
| further invocations of mkstemp(). But, the output has to be FILE01, |
| FILE02, ...., FILEZZ. (b) input: "FILEXXXXXX", output: "FILE100000", |
| for next invocation "FILE200000" and so on. But it's good, if the |
| output goes like FILE000001, FILE000002, ..., FILE000101, ... From |
| Lokesh B V. |
| - C Library: gethostbyname_r: Fix check for space in buffer. |
| - C Library: inet_ntop() was printing negative values for fields >127. |
| - Math Library: Fix wrong output in modf() API. The sign of integral |
| part given by the modf() should be same as sign of input. But for |
| inputs between 0 and 1, the sign of integral part was not same as |
| sign of input. From Lokesh B V. |
| - Math Library: Fix wrong output in ceil() API. Ex:for input x = 1.0, |
| the output should be 1.0, but the output was 2.0. From Lokesh B V. |
| |
| * Tools |
| |
| - tools/testbuild.sh: Fix missing $ before variable name. |
| - tools/mkdeps.c: Eliminate a warning. MAX_PATH may already be defined |
| in included system files. From Jeff. |
| |
| * Applications: apps/ |
| |
| - All apps/ Makefiles: Add .PRECIOUS: apps/libapps.a to every |
| Makefile. Hopefully this will end awkward problems when you Control-C |
| out of a build and libapps.a is deleted. |
| - platform/Makefile: More attempts to fix for Windows native build. |
| Backslash as a delimiter causes problems in pattern subsitutions. |
| |
| * NSH: apps/nshlib: |
| |
| - NSH network initialization: Fix some ieee 802.15.4 initialization |
| logic. It should not set the saddr or panid; those cannot be |
| hard-coded but must come from the coordinator. Re-factor a function |
| that has gotten too big and too complex. Do not set the IP address |
| for 6loWPAN. The 6loWPAN stack uses IP address that derive from the |
| ieee 802.15.4 addressing and cannot be (safely) configured by the user. |
| - NSH Library: Fix copy-paste typo in nsh_usbconsole.c. From Oleg |
| Evseev. |
| - NSH Library: fix size of 6LoWPAN extended address. |
| - NSH Library: Fix build break in nsh_command.c with IPv4/IPv6 dual |
| stack. From Masayuki Ishikawa. |
| - NSH Library: Correct parsing of ifconfig so that you can specify the |
| HW address without specifying the IP address. |
| |
| * Examples/Tests: apps/examples: |
| |
| - examples/smart: Fix some compilation errors. Obviously this test has |
| not been used in a LONG time. |
| - examples/udp: Renaming some files to prevent name collision in |
| libapps.a. Fix naming of a configuration setting. |
| - examples/nettest: Renaming some files to prevent name collision in |
| libapps.a |
| - examples/nximage: Remove unused global variable. |
| - examples/nsh: Remove APPNAME, PRIORITY, and STACKSIZE settings from |
| Makefile to avoid showing nsh in Builtin Apps. From Masayuki Ishikawa. |
| |
| * Network Utilities: apps/netutils: |
| |
| - netutils/tftpc: Missing header file causes errors in some |
| configurations. |
| - netutils/tftpc: TFTPC depends on CONFIG_NET_IPv4. |
| - netutils/netlib: Fixes to work when only USRSOCK is enabled. |
| - netutils/netlib: Fix netlib_nodaddrconv() so that its return type is |
| the same as other address conversion functions. |
| - netutils/netlib: If only PF_IEEE802154 socket family is enabled, then |
| must use SOCK_DGRAM. |
| - netutils/ftpc: Fix some memory leaks. From Boris Astardzhiev. |
| - netutils/thttpd: Fix a malformed if condition detected by GCC 6.x.x. |
| - netutils/dhcpd: Prevent buffer overflow in dhcpd_addoption. offset |
| represents distance from start of option buffer. So this should be |
| changed current option pointer minus start of buffer. From EunBong |
| Song. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - wireless/ieee802154/i8sak: Need to increment the next_saddr after |
| each successful association. |
| |
| * System Utilities (apps/system) |
| |
| - correct copy-paste typo in comments in composite_main.c From Oleg |
| Evseev. |
| - system/dhcpc: The DHCPC renew command did not build correctly due to |
| naming problems. Noted by Masayuki Ishikawa. |
| - system/dhcpc: Fix warning about renew_main.o appear twice in rule. |
| |
| * Tools (apps/tools): |
| |
| - tools/mkkconfig.bat: Use %cd% instead of %~dp0 for usage of APPSDIR |
| in this batch file. |
| - tools/mkkconfig.bat: Remove quotes in echo. These were begin |
| Echo'ed and generating double quots in the output. From Jeff. |
| - Windows build fixes: tools/mkkconfig.bat - switch APPSDIR path to |
| use forward slashes for kconfig-frontends. interpreters/ficl - |
| Reorder some targets that causes GNUwin32 make to behave badly. From |
| Jeff. |
| |
| NuttX-7.23 Release Notes |
| ------------------------ |
| |
| The 123rd release of NuttX, Version 7.23, was made on December 4, 2017, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.23.tar.gz and |
| apps-7.23.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - sem_open() should return SEM_FAILED on any failures. This is change |
| in the POSIX specification since the original sem_open() was written |
| so many years ago. |
| - exec(): The non-standard interface exec() is now enshrined as a |
| official NuttX API. I really dislike doing this but I think that |
| this is probably the only want to load programs in the protected |
| mode. It is currently used by some example code under apps/ that |
| generate their own symbol tables for linking. Other file execution |
| APIs relay on a symbol table provided by the OS. In the protected |
| mode, the OS cannot provide any meaning symbol table for execution |
| of code in the user-space blob so that is they exec() is really |
| needed in that build case. And, finally, the interface is |
| completely useless and will not be supported in the KERNEL build |
| mode where the contrary is true: An application process cannot |
| provide any meaning symbolic information for use in linking a |
| different process. |
| - OS Internal Functions: Rename many OS internal functions so it is |
| clear that they are not part of the application interface. All |
| internal functions with the sem_* prefix became nxsem_*, sig* become |
| nxsig_*, mq_* become nxmq_*, etc. |
| - Cancellation Points: Add new cancellation point interface, |
| check_cancellation_point(). |
| - Signals: Add logic to wake up a thread that is waiting on a signal |
| if it is canceled. |
| - sigtimedwait(): Add logic to suppress the wait if there is a |
| pending cancellation. |
| - clock_nanosleep(): Implement clock_nanosleep(). nanosleep() is now |
| reduced to a libc wrapper around clock_nanosleep(). |
| - task_delete(): Do not permit user applications to delete kernel |
| threads. |
| - kthread_create(): Rename kernel_thread() to kthread_create() for |
| better naming consistency with task_create() and kthread_delete(). |
| - boardctl(): Remove the BOARDIOC_GRAPHICS_SETUP command. |
| - TCB: Move POSIX thread specific data from pthread TCB to common TCB |
| structure. This change allows using pthread_getspecific and |
| pthread_setspecific from main thread. Patch also enables using |
| pthread data with config option CONFIG_DISABLE_PTHREAD=y. From Jussi |
| Kivilinna. |
| - mm: Remove the CONFIG_GRAN_SINGLE configuration option. It adds no |
| technical benefit (other than some minor reduction in the number of |
| interface arguments) but adds a lot of code complexity. Better |
| without it. |
| - mm: Add a function to get information about the state of the |
| granule allocator. This is the moral equivalent of mallinfo(). |
| |
| * File Systems/Block and MTD Drivers |
| |
| - MT25Q Serial FLASH: Add support for Micron MT25Q series MT25Q128. |
| From Sebastien Lorquet. |
| - MX35LFxGE4AB: Add an MTD driver for Macronix MX35LFxGE4AB serial |
| NAND flash. From Ekaterina Kovylova. |
| - FileMTD: Add block device MTD interface. Block MTD interface |
| allows using block device directly as MTD instead of having to use |
| file-system in between. NOTE that this provides the opposite |
| capability of FTL which will let you use an MTD interface directly |
| as a block device. From Jussi Kivilinna. |
| - BCH: The character driver to block device access now supports an |
| IOCTL to get the geometry of the underlying block device. |
| - mkfatfs: Remove mkfatfs from the OS. This is a user-space |
| application and belongs in apps, not in the OS. |
| - procfs: Implements procfs /proc/fs/blocks and /proc/fs/usage files, |
| replacing the NSH df command. Also implements procfs /proc/fs/mount |
| file, replacing the NSH mount command when there are no arguments. |
| - procfs: Add /proc/meminfo. This is an alternative way to get the |
| information that was previoulsy available in apps/system/free. |
| apps/system/free was removed because it made illegal calls into the |
| OS violating the portable interface. This new procfs entry provides |
| the same information with no such violation. it also provides |
| information about the kernel heap (formerly /proc/kmm), about the |
| use of program memory(formerly /proc/progmem). And also information |
| for the page table usage in the KERNEL build. |
| - UserFS: Adds the UserFS client and of the UserFS feature in |
| general. Initially used Unix domain local sockets instead of |
| message queues. Easier to transfer big data in local sockets than |
| message queues. However, that lead to certain inescapable deadlock |
| conditions So the IPC was converted to UDP LocalHost loopback |
| sockets. The problem with the local sockets is that they do require |
| operations on the top level pseudo-file system inode tree. That |
| tree must be locked during certain traversals such as enumerate |
| mountpoints or enumerating directory entries. This conversion is |
| unfortunate in the sense that Unix local domain sockets are |
| relatively lightweight. LocalHost UDP sockets are much heavier |
| weight since they rely on the full UDP stack. |
| |
| * Graphics/Display Drivers: |
| |
| - Framebuffer character driver: Add framebuffer character device driver. |
| - LCD Framebuffer: Add support for a generic front-end that will |
| convert any LCD driver into a framebuffer driver. |
| - Framebuffer character driver: Include support for LCD drivers that |
| use a simulated framebuffer and must receive explicit notification |
| when there is an update to a region in the framebuffer. |
| - LCD: Make LCD driver configuration independently selected from NX |
| graphics configuration. This makes things awkward and loses some |
| error checking but is a necessary step in order to make LCD drivers |
| usable when the NX graphics system is disabled. |
| |
| * Networking/Network Drivers: |
| |
| - Networking: Add implementation of logic for SIOCGIFCONF and |
| SIOCGLIFCOF IOCTL commands. |
| - Network IOCTLs: Add support for the SIOCGIFBRDADDR ioctl() command. |
| - Routing Tables: Permit IPv4 and IPv6 routing tables to be of |
| different sizes. |
| - Routing Tables: Adds support for read-only routing tables. Prior |
| to this change, routing tables were only support in RAM and had to |
| be initialized with explicit logic to add the necessary routes to |
| the routing table. With this change, routes may be defined in the |
| pre-initialized, read-only routing table provided by the |
| board-specific logic. |
| This would be particularly useful, for example, in the case where |
| there is only a single network adaptor and you want all output |
| packets to go to the single adaptor in all cases. So for that |
| behavior you could add a read-only routing table to the |
| board-specific long that contains a single entry, the default route: |
| 0.0.0.0/0. |
| - Routing Tables. Added support for routing tables in files in a file |
| system. This might be useful for customized, per-unit routing |
| tables. There are two issues with it however: |
| 1. Reading from file system on a per packet basis could be slow. I |
| think it probably should have a small, in-memory cache of most |
| frequently used routes for good problem. |
| 2. Currently the delroute logic is disabled due to a problem with |
| the design. NuttX does not currently support truncate(). |
| Therefore, it is not possible to delete entries from the routing |
| table file. In this current implementation, that leaves the last |
| entry intact at the end of the file. An alternative design |
| might include a tag on each record to indicate if the record is |
| valid or not. That would work but would add complexity to the |
| other routing table functions. |
| - Routing Tables: Add support for an in-memory routing table cache in |
| order to improve performance when the routing table is retained in a |
| file. The cache holds the most recently used routing table entries |
| and so can eliminate some file access. Flush the in-memory cache |
| when any entry is deleted from the routing table. When a router |
| matching an IP address is found, add the routing table entry to the |
| cache. |
| - Routing Tables: Add logic to mark a route as most-recently-used in |
| the route cache. |
| - ICMP: This change adds support for semi-standard IPPROTO_ICMP |
| AF_INET datagram sockets. This replaces the old ad hoc, nonstandard |
| way of implementing ping with a more standard, socket interface. |
| - ICMPV6: This commit adds support for semi-standard IPPROTO_ICMP6 |
| sockets. This is a replacement for the non-standard ICMPv6 ping |
| support that violated the portable POSIX OS interface. |
| - ICMPv6: Add option to manually specify router prefix in router |
| advertisement message. From Sakari Kapanen. |
| - Local Sockets: This commit modifies the Unix domain local socket |
| design. Local sockets are built on top of pipes. The Local socket |
| implementation maintained file descriptors to interrupt with the |
| pipes. File descriptors have the bad property that they are valid |
| only while running on the thread within the task that created the |
| local socket. |
| As a policy, all internal OS implementations must use "detached" |
| files which are valid in any context and do not depend on the |
| validity of a file descriptor at any point in time. This commit |
| converts the usage of file descriptors to detached files throughout |
| the local socket implementation. |
| |
| * Wireless Networking/Wireless Drivers: |
| |
| - IEEE-802154: Adds support for receiving MAC events via IOCTL through |
| socket interface. From Anthony Merlino. |
| - IEEE-802154: Simplifies notify() and rxframe() calls to a single |
| notify() call. dataind's and all other "notifs" are now "primitives" |
| which aligns with standard terminology From Anthony Merlino. |
| - MAC802154: Add support for getting promiscuous mode state From |
| Anthony Merlino. |
| - MAC802154 Character Driver: When in promiscuous mode, the char |
| driver sends the entire frame, including the MAC header. This |
| change adds an offset field indicating the header-payload boundary. |
| It is set to 0 when not in promiscuous mode as the header is not |
| passed to the application |
| - 6LoWPAN: Remove CONFIG_NET_6LOWPAN_FRAMELEN. In this case where |
| multiple radios are supported, this may not be a constant. 6LoWPAN |
| now always queries the driver to get the maximum frame length. |
| - 6LoWPAN: Support sending to a router that is on-link and may be |
| able to forward the packet for us if the destination is not |
| reachable directly. From Anthony Merlino. |
| - XBee: Adds XBee S2C (802.15.4 firmware) support. XBee driver |
| emulates mac802154 interface. From Anthony Merlino. |
| |
| * Other Common Device Drivers: |
| |
| - PowerLED: Add upper-half driver for high power LED driver (powerled) |
| From Mateusz Szafoni. |
| - RTC Driver: Add periodic alarms to upper and lower halves. From |
| Juha Niskanen. |
| - Pipes: Fix writing large buffers not triggering POLLIN for reader |
| poll. From Jussi Kivilinna. |
| - USB CDC/ACM Device: Add support for RX flow control to the CDC/ACM |
| driver. |
| - USB CDC/ACM Device: Add support for flow control TERMIOs in CDC/ACM |
| driver. |
| - USB RNDIS Device: Add RNDIS-over-USB driver. From Sakari Kapanen |
| with added Hi-Speed support from Masayuki Ishikawa. |
| - Loop Driver: Don't use file descriptors... Use the internal file |
| system interfaces so that the loop device can be shared across |
| threads. |
| - APA102 LED controller: Add driver for APA102 LED controller. These |
| LEDs are used on LED Strips and are controlled over SPI. |
| - INA219. Add INA219 Driver. The INA219 is a combined voltage and |
| current sensor that can measure up to 26 volts and a current that |
| depends on an external shunt resistor. Connection happens via |
| i2c/smbus and the chip features a power supply rail that is |
| independent from the measured voltage, so it can measure low |
| voltages. Right now it measures bus voltage and current, and does |
| not use the internal calibrated current reading, nor the available |
| power measurement. From Sebastien Lorquet. |
| - PCA9555: The IRQ subsystem now supports passing a void * parameter |
| to IRQ handlers. Use that method to support multiple PCA9555 |
| devices, by passing a pointer to the device to the board defined IRQ |
| handler. Now the CONFIG_ for multiple PCA devices just allocates |
| device structures dynamically instead of statically when not enabled. |
| The same interrupt handler is entered with the device structure |
| parameter in all situations, multiple or single PCA. One should |
| still be careful if multiple PCA devices share the same IRQ. From |
| Sebastien Lorquet. |
| - APDS-9960: Add driver for the APDS-9960 gesture sensor. From Alan |
| Carvalho de Assis. |
| - MAX7219: Add support to MAX7219 LED Matrix as LCD interface. From |
| Alan Carvalho de Assis. |
| - WM8774: Add WM8774 audio DAC support. From Masayuki Ishikawa. |
| - Nunchuck: Add Nintendo Wii Nunchuck driver. From Alan Carvalho de |
| Assis. |
| |
| * Simulation |
| |
| - Simulation: Add a configuration for non-graphical testing of the |
| framebuffer character driver using apps/example/fb. |
| - Simulation: Add a configuration for testing the UserFS using |
| apps/examples/userfs. |
| |
| * Broadcom BCM2708: |
| |
| - BCM2708: Add enough infrastructrue (more stubs) to get a clean |
| compilation of the Pi Zero configuration (with many undefined things |
| at link time). This includes several register definition header |
| files (some from Alan Carvalho de Assis), basic interrupt handling |
| logic, boot-up files, GPIO support, tickless timer, build and |
| configuration logic |
| |
| * Broadcom BCM2708 Boards: |
| |
| - Raspberry Pi Zero. Basic board support at configs/pizero. Untested |
| in this release and still some remaining issues. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - XMC4500-Relax: Add config for UART3 on RXD P0.0 and TXD P0.1 pins. |
| From Alan Carvalho de Assis. |
| |
| * NXP Freescale LPC17xx Boards: |
| |
| - Open1788: Add initialization of Framebuffer driver. Add |
| configuration for testing the framebuffer driver. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - LPC43xx: Add LPC43xx CAN driver. From Alexander Vasiljev. |
| |
| * NXP Freescale LPC43xx Boards: |
| |
| - MCB1700: Add support for Keil MCB1700 board. From Alan Carvalho de |
| Assis. |
| - Open1788: Add support for the discrete joystick driver. |
| - Open1788: Add a configuration for testing pdcurses with discrete |
| joystick. |
| |
| * On Semiconductor LC823450 |
| |
| - LC823450: Add ADC driver and watchdog drivers. From Masayuki |
| Ishikawa. |
| - LC823450: Add IPL2 support. From Masayuki Ishikawa. |
| - LC823450: Add I2S support. From Masayuki Ishikawa. |
| - LC823450: Add auto LED for CPU activity. From Masayuki Ishikawa. |
| |
| * On Semiconductor LC823450 Boards |
| |
| - LC823450-XGEVK: Enable ADC and watchdog driver. From Masayuki |
| Ishikawa. |
| - LC823450-XGEVK: Add IPL2 support. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Add WM8774 support. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Add auto LED support. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Enable CONFIG_SMP for audio. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Add rndis configuration. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - ARM Kconfig: Add support for classic ARM11 architecture selections. |
| - STM32 Tickless: Removes the restriction to 16-bit counts when a |
| 32-bit timer is used for tickless operation on the stm32. As it |
| was, the restriction is very limiting, especially if one wants high |
| granularity and large achievable intervals and has the hardware |
| (namely the 32bit timers) available. From Rajan Gill. |
| - STM32 L4 Kconfig: Add some L486 and L496 chips. From Juha Niskanen |
| - STM32 F7: Adds architecture support for the STM32 F72x and F73x |
| families. From Bob Feretich. |
| - STM32 F7: Allow changing voltage output scaling setting and |
| prevents enabling over-drive mode for low frequencies (STM32 F74xx, |
| 75xx, 76xx, 77xx). From Jussi Kivilinna. Changes replicated for |
| the 72xx and 73xx families. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 ADC: Added support for ADC's IO_ENABLE_TEMPER_VOLT_CH ioctl |
| on STM32F10XX and STM32F20XX. From Dmitriy Linikov. |
| - STM32 Wakeup: Add logic for enabling wakeup pins. From Oleg Evseev. |
| - STM32 PWR: Adds stm32_pwr_getsbf and stm32_pwr_getwuf functions |
| that return the standby flag and the wakeup flag PWR power |
| control/status register. From Oleg Evseev. |
| - STM32 HRTIM: Sdd support for capture, chopper, deadtime and dump |
| registers. From Mateusz Szafoni. |
| - STM32 RTC: Canceling an alarm marks it as inactive. From Juha |
| Niskanen |
| - STM32 Serial: Add interface to get uart_dev_t by USART number, |
| stm32_serial_get_uart(). From Juha Niskanen. |
| - STM32 F33xx ADC: Initial ADC support for the STM32F33XX. From |
| Mateusz Szafoni. |
| - STM32 F33xx ADC: Add ADC DMA support to STM32F33 configuration. From |
| Mateusz Szafoni. |
| - STM32 L4 ADC: Port analog watchdog ioctl commands from the Motorola |
| MDK. From Juha Niskanen |
| - STM32 L4 ADC: Add option for routing ADC data to DFSDM, fix DFSDM |
| DMA. From Juha Niskanen |
| - STM32 L4 ADC: Add PM hooks from Motorola MDK |
| - STM32 L4 FLASH: Add function for modifying device option bytes, |
| From Juha Niskanen. |
| - STM32 L4 DFSDM: Add peripheral support for digital filters for |
| sigma-delta ADCs. Initial version. Timer trigger support is not |
| completed and there is some issue with DMA. From Juha Niskanen. |
| - STM32 L4 I2C: Port then STM32 F7 I2C driver to STM32 L4. STM32L4 I2C |
| driver is in work-in-progress state (plentiful of TODOs and |
| #warnings) and lags many features found in more up-to-date STM32 I2C |
| drivers. The peripheral on STM32F7 and STM32L4 are identical except |
| for L4's 'wakeup from stop mode' flag and STM32F7's I2C driver is in |
| more 'ready to use' state. The I2C clock configuration is kept the |
| same as before (I2CCLK = PCLK1 80 MHz) instead of switching to |
| STM32F7 arch default that is I2CCLK=HSI. Further work would be to |
| add configuration option for choosing I2C clock source instead of |
| current hard-coded default. From Jussi Kivilinna. |
| - STM32 L4 RTC: Add up_rtc_getdatetime_with_subseconds |
| - STM32 L4 RTC: Change maximum alarm time from 24h to one month. From |
| Juha Niskanen. |
| - STM32 L4 RTC: Add support for periodic interrupts with |
| (experimental) CONFIG_RTC_PERIODIC. From Juha Niskanen. |
| - STM32 L4 SDMMC: Add support for an SDMMC driver. From Miha Vrhovnik. |
| - STM32 L4 Serial: Suspend serial for Stop mode. From Juha Niskanen. |
| - STM32 L4 Serial/PM: STM32L4 serial PM interface improvements: |
| Check rx/tx buffers for pending data in pmprepare. Remove adhoc PM |
| interfaces and move serial suspend functionality behind CONFIG_PM. |
| From Jussi Kivilinna. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103-Minimum: Add board support for APA102 driver. From Alan |
| Carvalho de Assis. |
| - STM32F103-Minimum: Add ADC support on stm32f103-minimum board. |
| From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add support for LM75 in the stm32f103-minimum |
| board. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add an ADPS-9960 example configuration. From |
| Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add board support for MAX7219 LED Matrix |
| controller. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add USB MSC device initialization to |
| stm32f103-minimum. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add framebuffer driver initialization for |
| stm32f103-minimum board. From Alan Carvalho de Assis. |
| - STM32F103-Minimum: Add Nunchuck board support for |
| stm32f103-minimum board. From Alan Carvalho de Assis. |
| - STM32F4 Discovery: Add support for JLX12864G display on STM32F4 |
| Discovery board. From Alan Carvalho de Assis. |
| - Viewtool-STM32F107: Add support to auto-mount the procfs file system. |
| - Photon: Support SPI1 and SPI3. From Anthony Merlino. |
| - STM32F334-DISCO: Add lower half driver for high power LED |
| (powerled). From Mateusz Szafoni. |
| - STM32F334-DISCO: Add flash mode support for powerled driver. From |
| Mateusz Szafoni. |
| - STM32F334-DISCO: Add powerled example configuration. From Mateusz |
| Szafoni. |
| - STM32F334-DISCO: Add lower-half driver for SMPS (buck-boost onboard |
| converter). From Mateusz Szafoni |
| - Nucleo-F334R8: Add logic for zero latency high priority interrupts |
| example. From Mateusz Szafoni. |
| - Nucleo-F334R8: Add highpri example configuration. From Mateusz |
| Szafoni. |
| - STM32 F4 Discovery: Added support for the LIS3DSH accelerometer on |
| the STM32F4 Discovery rev. C boards. From Florian Olbrich. |
| - STM32 F4 Discovery: ROMFS for STM32F4 Discovery board. From Tomasz |
| Wozniak. |
| - STM32 F4 Discovery: Add a USB MSC configuration. From Alan Carvalho |
| de Assis. |
| - STM32 F4 Discovery: RNDIS support on STM32F4Discovery + DM-STF4BB. |
| NOTE: MAC address for the host side starts 0xaa. This assignment |
| scheme should be fixed later. From Masayuki Ishikawa. |
| - STM32 F4 Discovery: Add STM32F4 Discovery board support for |
| Nunchuck joystick. From Alan Carvalho de Assis. |
| - STM3240G-EVAL: Add a configuration for testing the Framebuffer |
| character driver using the LCD framebuffer front. |
| - STM3240G-EVAL: Mount procfs if enabled. |
| - STM3240G-EVAL: Add support for pdcurses and the pdcurses demo |
| programs in the 'fb' configuration. |
| - Clicker2-STM32: Adds SD card, automount, and syslog file |
| support and fixes a few minor issues. From Anthony Merlino. |
| - Clicker2-STM32: Adds support for USB RNDIS device. From Anthony |
| Merlino. |
| - Olimex STM32-H407: Add serial support on the on-board UEXT |
| connector. Add USART6 for UEXT connector. Add nsh_uext |
| configuration and README update. From Jan Pobříslo. |
| - Nucleo-F410RB: Add support for the nucleo-F410RB board. From |
| Gwenhael Goavec-Merou. |
| - STM32F429i-DISCO: Add framebuffer driver initialization. Add a |
| framebuffer (fb) configuration. |
| - STM32F429i-DISCO: Add logic to auto-mount procfs. Enable procfs in |
| all configurations that use NSH. |
| - STM32F429i-DISCO: Enable support for the STMPE811 touchscreen |
| controller. Enable touchscreen and also the touchscreen testa at |
| apps/examples/touchscreen in the fb configuration. |
| - STM32F429i-DISCO: Convert NxWM configuration to use LTDC |
| framebuffer driver instead of SPI serial. Also reduce number of |
| layers from 4 to 1 in fb configuration. Only one layer is used. |
| - STM32L476-MDK: Add support for the on-board LEDs. |
| - Nucleo-L496ZG: Add DFSDM initialization. From Juha Niskanen |
| - Nucleo-L496ZG: Add support for SDMMC driver. From Miha Vrhovnik. |
| - Nucleo-L496ZG: Enable I2C4 bus with i2ctool in NSH configuration. |
| From Jussi Kivilinna. |
| - Nucleo-L496ZG: Make HSE on Nucleo-L496ZG default to enable USB. |
| From Miha Vrhovnik. |
| - Nucleo-F746ZG: Use the serial console over /dev/ttyACM0 by default. |
| The Nucleo-F746ZG doesn't come with Arduio RS-232 shield, then it is |
| better to use the serial over the /dev/ttyACM0 that is created |
| automatically when the board is plugged in the computer. From Alan |
| Carvalho de Assis. |
| - Nucleo-144: Adds support for the Nucleo-144 boards with |
| STM32F722ZE. From Bob Feretich. |
| |
| * ZiLOG Z80 |
| |
| - z80/include: compiler.h, limits.h, types.h: Update SDCC/z80 files |
| to include support for long long, inline, __FILE__, and __func__. |
| |
| * C Library/Header Files: |
| |
| - include/: Add stdnoreturn.h. Holds definitions for the C11 |
| noreturn keyword. Applies to C too. |
| - include/netinet/tcp.h: Add trivial standard tcp.h header file. |
| - libc: Add support for readv() and writev(). |
| - libc: Adds tcflow(). |
| - libc: Add support for sigwait(). |
| - libnx: Changes to allow the font subsystem to be built without |
| enabling the entire graphics system (CONFIG_NX). Adds |
| CONFIG_NXFONTS and CONFIG_NXGLIB. Needed to duplicate some Kconfig |
| setting for NXFONTs if it can be configured and built independently |
| of NX. |
| |
| * Tools: |
| |
| - tools/configure.sh: Add special support so that you can start with a |
| windows native configuration and install on a different host (and |
| vice versa). |
| - tools/configure.c: Duplicate new functionaity added to configure.sh. |
| - tools/configure.sh: This commit adds a -m option for macOS. For |
| anyone not aware, Apple renamed OSX to macOS recently; thus the 'm' |
| instead of 'o'. This does not change the other uses of *_OSX to |
| macOS. From jeditekunum. |
| - tools/configure.c: Update functionality to match last change to |
| tools/configure.sh. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib: mount command no long uses the non-standard OS |
| interface foreach_mountpoint(). Now simply cats /proc/fs/mount |
| when there are no arguments to the mount command. |
| - apps/nshlib: df command no long uses the non-standard OS interface |
| foreach_mountpoint(). Now simply cats /proc/fs/blocks or |
| /proc/fs/usage. |
| - apps/nshlib: The free commands no longer used mallinfo() to get |
| the state of the use heap. Two reasons: That is not useful |
| information in the kernel build. And (2) there are other memory |
| resources of interest in other configurations such as the Kernel |
| heap in PROTECTED and KERNEL builds, and the prog mem uses when |
| FLASH is used to hold modifiable data. The free command has been |
| extended to just dump the content of procfs entries and to include |
| all of these other memory resources of the procfs entries are |
| available. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/fb: Add a simple test for the framebuffer character |
| driver.. |
| - apps/examples/ostest: sem_open() now returns SEM_FAILED in the |
| event of a failure. |
| - examples/ostest: Extend cancellation test to make sure that |
| cancelable threads waiting on a message queue or on a signal can be |
| canceled. |
| - Added a simple reader example for the LIS3DSH acceleration sensor |
| on STM32F4Discovery. From Florian Olbrich. |
| - apps/examples/apa102: Add a Rainbow example for APA102 LED Strip. |
| From Alan Carvalho de Assis. |
| - apps/examples/flowc: Add a simple test of serial hardware flow |
| control. |
| - Add powerled driver example. From Mateusz Szafoni. |
| - apps/examples/ina219: A simple infinite loop that polls the INA219 |
| sensor and displays the measurements. From Sebastien Lorquet. |
| - apps/examples/alarm: Add options for reading alarm value and |
| canceling it. From Juha Niskanen. |
| - Add -n samples to lm75 app and replace Centigrade with Celsius. |
| From Alan Carvalho de Assis. |
| - apps/examples/adps9960: Add ADPS-9960 example. From Alan Carvalho |
| de Assis. |
| - apps/examples/obd2: Add OBD2 example application. From Alan |
| Carvalho de Assis. |
| - apps/examples/userfs: Add a test case for verifying UserFS. |
| - apps/examples/smps: Add SMPS driver example. From Mateusz Szafoni. |
| - apps/examples/pdcurses: Bring in pdcurses demos and make them |
| conform to the NuttX coding style. |
| - apps/examples/pdcurses: Add a very simple example that just shows |
| the entire character set (7-bit only). It adapts to the size of |
| the framebuffer and, hence, can be used with very tiny displays. |
| In fact it looks really dumb on big displays. |
| - apps/examples/nunchuck: Add Nunchuck example application. From |
| Alan Carvalho de Assis. |
| |
| * File System Utilities: apps/fsutils: |
| |
| - apps/fsutils/mkfatfs: Move mkfatfs from the OS to here. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/netlib: Add netlib_ipv6adaptor() and |
| netlib_ipv4adaptor(). |
| - apps/netutils/netlib: Add helpers for reading the routing table: |
| netlib_read_ipv4route() and netlib_read_ipv6route(). |
| - apps/netutils/netlib: Add new utilities netlib_ipv[4|6]router() |
| that can be used to determine the IP address of a router that would |
| be used some some destination IP address that is not locally |
| accessible. |
| - apps/netutils/ftpc: Adds support for IPv6 and fixes various |
| transfer issues. From Anthony Merlino. |
| |
| * CANUtilities: apps/canutils: |
| |
| - apps/canutils/libobd2: Add libobd2 for NuttX. From Alan Carvalho |
| de Assis. |
| |
| * Graphics: apps/graphics: |
| |
| - graphics/traveler: Convert to use the framebuffer driver. |
| - apps/graphics/pdcurs34: This commit brings the public domain |
| pdcurses library into NuttX. NuttX graphics support based on the |
| framebuffer character drivers has been integrated. Input is |
| currently limited to a discrete joystick driver. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/ieee802154/i8sak: Adds socket interface support. You |
| can now use both socket or char driver to control the MAC layer. |
| From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Adds sniffer port option and a few |
| other get/set parameters. From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Changes 'notif' to 'primitive' |
| corresponding to the changes in the Kernel. From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Channel setting is now saved |
| locally, so when performing a startpan or assoc, the channel |
| previously set is still used, even though the MAC layer gets reset. |
| From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Adds ability to get/set rxonidle |
| setting for MAC layer. From Anthony Merlino. |
| - apps/wireless/ieee802154/i8shark: Adds i8shark, a sniffer "adapter" |
| that captures all 802.15.4 traffic, packages it into a Wireshark ZEP |
| packet, and sends it to a host running Wireshark From Anthony |
| Merlino. |
| |
| * System Utilities (apps/system) |
| |
| - apps/system/ping and ping6: This commit removes the ping and ping6 |
| commands from NSH and replaces then with the apps/system/ping and |
| apps/system/ping6 built-in commands. The NSH ping[6] commands had |
| to be removed because they violated the portable POSIX OS interface. |
| The apps/system/png and ping6 command uses the sem-standard |
| IPPROTO_ICMP and IPPROTO_ICMP6 socket interfaces. |
| |
| * Platform-Specific Support (apps/platform) |
| |
| 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: |
| |
| - Task Environment Creation: Fix an error in the duplication of the |
| child tasks environment in the special case where the parent's |
| environment was created, but then all of the variables were unset. |
| In that case, there is still an allocation in place but the size of |
| the allocation is zero. This case was not being handled correctly |
| when a child task attempts to create its environment and inherit the |
| zero-size partent environment. Noted by Anthony Merlino. |
| - timer_create(): Fix watchdog resource leak if cannot allocate a new |
| timer. From Bruno Herrera. |
| - OS Internal Functions: Internal OS functions should not return error |
| information via the user errno variable: This includes functions |
| like file_seek(), file_read(), file_write(), etc. The complete list |
| is too long to duplicate here (please refer to the ChangeLog for |
| details). |
| - OS Internal Functions: Not only should internal OS functions not |
| modify the errno variable, they should never introduce cancellation |
| points: psock_connect(), psock_listen(), psock_getsockopt(), etc. |
| The list is too long to duplicate here (please refer to the |
| ChangeLog for details). |
| - OS Internal Functions: Create OS internal versions of many |
| applications functions that were used by the OS. The new versions |
| differ from the application interfaces in that (1) they do not |
| return error information via the errno variable, and (2) they never |
| create cancellation points. This includes new internal interfaces |
| like nxsem_init() that is like sem_init(), etc. There are too many |
| to list here (see the ChangeLog for details). |
| - Task Exit: task_exithook.c fails to link if signals are disabled |
| because was unconditionally trying to send the SIGCHLD signal to the |
| parent in certain configurations. Noted by Jeongchan Kim. |
| - memalign(): Fix heap corruption caused by using unaligned chunk |
| size. Unaligned nodes generated by memalign later cause heap |
| corruptions when nodes are shrink further (for example, 24 bytes -> |
| 8 bytes, when alignment is 16 bytes). From Jussi Kivilinna. |
| - SMP: In sched/sched/sched_cpuselect.c, in order to find the cpu |
| with the lowest priority thread, we have to remember the already |
| found lowest priority. Noted by Anonymous in Issue #75. |
| - spinlocks: Disable local interrupts in spin_setbit() and |
| spin_clrbit() in order to avoid a deadlock condition. From Masayuki |
| Ishikawa. |
| - atexit()/on_exit(): Clear atexit()/on_exit() function pointer |
| before calling it. On most archs, up_assert() calls exit() so |
| without this change, if atexit() function triggers an assertion we |
| are in endless loop. From Juha Niskanen. |
| |
| * File System/Block and MTD Drivers: |
| |
| - tmpfs: Fixed directory unlocking in tmpfs_opendir. From Dmitriy |
| Linikov. |
| - fcntl(): fcntl() did not return success fail for F_SETFL. Reported |
| by Jussi Kivilinna. |
| - tcdrain(): tcdrain() was recently added to the NuttX C library. |
| But there is a problem. The specification of tcdrain() requires |
| that it be a cancellation point. In order to do this, tcdrain was |
| moved from the C library into the OS and the addition cancellation |
| point hooks were added. In non-FLAT builds, access via system calls |
| is also now supported. |
| - FS FAT: Fix hard-fault when listing contents of FAT root. From |
| Jussi Kivilinna. |
| - procfs: Correct a problem that was causing an apparent directory to |
| be reported as a file instead of a directory by opendir. This |
| happened after adding these three new procfs entries: fs/block, |
| fs/mount, and fs/usage. Of course, there is no directory fs in this |
| case, only three files that have fs/ in their relative pathnames. |
| The logic was detecting that fs was the name of the enty to report, |
| but it was then declaring that fs was a file (because fs/block is of |
| type file). This was fixed by adding a check for matching lengths. |
| i.e., if strlen(fs) != strlen(fs/block), then report fs as a |
| directory instead of a file. |
| - procfs: Fix uptime being clse to maximum 32-bit value in certain |
| config. From Juha Niskanen. |
| |
| * Binary Loader: |
| |
| - binfmt/: Don't schedule starthook if there are no constructors. |
| |
| * Graphics/Display Drivers: |
| |
| - LCD: ILI9341 initialize method not permitted to set errno. |
| |
| * Networking/Network Drivers: |
| |
| - Networking: net/netdev/netdev_ifconfig.c: Was not returning all of |
| the address info. |
| - Networking: In some cases, packets are still not sent behind the |
| router. I found that NuttX sends the ARP requests not to the router |
| but to the target. Mistake in file net/route/netdev_router.c. From |
| Aleksandr Kazantsev. |
| - SIOCGIFCONF and SIOCGLIFCONF IOCTL commands should only report on |
| network adatpors in the UP state. |
| - recvfrom(): Fix double leave_cancellation_point on error path. |
| From Jussi Kivilinna. |
| - send(): Verify that sock descriptor is valid. Fixes assertion when |
| using send on closed socket. From Jussi Kivilinna. |
| - sendto(): Remove assert check for null psock and buf input |
| pointers. Removes check as 'psock == NULL' altogether because that |
| checked for later in psock_send and psock_sendto. Change null check |
| for 'buf' so that it is handled same as in recvfrom.c (return |
| -EINVAL instead of assert). From Jussi Kivilinna. |
| - sockgetname() files need to include udp/udp.h and tcp/tcp.h or |
| otherwise NET_UDP_HAVE_STACK and NET_TCP_HAVE_STACK are undefined |
| and the logic is never compiled. Noted by Anthony Merlino. |
| - dup()/dup2(): There was a reference counting problem in the TCP |
| logic of net_clone(). net_clone() which is the common logic |
| underlying dup() and dup2() for sockets. When net_clone() calls |
| net_start_monitor() and net_start_monitor() returns a failure |
| (because the underlying TCP connection) then net_clone() must back |
| out the reference count on the structure. Problem noted by Pascal |
| Speck and this implementation of the solution is based on his |
| suggestion. |
| - close(): There was a possible recursion that could eventually |
| overflow the stack. The error occurred when closing the socket with |
| inet_close() while a socket callback was still queued. When the |
| socket callback was executed by devif_conn_event(), this resulted in |
| a call to psock_send_eventhandler() with TCP_CLOSE flag set which |
| then called tcp_lost_connection(). tcp_shutdown_monitor() then |
| called tcp_callback() again, which again called |
| psock_send_eventhandler(), and so on.... Noted by Pascal Speck. |
| Solution is also similar to a solution proposed by Pascal Speck. |
| - inet: Add check for protocol before handing out TCP and UDP sockets. |
| - IP Forwarding: Fixes typo that caused build error when IP |
| forwarding was enabled with CONFIG_NET_ICMPv6_NEIGHBOR enabled as |
| well. From Anthony Merlino. |
| - IP Forwarding: Do not add link layer header size to d_len inside |
| devif_forward(). From Anthony Merlino. |
| - TCP Networking: When CONFIG_NET_TCP_WRITE_BUFF=y there is a |
| situation where a NULL pointer may be dereferenced. In this |
| configuration, the TCP connection's 'semi-permanent' callback, |
| s_sndcb was nullified in tcp_close_disconnect. However, other logic |
| in tcp_lost_connection() attempt to use that callback reference |
| after it was nullifed. Fixed in tcp_lost_connectino() by adding a |
| NULL pointer change before the access. This was reported by Dmitriy |
| Linikov in Bitbucket Issue 72. |
| - UDP Broadcast: Fix some issues with regard to UDP broadcast |
| handling. This is Bitbucket Issue #77. |
| - ICMP: Fix an error in the poll logic. It was assumed that the |
| input parameter pvconn was valid. It was not. Instead, the poll |
| logic must work like the sendto() and recvfrom() logic: It must |
| keep a copy of the conn structure in the private data. |
| - ICMPv6: Fixes several errors preventing icmpv6_radvertise.c from |
| being compiled. Fixes conversions to network byte order (namely |
| vlifetime, plifetime, mtu). IPv6 source address is set to |
| link-local IP address instead of the address in the netdev |
| structure. This is in compliance to RFC 4861. RA didn't work on |
| Linux before this change. Finally, router prefix and prefix length |
| are derived from the IPv6 address and netmask in the netdev |
| structure. This seems to make more sense than using a predefined, |
| separate prefix from the config. From Sakari Kapanen. |
| - ICMPV6: icmpv6_input() needs to set d_len to 0 after consuming echo |
| reply, otherwise, garbage will get sent out. From Anthony Merlino. |
| - ICMPV6: Fix an error in the poll logic. It was assumed that the |
| input parameter pvconn was valid. It was not. Instead, the poll |
| logic must work like the sendto() and recvfrom() logic: It must |
| keep a copy of the conn structure in the private data. |
| - IGMPv2 Send: Fix incoming IGMP checksum calculation. From Louis |
| Mayencourt. |
| - ARP: Fix IGMP Ethernet address computation. From Louis Mayencourt. |
| |
| * Wireless/Wireless Drivers: |
| |
| - CC1101: CC1101 driver not permitted to set errno. |
| - 6LoWPAN: Correct an error in uncompressing multicast address. |
| - 6LoWPAN: Correct a bug in handling uncompressed frames (IPv6 |
| dispatch). Adds a separate local variable, protosize, to keep track |
| of the size of thep protocol header. |
| - 6LoWPAN: Fix an endian-ness problem in 6LoWPAN address |
| decompression. From Anthony Merlino. |
| - 6LoWPAN: The logic that extracts interface identifier from the IP |
| address needs to be generalized to handle cases where the address is |
| not a link local address. From Anthony Merlino. |
| |
| * Common Drivers: |
| |
| - Serial: 16550 UART driver IOCTL method must not set errno; it must |
| return a negated errno value. |
| - LIS3DSH: Added the argument parameter (FAR void *arg) to the |
| interrupt handler provided by the LIS3DSH driver to fit the |
| definition for ISRs in xcpt_t. Changed the check for working queue |
| availability in lis3dsh interrupt handler to use work_available() |
| and not crash in case of an overrun. From Florian Olbrich. |
| - LIS2DH: Fixes for self-test. From Jussi Kivilinna. |
| - LIS2DH: Fix use of obsolete dbg macro. From Jussi Kivilinna. |
| - LIS331DL: LIS331DL driver not permitted to set errno. |
| - HTS221: Power-on sensor for loading calibration data. From Jussi |
| Kivilinna. |
| - MCP2515: Fix the MCP2515 Bit Rate Prescale calculation. Fix BRP |
| for SET_BITTIMING ioctl as well. From Alan Carvalho de Assis. |
| - STMPE811: Fix GPIO operation of STMPE811 driver. |
| 1. STMPE811_GPIO_DIR was defined for register name and later was |
| redefined to be the pin direction mask for `stmpe811_gpioconfig`. |
| I decided to change register name to be STMPE811_GPIO_DIR_REG, and |
| keep pin direction mask STMPE811_GPIO_DIR, so that any external |
| code that already use this driver will be unchanged. |
| 2. The STMPE811 register GPIO_DIR uses bit value 1 for output and 0 |
| for input, but `stmpe811_gpioconfig` set the opposite. |
| 3. The call to `stmpe811_gpiowrite` from inside of |
| `stmpe811_gpioconfig` leaded to deadlock. |
| From Dmitriy Linikov. |
| - BQ2429X: Add BATIO_OPRTN_SYSON for enabling BATFET after SYSOFF. |
| From Jussi Kivilinna. |
| |
| * Simulation: |
| |
| - Simulation: Serial and console drivers are not permitted to set |
| the errno. |
| |
| * ARMv7-M: |
| |
| - ARM Stack Check: Fix assert panic when both TLS and interrupt stack |
| are enable. From Jussi Kivilinna. |
| |
| * Infineon XMC4xxx Drivers: |
| |
| - XMC4 USIC: Kconfig was not selecting XMC4_USIC for USIC1. From Alan |
| Carvalho de Assis. |
| - XMC4 UART: Fix XMC4xxx USIC UART sginal to be high level when in idle. |
| From Alan Carvalho de Assis. |
| - XMC4 UART:xmc4_uart_configure() expects the channel# not uartbase as |
| an input parameter. From Alan Carvalho de Assis. |
| - XMC4 UART: Enable RX/TX status. From Alan Carvalho de Assis. |
| - XMC4 UART: The Alternative Receive Interrupt was not being |
| configured. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - XMC4500-Relax: Setup max. freq. 120MHz and setup pull-up to UART |
| RXD pin. From Alan Carvalho de Assis. |
| |
| * Microchip/Atmel SAMv7 Drivers: |
| |
| - SAMv7: DAC and ADC drivers are not permitted to set the errno. |
| - SAMv7: Correct an error in RX DMA setup. From Manish Kumar Sharma. |
| - SAMv7 USB: It is necessary to disable pre-emption and interrupts |
| around a loop that copies TX data into the hardware in order to |
| avoid a TX data underrun condition. From Anthony Merlino. |
| |
| * NXP/Freescale LPC31xx Drivers: |
| |
| - LPC31xx: Serial and console drivers are not permitted to set |
| the errno. |
| |
| * NXP/Freescale LPC43xx: |
| |
| - lpc43xx: lpc43_adc.c was being selected by the build system when |
| DAC was selected. |
| |
| * NXP/Freescale LPC43xx Drivers: |
| |
| - LPC43xx Ethernet: Fix some backward logic setting full-duplex and |
| 100mbps when autoconfiguration is disabled. Noted by Anonymous in |
| Issue #76. |
| - lpc43xx: UART_RX pins should be configured with input buffers |
| enabled. Otherwise it cannot be read. From Alexander Vasiljev. |
| |
| * STMicro STM32: |
| |
| - STM32 F2: Fixed build for STM32F20XX platforms when |
| CONFIG_STM32_DMACAPABLE is enabled. From Dmitriy Linikov. |
| - STM32 F4: Remove ltdc.h and dma2d.h. Those header files in that |
| location permitted inclusion into application space logic and, |
| hence, facilitated and encouraged calling into the OS and violating |
| the portable POSIX OS interface. The definitions in those header |
| files were move the appropriate location in the counterpart, |
| architecture specific files at arch/arm/src/stm32/dma2d.h and ltdc.h. |
| - STM32 L4: Build stm32l4_idle.c only if CONFIG_ARCH_IDLE_CUSTOM is |
| not enabled. From Jussi Kivilinna. |
| - STM32 F7: Remove ltdc.h and dma2d.h. Those header files in that |
| location permitted inclusion into application space logic and, |
| hence, facilitated and encouraged calling into the OS and violating |
| the portable POSIX OS interface. The definitions in those header |
| files were move the appropriate location in the counterpart, |
| architecture specific files at arch/arm/src/stm32f7/dma2d.h and |
| ltdc.h. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32: DAC and ADC drivers are not permitted to set the errno. |
| - STM32 ADC: Clear pending interrupts. From Mateusz Szafoni. |
| - STM32 CAN: Lower part of STM32 CAN driver |
| arch/arm/src/stm32/stm32_can.c uses all three hw tx mailboxes and |
| clears TXFP bit in the CAN_MCR register (it means transmission order |
| is defined by identifier and mailbox number). |
| This creates situation when order frames are put in upper part of |
| CAN driver (via can_write) and order frames are sent on bus can be |
| different (and I experience this in wild). Since CAN driver API |
| pretends to be "file like" I expect data to be read from fd the same |
| order it is written. So I consider described behaviour to be a bug. |
| Fixed by settin the TXFP bit in the CAN_MCR register (FIFO |
| transmit order). From comments by Alexey T, in Bitbucket Issue 73. |
| - STM32 HRTIM: Fix pclk calculation. From Mateusz Szafoni. |
| - STM32 HRTIM: Fix burst mode prescaler update. From Mateusz Szafoni. |
| - STM32 (alt) I2C: Ensure proper error handling. Injecting data |
| errors would cause the driver to continually reenter the isr with |
| BERR an RxNE. This fix allows the error to be cleared and |
| propagated to the waiting task. From David Sidrane. |
| - STM32: LTDC and DMA2D drivers are not permitted to set the errno. |
| - STM32 RTC: Workaround for potential subseconds race condition. In |
| all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed |
| to lock the values in the higher-order calendar shadow registers |
| until RTC_DR is read. However many old chips have in their errata |
| this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD |
| and likely others): "When reading the calendar registers with |
| BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after |
| reading the RTC_SSR register. This happens if the read operation is |
| initiated one APB clock period before the shadow registers are |
| updated. This can result in a non-consistency of the three |
| registers. Similarly, RTC_DR register can be updated after reading |
| the RTC_TR register instead of being locked." |
| - STM32 Serial: Do not stop processing input in SW flow-control |
| mode. From Juha Niskanen. |
| - STM32F33xxx ADC: Add some publicly visible interfaces and some |
| code to support injected channels. From Mateusz Szafoni. |
| - STM32F33xxx DMA: Add public interface to handle with DMA |
| interrupts. From Mateusz Szafoni. |
| - STM32F33xxx RCC: Fix CAN clock enable. From Mateusz Szafoni. |
| - stm32 F4 I2C: Ensure proper interrupt handling. Injecting data |
| errors that causes a STOP to be perceived by the driver, will |
| continually re-enter the isr with SB not set and BTF and RxNE set. |
| This changes allows the interrupts to be cleared and propagates a |
| I2C_SR1_TIMEOUT to the waiting task. From David Sidrane. |
| - STM32 L4 Serial: Do not stop processing input in SW flow-control |
| mode. From Juha Niskanen. |
| - STM32 F7: LTDC and DMA2D drivers are not permitted to set the errno. |
| - STM32 L4: DAC and ADC drivers are not permitted to set the errno. |
| - STM32 L4 DAC: Do not configure output pin if it is not used. From |
| Juha Niskanen. |
| - STM32 L4 RTC, PM: Small fixes to subseconds handling, ADC |
| power-management hooks |
| - STM32 F4 RTC: Fix reading alarm value that is more than 24h in |
| future. From Juha Niskanen |
| - STM32 L4 RTC: Fix reading alarm value that is more than 24h in |
| future. From Juha Niskanen |
| - STM32 L4 TIM: Fix compilation of timers with complementary outputs |
| when not PWM_MULTICHAN. From Juha Niskanen. |
| - STM32 L4 RCC: Restore backup-registers after backup-domain reset. |
| From Jussi Kivilinna. |
| - STM32 L4 RTC: Correct RTC_SSR and RTC_TR read ordering. In all |
| recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to |
| lock the values in the higher-order calendar shadow registers until |
| RTC_DR is read. Change the register read ordering to match this and |
| don't keep a workaround for a hypothetical race condition (not in |
| any L4 errata, lets for once assume ST's silicon works as it is |
| documented...) |
| - STM32 L4 RTC: Init mode was never exited because nested locking in |
| rtc_synchwait() disabled backup domain access. From Juha Niskanen. |
| - STM32 L4 RTC: Use backup register magic value instead of INITS |
| bit. The INITS (bit 4) of RTC_ISR register cannot be used to |
| reliably detect backup domain reset. This is because we can operate |
| our device without ever initializing the year field in the RTC |
| calendar if our application does not care about correct date being |
| set. Hardware also clears the bit when RTC date is set back to year |
| 2000. From Juha Niskanen. |
| - STM32 L4 RTC: Put back the SSR race condition workaround. ST has |
| confirmed that the issue has not been fixed, and that it applies to |
| STM32 L4 too (was not in errata sheets due to documentation bug) See |
| discussion: https://community.st.com/thread/43710-issue-with-rtc-maximum-time-resolution . |
| From Juha Niskanen. |
| - STM32 F7 BBSRAM: Avoid assert in stm32_bbsram_savepanic. If panic |
| happens before stm32_bbsram is initialized, stm32_bbsram_savepanic |
| caused additional assert panic. Function has null pointer check, so |
| drop DEBUGASSERT. From Jussi Kivilinna. |
| - STM32 F7 I2C: fix I2C_M_NORESTART handling. From Jussi Kivilinna. |
| - STM32 F7 I2C: Restore bus frequency after I2C reset. Copy |
| frequency restoration fix from STM32L4 I2C driver to STM32F7 I2C |
| driver. From Jussi Kivilinna. |
| - STM32 F7 RTC: Fix reading alarm value that is more than 24h in |
| future. From Juha Niskanen |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F334-DISCO: Add missing ram_vectors configuration in linker |
| script. From Mateusz Szafoni. |
| - Nucleo-F334R8: Add missing ram_vectors configuration in linker |
| script. From Mateusz Szafoni. |
| - Nucleo-F334R8: Add Missing ADC trigger configuration tot he highpri |
| configuration. From Mateusz Szafoni. |
| - STM3240G-EVAL: The timer frequencies (BOARD_TIMx_FREQUENCY) are |
| incorrectly defined in board.h. Since the APB prescalers are set to |
| divide by 4 and 2 respectively, the frequencies should be "2xAPBx" |
| as said in the comment. The correct frequencies are already defined |
| but as STM32_APBx_TIMx_CLKIN. From Mattias Edlund. |
| - STM32F429i-DISCO: The ltdc configuration has been deleted because |
| it violated the portable POSIX OS interface. It used |
| apps/examples/ltdc and include ltdc.h and dma2d.h which were also |
| removed for the same reason. |
| |
| * ZiLOG Z80 |
| |
| - configs/z80sim and xtrs: Serial driver lower halves ioctl methods |
| should return a negated errno value, not set the errno variable. |
| - z80 Make.defs: Fixes dependency generation with newest SDCC |
| compiler. |
| - configs/z80sim: Fix a naming problem. Also, don't try to build the |
| serial driver if CONFIG_NFILE_DESCRIPTOR=0. |
| - Z80: Makefile fix for use with current SDCC. |
| |
| * Build System |
| |
| - configs/: All defconfig files that include |
| CONFIG_NET_ICMPv6_SOCKET=y need to select CONFIG_SYSTEM_PING6=y and |
| deselect CONFIG_DISABLE_POLL. |
| - configs/: All NX configuration... Because of recent changes to |
| libnx/nxfonts, Supported bit per pixel must be separated specified |
| for NXFONTs too and need to match the select BPP for NX. |
| - Build system: Fix CONFIG_BUILD_KERNEL logic directories that have |
| ubin and kbin subdirectories. Conditional logic was fine for |
| CONFIG_BUILD_FLAT and CONFIG_BUILD_PROTECTED but generated useless |
| dependencies if CONFIG_BUILD_KERNEL. |
| |
| * C Library/Header Files: |
| |
| - libc/stdio: Build the lib_noflush() and lib_snoflush() stubs even |
| if CONFIG_FILE_DESCRIPTORS=0. They may still be needed. |
| - libc and libnx: When the libraries are built into two libraries, a |
| user space library and a OS space library (as in the PROTECTED and |
| KERNEL build). Then the user space library must not use the OS |
| internal interfaces; similarly, the OS must avoid using the |
| userspace interfaces so that it does not muck the errno value or |
| create spurious cancellation points. |
| - libc/match: Use of exp() vs expf() in logf() caused function to be |
| slow. From Alan Carvalho de Assis. |
| - libnx: Fixes a memory leak that is caused because the client message |
| queue is not unlinked after the client disconnects from the NX |
| server. From Masayuki Ishikawa. |
| - sscanf(): Fix sscanf() character conversion (%c): do not add '\0' at |
| the end as for strings, cause, for example, parsing one character |
| will fill two bytes: character itself and zero one '\0' after it, so |
| will overflow one byte variable argument and corrupt memory for |
| variables allocated after it. From Oleg Evseev. |
| |
| * Tools |
| |
| - tools/: configure.sh and configure.c should redirect stdout to |
| /dev/null but should not suppress stderr output. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib/: Avoid truncating the strcmp result in the parser |
| into a unsigned char variable. nshlib/nsh_netcmds.c: Check for |
| valid hostip before using it. From Bruno Herrera. |
| - apps/nshlib/: Fix resource leak in 'dd' commenad when 'if=' or |
| 'of=' params are repeated in the command line. For example: |
| dd if=/dev/null if=/dev/zero of=/dev/null or |
| dd if=/dev/zero of=/dev/zero of=/dev/null. From Bruno Herrera. |
| - apps/nshlib: This commit eliminates the ping and ping6 commands |
| from NSH and replaces them with 'built-in' commands at |
| apps/system/ping and ping6. The original NSH version of ping[6] |
| commands violated the portable POSIX interface and, hence, had to |
| be removed. The new system/ping and ping6 built-in commands uses |
| the new IPPROTO_ICMP AF_INET and IPPROTO_ICMP6 AF_INET6 datagram |
| sockets to implement ping. |
| - apps/nshlib: Fix parsing of empty strings when CONFIG_NSH_CMDPARMS |
| is not defined. Problem noted by Juha Niskanen. |
| |
| * Examples/Tests: apps/examples: |
| |
| - All configurations that use NXIMAGE or NXHELLO must select |
| NX_MULTIUSER. All configurations that use examples/nxterm must |
| enable CONFIG_LIB_BOARDCTL. |
| - All configurations that use NXLINES must select NX_MULTIUSER. All |
| configurations that use the NX server need to have larger POSIX |
| messages. |
| - apps/examples/adc: Fix g_adcstate.count initialization. From |
| Masayuki Ishikawa. |
| - apps/examples/elf: Remove low-level interfaces and replace with |
| call to exec(). |
| - apps/examples/nxflat: Remove low-level interfaces and replace with |
| call to exec(). |
| - examples/ostest: Works around a bug in printf() when cancellation |
| points are enabled. printf() is a cancellation point because it |
| calls write(). This is correct according to OpenGroup.org. |
| However, printf holds the stdio library semaphore when it is |
| canceled and this leaves the semaphore in a bad state. No fix for |
| the printf bug yet. |
| - apps/examples/nx: The NX example no longer supports single user |
| mode. |
| - apps/examples/nxtext: The nxtext example no longer supports single |
| user mode. |
| - apps/examples/nxhello now supports only multiuser mode. |
| - apps/examples/nximage now supports only multiuser mode. |
| - examples/nxlines: Now supports only multiuser mode. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/ftpc: Fix some crazy comparisons to determine is a |
| file is an absolute path. Noted by Anthony Merlino. |
| |
| * System Utilities (apps/system) |
| |
| - apps/system/i2ctool: Fixed i2ctool write operation in `no restart` |
| mode (flag `-n`). It seems that I2C driver has changed a bit since |
| i2ctool was written, so now i2ctool sends repeated start even if |
| `no restart` flag (-n) was passed to it. From Dmitriy Linikov. |
| |
| NuttX-7.24 Release Notes |
| ------------------------ |
| |
| The 124th release of NuttX, Version 7.24, was made on March 2, 2018, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.24.tar.gz and |
| apps-7.24.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore(). |
| These APIs are simplified version of enter_critical_section() |
| and leave_critical_section() to protect data (e.g. registers) in |
| SMP mode. By using these APIs inside drivers, performance will |
| be improved. From Masayuki Ishikawa. |
| - System Timer: Replace critical section APIs with spinlock APIs. |
| (64bit only). If SMP=n or SMP=y && SPINLOCK_IRQ=n, this works |
| in the same way as before. If SMP=y && SPINLOCK_IRQ=y, performance |
| will be improved. From Masayuki Ishikawa. |
| - POSIX Timers: Replace critical section APIs with spin lock APIs in |
| clock_gettime.c. This change will improve performance for SMP |
| systems but nothing changes for non-SMP systems. In SMP mode, |
| the running TCB is not always at the g_readytorun.head. From |
| Masayuki Ishikawa. |
| - SMP: Introduce spin_lock_wo_note() and spin_unlock_wo_note(). These |
| APIs are used in sched_note.c to protect instrumentation data. The |
| difference between these APIs to existing spin_lock() and |
| spin_unlock() is that they do not perform instrumentation to avoid |
| recursive call when SCHED_INSTRUMENTATION_SPINLOCKS=y. From |
| Masayuki Ishikawa. |
| - Interrupts: Add a configuration option to show interrupt |
| information via a procfs file. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - VFS: Add support for truncate() and ftruncate(). |
| - FAT, SmartFS, UserFS, UnionFS, TmpFS, NFS: Add truncate() support. |
| - FAT. Effectively handles the situation when a new file position is |
| within the current sector. Accelerates the work of the FS with a |
| multitude of operations to write small pieces of data within the |
| current sector. From Aleksandr Vyhovanec. |
| |
| * Graphics/Display Drivers: |
| |
| - HiletGo OLED: Add configuration support for HiletGo SSD1306 OLED. |
| - lcd/ft80x: This commit adds an FTDI/BridgeTek FT80x GUI driver. It |
| is untested (I don't even have hardware yet) and, hence, it is |
| marked as EXPERIMENTAL). |
| |
| * Networking/Network Drivers: |
| |
| - 6LoWPAN: Adds configuration options for specifying preloaded |
| address contexts for compression From Anthony Merlino. |
| - TCP: Introduce tcp receive window control based on I/O buffer. |
| NOTE: The algorithm is still experimental but useful for http |
| streaming. From Masayuki Ishikawa. |
| - UDP: Add an implementation of UDP write buffering. |
| - Routing Tables: Adding ftruncate() support eliminates an issue |
| in file-based routing table management system. |
| - Telnet: Add support for Telnet character mode From Masayuki |
| Ishikawa. |
| |
| * Other Common Device Drivers: |
| |
| - drivers/input/ft5x06.c: Add a driver for the FT5x06 capacitive, |
| multi-touch, touchscreen controller. |
| - drivers/input/ft5x06: Add a polled mode of operation for the FT5x06 |
| in attempt to work around the fact that the LPCXpresso-LPC54628 |
| chose a non-interrupt pin for the FT5x06 interrupt. Driver is still |
| not yet functional. |
| - drivers/power/bq2429x.c: Add trickle charging mode From Juha |
| Niskanen. |
| - drivers/sensors: Add support to MAX44009 ambient light sensor. |
| From Juha Niskanen. |
| - drivers/sensors: Added support for LIS3DH accelerometer sensor. |
| From Matt Thompson. |
| - drivers/eeprom: EEPROM driver for AT24xx compatible EEPROMs. |
| From Sebastien Lorquet. |
| |
| * Simulation |
| |
| - sim: Add support for a RAM MTD driver and initialization for use |
| with SmartFS. |
| - sim: Add support for testing NXFFS. |
| |
| * ARM: |
| |
| - ARMv7-A, ARMv7-R, ARMv7-M: Add atomic read-add-write and |
| read-subtract-write functions. |
| |
| * Infineon XMC4xxx: |
| |
| - XMC4xxx: Refactor PLL setup, refactored PLL/CLK config, easier, |
| checks for correctness, call go_os_start if STACK_COLORIZED, smarter |
| config of EXTCLK output freq. From David Alessio. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - Add FPU to xmc4 ostest. Remove +x from makefiles, preserve |
| .gdbinit across make clean, add FPU support to ostest on xmc4, |
| add FPU test to ostest on xmc4 From David Alessio. |
| |
| * Microchip/Atmel SAMD/L Drivers: |
| |
| - SAMD: SAMD External Interrupt Controller (EIC) support From Matt |
| Thompson. |
| - SAMD/L: Added Analog Comparator basic initialization From Matt |
| Thompson. |
| - SAMD/L: Added FDPLL clock support. Fixed sequence of OSC32K |
| calibration setup. From Matt Thompson. |
| - SAMD/L: Added loading factory USB calibration data from NVRAM. |
| From Matt Thompson. |
| - SAMD/L: Added experimental DMA support to SPI driver. spi_exchange() |
| uses a pair of DMA channels for TX and RX. From Matt Thompson. |
| |
| * Microchip/Atmel SAM3/4 Boards: |
| |
| - Flip&Click SAM3X: Add board support for the Mikroe Flip&Click |
| SAM3X. |
| - Flip&Click SAM3X: Adds basic board support for the HiletGo OLED. |
| |
| * Microchip PIC32MZ |
| |
| - PIC32MZEF: Add architectural support for the PIC32MZEF family. |
| |
| * Microchip PIC32MZ Boards |
| |
| - Flip&Click PIC32MZ: Adds board support for the Mikroe Flip&Click |
| PIC32MZ board. |
| - Flip&Click PIC32MZ: Add board support for HiletGo OLED. |
| - Flip&Click PIC32MZ: Add an nxlines configuration for use in |
| testing the custom HiletGo Click board. |
| |
| * NXP Freescale LPC43xx Drivers: |
| |
| - LPC43xx: Adapt LPC176x RTC driver for the LPC43xx. From Gintaras |
| Drukteinis. |
| - LPC43xx: Add Windowed Watchdog Timer (WWDT) driver. Tested on |
| LPC4357 but should be compatible for all LPC43xx MCUs. |
| From Gintaras Drukteinis. |
| - Leverage the LPC54xx SD/MMC back to the LPC43xx (where it came from |
| originally). |
| |
| * NXP Freescale LPC43xx Boards: |
| |
| - Bambino-200e: Add LPC43 SDMMC board support to Bambino-200E. From |
| Alan Carvalho de Assis. |
| |
| * NXP Freescale LPC54xx: |
| |
| - LPC546xx: Added basic architectural support for the LPC546xx |
| family. |
| |
| * NXP Freescale LPC54xx Drivers: |
| |
| - LPC546xx: Basic NSH configuration includes support for UARTs, |
| SysTick timer, GPIOs, LEDs, and buttons |
| - LPC546xx: Additional drivers include EMC, I2C, Ethernet |
| - LPC546xx: Implement GPIO interrupt support. |
| - LPC546xx: And unverified SPI driver is included. |
| - LPC546xx: Ported LPC1788 LCD driver to use the LPC54xx pin. |
| - LPC546xx: Bring in LPC43xx SD/MMC driver from |
| https://github.com/Smoothieware/smoothie-nuttx/tree/master/nuttx/arch/arm/src/lpc43xx |
| and adapt for use with the LPC43xx |
| - LPC546xx: Add DMA driver ported from the LPC43xx GPDMA driver. |
| - LPC546xx: Bring in WWDT driver from LPC43. |
| - LPC546xx: Add an RTC driver and a RTC character driver lower half. |
| - LPC546xx: Add support for a random number generator. |
| - LPC546xx: Add an Ethernet driver. |
| |
| * NXP Freescale LP54xx Boards: |
| |
| - LCXpresso-LPC54628: Added support for the LPCXpresso-LPC54628 |
| board. The initial bring-up used a basic NSH port. |
| - LCXpresso-LPC54628: On-board SDRAM is also supported |
| - LCXpresso-LPC54628: Add support for I2C2 and for the I2C tool to |
| the NSH configuration. |
| - LCXpresso-LPC54628: Add support for the USER button. Enable the |
| apps/examples/button test in the NSH configuration. |
| - LCXpresso-LPC54628: Add the fb configuration for testing the LCD. |
| - LCXpresso-LPC54628: Add support for the the FT5x06 touchscreen |
| controller. Enable the driver as well as the apps/examples |
| touchscreen test. |
| - LCXpresso-LPC54628: Add an NxWM configuration. |
| - LCXpresso-LPC54628: Add logic to bring up SDMMC. |
| - LCXpresso-LPC54628: Add logic to register the RTC character driver |
| if it is enabled. Enable the RTC and RTC character driver in the |
| NSH configuration. |
| - LCXpresso-LPC54628: Add a netnsh configuration that was be used to |
| test the Ethernet driver. |
| - LCXpresso-LPC54628: Add LittlevGL graphics demo configuration. |
| |
| * On Semiconductor LC823450 |
| |
| - LC823450 SMP improvements: (1) Apply irq_spin APIs to |
| modifyregXX, (2) Do not use modifyreg32() to enable Mutex, (3) |
| Modify IRQ control for i2s. Apply irq_spin APIs to |
| dma/syscontrol/usbdev. From Masayuki Ishikawa. |
| - LC823450: LC823450 http streaming improvements: (1) Use spinlock |
| APIs in lc823450_gpio.c. (3) Fix a potential race condition in |
| up_enable_irq(), (3) Use spinlock APIs instead of critical section |
| APIs, (4) Enable HRT_TIMER in lc823450_timerisr.c. (5) Use spinlock |
| APIs instead of critical section APIs. (6) Fix race conditions in |
| dma/usbdev. From Masayuki Ishikawa. |
| - LC823450: Introduce DVFS. This version only supports manual mode |
| and Vdd1 is fixed to 1.2V. From Masayuki Ishikawa. |
| |
| * On Semiconductor LC823450 Drivers |
| |
| - LC823450: Refactor timer driver. Add MTM timer APIs for DVFS. |
| Introduce up_rtc_gettime() for CONFIG_RTC_HIRES. Introduce idle |
| time calculation in DVFS. Also, DVFS autonomous mode based on CPU |
| idle time is supported. NOTE: voltage control is still disabled. |
| From Masayuki Ishikawa. |
| |
| * On Semiconductor LC823450 Boards |
| |
| - LC823450-XGEVK: I2S interrupt will be handled on CPU0 with this |
| change. Assign CPU1 to lpwork. This change will improve load |
| balancing for networking with RNDIS. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Enable SPINLOCK_IRQ and NXPLAYER in rndis. From |
| Masayuki Ishikawa. |
| - LC823450-XGEVK: LC823450 http streaming improvements: (1) In SMP |
| mode, H/W interrupts should be handled on CPU0 to avoid deadlocks. |
| (2) Call up_enable_irq() to assign CPU0 for IRQ handling. (3) |
| Enable HRT_TIMER, LC823450_MTM0_TICK, SPINLOCK_IRQ, (4) Enable |
| NET_TCP_RWND_CONTROL, NXPLAYER_HTTP_STREAMING_SUPPORT (rndis only) |
| From Masayuki Ishikawa. |
| - LC823450-XGEVK: Enable DVFS in lc823450_bringup.c. Enable DVFS |
| in audio and rndis. Add Telnet character mode to rndis. From |
| Masayuki Ishikawa. |
| - LC823450-XGEVK: Explicitly assign I2S IRQ handling to CPU0. From |
| Masayuki Ishikawa. |
| - LC823450-XGEVK: Enable RTC_HIRES instead of RTC_DATETIME (audio/ |
| rndis). Disable TCP_WRITE_BUFFERS and change SCHED_LPWORKPRIORITY |
| (rndis). Update SMP and DVFS related part. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32 F7: Add support for the STM32F72x/73x family. From Bob |
| Feretich. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 HRTIM: Add interface to change outputs SET/RST configuration. |
| From Mateusz Szafoni. |
| - STM32 HRTIM: Add interface to get timer clock frequency, |
| calculation, add compare/capture registers significant bits |
| checking. From Mateusz Szafoni. |
| - STM32 HRTIM: Add interface to set timer frequency, fix slave timers |
| reset configuration, change POWER_INFO to TIMER_INFO From Mateusz |
| Szafoni. |
| - STM32 HRTIM: Add repetition support and fix enum overflow From |
| Mateusz Szafoni. |
| - STM32 HRTIM: Add HRTIM push-pull mode configuration. From |
| raiden00pl. |
| - STM32 FLASH: Add progmem support for STM32L15XX From Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - configs/photon: Adds BOARD_TIMn_FREQUENCY macros From Anthony |
| Merlino. |
| - configs/indium-f7: Adds support for the RAF Research Indium-F7 |
| board. From Bob Feretich. |
| - Rename the configs/stm32f0discovery board directory to |
| configs/stm32f051-discovery. There are others stm32f0discovery |
| boards with different MCUs and different peripherals on the board. |
| From Alan Carvalho de Assis. |
| - configs/stm32f072b-discovery: Adds support for stm32f072b-disco |
| board. This is the board. I added the LEDs of this board and tested |
| the compilation. From Alan Carvalho de Assis. |
| - configs/stm32f103-minimum: Add AT24 EEPROM support on STM32F103- |
| Minimum board From Alan Carvalho de Assis. |
| - configs/stm32f103-minimum: Add support to BMP180 on BluePill |
| (stm32f103-minimum) board. From Alan Carvalho de Assis. |
| - configs/stm32f334-disco: Add buck converter and boost converter |
| logic. From Mateusz Szafoni. |
| - configs/stm32f103-minimum: Add zerocross support to STM32F103- |
| Minimum board From Alan Carvalho de Assis. |
| - configs/stm32f103-minimum: Add OLED SSD1306 support to |
| STM332F103-Minimum From Alan Carvalho de Assis. |
| - configs/stm32f103-minimum: Add board support to MAX6675 Thermocouple |
| sensor From Alan Carvalho de Assis. |
| - configs/stm32f746g-disco: Add stm32f746g-disco Ethernet configuration. |
| Add USART1 support (connected to the USB virtual serial port) From |
| Louis Mayencourt. |
| - configs/viewtool-stm32f107: Add support for FT80X initialization. |
| Add ft80x configuration that will eventually be used for testing the |
| ft80x if I ever receive hardware. |
| |
| * Tools: |
| |
| - tools/logparser: Add a tool which will help me to convert git logs |
| to ChangeLog format. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib: Add support for a truncate command. This will be used |
| to test the new ftruncate file system support. |
| - apps/nshlib: Add support for Telnet character mode. From Masayuki |
| Ishikawa. |
| - apps/nshlib: Add support for '-n' option to the echo command. From |
| Masayuki Ishikawa. |
| - apps/nshlib: Add irqinfo command. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/userfs: Add truncate() support for userfs. |
| - apps/examples/lvgldemo: Add lvgldemo example for LittlevGL. |
| - apps/examples/veml6070: Add VEML6070 Application Example. From |
| Alan Carvalho de Assis. |
| - apps/examples/bmp180: Add BMP180 application example. From Alan |
| Carvalho de Assis. |
| - apps/examples/ft80x: Add a test of the FT80x based on FTDI |
| SampleApp. Includes tests of GPU primitives and graphics co- |
| processor commands. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/netlib: Add default route in netlib_set_dripv4addr(). |
| From Masayuki Ishikawa. |
| |
| * Graphics: apps/graphics: |
| |
| - apps/graphics/littlevgl: Add littlevgl library. From Alan Carvalho |
| de Assis. |
| - apps/graphics/ft80x: Add the FTDU FT80x GUI support library. |
| Consists of some display list helpers, audio helpers, touch helpers, |
| RAM access, register access etc. |
| |
| * System Utilities (apps/system) |
| |
| - apps/system/nxplayer: Add support for HTTP streaming in nxplayer. |
| From Masayuki Ishikawa. |
| - apps/system/setlogmask: Adds 'setlogmask' application that allows |
| you to set the syslog priority via a simple command. From Anthony |
| Merlino. |
| - apps/system/usbmsc: Added Kconfig options to configure write |
| protection for each LUN. From Fabio D'Urso. |
| - system/stackmonitor: Re-design the stack monitor so that it does not |
| make forbidden calls directly into the OS, breaking the portable POSIX |
| OS interface. It now properly uses the PROCFS file system to glean |
| information about stack usage. |
| |
| 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: |
| |
| - System Timer: Change the way that the 64-bit time is sampled. |
| Previously, we disabled interrupts before sampling the 64-bit |
| timer since the uint64_t access is not atomic on most CPUs. However, |
| disabling (local) interrupts does not work in the SMP case. In that |
| case, the timer interrupt may be running on only one of the CPUs; |
| disabling interrupts on a different CPU will provide no protection |
| from timer rollover. To work around this, logic was added that |
| samples 64-bit timer is sampled twice and if 32-bit rollover was |
| detected between samples, then loops until there is no rollover. |
| - POSIX Timers: In SMP mode, running TCB is not always at the head of |
| the g_readytorun list. This change removes DEBUGASSERT() to avoid |
| this condition. From Masayuki Ishikawa. |
| - Spinlocks: Add memory barrier operations in spin_unlock(). In ARM |
| document regarding memory barriers, SP_DMB() must be issued before |
| changing a spinlock state to SP_UNLOCKED. However, we found that |
| SP_DSB() is also needed to ensure that spin_unlock() works |
| correctly for network streaming aging test. From Masayuki Ishikawa. |
| - Sporadic Scheduler: Fix compiler error in Sporadic Scheduler when |
| priority inheritance is enabled. Noted by eunb.song@samsung.com |
| - Priority Inheritance: Fix some priority inheritance related issues |
| noted during review of logic. Also add some REVISIT comments for some issues noted in the design. |
| - boardctl: Remove the BOARDIOC_TSCTEST_TEARDOWN and |
| BOARDIOC_TSCTEST_SETUP boardctl() commands. Remove all |
| implementations of board_tsc_teardown(). Each board now initializes |
| the touchscreen controller as a normal part of its board bring-up. |
| board_tsc_setup() is gone; the touchscreen controller is now treated |
| like any other on-board device. |
| - configs: CONFIG_MAX_TASKS must be a power of 2. |
| - SMP: Introduce a new global IRQ clearing logic and tasklist |
| protection. The previous implementation of clearing global IRQ in |
| sched_addreadytorun() and sched_removereadytorun() was done too |
| early. As a result, nxsem_post() would have a chance to enter the |
| critical section even nxsem_wait() is still not in blocked state. |
| This patch moves clearing global IRQ controls from |
| sched_addreadytorun() and sched_removereadytorun() to |
| sched_resumescheduler() to ensure that nxsem_post() can enter the |
| critical section correctly. For this change, |
| sched_resumescheduler.c is always necessary for SMP configuration. |
| In addition, by this change, task_exit() had to be modified so that |
| it calls sched_resumescheduler() because it calls |
| sched_removescheduler() inside the function, otherwise it will cause |
| a deadlock. However, I encountered another DEBUGASSERT() in |
| sched_cpu_select() during HTTP streaming aging test on LC823450-XGEVK. |
| Actually sched_cpu_select() accesses the g_assignedtasks which might |
| be changed by another CPU. Similarly, other tasklists might be |
| modified simultaneously if both CPUs are executing scheduling logic. |
| To avoid this, I introduced tasklist protection APIs. With these |
| changes, SMP kernel stability has been much improved. From Masayuki |
| Ishikawa. |
| - SMP: Fix this_task() to be an atomic operation. In the previous |
| implementation, this_task() was defined in sched.h by using just a |
| macro current_task(this_cpu()). However, I found that this is not |
| atomic and actually sometimes switching CPU happened in executing |
| the macro when we tested audio steaming plus executing commands via |
| Telnet. This change resolves this issue by implementing atomic |
| this_task()in sched_thistask.c which is newly introduced. From |
| Masayuki Ishikawa. |
| - SMP: Implements a global scheduler lock capability as part of SMP |
| support. This allows the scheduler to be locked with no knowledge |
| or access to the TCB of the currently running task. This is |
| necessary because accessing the TCB of the currently running task |
| is, itself, a non-atomic operation. This global scheduler lock |
| capability was add just to support that atomic access to the TCB. |
| - SMP: Extend the last global lock change to work with the |
| LC823450-XGEVK which does not support the atomic fetch add but |
| does support disabling interprocessor interrupts. Disabling |
| interprocessor interrupts will also guarantee that the TCB address |
| calculation is atomic. |
| - SMP: Fix a infinite recursion problems that a recent changes |
| introduced into the i.MX6 SMP implementation. This is not seen |
| with the LC823450 because you can disable inter-processor interrupts |
| in that architecture; but you cannot in the ARMv7-A/GIC architecture. |
| - SMP: Remove SMP related logic in sig_dispatch.c. This change |
| prevents from a deadlock in up_schedulesigaction.c where inter-CPU |
| signal handling is actually implemented. arch/arm/src/armv7-m: Fix |
| signal handling for SMP. In previous implementation, signal handling |
| for SMP was incorrect. Thus, for example, if an inter-CPU signal |
| happened an incorrect tcb was signaled and caused ASSERT(). This |
| change fixes the issues and works for both inter-CPU signal handling |
| and signal handling on the same CPU. From Masayuki Ishikawa. |
| - Tasking: Add nxtask_create(). Kthread_create() and nxtask_create() |
| are internal OS functions and should not modify the errno variable. |
| Convert legitimate uses of task_create() to nxtask_create(). |
| Review handling of returned values from all uses of kthread_create() |
| (as well as nxtask_create()). |
| - Tasking: Threads started by board bring-up logic should be kernel |
| threads, not user tasks. |
| - Tasking: Threads started by drivers should be kernel threads, not |
| user tasks. |
| - Semaphore Usage: Added ECANCELED condition to DEBUGASSERT's |
| checking sem_wait result From Dmitriy Linikov. |
| |
| - errno: Add new internal OS function nxsched_setaffinity() that is |
| identical to sched_isetaffinity() except that it does not modify the |
| errno value. All usage of sched_setaffinity() within the OS is |
| replaced with nxsched_setaffinity(). |
| - errno: Internal functions sched_reprioritize() and |
| sched_setpriority() no longer modify the errno value. Also renamed |
| to nxsched_reprioritize() and sched_setpriority(). |
| - errno: Add new internal OS function nxsched_getscheduler() that is |
| identical to sched_getscheduler() except that it does not modify the |
| errno value. All usage of sched_getscheduler() within the OS is |
| replaced with nxsched_getscheduler(). |
| - errno: Add new internal OS function nxsched_setparam() that is |
| identical to sched_setparam() except that it does not modify the |
| errno value. All usage of sched_setparam() within the OS is |
| replaced with nxsched_setparam(). |
| - errno: Add new internal OS function nxsched_getparam() that is |
| identical to sched_getparam() except that it does not modify the |
| errno value (actually, the previous value erroneously neglected to |
| set the errno value to begin with, but this fixes both issues). All |
| usage of sched_getparam() within the OS is replaced with |
| nxsched_getparam(). |
| - errno: wd_start() is an internal OS function and should not set the |
| errno value. Reviewed and updated every call to wd_start() to |
| verify if return value is used and if so if the errno value is |
| accessed. |
| - errno: Fix several inappropriate accesses to get_errno() that were |
| missed in previous changes (some going back to nuttx-7.23). Add new |
| nxsched_setscheduler() and nxsched_getaffinity() which are |
| equivalent to their counterparts without the nx on front. These |
| versions do not modify the errno value. Changed all calls within |
| the OS to use these newer versions of the functions. |
| - errno: binfmt/, configs/, graphics/, libc/, mm/, net/, sched/: OS |
| references to the errno variable should always use the set_errno(), |
| get_errno() macros. |
| - drivers/, fs/ and libc/: OS references to the errno variable should |
| always use the set_errno(), get_errno() macros. |
| |
| * File System/Block and MTD Drivers: |
| |
| - FAT: CONFIG_FAT_MAXFNAME may not exceed NAME_MAX (CONFIG_NAME_MAX) |
| - NFS: Correctly infer file type. The file type is in struct |
| nfs_statinfo_s's ns_type field, not in the ns_mode field. From |
| Michael Jung. |
| - NFS: Fix buffer corruption. In case multiple read requests to the |
| NFS server are required to fill up the user provided buffer, |
| nfs_read() might write behind the end of said buffer. This is fixed |
| with this change. From Michael Jung. |
| - VFS: reopen() should return NULL when oflags is less than 0, not |
| equal to 0. Because negative value is returned on failure of |
| lib_mode2offlags() which converts the mode string into file open |
| mode flag. |
| - ProcFS: Fix an error in a common function that manages read data. |
| - drivers/mmcsd: Respect SDIO_CAPS_DMABEFOREWRITE on CMD25. From |
| Evgeniy Bobkov. |
| - AT24xx: Correct page size for AT24C02 part. From Alexander |
| Oryshchenko. |
| - mtd_config.c: Add still more error handling (to detect bad |
| underlying flash implementations). Remove MTD_ERASE that was |
| erasing data block instead of erase block. This is a partial |
| revert of 4f18b4. Reported-by: Pascal Speck <iktek01@yahoo.com> |
| |
| * Graphics/Display Drivers: |
| |
| - drivers/lcd: Fix the default I2C address of SSD1306 OLED display |
| (7- vs 8-bit addressing) From Alan Carvalho de Assis. |
| - drivers/lcd: lcd_framebuffer.c does not need to include board- |
| specific board.h. |
| - include/lcd: Eliminate a warning from an SSD1306 header file by |
| adding a forward reference to struct i2c_master_s. From Sebastien |
| Lorquet. |
| |
| * Networking/Network Drivers: |
| |
| - ARP: Fix an error introduced when ICMP and ICMP6 socket support was |
| added in NuttX-7.3. A gratuitous ARP (or solicitation) was being |
| sent after receive of the ECHO replay (advertisement). |
| - ARP: Fix IGMP multicast address computation on Nuttx network stack. |
| This change fixes the IGMP address computation to allow multicast |
| UDP messages. The destination address was created with the incorrect |
| bytes of the given IPv4 address. From Louis Mayencourt. |
| - ioctl: The existence of the network driver ioctl() method should |
| depend on CONFIG_NETDEV_IOCTL rather than CONFIG_NETDEV_PHY_IOCTL. |
| The former enables the method, the later enables a subset of |
| possible driver IOCTLs. |
| - TCP: Write buffering logic should not wait for a free buffer if |
| the socket was opened non-blocking. |
| - TCP: Fixed bad return value handling in psock_tcp_send(). send() |
| expects psock_tcp_send() to return a negated errno value, not -1 |
| with the errno set (GN: I added same change for tcp_send_buffered.c |
| which has the same issue as tcp_send_unbuffered.c) From Pelle |
| Windestam. |
| - TCP: Fixes hardfault when network goes done and network monitoring |
| is in place. From Gianpaolo Ferroni Ariani. |
| - TCP: tcp_send_[un]buffered.c: Check routing table in |
| psock_send_addrchck(). Previously only ARP table was considered |
| when determining if the data will actually be sent. From Juho |
| Grundstrom. |
| - TCP: Generalize Juho Grundstrom's IPv4 change for IPv6 as well. |
| - UDP: Remove some conditional logic that was true if there is only a |
| single network device, but not true in the multi-device context. |
| - UDP: In sendto(), return EHOSTUNREACH if the network is down. |
| |
| * Common Drivers: |
| |
| - drivers/pipes: In poll logic, fix off-by-one error in calculation |
| of bytes in the buffer. Buffer calculation in pipe poll setup is |
| off-by-one when read index is larger than write index. This causes |
| poll() not getting POLLIN when buffer has one byte as calculation |
| gives zero bytes in buffer. From Jussi Kivilinna. |
| - drivers/audio: Improve stability of the WM8776 driver in SMP mode. |
| Apply irq_spin APIs to improve performance. Repeat to process a |
| message to avoid deadlock. From Masayuki Ishikawa. |
| - drivers/ioexpander: Fixed build of PCF8574 driver when its |
| interrupts aren't enabled by config. From Dmitriy Linikov. |
| - drivers/syslog: Fixes LOG_UPTO macro to include specified log level. |
| From Anthony Merlino. |
| - drivers/sensors: Fix HTS221 sensor reset with BOOT bit From Jussi |
| Kivilinna. |
| - drivers/loop: If we want to open read-only in losetup.c, flags |
| should be O_RDONLY not O_RDWR. From Fabio D'Urso. |
| - drivers/timers/ds3231.c: Correct some debug statements. From |
| Alexander Oryshchenko. |
| - drivers/sensors/lis2dh: Use realtime clock if monotonic is not |
| available From Juha Niskanen. |
| - drivers/i2c and drivers/spi: Fix compile error if |
| CONFIG_DISABLE_PSEUDOFS_OPERATIONS, fix bad NULL checks From Juha |
| Niskanen. |
| |
| * ARMv7-A: |
| |
| - Data Cache: Fix cp15_invalidate_dcache. In cases where more than |
| one dcache line was to be invalidated, a missing branch label |
| would result in a false branch target into cp15_flush_idcache. Also |
| the .size macro was fixed for both cp15_invalidate_dcache. From |
| Michael Jung. |
| - SMP: Port the signal-related SMP change by Masayuki Ishikawa to the |
| ARMv7-A family. |
| |
| * Extensa: |
| |
| - SMP: Port the signal-related SMP change by Masayuki Ishikawa to the |
| Xtensa family. |
| |
| * Infineon XMC4xxx Drivers: |
| |
| - XMC4xxx: Only setup USB clock when USB PLL is enabled From Alan |
| Carvalho de Assis. |
| - XMC4xxx: Fix USIC_BRG_SCLKCFG definition From Alan Carvalho |
| de Assis. |
| |
| * Microchip PIC32MZ |
| |
| - MIPS32: In up_idle, the kludge that was conditionally enabled if |
| the work queue was enable appears to be needed even when he work |
| queue is not enabled on the PIC32MZ. |
| - PIC32MZ: Fix some typos in debug instrumentation in pic32mz-gpio.c; |
| fix some typos related to UART5 configuration in pic32mz-serial.c. |
| |
| * Microchip/Atmel SAMD/L: |
| |
| - SPI: In sam_spibus_initialize(), the pinmux configuration was |
| smashing the previous CTRLA register configuration. There are |
| also some typos in samd_spi.h From Matt Thompson. |
| - SPI: Fixes g_spi2ops and g_spi2dev using incorrect values From Matt |
| Thompson. |
| - SPI: SPI must be disabled before changing the mode bits in CTRLA |
| register From Matt Thompson. |
| - DMA: Fix DMA controller support. From Matt Thompson. |
| |
| * NXP/Freescale LPC17xx Drivers: |
| |
| - LPC17xx: Disable LPC17 FDR when not used. If a boot loader set the |
| fractional divider (FDR) the baud rate in nuttx will be wrong |
| (multiplied by this fraction). So if it is not used, it should be |
| disabled. From Harald Gutsche. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis: Correct some Ethernet PHY register bit tests for the |
| KSZ8081 PHY. From Stewart. |
| |
| * On Semiconductor LC823450 |
| |
| - arch/arm/src/LC823450: Add SP_DMB() into lc823450_testset.c. |
| In LC823450, ldrex and strex are not supported. So we implemented |
| up_testset() with H/W Mutex. However, there was a bug in memory |
| access order. This change ensures correct memory access order in |
| up_testset() for LC823450. From Masatoshi Tateishi. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F3 RCC: A flash wait state configuration. Flash latency must |
| be fixed according to sysclk frequency. If this operation is not |
| done or done after PLL configuration, the STM32 fail to continue |
| boot operation if the frequency if greater than 24MHz according to |
| the board variable STM32_SYSCLK_FREQUENCY. Tested on stm32f334-disco |
| board. From Gwenhael Goavec-Merou. |
| - STM32 RTC: Make STM32 usable with an external RTC. |
| - STM32 SPI: Removed unnecessary (and incorrect) speed limitation. |
| From Alexander Oryshchenko. |
| - STM32 SPI: I have a SPI bus with both Mode 0 and Mode 3 devices |
| on it. After performing SPI I/O to a Mode 0 device, switching to a |
| Mode 3 device locked up the SPI interface. Only zeroes would be |
| read. I traced the reason for the lock-up to arm/arm/src/stm32f7/stm32_spi.c function spi_setmode(). Changing |
| the mode causes a spurious SPI clock transmission that confuses the |
| stm32f7 SPI input hardware. This problem is solved by (1) changing |
| the SPI mode with SPI (and perhaps DMA) disabled, and (2) flushing |
| the receive FIFO if the mode change results in garbage in the FIFO. |
| From Bob Feretich. |
| - STM32 and STM32 F7: Remove confusing, redundant, and misleading |
| definitions of STM32_BKP_BASE from the F2, F3, and F4 memory |
| maps. Unlike the F1, these parts do not have a separate BKP address |
| region. The BKP registers are with the RTCC address regions. |
| stm32_bkp.h should only be used for STM32 F1. stm32_rtcc.h should be |
| used to access BKP registers on F2, F3, and F4. |
| - STM32 and STM32 F7: Architecture-specific code is not permitted to |
| modify the errno variable. |
| - STM32 F4 I2C: Correct some recent changes to STM32F4 I2C that broke |
| poll mode of operation. From Alexander Oryshchenko. |
| - STM32 F4 I2C: Corrections to STM32 F4 I2C to restore functionality. |
| From Alexander Oryshchenko. |
| - STM32 F4 I2C: Corrections to STM32 F4 I2C to fix the NORESTART |
| flag. From Alexander Oryshchenko. |
| - STM32 F7: Fixes a bug in multi-block SD-card operations on the |
| STM32F7 platform. DBLOCKSIZE must be the size of SD-card block, not |
| the total amount of transferred bytes. From Evgeniy Bobkov. |
| - STM32 F7: Fix undefined variable when using USART1 for other |
| purposes than UART (e.g. SPI). From Frank Benkert. |
| - STM32 F7: Backport RTC alarm setting changes from STM32L4. Most |
| notably this fixes RTC getting stuck issue when both alarms were |
| used. Root cause was writing RTC ISR register contents to RTC CR |
| register. From Juha Niskanen. |
| - STM32 L4 Flash: Change flash programming to use page buffer for |
| unaligned writes. From Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - Nucleo-L432KC: Fix some bogus logic noted by Fanda. |
| - configs/nucleo-* and configs/stm32l476vg-disco: Fix more |
| stm32_userleds.c bogus logic From Juha Niskanen. |
| - Nucleo-L432KC: Fixed nucleo-l432kc broken build when |
| CONFIG_USERLED_LOWER defined From Fanda. |
| - Nucleo-L432KC: Issue #85: /dev/userleds is not working for |
| Nucleo-L432KC fixed From Fanda Vacek. |
| - STM32F429I-Disco: Separate SPI4 from MTD init. I was trying to |
| attach a non-MTD peripheral to an STM32F429I Discovery Board's SPI4 |
| port and was hitting compilation problems, since CONFIG_MTD and |
| thus 'struct mtd_geometry_s' was not defined. This patch separates |
| SPI4 initialization logic from MTD initialization logic. From |
| Michael Jung. |
| - STM32F103-Minimum: Remove CONFIG_NX_LCDDRIVER dependence from |
| stm32_ssd1306.c From Alan Carvalho de Assis. |
| |
| * C Library/Header Files: |
| |
| - libc/stdio: In dtoa(), up_interrupt_context() is used in a debug |
| assertion. up_interrupt_context() is not available in the user-mode |
| phase of the PROTECTED or KERNEL build configurations. In those |
| configurations, enabling libc floating point support and debug |
| assertions will result in an undefined reference to |
| up_interrupt_context(). |
| - libc/netdb: Fixed parsing of DNS response packets having compressed |
| names ending with pointer. There were troubles parsing response |
| packets which have compression of QNAME/NAME field when only |
| trailing part of the name (not the whole name) is replaced with |
| pointer to another part of the packet. This commit fixes parsing of |
| such packets. Also I added checks to keep parsing only in bounds of |
| the read part of DNS response packet. From Dmitriy Linikov. |
| |
| * Tools |
| |
| - tools/*.c: Add #define _GNU_SOURCE to all C files that call |
| asprintf() to eliminate a warning. |
| - tools/cvsparser.c: Add a check to avoid access past the end |
| of a fixed size array |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib: Fix compile error when CONFIG_NSH_DISABLESCRIPT is not |
| defined. The field np_flags does not exist if scripting is disabled. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/touchscreen: Eliminate BOARDIOC_TSCTEST_SETUP. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/ftpc: Fix some corner-cases that could cause FTP to |
| access past the end of valid data. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/ieee802154/i8shark: Fixes special XBee compensation |
| by purposely chopping off the FCS. From Anthony Merlino. |
| |
| NuttX-7.25 Release Notes |
| ------------------------ |
| |
| The 125th release of NuttX, Version 7.25, was made on June 3, 2018, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.25.tar.gz and |
| apps-7.25.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| * File Systems/Block and MTD Drivers |
| |
| - fs/cromfs: Added CROMFS file system. CROMFS is a compressed, in- |
| memory, read-only file system based on LZF. |
| - fs/vfs: Added support for checking if a descriptor is a socket in |
| fstat(). From Pelle Windestam. |
| |
| * Graphics/Display Drivers: |
| |
| - drivers/lcd: Remove support for the Nokia6100 LCD. That LCD uses a |
| 9-bit SPI interface (the 9th bit being the command/data bit that is |
| normally a discrete). That communication was never successfully |
| integrated. I now believe that it would would require some special |
| support from the low-level, MCU SPI driver to manage that 9th bit. |
| The deleted code is still available in the Obsoleted repository. |
| |
| * Networking/Network Drivers: |
| |
| - net/tcp: Added support for TCP Keepalive, add SO_KEEPALIVE socket |
| option. Added socket options needed to manage TCP-keepalive and TCP |
| state machine logic to detect if that the remote peer is alive. |
| - net/tcp: In tcp_input(), add the logic to detect, decode, and |
| respond to TCP Keep-Alive packets. |
| - net/tcp: Extended support for sending to non-blocking tcp sockets. |
| From Pelle Windestam. |
| - net/bluetooth: Added support for AF_BLUETOOTH sockets. |
| - drivers/net: Added TAP (network bridge) mode to tun.c. In the |
| previous implementation, TAP mode did not handle a packet correctly. |
| Also, the driver did not set the link layer type and could not |
| assign the interface name. This change fixes such issues and supports |
| TAP mode correctly. From Masayuki Ishikawa. |
| |
| * Wireless/Wireless Drivers: |
| |
| - wireless/ieee802154: Added basic MAC support for RX-ENABLE.request |
| primitive From Anthony Merlino. |
| - wireless/ieee802154: Added MAC ackreq flag to TX descriptor for use by |
| radio driver. The radio layer is responsible for a full "transaction". |
| Because of differences in radio capabilities, the radio must be |
| responsible for the handling of acks and retransmissions. This commit |
| simply passes the ackreq meta-data flag along to the radio. Also |
| Fixes bug where primitive was freed when it shouldn't have been, |
| causing double free call. From Anthony Merlino. |
| - wireless/bluetooth: Bring in the Bluetooth stack from the Intel/ |
| Zephyr arduino101_firmware_source-v1.tar package. |
| - drivers/bluetooth: Added re-architected version of the Bluetooth |
| UART driver from the Intel/Zephyr arduino101_firmware_source-v1.tar |
| package. |
| - include/nuttx/wireless: Added a setbaud() method to the HCI UART |
| lower half interface that can be used to change the default BAUD |
| selection. |
| - wireless/bluetooth and include/nutt/net: Added support for Bluetooth |
| IOCTL commands. |
| - drivers/wireless/bluetooth: Added a NULL device to support some very |
| low level testing on the Simulator. |
| - drivers/wireless/cc3000: Eliminate support for the CC3000 wireless |
| part because it doesn't use the USRSOCKET. From Alan Carvalho de |
| Assis. |
| - drivers/wireless/ieee80211: Added BCM43428 support. From hhuysqt. |
| |
| * Other Common Device Drivers: |
| |
| - drivers/1wire: Added 1-wire subsystem and ds28e17 driver From Juha |
| Niskanen. |
| - drivers/1wire: Added PM hooks and unlink support to sht21 sensor |
| (allowing hot-swappable I2C bus from 1-wire converter). Unlike most |
| other unlink implementations in NuttX drivers, this one does not |
| allow any I2C operations after unlink, making it possible to |
| deallocate the I2C bus. From Juha Niskanen. |
| - drivers/i2c: Added support for the pca9540bdp i2cmultiplexer. From |
| Giorgio Groß. |
| - drivers/power: Added pm_unregister From Juha Niskanen. |
| - drivers/power: Added generic upper-half motor driver From Mateusz |
| Szafoni. |
| - drivers/rgbled: Added support for multichannel PWM (multiple PWM |
| channels on a single timer) From Anthony Merlino. |
| - drivers/sensors: Added support for Sensirion SHT2x humidity sensor. |
| From Juha Niskanen. |
| - drivers/sensors: Added LSM330 SPI and ADXL372 drivers along with the |
| - drivers/sensors: Added support for INA3221 power sensor. This has a |
| 3 channel bus/shunt voltage pairs. From Anthony Merlino. |
| cluster driver infrastructure. From Bob Feratich. |
| - drivers/sensors: Added multiple MAX31855 sensors feature support. |
| From Tiago Almeida. |
| - drivers/wireless/cc1101.c: Driver improvements from from lihaichen. |
| - progmem interface: Discern r/w and erase page sizes. Introduce new |
| up_progmem_erasesize architecture API to be able to communicate the |
| read/write page size independently from erase page size. Implement |
| up_progmem_erasesize for all architectures that already support |
| progmem, assuming that for those architectures the sizes of both |
| read/write and erase pages are identical. From Michael Jung. |
| |
| * Simulation |
| |
| - configs/sim: Added a configuration that will support some limited |
| testing of the Bluetooth stack. |
| |
| * ARM: |
| |
| - ARM: All ARM architectures now support CONFIG_ARCH_IDLE_CUSTOM. |
| |
| * MIPS: |
| |
| - MIPS: All MIPS architectures now support CONFIG_ARCH_IDLE_CUSTOM. |
| |
| * Infineon XMC4xxx Drivers: |
| |
| - XMC4: Added SPI support for Infineon XMC45xx microcontroller. From |
| Alan Carvalho de Assis. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - XMC4500-Relax: Added board support for SPI. From Alan Carvalho de |
| Assis. |
| |
| * Nordic NRF52: |
| |
| - NRF52: Initial support for the NRF52 including UART, Timer, and |
| GPIO support. From Janne Rosberg. |
| |
| * Nordic NRF52 Drivers: |
| |
| - NRF52: Added watchdog timer drivers. Includes significant |
| updates from Levin Li. |
| - NRF52: Added nRF52 Flash PROGMEM support From Alan Carvalho de |
| Assis. |
| |
| * Nordic NRF52 Boards: |
| |
| - configs/nrf52-pca10040: Added support for the NRF52-PCA10040 board |
| including LEDs and buttons From Janne Rosberg. |
| - configs/nrf52-pca10040: Added support for starting the watchdog |
| timer on the nRF52. From Alan Carvalho de Assis. |
| - configs/nrf52-pca10040: Added a configuration for testing the |
| watchdog timer. From Alan Carvalho de Assis. |
| |
| * NXP Freescale i.MX RT: |
| |
| - i.MX RT: Brings in basic support for the i.MX RT 1050 'crossover' |
| SoC. Includes timer and UART support. This port was the joint |
| effort of Janne Rosberg, Ivan Ucherdzhiev, and myself. I give |
| credit to Ivan for the kill because he is the one to held on to |
| the end. From Ivan Ucherdzhiev. |
| |
| * NXP Freescale i.MX RT Drivers: |
| |
| - i.MX RT: Added power management hooks. |
| - i.MX RT: Added eDMA support (unverified). |
| - i.MX RT: Added Ethernet driver. From Jake Choy. |
| - i.MX RT: Added cache operations to permit the Ethernet driver to |
| work with the D-Cache enabled, at least in write-through mode. |
| Added support for PHY interrupts and PHY IOCTLs. |
| |
| * NX FreescaleP i.MX RT Boards: |
| |
| - IMXRT1050-EVK: Added support for booting from the on board HYPER |
| Flash. From Ivan Ucherdzhiev. |
| - IMXRT1050-EVK: Added logic to support the board's user LED. From |
| Jake Choy. |
| - IMXRT1050-EVK: Added procfs auto-mount support in imxrt_bringup.c. |
| From Ivan Ucherdzhiev. |
| - IMXRT1050-EVK: Added LIBCXX test configuration. |
| - IMXRT1050-EVK: Added support for the imxrt1050-evk button. From |
| Jake Choy. |
| - MXRT1050-EVK: Added support for on-board NOR FLASH boot. From |
| Ivan Ucherdzhiev. |
| - IMXRT1050-EVK: Disable LED support because pins conflict with PHY. |
| Enable device statistics. Enable NSH ifup and ifdown commands. |
| Added an NSH configuration for testing Ethernet. |
| |
| * NXP Freescale Kinetis: |
| |
| - K28F: Added architecture support for the Kinetis K28F. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - SDHC: Make Kinetis SDHC pullups work the same as the STM32 SDIO |
| pullups. |
| |
| * NXP Freescale Kinetis Boards: |
| |
| - Freedom-K28F. Added support for the Kinetis Freedom-K28F board. |
| |
| * NXP LPC17xx: |
| |
| - LPC17xx: Added support for ARMv7-M run time stack checking on NXP |
| LPC17xx MCUs based on CONFIG_ARMV7M_STACKCHECK. Basically copied |
| from STM32. From Michael Jung. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC17xx: Added a configurable option to allow using a part of |
| LPC17xx's internal flash memory as a Memory Technology Device via |
| NuttX' mtd_progmem infrastructure. Tested with LPC1769. From |
| Michael Jung. |
| |
| * NXP LPC17xx Boards: |
| |
| - Olimex-LPC1766STK: Remove support for the Nokia6100 LCD. That |
| LCD uses a 9-bit SPI interface (the 9th bit being the command/data |
| bit that is normally a discrete). That communication was never |
| successfully integrated. |
| |
| * NXP LPC43xx Boards: |
| |
| - configs/bambino-200e: Added support for multiple MAX31855 sensors |
| to the bambino-200e. From Tiago Almeida. |
| |
| * OpenRISC |
| |
| - arch/or1k/src. Added basic architectural support for the OpenRISK |
| mor1kx architecture. The initial commit was verified on a Qemu |
| simulation but is otherwise untested. From Matt Thompson. |
| |
| * OpenRISC Board |
| |
| - configs/or1k. OpenRISK mor1kx Qemu simulation. From Matt Thompson. |
| |
| * STMicro STM32: |
| |
| - STM32: Added support for the STM32F401xB and STM32F401xC families. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 HRTIM: Added HRTIM software capture trigger, added software |
| reset trigger, added outputs polarization configuration From |
| raiden00pl. |
| - STM32 ADC: Added ADC injected channels configuration. From Mateusz |
| Szafoni. |
| - STM32 HCIUART: Added a Bluetooth HCI UART lower half driver for the |
| STM32. |
| - STM32 HCIUART: Implement the setbaud() method for the STM32 HCI |
| UART interface. |
| - STM32 SDIO: Added support for SDIO card to SDIO driver. From |
| hhuysqt. |
| - STM32 SDIO: Added internal pull-up option for SDIO pins. From Alan |
| Carvalho de Assis. |
| - STM32 F2/F4 ADC: Added Vbat measurement to ADC driver for |
| STM32F20xx and STM32F4xxx. As with the MCU temperature and VREFINT |
| measurement, this change requires user to enable the corresponding |
| channel first. For Vbat channel the ioctl cmd is |
| IO_ENABLE_DISABLE_VBAT_CH, and its arg should be a pointer to bool |
| which must be true to enable and false to disable the Vbat channel. |
| Moreover, since Vbat input contains a built-in voltage divider, it |
| is highly suggested to disable Vbat input channel after measurement |
| is done in order to prevent battery drain through the divider. From |
| Dmitriy Linikov. |
| - STM32, STM32L4 1WIRE: Added one bit read and write to 1-wire |
| interface. This is needed for devices that require single bit |
| timeslot generation and for 1-Wire search algorithm triplets. From |
| Juha Niskanen. |
| - STM32 F3 SPI: Enable DMA for SPI on stm32f30xxx MCUs. From Michal |
| Lyszczek. |
| - STM32 L4 1WIRE: Ported 1wire driver from STM32. From Juha |
| Niskanen. |
| - STM32 L4 I2C/SPI/1WIRE: Added PM hooks to I2C, SPI and 1-wire From |
| Juha Niskanen. |
| - STM32 F7 RTC: Added CONFIG_RTC_PERIODIC support. Also makes the RTC |
| lowerhalf more like in STM32L4. From Juha Niskanen. |
| - STM32 F7 ADC/I2C/SPI: Added PM hooks to ADC, I2C and SPI. From |
| Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - Indium-F7: Removed support for the Indium-F7 board. This was done |
| for two reasons: (1) The board support was just clone of the |
| Nucleo-144 board support with naming changes. There has been no |
| support and no further development for the board support. (2) There |
| does not seem to be any available Indium-F7 board available to the |
| public anywhere on the Internet. There is not even a reference to |
| the board on the rafresearch.com web stie. |
| - Nucleo-L452RE: Added buttons example From Juha Niskanen. |
| - Nucleo-L476RG: Added support to Nokia LCD PCD8544 on nucleo-l476rg. |
| From Alan Carvalho de Assis. |
| - Nucleo-L476RG: Added nxdemo configuration to nucleo-l476rg using |
| PCD8544. From Alan Carvalho de Assis. |
| - Olimex-STM32-P407: Added a zmodem test configuration. |
| - Olimex-STM32-P407: Added the module configuration. |
| - Photon: Added RGB led support From Anthony Merlino. |
| - STM32F103-Minimum: Added support for DFU bootloader From Simon |
| Piriou. |
| - Spark: Removes Spark board configuration. Still available in the |
| Obsoleted repository. If there is no CC3000 support, then there is |
| no purpose in supporting the Spark either. |
| - STM32F334-Disco: Added buck/boost converter example configuration. |
| From Mateusz Szafoni. |
| - STM32F4 Discovery: Added support for multiple MAX31855 sensors to the |
| STM32F4 Discovery From Tiago Almeida. |
| - STM32F4 Discovery: Added support in bring-up logic to initialize the |
| HCI UART and register the HCI UART network device. |
| - STM32F4 Discovery: Added MAX7219 support to STM32F4Discovery board. |
| From Alan Carvalho de Assis. |
| - STM32F4 Discovery: Added board configuration for CS43L22 audio |
| example. From Alan Carvalho de Assis. |
| - STM32F4 Discovery: Added a module configuration for testing the |
| kernel module example with the STM32F4Discovery board. From Alan |
| Carvalho de Assis. |
| - STM32F429I-DISCO: Added a LittlevGL configuration for stm32f429i- |
| disco. From seyyah. |
| - STM32F746G-DISCO. Added clang support to stm32f746g-disco board. |
| From Goran Mekic. |
| - STM32L1 Discovery: Added support for the STM32L152RCT6 version of |
| the board. |
| |
| * TI TMS570: |
| |
| - TMS570: Added support for the TMS570LS3137ZWT. From Ivan Ucherdzhiev. |
| |
| * TI TMS570 Boards: |
| |
| - configs/tms570ls31x-usb-kit: Added support for the TI Hercules |
| TMS570LS31x USB Kit From Ivan Ucherdzhiev. |
| |
| * TI Tiva: |
| |
| - CC3200: Remove all support for the CC3200. This was a port that was |
| started but never completed. What good is partial CC3200 support |
| with no wireless support?. |
| |
| * TI Tiva Drivers: |
| |
| - EEPROM: Implements an EEPROM driver in compliance with MTD driver |
| as provided by NUTTX for TM4C1294. The EEPROM driver currently |
| supports only two functionalities - read bytes(multiple of 4) and |
| write bytes (multiple of 4). From Shirshak Sengupta. |
| - FLASH: Implemented Flash CONFIG_MTD_BYTE_WRITE for TM4c1294. |
| Implemented the tiva_write function which will write an arbitrary |
| number of bytes to flash (in multiple of 4). From Shirshak Sengupta. |
| - Serial: Added TERMIOS IOCTL support to the Tiva serial driver. |
| From Dmitry Sharihin. |
| |
| * TI Tiva Boards: |
| |
| - CC3200-Launchpad: Remove all support for the CC3200-Launchpad. |
| This was a port that was started but never completed. What good is |
| partial CC3200-Launchpad board support with no wireless support?. |
| |
| * Libraries/Header Files: |
| |
| - libs/: Moved all of the libraries under a common directory called |
| libs/ (libc, libnx, and libxx). This almost certainly break libcxx |
| for now. |
| - libs/libc/time: Added an implementation of clock(). |
| - libs/libc/lzf: Added a modified version of Marc Alexander Lehmann's |
| LIBLZF3.6 library From Boris Astardzhiev. |
| - libs/libc/unistd: Initial, minimal implementation of sysconf(). |
| Only sufficient to support the functionality of less standard |
| getdtabilesize(). From Michael Jung. |
| - libs/libdsp: Added DSP support library. From Mateusz Szafoni. |
| - include/sys: Added resource.h. |
| - include/nuttx/video: Add overlay support to framebuffer interface |
| definition. From Marco Krahl. |
| |
| * Tools: |
| |
| - tools/gencromfs.c: Added tools/gencromfs.c, a tool that can be used |
| to generate CROMFS file system images. |
| - tools/mkromfsimg.sh: Include an option in mkromfsimg.sh to ignore |
| FAT/RAMDISK. This permits you to build tiny systems with ROMFS but |
| with the rather large FAT FS support. From Alan Carvalho de Assis. |
| - tools/nxstyle.c: Added check for blank lines before and after single |
| line comments. From Bob Feretich. |
| - tools/sethost.sh: Added support for macOS. |
| - tools/uncrustify.cfg: An initial cut at an uncrustify C formatting |
| script from Gregory Nutt. Updated, corrected, and verified. From |
| Bob Feretich. |
| |
| * Build System: |
| |
| - Makefile: Added support for nconfig frontend for 'make nconfig'. |
| From Michal Lyszczek. |
| - configs/: Added definition of strip to many Make.defs files. |
| - staging/: Remove fixed lib/ subdirectory and its content. Replace |
| with new directory called staging/ that is created dynamically when |
| building and removed when 'make clean' is done. This both improves |
| the naming and eliminates a garbage directory from the repository. |
| - tools/: Move all build-related files (except the top-level Makefile) |
| into the tools/ sub-directory. This really cleans up the top-level |
| directory. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib: Added the mkfatfs -r option which can be used to |
| specify the number of entries in the FAT12/FAT16 root directory. |
| From Boris Astardzhiev. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/adxl372_test and lxm330spi_test: Added ADXL372 and |
| LSM330 tests. From Bob Feretich. |
| - apps/examples/cc3000: Removed the CC3000 example. From Alan |
| Carvalho de Assis. |
| - apps/examples/cromfs: Added an example of how to build a CROMFS |
| file system image. |
| - apps/examples/elf: Extend the ELF program module demo so that you |
| can use compressed ELF programs with CROMFS. |
| - apps/examples/elf: Use strip command to make ELF binaries MUCH |
| smaller. Added an option to strip debug symbols even if the debug |
| symbols are enabled in the base code. |
| - apps/examples/max31855: Added an example to read multiple max31855 |
| sensors. From Tiago Almeida. |
| - apps/examples/netloop: Update network loopback example so that it |
| can be used to test TCP KeepAlive. |
| - apps/examples/nxdemo: Added nxdemo application From Alan Carvalho |
| de Assis. |
| - apps/examples/powerled: Added arch initialization. |
| - apps/examples/uavcan: Removed because apps/canutils/libuavcan is no |
| longer available. |
| |
| * System Utilities: apps/system |
| |
| - apps/system/lzf: Added the test case from Marc Alexander Lehmann's |
| LIBLZF3.6 librrary From Boris Astardzhiev. |
| - apps/system/embedlog: Support for embedlog data loggin package from |
| https://embedlog.kurwinet.pl/ From Michal Lyszczek. |
| - apps/system/zmodem: Added an option to enable hardware flow control |
| via termios. Allow stack size and priority to be configured. |
| - apps/system/zmodem: Call tcflush() before closing the serial port. |
| This is necessary because that close operation may hang if hardware |
| flow control is enabled. Consider this scenario: After the host |
| sz runs on the host, it exits and leaves CTS high. The target rz |
| completes, and tries to close the serial port. But if there is |
| buffered Tx data, then the close will hang when it tries to drain |
| the buffered Tx data since there is no where it can go. tcflush() |
| discards the buffered data and permits the close to continue. |
| There is additional logic in nuttx/drivers/serial needed to work |
| with this. |
| |
| * CAN Utilities: apps/canutils: |
| |
| - apps/canutils/libuavcan. Removed! libuavcan has not built for a |
| year or so. The basic problem is that as NuttX advances, the old |
| frozen version of libuavcan has become absolute because it violates |
| the portable POSIX OS interface. No one is maintaining the port so |
| there is no alternative but to remove it. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/tftpc: Modified the TFTP client functions to use a |
| data read/write callback instead of a file. This allows TFTP to |
| write to arbitrary destination (in my case, a MTD device - for |
| firmware update). Two new functions are introduced for this, named |
| tftpget_cb and tftpput_cb. They are just made of most of the |
| existing code. The previously existing tftpget/tftpput functions |
| are now wrappers on the new ones, with callbacks that read/write |
| from files, so my modifications are backwards compatible with |
| existing applications, eg the associated nsh commands don't need to |
| be changed. From Sebastien Lorquet. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/bluetooth/btsak: Added a Bluetooth debug tool. |
| |
| 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: |
| |
| - sched/sched: Fix a deadlock in SMP mode. Two months ago, I |
| introduced sched_tasklist_lock() and sched_tasklist_unlock() to |
| protect tasklists in SMP mode. This change works well for HTTP |
| audio streaming aging test with lc823450-xgevk. However, I found a |
| deadlock in the scheduler when I tried similar aging tests with DVFS |
| autonomous mode where CPU clock speed changed based on cpu load. In |
| this case, call sequences were as follows. To avoid this deadlock, |
| I added sched_tasklist_unlock() when calling up_cpu_pause() and |
| sched_addreadytorun(). Also, added sched_tasklist_lock() after the |
| call. Also added critical sections to lib_filesem.c, mm_sem.c, and |
| net_lock.c for SMP for SMP. From Masayuki Ishikawa. |
| - sched/sched: Change ordering of round-robin time slice check |
| (sched_process_scheduler()) and processing of wdog timers |
| (wd_timer()). wd_timer()'s callback function can change current |
| running task and, hence, must be done after the time slice check. |
| The time slice check will decrement the currently running task's |
| time slice allotment. If such a context switch occurs, then the |
| newly started task will lost one could of that allotment before it |
| even has a chance to run. From EunBong Song. |
| |
| * File System/Block and MTD Drivers: |
| |
| - fs/fat: In fs_stat(), when stat'ing the root directory, avoid |
| calculating the address of the root directory entry. The |
| calculation is bogus (but not harmful) because the root directory |
| does not have a directory entry. Noted by Boris Astardzhiev. |
| - fs/fat: Avoid calculating the bogus directory entry address for |
| the FAT root directory (since it has no directory entry). This |
| change should have no effect, other than making the logic clearer. |
| From Boris Astardzhiev. |
| - fs/mount: Fix wrong size reported by df -h. Reason is that size |
| in bytes is calculated always on uint32_t types and cards bigger |
| than 4GB will overflow uint32_t type. Solution is to use uint64_t |
| where possible. From Michal Lyszczek. |
| - fs/smartfs: Fix a hardfault in SmartFS. Problem occurred when |
| opening a file with O_CREAT (only) when the file arelready exists |
| but has a size of zero. From Michal Lyszczek. |
| - fs/vfs: Fix negative errno set in fs_open.c From Michal Lyszczek. |
| - drivers/mtd: Fixed a W25 driver w25_cacheflush sector bug. From |
| lihaichen. |
| - drivers/mtd: mtdconfig_register() returned OK instead of -ENOMEM on |
| failed allocation. From Michal Lyszczek. |
| |
| * Graphics/Display Drivers: |
| |
| - drivers/lcd/ft80x: ACTIVE host command appears to be formatted |
| differently than other host commands; Fix ROM CHIPID. Appears to |
| be big-ending, BCD. Fix some compile issues when debug features |
| are enabled. |
| - drivers/lcd/ft80x: Fix a typo that caused the driver to fail to |
| recognize the ft801 chip version. From Gregory Nutt. |
| - Review all board implementations of board_lcd_initialize(). The |
| NuttX convention is that all internal functions that return errors |
| as an 'int' must return a negated errno value on failure and a non- |
| negative value on success. Most were right but eight of them had |
| cloned logic that returns 1 on success and zero on failure. both |
| of which are interpreted as success by the caller since they are |
| non-negative. |
| |
| * Networking/Network Drivers: |
| |
| - net/tcp: Fixed problem with send() return value when using |
| nonblocking I/O over buffered tcp socket From Dmitriy Linikov. |
| - net/sixlowpan: Fix a nasty, byte-ordering/endian-ness problem. |
| The root cause has been found and corrected. And a half dozen |
| or so bandaid fixes were reverted. |
| - net/sixlowpan: Preserve big-endian (network order) when |
| uncompressing address. From Anthony Merlino. |
| - net/sixlowpan: TCP send should have PSH and ACK flags set when |
| sending. This matches the standard network (Ethernet) TCP send |
| logic. From Anthony Merlino. |
| - net/udp: Fix several issues using connected UDP sockets: sendto() |
| should not accept an address. Normally send() should be used with |
| connect UDP sockets instead. recvfrom() is no longer necessary. |
| recvfrom() and poll() should not reset to accept any addresses but |
| should, instead, only accept inputs and events from the connected |
| remote peer. On of these issues was noted by ??? |
| <liguiding@pinecone.net>. Changes were made as summarized here: |
| http://www.masterraghu.com/subjects/np/introduction/unix_network_programming_v1.3/ch08lev1sec11.html |
| From Gregory Nutt. |
| - net/udp: Resolve race condition in connection-less UDP sockets with |
| read-ahead buffering. In connection-mode UDP sockets, a remote |
| address is retained in the UDP connection structure. This |
| determines both there send() will send the packets and which packets |
| recv() will be accepted. This same mechanism is used for |
| connection-less UDP sendto: A temporary remote address is written |
| into the connection structure to support the sendto() operation. |
| That address persists until the next recvfrom() when it is reset to |
| accept any address. When UDP read-ahead buffering is enabled, |
| however, that means that the old, invalid remote address can be left |
| in the connection structure for some time. This can cause read- |
| ahead buffer to fail, dropping UDP packets. Shortening the time |
| between when he remote address is reset (i.e., immediately after the |
| sendto() completes) is not a solution, that does not eliminate the |
| race condition; in only makes it smaller. With this change, a flag |
| was added to the connection structure to indicate if the UDP socket |
| is in connection mode or if it is connection-less. This change |
| effects only UDP receive operations: The remote address in the UDP |
| connection is always ignored if the UDP socket is not in connection- |
| mode. No for connection-mode sockets, that remote address behaves as |
| before. But for connection-less sockets, it is only used by sendto(). |
| |
| * Wireless/Wireless Drivers: |
| |
| - drivers/wiresless/ieee80211: Correct some initialization problems |
| with BCM43362 chip. From hhuysqt. |
| - drivers/ieee802154/xbee: Added a timeout to send logic to handle |
| case where XBee module fails to respond to a Transmit request with |
| a Transmit Status From Anthony Merlino. |
| |
| * Common Drivers: |
| |
| - Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and |
| debug wrappers -- does not return a value. Rename _vsyslog to |
| nx_vsyslog. Use internal nx_vsyslog in the few cases where a |
| return value is required. |
| - drivers/leds: Fixes RGB LED issues caused by uninitialized memory |
| with CONFIG_RGBLED_MULTICHAN. The uninitialized pwm_info_s struct |
| caused a rogue channel to be started causing errors in the pwm |
| driver From Anthony Merlino. |
| - drivers/sensors/lis2dh: Clear INT1 at SNIOC_WRITE_INT1THRESHOLD |
| ioctl. From Jussi Kivilinna. |
| - drivers/sensors/sht21: Changed I2C_TRANSFER return value so that |
| it return on zero on success, not the count of bytes transferred. |
| From Juha Niskanen. |
| - drivers/serial: Per Matias Edlund: I recently used the tcflush |
| function and found that it failed with ENOTTY. The reason is that |
| the TCFLSH case in the function uart_ioctl in the file |
| drivers/serial/serial.c does not update the ret value." On |
| success, the TCFLSH IOCTL logic needs to explicitly set the return |
| value (ret) to zero. |
| - drivers/serial: Added a timeout to uart_tcdrain(). Even if |
| tcflush() is used to discard buffered data, the close() can still |
| hang if (a) hardware flow control is enabled, (b) CTS == 1, and |
| (c) there is data stuck in the hardware Tx FIFO. tcflush() does |
| not currently clear the MCU serial drivers' hardware Tx FIFOs. |
| This is a workaround for that. |
| - drivers/sensors: Fix APDS9960 work queue BUG found by Kyle Lei. |
| From Alan Carvalho de Assis. |
| |
| * Simulator: |
| |
| - arch/sim: Various fixes necessary to build the simulator under |
| MSYS2. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R: Corrected several ARMv7-R issues. From Ivan Ucherdzhiev. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - XMC4500-Relax: Call xmc4_spidev_initialize() in xmc4_boot.c. From |
| Alan Carvalho de Assis. |
| |
| * NXP/Freescale LPC17xx Drivers: |
| |
| - LPC17xx USB: Fix USB device endpoint allocation bookkeeping. From |
| Michael Jung. |
| - LPC17xx USB: Freeing endpoints should be set the same allocations |
| as when endpoint was allocated. |
| - LPC17xx USB: Fix loss of RX initiatives. USB bulk endpoints are |
| double buffered on LPC17xx MCUs. This means that up to two packets |
| might be received on an OUT endpoint that can not be handled |
| immediately if the receive request queue is empty. Thus, |
| rxpending must be a counter not a boolean flag. From Michael Jung. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis USG: USB device fixes: Use correct CONFIG OTG control, |
| Fix interrupt storm when cable is disconnected. The DM, DP state |
| were incorrect because the pulldowns were not enabled. Also the |
| pending asynchronous resume interrupt needed to be re-armed after |
| the suspend is in effect. This is now done in the isr. From David |
| Sidrane. |
| - Kinetis Serial: In kinetis_lowputc.c, fix esBRFA calculation |
| effecting baudrate. Previous BRFA was not cleared and or-ed into |
| new BRFA, hence, buadrate was wrong. Where Baud Rate Fractional |
| Divisor (BRFD) UART baud rate = clock / (16 * (SBR + BRFD)). From |
| David Sidrane. |
| - Kinetis Serial: In kinetis_lowputc.c, fixed parity settings. |
| Kinetis UART must be placed in 9 bit mode (M=1) with when 8 bit data |
| with parity is required. If left in 8 bit mode (M=0) with parity |
| then D7 of the TX/RX register becomes parity bit. Hence what is |
| called 9-bit or 8-bit Mode Select is a misnomer. 8 bit mode when |
| parity is enabled is really 7 bit with parity. From David Sidrane. |
| |
| * NXP/Freescale Kinetis Boards: |
| |
| - configs/teensy-3.x: Remove CONFIG_USBDEV_DUALSPEED from the usbnsh |
| configuration. Hardware supports only FS. |
| |
| * NXP i.MX6 Drivers: |
| |
| - i.MX6: Bring in a few i.MX6 fixes that were committed to similar |
| files for the i.MX RT. |
| |
| * STMicro STM32: |
| |
| - STM32 F3: Problem: stm32f30xx hangs waiting for LSE to initialize. |
| Reason for hang is that operation of setting LSE_ON does not take |
| effect because there is no clock on PWR peripheral. This is |
| initialized later in the code From Michal Lyszczek. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 and STM32 L4 1WIRE: In 1wire driver, do not write useless |
| WRITEBIT zero return value to const buffer From Juha Niskanen. |
| - STM32 HRTIM: Fixed capture_get function,. From raiden00pl. |
| - STM32 F3 ADC: Fixed bug in RCC reset logic that resets ADC1 |
| configuration when both ADC1 and ADC2 are in use From Mateusz |
| Szafoni. |
| - STM32 Ethernet: In case of PHY failure, usually because of the |
| lack of 25/50 MHz REFCLK input, the Ethernet block would lock up |
| in a while loop waiting for readiness, which will never happened. |
| This prevented the board from starting at all in the case of a PHY |
| failure. This commit adds a retry loop to avoid bricking the board |
| if the Ethernet block is unable to start. From Sebastien Lorquet. |
| - STM32 F7 SDMMC: Added support for the second SDMMC device. The |
| second SDMMC device was already supported but the clock was never |
| enabled. This fixes that. From William Douglas. |
| - STM32 Serial: Fix UART glitch when lowputc is enabled. From |
| Simon Piriou. |
| - STM32 USB: Skip recipient check for descriptor related |
| requests From Simon Piriou. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva ADC: Fix compilation errors on Tiva ADC code when ADC is |
| enable. From Vinicius Maciel. |
| - Tiva Serial: Allow building of Tiva platform with no serial |
| console. From Dmitry Sharihin. |
| |
| * C Library/Header Files: |
| |
| - lib/libc/netdb: Fixed boundary conditions in dns_recv_response(). |
| Fixed typos in include/nuttx/net/dns.h. From Masayuki Ishikawa. |
| - libs/libc/modlib: Fixed backward test for an error in |
| modlib_verify.c. |
| |
| * Build System: |
| |
| - Makefiles: Eliminate the spurious errors reported by 'make |
| savedefconfig'. |
| - Makefile(s): There is a sort command in the 'make savedefconfig' |
| file. I found that sort behaves differently on different platforms |
| based on the environment variable LC_ALL. Now, Makefile.unix will |
| force LC_ALL=C just for the sort command so that we can all generate |
| equivalent defconfig files. |
| - Makefile(s): The clean_context target needs to invoke a |
| corresponding clean_context target in the apps/Makefile in order to |
| remove linkages. From Gregory Nutt. |
| - LibTargets.mk, tools/Config.mk: Drop executable bit on installed |
| libraries. The rules to install libraries under lib/ were modified |
| to use mode 0644 instead of the default 0755. From Andrey Zabolotnyi. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/ft80x: Fix some size calculations. Added option to |
| disable primitive tests. just too boring to have to watch over and |
| over again. Fix a typo in backlight fade logic; Fix error in |
| formatted display light debug dump output. |
| - apps/examples/ft80x: Text is handled by the coprocessor and, hence, |
| must use RAM_CMD, not RAM_DL. |
| - apps/examples/ft80x: Fix some errors in co-processor demos. Correct |
| an error in the spinner demo. |
| - apps/examples/nsh and posix_spawn: Must not call exec_setsymtab() |
| directly. That is a non-POSIX internal OS interface. |
| - apps/examples/ostest: Do not call AIO test without |
| CONFIG_EXAMPLES_OSTEST_AIO From Juha Niskanen. |
| - apps/examples/smps: Fix typos in Kconfig. All power, voltage, |
| current values were strings with no default. I assume they should |
| be 'int' with what default?. |
| - apps/examples/smps: Fixes in some printf and in Kconfig From |
| Mateusz Szafoni. |
| - apps/system/zmodem: Fix Makefile.host. It was broken when zmodem.h |
| was moved to apps/include/system. Fix an incompatibility with the way |
| that CRCs are calculated. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system: Applications should use the standard clock() interface, |
| not the internal NuttX clock_systimer() interface. |
| - apps/system/stackmonitor: Fix comparison between pointer and zero |
| character constant. From Juha Niskanen. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/netlib: Various fixes needed to get a clean netlib |
| build with Bluetooth only. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless: Applications should use the standard clock() |
| interface, not the internal NuttX clock_systimer() interface. |
| |
| NuttX-7.26 Release Notes |
| ------------------------ |
| |
| The 126th release of NuttX, Version 7.26, was made on September 8, 2018, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.26.tar.gz and |
| apps-7.26.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - General: Eliminate use of the non-standard type systime_t and |
| replace it the equivalent, standard type clock_t From Gregory Nutt. |
| - General: Replace non critical PANIC with DEBUGPANIC to save the |
| code space From Xiang Xiao. |
| - General: Replace all ASSERT with DEBUGASSERT to save the code |
| space From Xiang Xiao. |
| - Initialization: Add option to mount block device for |
| INIT_FILEPATH case. From anchao. |
| - clock(): clock_systimer() is no longer a system interface. It has |
| been replaced with the equivalent, standard interface clock(). |
| Moved the implementation of clock() from the C library into the OS |
| core. This is necessary because it calls the (now) internal OS |
| function clock_systimer(). clock() is now accessed only via a |
| system call in certain configurations. From Gregory Nutt. |
| - clock Utilities: Move clock_timespec_[add|subtract] to |
| include/nuttx/clock.h From Xiang Xiao. |
| - Binary Loader: Add binfmt_initialize(). All binary formats are |
| now registered centrally vs. in board-specific logic. This |
| simplifies the usage of the binfmt subsystem. From Xiang Xiao. |
| - Binary Loader: Reference default symtab name to binfmt From anchao. |
| - mm: Add mm_heapmember function and reimplement kmm_heapmember base |
| on mm_heapmember since this function is very useful if multiple |
| heaps exist. From Xiang Xiao. |
| - mm: Add {kumm/kmm}_calloc API. Add calloc API for manage user |
| memory and kernel memory in Flat Build/Kernel Build without kernel |
| heap. From zhuyanlin. |
| - pthreads: Add support static pthread stack. Add standard |
| pthread_attr_setstack() and pthread_attr_getstack(). In all cases |
| where the stack is released, add check to see which allocator must |
| be used to free the stack: The user or the kernel allocator. From |
| xuanlin. |
| - Semaphores: Apply the semaphore wait function |
| nxsem_wait_uninterruptible(). This function is a wrapped version |
| of nxsem_wait() that is uninterruptible and convenient for use. |
| From liuhaiyang. |
| - Signals: Add default signal action to SIGKILL. From ligd. |
| - Signals: Update the signal default action logic to support |
| sigaction(). signaction() must be able to handle and input action |
| of SIG_DFL to setup the default signal action; it mast also return |
| SIG_DFL it is replacing the default action. From Gregory Nutt. |
| - Signals: Default Signal Actions. Change some types to |
| superficially simplify. Add configuration options to enabled |
| default signal behaviors on a per-signal basis. I don't think |
| users are prepared for SIGALRM to terminate the task (which is the |
| correct default behavior if you don't change it). Extend the |
| implementation of default signals so that it is totally table |
| driven and extensible by simply mondifying the content of const |
| tables. From Gregory Nutt. |
| - Signals: Add support for SIGINT in addition to SIGKILL. |
| - Signals: Add logic and an interface to determine if a signal can |
| be caught or ignored. sigaction now correctly returns EINVAL on |
| any attempt to catch or ignore such signals (only SIGKILL for now |
| and only if CONFIG_SIG_DEFAULT=y). From Gregory Nutt. |
| - Signals: Add support for default signal actions for SIGSTOP, |
| SIGSTP, and SIGCONT. Add procfs support to show stopped tasks. |
| From Gregory Nutt. |
| - Signals: Add nxsig_action() to solve a chicken and egg problem: |
| We needed to use sigaction to set default actions, but sigaction() |
| would refuse to set actions if the default actions could not be |
| caught or ignored. From Gregory Nutt. |
| - Signals: Add configuration option to selectively enabled/disable |
| default signal actions for SIGSTOP/SIGSTP/SIGCONT and SIGKILL/SIGINT. |
| - Signals: If a task/thread was already blocked when |
| SIGSTOP/SIGSTP was received, it will restart in the running state. |
| It will appear that to the task/thread that the blocked condition |
| was interrupt by a signal and returns the EINTR error. From |
| Gregory Nutt. |
| - Signals: Update signal default STOP action. If waitpid was |
| called with the WUNTRACED then wake up waitpid(). From Gregory |
| Nutt. |
| - IRQs: Monitor the IRQ execution time. This is very useful for |
| measuring the interrupt latency. From Xiang Xiao. |
| - IRQ Dispatch: Add support interrupt chains in NuttX. IRQ chain is |
| very useful in these cases: (1) Multiple hardware connect to the |
| same request line(e.g. PCI), (2) Need multiple driver to support |
| one hardware block (like Linux MFD) From zhuguangqing. |
| - Work Queue: Modify high priority work queue to support multiple |
| threads. From ligd. |
| - System Calls: Add support for getpeername() and get_sockname() |
| system calls. From Gregory Nutt. |
| - System Calls: svcall/sycall logic needs to get the ucontext |
| argument from R4 instead of stack since all syscall parameters pass |
| from registers in syscall.h From Xiang Xiao. |
| - CPU Load Measurement: Support the CPU load measurement using |
| timer_lowerhalf_s interface From Xiang Xiao. |
| - Assertions: Change CONFIG_BOARD_RESET_ON_CRASH to |
| CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to |
| board_reset() if in all implementations of up_assert() when |
| CONFIG_BOARD_RESET_ON_ASSERT=y. From Xiang Xiao. |
| - boardctl(): Add support for board_app_finalinitialize() From ligd. |
| - Architecture Interface: Add prototype for an architecture-specific |
| up_trigger_irq function. From dongjianli. |
| - Architecture Interface: Add the garbage collection hook so each |
| architecture can do custom memory cleanup if necessary. From Xiang |
| Xiao. |
| - Architecture Interface: Add architecture-specific prototypes for |
| conversions between physical and virtual address. From ligd. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - ProcFS: Add support for a procfs entry that will permit examining |
| the environment of any task. From Gregory Nutt. |
| - ProcFS: Add support for proc/self/, a convenient way for getting |
| information about the currently running task. From Gregory Nutt. |
| - HostFS: Add support for open() append mode From anchao. |
| - HostFS: Add ftruncate support. From Xiang Xiao. |
| - HostFS: Remove ARCH_SIM dependence since other architectures |
| (e.g., arm semihosting) could support hostfs too From Xiang Xiao. |
| - HostFS: Support remote directory names without a trailing '/' |
| From ligd. |
| - HostFS: Add re-try when hostfs mount() fails From ligd. |
| - NFS: Update NFS client mount to VER3 From zhangyuan7. |
| - Partitions: Add PTABLE parser fs/partion: Add a partition parser |
| framework fs/driver/fs_blockpartition.c: Add |
| register_blockpartition for block partition From Xiang Xiao. |
| - MTD: Add gd25 driver From wangyanjiong. |
| - MTD: In MTD partitions, copy the partition name to internal |
| buffer so that the caller can free the name argument From Xiang |
| Xiao. |
| - MTD: Support initialization of an FTL block device with a custom |
| name From Xiang Xiao. |
| - MTD: FTL: Reduce size of stack buffer from 64 to a maximum size |
| as determined from NAME_MAX. From Gregory Nutt. |
| - VFS poll(): Send poll() notification when the Tx buffer is flushed |
| From ligd. |
| - VFS fstat(): Add file_fstat() function for internal OS use. From |
| ligd. |
| - VFS fcntl(): Add file_fcntl, psock_fcntl, and psock_dupsd for use |
| within the kernel. From Xiang Xiao. |
| - VFS dup2(): Addpsock_dupsd for use within the kernel. From Xiang |
| Xiao. |
| - VFS poll(): Add poll use in kernel space. From dongjianli. |
| - VFS select(): Make select be more consistent with Linux man page: |
| 'The timeout ... Some code calls select() with all three sets |
| empty, nfds zero, and a non-NULL timeout as a fairly portable way |
| to sleep with subsecond precision.' From anchao. |
| |
| * Networking/Network Drivers: |
| |
| - Sockets: Add getpeername() support From ligd. |
| - sockopt(): Move psock check from [get|set]sockopt to |
| psock_[get|set]sockopt From Xiang Xiao. |
| - getsockname(): Add psock_getsockname function From Xiang Xiao. |
| - Netlink Sockets: This brings in a fragmentary, experimental |
| implementation of NETLINK sockets. There is not too much to that |
| socket support on this initial commit, just the netlink socket |
| framework. However, I decided to bring it into master because |
| there is a enough that I would not want to lose what is in place. |
| And since it is dependent on CONFIG_EXPERIMENTAL, its presence on |
| master should be innocuous. From Gregory Nutt. |
| - Interface Indexes: Add driver interface index support. Add |
| implementation of if_nametoindex() and if indextoname(). Raw |
| AF_PACKET sockets now depend on CONFIG_NETDEV_IFINDEX. Add syscall |
| support for if_nametoindex() and if_indextoname(). Includes an |
| algorithm to prevent an interface index from being reused until all |
| network interfaces have by assigned once. The prevents removable |
| devices from being removed, unregistered and re-installed, |
| re-registered and keeping the same interface index. From Gregory |
| Nutt. |
| - Driver Interface: Add devif_loopback() to check the loopback |
| case where a packet is being sent to itself. Modify the net driver |
| to call this function in this case. This function will simply |
| re-inject the packet back into the network and the network driver |
| will not put anything on the wire. From Xiang Xiao. |
| - Network Devices: Remove all references to CONFIG_NET_USER_DEVFMT. |
| That feature is now unconditionally enabled. This was done because |
| (1) the feature does not require very much additional memory, and |
| (2) it causes confusion in the configuration due to the additional |
| complexity. Any network drivers that fail to zero the device |
| structure interface name field (d_ifname) because calling |
| netdev_register() will, however, get a nasty surprise. From |
| Gregory Nutt. |
| - Network Devices: Add support for Microchip LAN91C111 driver From |
| Xiang Xiao. |
| - Network Devices: netdev_findby_ipv[4|6]addr return |
| netdev_default() as last resort but don't return loopback device |
| if another network device is in the UP state. From Xiang Xiao. |
| - Network Device IOCTLs: Add si_ioctl callback and net_ioctl_arglen |
| so usrsock could forward the ioctl to the remote end/ From |
| dongjianli. |
| - IPv6: Rename g_ipv6_allzeroaddress with the more meaning |
| g_ipv6_unspecaddr since the all-zero address is the IPv6 |
| unspecified address (sometime IN6_ADDR_ANY). Replace more inline |
| tests for IPv6 multicast with common net_is_addr_mcast() macro. |
| From Gregory Nutt. |
| - ARP: arp_find() now checks if the target IP belongs to one of the |
| local network devices. From Xiang Xiao. |
| - ARP: Make the function arp_find() thread-safe. It now returns a |
| copy of the MAC address from the ARP table entry, rather than a |
| potentially unstable reference to the ARP table entry. From |
| Gregory Nutt. |
| - TCP: Re-work of TCP receive window size algorithm. The new logic |
| is based only on the ability to buffer TCP read-ahead data. From |
| Gregory Nutt. |
| - UDP: Add support for the UDP_BINDTODEVICE protocol socket option |
| From Sebastien Lorquet. |
| - Slip: Uncomment the prompt of NET_SLIP_PKTSIZE in Kconfig file. |
| From Xiang Xiao. |
| - USRSOCK: Combine some the duplicated logic. From Xiang Xiao. |
| - USRSOCK: Optimize option dependence From Xiang Xiao. |
| - USRSOCK: Add the listen/accept/getpeername/ioctl support From |
| dongjianli. |
| |
| * Other Common Device Drivers: |
| |
| - Analog DAC: Add driver for digital to analog converter DAC7571. |
| Nucleo-L422KC: Add support for a connect DAC7571 converter. From |
| Daniel Pereira Carvalho. |
| - Audio Interface: Change member samp of apb to pointer so driver |
| can customize sample buffer allocation From ZhongAn. |
| - Audio Interface: Add ioctl cmd 'AUDIOIOC_SETBUFFERINFO' so user |
| space could config the buffer From ZhongAn. |
| - Audio Interface: Add hardware format support From anchao. |
| - I2S Interface: Add i2s_rxchannels and i2s_txchannels methods to |
| the I2S lower half interface. From ZhongAn. |
| - Audio: Move the I2S character driver to a dedicated folder. From |
| Xiang Xiao. |
| - Audio: Add audio_i2s device driver. From ZhongAn. |
| - Audio: Add the composite audio driver From Xiang Xiao. |
| - Crypto: Move dev_urandom.c into new crypto folder. From Xiang |
| Xiao. |
| - GPIO driver: Add gpio_pin_unregister function to GPIO driver |
| driver/ioexpander: Add pinset struct to GPIO driver for interrupt |
| pins larger than 64. Initialize pintype/inttype when registering |
| ioexpander device. Add SETPINTYPE ioctl command to the GPIO |
| driver. From zhuyanlin. |
| - I2C Interface: Add a definition to distinguish a new START of |
| messages from a repeated start. No lower-half I2C drivers actually |
| implement this new flag bit, however. In I2C write/read logic use |
| new repeated START definition where appropriate. Rename |
| I2C_M_NORESTART to I2C_M_NOSTART since it may be used in other |
| contexts than a repeated start. Add comments to clarify setup for |
| repeated start. From Gregory Nutt. |
| - I2C: Add the standard speed macros. From dongjiuzhu. |
| - Leds: Add support to MAX7219 to control 7-segment displays. From |
| Alan Carvalho de Assis. |
| - Power: PM: Add pm_stay and pm_relax function so special apps(e.g. |
| mediaplayer) could disable suspend during playback much like linux |
| kernel counterpart From Xiang Xiao. |
| - Power: PM: Add pm_querystate function From zhuguangqing. |
| - Power: PM: Don't update the power state in work thread: (1) |
| Simplify the code logic and remove the work queue dependence, (2) |
| Power calculation is too simple to delay into the work queue From |
| Xiang Xiao. |
| - Power: PM: Decrease the power state in the reverse order. Since |
| the child driver need power off before parent driver. From |
| zhuguangqing. |
| - Power: PM: Make power manager service available as soon as |
| possible: (1) Initialize g_pmglobals at the definition, (2) skip |
| hold the lock if OS isn't ready From Xiang Xiao. |
| - Power: PM: Add PM_RESTORE to notify driver that device exit WFI |
| so the driver could restore state. For example, WDT may stop |
| counting before enter low power state and restore the counting |
| again in PM_RESTORE notification From zhuguangqing. |
| - Power: PM: Add timer to decrease PM level automatically. From |
| ligd. |
| - PTYs: Add support so that a PTY can poll for both IN/OUT event |
| simultaneously. From ligd. |
| - PWM: Move pwm.c into pwm folder From Xiang Xiao. |
| - RTC Interface: Extend struct rtc_time by adding. From Xiang |
| Xiao. tm_nsec if RTC supports hiresolution time. From Xiang Xiao. |
| - Sensors: Add support for Telair T6713 carbon dioxide sensor. From |
| Juha Niskanen. |
| - Sensors: Add support for LSM303AGR and LSM6DSL sensors From |
| DisruptiveNL. |
| - Sensors: Add driver for DHTxx sensor. From Ouss4. |
| - syslog: Enable a partial, crippled version of syslog_flush(); |
| Call syslog_flush() from assertion handling logic of all |
| architectures. From Gregory Nutt. |
| - syslog: Channel configuration. Decouple SYSLOG_SERIAL_CONSOLE and |
| ARCH_LOWPUTC. Since some hardware can output log to the special |
| debug channel not serial. From anchao. |
| - syslog: Support pre-pending a prefix string to log output if |
| enabled. This very useful to identify which CPU send out the log |
| in AMP SoC. From anchao. |
| - Serial: Add Ctrl-C/Ctrl-X support. From ligd. |
| - Serial: Support UART direct write for non console device From |
| xuanlin. |
| - Serial: It is no longer necessary to restrict Ctrl-C handling to |
| the FLAT build sched/signal: Add a new configuration option to |
| select signal default actions, separate handling of signal default |
| actions from both task startup logic and from the serial TTY |
| Ctrl-C logic. Add a signal set in the group structure to keep |
| track of what signals have been set to the default action. In |
| dispatching signals in PROTECTED or KERNEL mode, use this signal |
| set to determine if the default signal handler is attached and |
| dispatch the signal in kernel mode for the default actions. From |
| Gregory Nutt. |
| - Serial: Integrate new Ctrl-C logic with the ISIG flag in the |
| termios c_lflag. From Gregory Nutt. |
| - Serial: Use SIGINT instead of SIGKILL when control-C is pressed. |
| From Gregory Nutt. |
| - Serial: Add support for Ctrl-Z. This works just like the |
| recently added Ctrl-C support except that SIGSTP is sent when the |
| Ctrl-Z characters is encountered vs. SIGINT. From Gregory Nutt. |
| - 16550 UART: Add a configuration, analogous to the STM32 |
| configuration option, to suppress the NuttX standard re-ordering |
| for /dev/ttySN for special case of the 16550 UART. |
| - 16550 UART: Add CONFIG_SERIAL_UART_ARCH_MMIO option so the a |
| memory mapped device doesn't need to provide uart_getreg() and |
| uart_putreg() implementations. |
| - 16550 UART: Add stub implementations of DMA-related methods in the |
| 16550 UART v-table. From ligd. |
| - 16550 UART: Add serial termios handling From anchao. |
| - 16550 UART: Support 16550 auto hardware flow control |
| drivers/serial/uart_16550.c: Add configuration option |
| CONFIG_16550_SUPRESS_INITIAL_CONFIG. This is identical to the |
| standard configuration in arch/Kconfig |
| CONFIG_SUPPRESS_UART_CONFIG, but with scope of only the 16550 |
| driver. From Xiang Xiao. |
| - syslog: Make timestamp output same as linux kernel. It's very |
| useful if NuttX syslog retarget to Linux syslog. From Xiang Xiao. |
| - Timers: Add maxtimeout method to the struct timer_ops_s interface |
| From Xiang Xiao. |
| - Timers: Add a new method to the struct oneshot_operations_s |
| interface to get the current time from a oneshot timer driver (if |
| it is available from the lower half) From Xiang Xiao. |
| - Timers: Implement timer arch API on top of timer driver. From |
| Xiang Xiao. |
| - Timers: Implement alarm arch API on top of oneshot driver |
| interface. From Xiang Xiao. |
| - Timers: Implement RTC arch API on top of RTC driver interface. |
| From Xiang Xiao. |
| - CDC/ECM: Adds USB device support for CDC/ECM From Michael Jung. |
| - USB Host: Add support for the Maxim M3421E USB host driver. Not |
| yet fully tested. From Gregory Nutt. |
| |
| * General Architecture-Specific: |
| |
| - All architectures: Make sure the up_irq_enable() is available on |
| all architectures. From Gregory Nutt. |
| |
| * Simulation |
| |
| - Simulator Configurations: Add dsptest configuration. From Mateusz |
| Szafoni. |
| - Simulator: In network driver (1) Remove up_comparemac() check for |
| matching MAC address. Let's trust that the tap device just return |
| the packet which belong to us like other real network device |
| hardware. (2) Add network device statistics support. From Xiang Xiao. |
| |
| * ARM: |
| |
| - ARM (all): Add CONFIG_DEBUG_MEMFAULT to Kconfig. From Masayuki |
| Ishikawa. |
| - ARM: (1) Add semihost support for syslog, (2) Add semihost support |
| for HostFS From Gregory Nutt. |
| |
| * ARMv6-M: |
| |
| - ARMv6-M: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c |
| From Masayuki Ishikawa. |
| |
| * ARMv7-M: |
| |
| - ARMv7-M: Removes support for the dedicated vector handling from the |
| many older architectures. Only common vectors are now supported. |
| From Gregory Nutt. |
| - ARMv7-M: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c |
| From Masayuki Ishikawa. |
| - ARMv7-M: Implement SYSTICK timer driver From Xiang Xiao. |
| - Simulator: Add loadable demo for arch sim. From anchao. |
| - ARMv7-M: Add logic to trigger ARMv7-M interrupts and exceptions. |
| From Gregory Nutt (from sample logic by Xiang Xiao). |
| - ARMv7-M: Add NVIC definitions needed by up_trigger_irq(). From |
| Gregory Nutt. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R: Add general interrupt controller. This is based on |
| ARMv7-A gic controller code. From EunBong Song. |
| - ARMv7-R: Add invalidate dcache in arm_head.S. From EunBong Song. |
| |
| * Infineon XMC4xxx Drivers: |
| |
| - XMC4 GPIO: Add a specific bit encoding to GPIO driver for |
| opendrain GPIO pin. From Alan Carvalho de Assis. |
| |
| * Infineon XMC4xxx Boards: |
| |
| - XMC4500-Relax: Add support to MAX6675 on XMC4500-Relax board. |
| From Alan Carvalho de Assis. |
| |
| * Microchip PIC32MX Boards; |
| |
| - PIC32MX: Update some PIC32MX configurations so that either the |
| MPLAB or Penguino toolchains may be used. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMD2x/L2x: |
| |
| - SAMD2x/L2x: Rename all usage of samdl/SAMDL to samd2l2/SAMD2L2 to |
| make room in the name space for samd5e5/SAMD5E5 From Gregory Nutt. |
| |
| * Microchip/Atmel SAMD5x/E5x: |
| |
| - SAMD5x/E5: Add a port to the SAMD5x/E5x MCU family. From Gregory |
| Nutt. |
| |
| * Microchip/Atmel SAMD5x/E5x Drivers: |
| |
| - SAMD5x/E5x SPI/I2C: Bring in untested SPI and I2C drivers from |
| SAMD2L2. From Gregory Nutt. |
| - SAMD5x/E5x DMA: Leverage the SAMD2L2 DMA controller. From Gregory |
| Nutt. |
| - SAMD5x/E5x USB: Bring the SAMDL2 USB driver into the SAMD5E5 |
| port. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMD5x/E5x Boards: |
| |
| - Metro M4: Add support for the Adafruit Metro M4 board. From |
| Gregory Nutt. |
| - Metro M4: Add an option to build the Metro M4 image to run out of |
| SRAM. This ought to be a safer and quicker way to do the initial |
| bring-up (having bricked the first Metro M4 due to a bad FLASH |
| image). From Gregory Nutt. |
| - Metro M4: Add a configuration option to use OSCULP32K instead of |
| XOSC32K. From Gregory Nutt. |
| - Metro M4: After some final fixes related to the SERCOM console, |
| the basic NSH configuration appears fully functional. From |
| Gregory Nutt. |
| - Metro M4: Verify the CMCC and enable it by default in the NSH |
| configuration. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMv7 Drivers: |
| |
| - SAMv7 CAN: Add ability for CAN BUS_OFF autorecovery according |
| ISO11898-1:2015. With this change we added an ioctl for triggering |
| the autorecovery sequence for BUS_OFF to the CAN-driver and the |
| SAMV7 low-level driver. According the datasheet: If the device |
| goes Bus_Off, it will set MCAN_CCCR.INIT of its own accord, |
| stopping all bus activities. Once MCAN_CCCR.INIT has been cleared |
| by the processor (application), the device will then wait for 129 |
| occurrences of Bus Idle (129 * 11 consecutive recessive bits) |
| before resuming normal operation. At the end of the Bus_Off |
| recovery sequence, the Error Management Counters will be reset. |
| During the waiting time after the resetting of MCAN_CCCR.INIT, each |
| time a sequence of 11 recessive bits has been monitored, a Bit0 |
| Error code is written to MCAN_PSR.LEC, enabling the processor to |
| readily check up whether the CAN bus is stuck at dominant or |
| continuously disturbed and to monitor the Bus_Off recovery |
| sequence. MCAN_ECR.REC is used to count these sequences. From |
| Frank Benkert. |
| |
| * NXP Freescale i.MX RT Drivers: |
| |
| - i.MXRT RTC: Add support for the i.MXRT RTC. This is code complete |
| (with limited features and options) but untested. The HPRTC is |
| functional. However, if the LPSRTC is enabled, then there is a |
| hang during LPSRTC initialization. It appears that there is some |
| problem in providing clocking and initializing the LPSRTC domain. |
| From Gregory Nutt. |
| - i.MXRT SNVS: Add trivial SNVS from Rev 1. of the Reference Manual. |
| From Gregory Nutt. |
| - i.MXRT LSPI: IMXRT1050 LPSPI register and bit definitions added. |
| From Ivan Ucherdzhiev. |
| - i.MXRT Serial: IMXRT1050 LPUART TERMIOS support added. From Ivan |
| Ucherdzhiev. |
| |
| * NXP Freescale i.MX RT Boards: |
| |
| - IMXRT1050-EVK: Add knsh configuration. PROTECTED mode NSH build. |
| From Gregory Nutt. |
| |
| * NXP Freescale Kinetis: |
| |
| - Kinetis: Add DMA support. From David Sidrane. |
| |
| * NXP Freescale Kinetis Drivers: |
| |
| - Kinetis: Use circular DMA as an option to augment the RX FIFOs in |
| the Serial driver. From David Sidrane. |
| |
| * NXP LPC54xx: |
| |
| - LPC54xx: The LPC54608 can only run at a maximum frequency of |
| 180Mhz. This configuration requires uses the clk_in, external |
| crystal clock, to drive the PLL. When that input was selected, the |
| board bootup failed waiting for the PLL to lock. After referring |
| the driver from NXP, we should turn on power sources for the ext |
| clock if system pll input select clk_in. NOTE that the LPC54628 |
| did not require this step... perhaps because the system oscillator |
| power was already enabled. From kxjiang. |
| - LC823450: Add support for mpu and userspace LC823450-XGEVK: Add |
| kostest PROTECTED build LC823450-XGEVK: Add knsh PROTECTED build |
| From Masayuki Ishikawa. |
| |
| * NXP LPC54xx Boards: |
| |
| - Lpcxpresso-LPC54628: Update lvgl board config to use the new |
| version From Alan Carvalho de Assis. |
| |
| * On Semi LPC23450 Drivers: |
| |
| - LC823450 Bluetooth: Add lc823450 Bluetooth support. From Masayuki |
| Ishikawa. |
| - LC823450 I2S: Add tx start threshold to lc823450_i2s.c In |
| addition, lc823450_i2s_send() now accepts byte-aligned stream. |
| From Masayuki Ishikawa. |
| - LC823450 SPI: Add SPI flash driver for lc823450. NOTE: Only bus |
| accelerator mode is supported. From Masayuki Ishikawa. |
| - LC823450: Change C-Buffer under-level control. The under-level |
| setting was changed from 1KB to 55KB. In previous implementation, |
| the setting can be changed by the tx threshold but it is fixed at |
| startup. Also, check write size and adjust alignment if needed. |
| From Masayuki Ishikawa. |
| |
| * On Semi LPC23450 Boards: |
| |
| - LC823450-XGEVK: Add loopback test for digital MIC on lc823450 via |
| i2schar driver. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Add lc832450 elf test. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Add posix_spawn configuration From Masayuki |
| Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32 L4: Add initial support to STM32L4+ chips From Juha Niskanen. |
| - STM32 H7: A partial port to the STMicro STM32H7 by Simon Laube was |
| brought in from the PX4 repositories. Numerous changes were |
| make(by Mateusz Szafone). The basic STM32 H7 NSH configuration is |
| now functional, thanks to Mateusz Szafoni. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F0, F1-F4, F7, L4, H7: Added Single Wire Kconfig variable. |
| From David Sidrane. |
| - STM32 DAC: Set OUTEN bit for DAC1CH2 and DAC2CH1 power/motor. |
| Direction parameter is now int8 + add overload fault. From Mateusz |
| Szafoni. |
| - STM32 F1-F4 ADC: Allow multiple channels without DMA on |
| STM32L15XX. From Juha Niskanen. |
| - STM32 F1: Add FLASH register definitions for F1 parts that have |
| dual banked FLASH. From Dmitriy Linikov. |
| - STM32 F2: Added progmem interface support for STM32 F2 From |
| Dmitriy Linikov. |
| - STM32 F4: Ports STM32 LTDC and STM32 DMA2D to use the |
| framebuffer interface From Marco Krahl. |
| - STM32 F7: This change ports Marco Krahl's STM32F4 framebuffer |
| overlays for the LTDC and DMA2D into the STM32F7. That driver was |
| same as the STM32 F4 driver. From Gregory Nutt. |
| - STM32 F7: Port input capture from stm32. From Juha Niskanen. |
| - STM32 F7 FLASH: Ported the STM32 F2/F4 driver to the STM32 F7 |
| platform. From Evgeniy Bobkov. |
| - STM32 F7 SDMMC: Add SDIO card support to SDMMC driver. From |
| Ramtin Amin. |
| - STM32 F7 Serial: Previous logic would invalidate the data cache as |
| each byte was read from the DMA buffer. This change adds logic to |
| invalidate the data cache less frequently by monitoring the state |
| of the Rx DMA buffer cache coherency and invalidating only regions |
| as necessary. From Evgeniy Bobkov. |
| - STM32 F7: Add up_stackcheck.c From Daniel Agar. |
| - STM32 F7: Port the low-level PM functions to STM32 F7. From Juha |
| Niskanen. |
| - STM32 L4: STM32L4 has fetchadd and testset From Juha Niskanen. |
| - STM32 L4: Added custom pin mapping for STM32L4X2XX processors. |
| From Daniel P. Carvalho. |
| - STM32 L4 FLASH: stm32l4xrxx: allow board to override flash wait |
| states From Juha Niskanen. |
| - STM32 L4: Some updates to analog peripherals ADC, COMP and DFSDM |
| for STM32L4XR From Juha Niskanen. |
| - STM32 L4: Add getstatus and getperiod() method to the timer |
| driver (includes coding standard changes made prior to commit) |
| From Goden Freemans. |
| - STM32 H7: Remove old references to RXDMA. Add configuration |
| - STM32 H7: Remove old references to RXDMA. Add configuration |
| option to select the Rx FIFO threshold level. From Gregory Nutt. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103 Minimum: Add blackpill LED support From Russ Webber. |
| - Viewtool-STM32F107: Add a TCP performance test using |
| apps/examples/tcpblaster. From Gregory Nutt. |
| - Viewtool-STM32F107: Add support for the MAX3421E to the |
| Viewtool-STM32F107 board support From Gregory Nutt. |
| - STM32F334-DISCO: Use a PID controller from libdsp in the BuckBoost |
| driver. From Mateusz Szafoni. |
| - STM32F4-Discovery: Remove STM32F4BB dependence from RNDIS; add |
| RAMDISK support. From Alan Carvalho de Assis. |
| - STM32F4-Discovery Add board support for MAX7219 as numeric display |
| controller. From Alan Carvalho de Assis. |
| - Olimex-STM32-P407: Add kernel ELF (kelf) configuration. From |
| Gregory Nutt. |
| - Olimex-STM32-P407: Add a kmodule configuration that can be used |
| for testing installation of kernel modules in the protected build. |
| From Gregory Nutt. |
| - Olimex-STM32-P407: Add logic to support initialization of the |
| kernel module symbol table installed in the pass1/ directory during |
| the application phase of the build. The kmodule configuration |
| appears to be fully functional. From Gregory Nutt. |
| - Olimex-STM32-P407: Add board support for the DHTxx sensor. From |
| Ouss4. |
| - STM32F476G-DISCO: Add support for STM32F746G-disco board LCD. |
| From Marcin Wyrwas. |
| - STM32F476G-DISCO: Add a configuration to build working nxdemo |
| application From Fanda. |
| - STM32F476G-DISCO: Add support for STM32F746G-disco board SDRAM |
| Changed fb config to use SDRAM. From Marcin Wyrwas. |
| - STM32F476G-DISCO: Add touchscreen support and a LittlevGL demo for |
| STM32F746G-DISCO From Marcin Wyrwas. |
| - Nucleo-L476RG: Add support for an external SPI-driven SD card on |
| the Nucleo-L476RG. From Gregory Nutt. |
| - Nucleo-L476RG: Add support for LSM303AGR and LSM6DSL sensors From |
| DisruptiveNL. |
| - Nucleo-H743ZI: Use Nucleo Virtual console as default console in |
| the NSH configuration From Mateusz Szafoni. |
| - STM32L4R9-DISCO: Add stm32l4r9ai-disco support. From Juha Niskanen. |
| - B-L475E-IOT01A: Add timer driver support. From Goden Freemans. |
| |
| * Libraries/Header Files: |
| |
| - libc endian: Add support for endian.h. From Gregory Nutt. |
| - libc net: Add inet_aton() From Juha Niskanen. |
| - libc netdb: Add getaddrinfo() and friends. From Juha Niskanen. |
| - libc termios: Add lib_cfmakeraw.c From Masayuki Ishikawa. |
| - libc stdlib: Add implementation of random() and srandom(). From |
| Gregory Nutt. |
| - libc unistd: Add a crippled version of daemon(). From Gregory Nutt. |
| - libdsp: All floats with f-sufix libdsp: (1) add precision option |
| for library, (2) add debug option for library and assertions in |
| functions, (3) add current samples correction for SVM3, (4) add |
| some motor control specific functions, (5) add basic speed |
| observer, (6) fix phase shift in SMO observe, (7) add more logic to |
| FOC. From Mateusz Szafoni. |
| - include/nuttx/compiler.h, include/poll.h: Add logic to determine |
| if the compiler supports anonymous structures and unions. From |
| Gregory Nutt. |
| - include/nuttx/mutex.h: Add inline wrapper functions to more |
| clearly support semaphores when used as mutexs. From QianWenfa. |
| - include/nuttx/nuttx.h: Added nuttx.h header file which is |
| analogous to the linux.h header file. Currently, it contains on |
| the definition of the container_of() macro. From zhuyanlin. |
| - include/queue.h: Add dq_tail marco From zhuguangqing. |
| - include/stdio.h: Add prototypes for popen() and pclose(). Actual |
| implementation is in apps/system/popen() From Gregory Nutt. |
| - include/sys/param.h: Add a dummy sys/param.h header file. This is |
| not a standard file but is used by other systems and having the |
| dummy file may minimize some porting efforts. From Gregory Nutt. |
| |
| * Tools: |
| |
| - nuttx/tools/kconfig2html.c: Due to new usage, tool needs to be |
| able to handle configuration files with names other than Kconfig. |
| From Gregory Nutt. |
| - nuttx/tools/kconfig2html.c: Update tool to handle tristate types. |
| From Gregory Nutt. |
| - nuttx/tools/Config.mk: Add function CATFILE definition. Currently |
| only used in apps/builtin/Makefile. From Gregory Nutt. |
| - nuttx/tools/Config.mk: Add the recursive wildcard function, |
| RWILDCARD, to Config.mk. From Gregory Nutt. |
| - nuttx/tools/testbuild.sh: Add an option to specify the location of |
| nuttx directory. From Gregory Nutt. |
| - nuttx/tools/refresh.sh: Add a --prompt option that will let you |
| use --silent but will prompt before overwriting the original |
| defconfig. From Gregory Nutt. |
| - nuttx/tools/link.sh. Update link.sh per suggestions by Mark so |
| that it can be used with MSYS vs copydir.sh. From Gregory Nutt. |
| - nuttx/tools/mkexport.sh: Save the System.map file and User.map |
| file (if it exists) in the export package so that it can be used to |
| extract addresses. From Gregory Nutt. |
| - nuttx/tools/mkexport.sh: Save the name of the STRIP tool too. From |
| Gregory Nutt. |
| - nuttx/tools/nxstyle.c: Add capability to detect multiple blank |
| lines. Single spacing required by the coding standard. Also coding |
| standard fixes to server .c files for problems found during testing |
| nxstyle. From Gregory Nutt. |
| - apps/tools: Add +x to mksymtab.sh. From Masayuki Ishikawa. |
| - apps/tools/define.sh and define.bat: Move a copy of define.bat |
| and sh from nuttx/tools to apps/tools so that they will be |
| available for the import build. From Gregory Nutt. |
| |
| * Build System: |
| |
| - Apps/ Build System. The apps/ build system has undergone a major |
| renovation to better support building applications as ELF modules. |
| Module selections have changed from 'bool' to 'tristate' types. |
| This means that building an ELF now is as simple setting the value |
| to 'm'. This effort required many changes, too many to summarize |
| here. The solution was contributed by Masayuki Ishikawa, Anchao |
| An, and Xiang Xiao (and myself to a lesser extent). |
| - NuttX/ Build System: This change extends support for the two-pass |
| build. Its primary purpose is to incorporate source logic |
| generated by applications into the kernel phase of the build. |
| In the two pass build, the application logic is built during the |
| first phase, pass 1. In that phase, the application may generate |
| and install source files in the pass1/directory. The operating |
| system is built during phase 2 of the build. At that time, those |
| source files in the pass1/ directory will be built and incorporated |
| into the kernel address space. |
| The primary purpose of the pass1/ directory is to such |
| application-generated kernel symbol tables. For an example of the |
| use of this feature, look at |
| apps/examples/module/drivers/Makefile. Kernel symbol tables are |
| needed to support kernel modules. Of course, addition |
| board-specific logic in, say, configs/<board>/src would have to be |
| included to make use of the application-installed symbol tables. |
| From Gregory Nutt. |
| - Remove CONFIG_ARCH_CALIBRATION. It is awkward to use and no longer |
| necessary now that we have apps/examples/calib_udelay. From |
| Gregory Nutt. |
| - Build System: With recent changes to apps/ all configurations that |
| build applications as modules must now also select |
| CONFIG_APPS_LOADABLE. From anchao. |
| - Build System: Add dynamic application loadable support. From |
| anchao. |
| - Build System: Add configuration CONFIG_ARCH_GNU_NO_WEAKFUNCTIONS |
| to suppress use of weak functions. Some gnu derived toolchains do |
| not support weak symbols. From Xiang Xiao. |
| - Kconfig: Move 'option modules' from NSH_FILE_APPS to |
| BUILD_LOADABLE From anchao. |
| - apps/ Build System: Introduce a build system for loadable apps |
| for nsh. Add 'option modules' to NSH_FILE_APPS so that a user can |
| change an application configuration to tristate (y/n/m) |
| - apps/import: Add Makefile.symtab which can be used to compile the |
| dynamically created symbol table C file. Also adds |
| tools/mksymtab.sh. From Gregory Nutt. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib: Add parsing support for back-slash quoted |
| characters. Currently only implemented properly if |
| CONFIG_NSH_ARGCAT is also selected. This commit is in response to |
| Bitbucket Issue 11 opened by Maciej Wójcik From Gregory Nutt. |
| - apps/nshlib: Add inverted logic support in the form of 'if ! |
| <cmd>' From Beat Küng. |
| - apps/nshlib: Expand reboot and poweroff commands to include a |
| second, optional mode argument From ligd. |
| - apps/nshlib: Add a force flag (-f) to mksmartfs command. SmartFS |
| will be formatted only if (1) the FLASH does not already hold a |
| SmartFS, or (2) the force flag is set. From Xiang Xiao. |
| - apps/nshlib: NSH prompt string is now configurable. nsh> is |
| still the default. From Xiang Xiao. |
| - apps/nshlib: Add control-C support for terminating built-in and |
| exec'ed file tasks. From ligd. |
| - apps/nshlib: Call BOARDIOC_FINALINIT after start-up script (or |
| immediately after BOARIOC_INIT is there is no start-up script). |
| From ligd. |
| - apps/nshlib: When using waitpid() to wait for a built-in |
| application or a file application to exit. Add the WUNTRACED |
| options to so the the waitpid() call will also be awakened if the |
| waited-for task is stopped as well. From Gregory Nutt. |
| |
| * NSH Builtins: apps/builtin: |
| |
| - apps/builtin/Makefile. This commit changes apps/builtin to search |
| the registry recursively. By supporting directories, external |
| projects can install the hooks into the registry and easily clean |
| them up and reinstall if something needs to be updated. Based on |
| an idea from Anthony Merlino. From Gregory Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/calib_udelay: Add tool for calibrating |
| CONFIG_BOARD_LOOPSPERMSEC From Juha Niskanen. |
| - apps/examples/dhtxx: Example for the DHTxx sensor. From Ouss4. |
| - apps/examples/dsptest: Add unit test for Nuttx DSP library From |
| Mateusz Szafoni. |
| - apps/examples/elf: CROMFS and ROMFS configuration currently only |
| usable in FLAT build. Add configuration to use ELF objects on |
| external media like SD card or USB drive instead. From Gregory |
| Nutt. |
| - apps/examples/elf: If the test ELF files are on media in |
| removable media such as SD or USB FLASH, the wait until the media |
| has been installed and initialized before starting the test. From |
| Gregory Nutt. |
| - apps/examples/fb: Adds example to test framebuffer overlay From |
| Marco Krahl. |
| - apps/examples/gps: Add GPS example using MINMEA lib From Alan |
| Carvalho de Assis. |
| - apps/examples/i2sloop: Add i2sloop application. This application |
| can be used to test I2S loopback like: ' nsh> i2sloop &'. From |
| Masayuki Ishikawa. |
| - apps/examples/lvgldemo: Update LVGL to version 5.1.1 From Alan |
| Carvalho de Assis. |
| - apps/examples/module: Add support for CROMFS and for stripping |
| symbols from ELF module binaries. From Gregory Nutt. |
| - apps/examples/module: Add support for automounting removable media. |
| This involves a wait for the block driver to become available |
| before performing the mount. From Gregory Nutt. |
| - apps/examples/module: When built in the PROTECTED or KERNEL |
| modes, the symbol table is not built by the application. That is |
| because the build will fail since the kernel module depends on |
| internal OS symbols thar are not available to the application |
| build. With this change the examples does not attempt to build |
| the kernel symbol table in these modes. Instead it just copies |
| the kernel module symbol table into the nuttx/pass1 directory |
| where it can be build directly into the OS during pass2 of the |
| build. From Gregory Nutt. |
| - apps/examples/ostest: Add a small test for SIGSTOP, SIGCONT, and |
| SIGKILL actions. From Gregory Nutt. |
| - apps/examples/popen: Add a test of popen/pclose. From Gregory |
| Nutt. |
| - apps/examples/powerled: Add arch initialization. From Mateusz |
| Szafoni. |
| - apps/examples/tcpblaster: Add TCP performance measurement test. |
| From Gregory Nutt. |
| |
| * System Utilities: apps/system |
| |
| - apps/system/cle: Usage improvements including command line |
| history (taken from readline) and support for addition control |
| characters. From mst. |
| - apps/system/i2c: Adapt to rename I2C_M_RESTART->i2C_M_START. |
| I2C_M_NOSTOP should be in flags of first message in every |
| write-read and write-write message sequence. From Gregory Nutt. |
| - apps/system/i2c: Allow registers besides 0x00 in the dev command. |
| From Jakob Haufe. |
| - apps/system/nsh: Add logic to automatically register an |
| application symbol table as part of NSH initialization. From |
| Masayuki Ishikawa. |
| - apps/system/nsh: The symbol table name and size variable names |
| can now be configured. From Gregory Nutt. |
| - apps/system/nsh: Move apps/examples/nsh to apps/system/nsh. It |
| has become so entrenched that it is hardly an example these days. |
| May as well formalized it as a system task. From Gregory Nutt. |
| - apps/system/nxplayer: Refactor nxplayer.c. Apply |
| netlib_parsehttpurl() and |
| remove unnecessary usleep(). From Masayuki Ishikawa. |
| - apps/system/nxplayer: Release buffer before session and release |
| semaphore in nxplayer_setvolume system/nxplayer/nxplayer.c: |
| Remove & for apb->samp reference. It is already a pointer. From Xiang Xiao. |
| - system/nxplayer/nxplayer.c: Add playraw command From ZhongAn. |
| - apps/system/nxrecorder: Add nxrecorder application From ZhongAn. |
| - apps/system/popen: Add an implementation of the standard popen() |
| and pclose() OS interfaces. These are implemented as applications |
| vs. part of the OS because they depend on NSH. Untested on |
| initial commit. From Gregory Nutt. |
| - apps/system/system and popen: Adapt so that these can be used in |
| the KERNEL build mode. In this case, simply replace task_spawn() |
| with posix_spawn(). This depends on the existence of some |
| environment where /bin/sh exists and can be used to execute one |
| NSH command. For the case of system(), this change was more |
| complete because it previously used task_create(). Now it uses |
| either task_spawn() or posix_spawn(), depending upon the |
| configuration. From Gregory Nutt. |
| - apps/system/taskset: Add taskset command for SMP systems. This |
| command can be used to retrieve or set a process's CPU affinity. |
| For example, |
| |
| nsh> taskset -p 4 |
| pid 4's current affinity mask: 2 |
| |
| nsh> taskset -p 3 4 |
| pid 4's current affinity mask: 3 |
| |
| nsh> taskset -p 1 busyloop & |
| |
| From Masayuki Ishikawa. |
| - apps/system/zmodem: Support -p <path> for rz to change the folder |
| for the received file. Switch debug output from printf to |
| syslog. Send the next packet for ZME_ACK in ZMS_SENDING to avoid |
| rz on the host side stuck make send work reliable even without |
| hardware flow control. From Xiang Xiao. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/dhcpc: Activates BINDTODEVICE if available. From |
| Sebastien Lorquet. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/i8sak: i8sak daemon now gets shutdown if not in use. |
| Previously, once the i8sak daemon was started, by running any |
| command, it would stay running. This means that if you want to use |
| i8sak to setup your network, but then want exclusive access to the |
| char device, or network device, you have to manually shutdown the |
| i8sak daemon. Now the daemon stays active as long as required to |
| finish any commands, or stays open if a new command keeps it on, |
| but when all work is finished, it shuts down. From Anthony Merlino. |
| |
| * Filesystem Utilities: apps/fsutils: |
| |
| - mkfatfs: Clean up some name BS_ and MBR_ refer to the same record |
| and should use the same naming (MBR_). From Gregory Nutt. |
| - mkfatfs: Add definitions for the FAT boot record (FBR). From |
| Gregory Nutt. |
| - mksmartfs: Add a check to see if the SmartFS is already |
| formatted. From Xiang Xiao. |
| |
| * Graphic Utilities: apps/graphics: |
| |
| - graphics/littlevg/: Update LVGL to version 5.1.1 From Alan |
| Carvalho de Assis. |
| |
| * Test Utilities: apps/testing: |
| |
| - testing/unity: Add Unity - unit testing library from |
| ThrowTheSwitch.org. From Mateusz Szafoni. |
| |
| 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: Signal handlers maybe run with interrupts enabled or |
| disabled, depending on how the task the received the signal was |
| blocked. (i.e.: If sem_wait() is called, then we disable |
| interrupts, then block the currently running task). This could be |
| dangerous, because user code would be running with interrupts |
| disabled. |
| This change forces interrupts to be enabled in up_sigdeliver() |
| before executing the signal handler calling up_irq_enable() |
| explicitly. This is safe because, when we return to normal |
| execution, interrupts will be restored to their previous state when |
| the signal handler returns. From Gregory Nutt (Based on a |
| recommendation by Mark Shulte). |
| - Signals: Lock the scheduler while while killing the children so |
| that we do not lose priority and let the task group continue to |
| run in an indeterminate state. From Gregory Nutt. |
| - Groups: Fix a deadlock when loading an ELF From Masayuki Ishikawa. |
| - Groups: In some circumstances, group_killchildren() could have |
| called pthread_cancel() to kill a task. Also, the behavior would |
| not be as expected if a pthread had cancellation disabled. From Gregory Nutt. |
| - Posix Message Queues: mq_notify() fix - only part of struct copied |
| to internal structure. As source address the address of the struct |
| member sigev_value was used, and it is not located the start of the |
| struct. This leads to invalid data being copied to internal |
| structure. Both source and destination should be of type struct |
| sigevent* . From Simon Liedl. |
| - vfork(): vfork operation needs to allocate and copy the task |
| argument too. Also correction of the address correction cannot |
| depend on the stack pointer since it is not available in all |
| architectures. Rather calculate the offset from the stack |
| allocation pointer From Xiang Xiao. |
| - IRQ Dispatch: Ensure vector never points to NULL since interrupt |
| may happen before irq_initialize() From Xiang Xiao. |
| - Work Queue: workqueues don't need set global data to zero since |
| .bss is cleared automatically. Removing this unnecessary |
| initialization also avoids the loss the work items queued before |
| initialization. From ligd. |
| - Work Queue: Remove work queue polling delay to simplify the code |
| logic and save the power. From xuanlin. |
| - syslog: Fix syslog crash on 64bit simulation. From anchao. |
| - Pipes: Write to a pipe when there are no readers from the pipe |
| should return -EPIPE. From ligd. |
| - System Calls: Fix 6th parameter type of posix_spawnp in |
| syscall.csv From Masayuki Ishikawa. |
| - System Calls: Remove unused SYS_nnetsocket from syscall.h. Because |
| SYS_nnetsocket is not implemented so far, it should be removed so |
| that SYS_prctl can work correctly. From Masayuki Ishikawa. |
| - Binary Loader: Refactor binfmt_exec.c. This change also fixes an |
| argv issue for CONFIG_SCHED_ONEXIT=n or CONFIG_SCHED_HAVE_PARENT=n |
| From Masayuki Ishikawa. |
| - Binary Loader: Re-architect the way that loadable ELF or NXFLAT |
| modules are unloaded. Memory resources must be recovered when the |
| task loaded into memory exits. The original implementation used |
| the death-of-child SIGCHLD signal to perform the unload. There are |
| several problems with this: It is overly complex, it requires that |
| the parent task stay resident while the loaded task runs, and it |
| has fatal logic flaws in the protected and kernel model builds |
| because the user signal handler attempts to run in the kernel |
| address space. This corrects the issue using a mindlessly simply |
| BINFMT callback when the task exits. From Gregory Nutt. |
| - ELF Binary Loader: Set priority level to default if parent has no |
| priority. From anchao. |
| |
| * File System/Block and MTD Drivers: |
| |
| - Auto-mounter: Ignore return values from work_cancel(). From |
| Gregory Nutt. |
| - SmartFS: Fixed filesystem corruption when writing to small file |
| after open(... O_APPEND). From Dmitriy Linikov. |
| - SmartFS stat(): A previous change added support for checking if a |
| descriptor is a socket in fstat().' but it changed sys/stat.h in |
| way that breaks smartfs file-type stat flags. CROMFS is similarly |
| broken, as tools/gencromfs.c was not updated to match the |
| sys/stat.h changes. This commit fixes both issues. It probably is |
| not a good idea to use NuttX sys/stat.h bit-field values directly |
| in stored structure of filesystem. From Jussi Kivilinna. |
| - HostFS: Update duplicated definitions in HOSTFS that must match |
| NuttX values. From ligd. |
| - HostFS: Ensure f_type is equal to HOSTFS_MAGIC. From Xiang Xiao. |
| - ROMFS: Make romfs_devread32 more portable From anchao. |
| - TmpFS: Correct logic in tmpfs_ioctl() that extracts the priv state |
| structure from the file system structures. It was not getting the |
| right value and causing mmap() to fail. Noted by Jesse. From |
| Gregory Nutt. |
| - ProcFS network statistics: Was not handling the output correct for |
| the case of an IEEE 802.11 device. From Gregory Nutt. |
| - ProcFS IRQs: Fix occasional computation error when fracpart >= |
| 1000 From Xiang Xiao. |
| |
| * Networking/Network Drivers: |
| |
| - TAP/TUN: Fixed custom tun devname formatting. From Dmitriy Linikov. |
| - Network Drivers: This change attempts remove some long standard |
| confusion in naming and some actual problems that result from the |
| naming confusion. The basic problem is the standard MTU does not |
| include the size of the Ethernet header. For clarity, I changed |
| the naming of most things called MTU to PKTSIZE. For example, |
| CONFIG_NET_ETH_MTU is now CONFIG_NET_ETH_PKTSIZE. This makes the |
| user interface a little hostile. People think of an MTU of 1500 |
| bytes, but the corresponding packet is really 1514 bytes (including |
| the 14 byte Ethernet header). A more friendly solution would |
| configure the MTU (as before), but then derive the packet buffer |
| size by adding the MAC header length. Instead, we define the |
| packet buffer size then derive the MTU. |
| The MTU is not common currency in networking. On the wire, the |
| only real issue is the MSS which is derived from MTU by subtracting |
| the IP header and TCP header sizes (for the case of TCP). Now it |
| is derived for the PKTSIZE by subtracting the IP header, the TCP |
| header, and the MAC header sizes. So we should be all good and |
| without the recurring 14 byte error in MTU's and MSS's. From |
| Gregory Nutt. |
| - netdev: Fix.. Too many calls to net_unlock() From Gregory Nutt. |
| - IPv6: There are many different checks for IPv6 multicast |
| addresses. Most of the checks are different. RFC 3513 clearly |
| specifies how to detect an IPv6 multicast address: they should |
| begin with 0xffxx. I did not change some of the checks in |
| ipv6_input.c, however. In that file, the comments indicate that |
| the code should only pick of certain multicast address that begin |
| with 0xff02. From Gregory Nutt. |
| - ARP: Fix some backward logic in an if condition. From Gregory |
| Nutt. |
| - TCP Re-assembly: Rename CONFIG_TCP_REASSEMBLY to |
| CONFIG_IPv4_REASSEMBLY. Add some fixes to get a clean compile with |
| CONFIG_IPv4_REASSEMBLY enabled. There are several problems with |
| the current implementation: It is untested (and depends on |
| CONFIG_EXPERMIMENTAL). It uses some Ethernet specific definitions |
| (and depends on CONFIG_NET_ETHERNET). There is only a single |
| reassembly buffer. The last two issues prevent use of this feature |
| in any context where IPv4 packets may be reassembled for multiple |
| network devices concurrently). From Gregory Nutt. |
| - TCP: Set the default TCP MSS to the value required by RFC 879 and |
| never change it under any circumstance unless the remote host |
| requests a larger MSS via an option the TCP header. From Gregory |
| Nutt. |
| - TCP: Fix a deadlock condition that can occur when (1) all network |
| logic runs on a single work queue, (1) TCP write buffering is |
| enabled, and (2) we run out of IOBs. In this case, the TCP write |
| buffering logic was blocking on iob_alloc() with the network |
| locked. Since the network was locked, the device driver polls that |
| would provide take the write buffer data and release the IOBs could |
| not execute. This fixes the problem by unlocking the network lock |
| while waiting for the IOBs. From Gregory Nutt. |
| - TCP: Remove g_netstats.tcp.syndrop++ from tcp_data_event() From |
| Masayuki Ishikawa. |
| - TCP Monitor: Fix net unlock issue when tcp close. This bug could |
| leave the net locked. From zhangyuan7. |
| - UDP: When sending a broadcast (or multicast) packet do not attempt |
| to look up the device by the destination IP address. Rather, use |
| the locally bound address for these cases to select the correct |
| network device. From Gregory Nutt. |
| - UDP: Restore some legacy behavior that was lost with the |
| implementation of CONFIG_NET_UDP_BINDTODEVICE: If no device has a |
| local address when the broadcast packet is sent and the UDP socket |
| is not bound to a device, there select some arbitrary device. This |
| is certainly lunacy in the case where there are multiple network |
| devices registered because the wrong device will probably be |
| returned. It works find, however, for the legacy case where only a |
| single network device is registered. From Gregory Nutt. |
| - UDP: Fix for network byte-order issue when checking if an address |
| is a multicast address. From Jake Choy. |
| - USRSOCK: Correct of semaphore usage issues. From Gregory Nutt. |
| - USRSOCK: Fix re-definitions of struct iovec. From ligd. |
| - ICMP/ICMPv6 Connection: Change the type of id in |
| icmpv[6]_findconn to uint16_t From Xiang Xiao. |
| - ICMP/ICMPv6: Fix failure to poll ICMP socket issue. From |
| dongjianli. |
| |
| * Wireless/Wireless Drivers: |
| |
| - XBee: Fixes issue with timeouts. Timeouts were in ticks but |
| should have been in ms. This caused false triggers of timeout |
| causing redundant packets, etc. From Anthony Merlino. |
| - BCM43xx: Add missing logic to the BCM43xx IEEE 802.11 driver to |
| poll for more Tx data after the last transfer completes. From |
| Gregory Nutt. |
| - BCM43xx: Bring in some fixes from the 'Haywire' branch. From |
| Ramtin Amin. |
| |
| * Common Drivers: |
| |
| - Audio: Fix compile error in i2schar.c (CONFIG_DEBUG_ASSERTIONS=y) |
| From Masayuki Ishikawa. |
| - Audio I2S: Fix bad NULL pointer check From Juha Niskanen. |
| - Input: Fixed FT5x06 driver to correctly close (previously it |
| unregistered interrupt handler during close). From Marcin Wyrwas. |
| - MMC/SD: Fix an error that was causing SDIO multiple block |
| transfers from achieving full performance. From Bob Feretich. |
| - Sensors: Increases SPI frequency in MAX6675 from 400Khz to 4MHz. |
| From Alan Carvalho de Assis. |
| - Sensors: Remove comment references to touchscreens from ADXL345 |
| driver. From Russ Webber. |
| - Serial: Don't overwrite nwritten unconditionally on UART write |
| failure. From Xiang Xiao. |
| - Serial DMA: Move head/tail pointer reset to uart_recvchars_dma |
| since dma may be still transferring in the background. From Xiang |
| Xiao. |
| - Serial DMA: In DMA mode, the use of uart_disablexinit() is |
| insufficient to protect a critical section. |
| enter/leave_critical_section() must be used in those cases if |
| CONFIG_SERIAL_DMA=y From Xiang Xiao. |
| - Serial DMA: Fix typo error in uart_recvchars_dma() From Xiang Xiao. |
| - 16550 UART: u16550_txempty() should check UART_LSR_TEMT to avoid |
| some data left in the transmit FIFO From Xiang Xiao. |
| |
| * ARMv7-A: |
| |
| - ARMv7-A (and i.MX6): Add support for per-CPU IRQ and FIQ interrupt |
| stacks (bugfix). Add support so that up_assert will print the |
| correct interrupt stack on an assertion (FIQ stack is still not |
| printed). From Gregory Nutt. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R: Fix some wrong configuration of program status |
| register. PSR_E_BIT bit should be set for big endian system. |
| PSR_A_BIT bis is set automatically as arm cortex-r4 reference |
| manual 3.7.4. So we don't need to set this bit. From EunBong Song. |
| - ARMv7-R: Fix some wrong MPU register definition. Change |
| MPU_RBAR_ADDR_MASK and MPU_RACR_TEX_SHIFT mask as arm cortex-r4 |
| reference manual. Region Base Address Register 0-4 bits are |
| reserved. MPU Region Access control register type 3-5 bits. From |
| EunBong Song. |
| |
| * ARMv7-M: |
| |
| - ARMv7-M, Cortex F7: Add a configuration to enable workaround for |
| r0p1 Errata 837070: Increasing priority using write to BASEPRI does |
| not take effect immediately. This update is required to be |
| serialized to the instruction stream meaning that after this update |
| completes, it takes effect immediately and no exceptions of lower |
| priority than the new boosted priority can preempt execution. |
| Because of this erratum, the priority boosting does not take place |
| immediately, allowing the instruction after the MSR to be |
| interrupted by an exception of lower priority than the new boosted |
| priority. This effect is only limited to the next instruction. |
| Subsequent instructions are guaranteed to see the new boosted |
| priority. This was raised in Bitbucket issue 113 from Vadzim |
| Dambrouski. From Gregory Nutt. |
| - ARMv7-M: MPU: mpu_log2regionceil needs take into account the |
| offset too From Xiang Xiao. |
| - ARMv7-M MPU: The prototype of mpu_log2regionfloor() changed; an |
| additional parameter was added. However, none of the calls to |
| mpu_log2regionfloor() were updated to pass the new, additional |
| parameter. From Gregory Nutt. |
| |
| * Infineon XMC4xxx Drivers: |
| |
| - XMC4 SPI: XMC4 SPI was working only for the first transfer From |
| Alan Carvalho de Assis. |
| |
| * Microchip/Atmel SAMv7 Drivers: |
| |
| - SAMv7 MCAN: Correct an error in the BUS_OFF reporting. In case of |
| BUS_OFF the old implementation was leading to a package storm. Now |
| it reports the error condition BUS_OFF only once. From Frank |
| Benkert. |
| |
| * NXP/Freescale LPC43xx Drivers: |
| |
| - LPC43xx CAN: Fix lpc43 CAN configuration. Configuration settings |
| were used and documented in README.txt files, but never in any |
| Kconfig file. From Gregory Nutt. |
| - LPC43xx: Make WWDT usable again. LPC43xx WWDT driver was not |
| updated when irq_dispatch grew an argument parameter. Also fixes |
| two typos and a naming inconsistency (WWDT vs. WWDG). From Jakob |
| Haufe. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - kinetis: USB0 fix interrupt storm on error. The ERROR bit of |
| USBx_ISTAT needed to be cleared once an error occurs. From David |
| Sidrane. |
| - Kinetis: SDHC fix SDIO driver so that DMA works. There were 2 |
| problems. The first was that the interrupt did test DINT and raise |
| a completion events. But since DINT is just an indication of DMA |
| completion, TC is a valid way to determine that the transfer is |
| complete. The second problem is that Software Reset For DAT Line |
| SDHC_SYSCTL[RSTD] clears the bits 24-0 in SDHC_PROTO this looses |
| the wide bus setting DTW From David Sidrane. |
| - Kinetis: (1) PIT add Lifetime and Chaining, (2) flexcan fix |
| duplicate line and ordering, (3) kinetis_lowput.c LPUART data |
| format with parity fix. The 9-bit data mode is typically used with |
| parity to allow eight bits of data plus the parity, (4) lowputc |
| LPUART_BAUD_INIT has to be defined. Build fails with test case |
| enable LPUART0 and make UART1 console. If HAVE_LPUART_DEVICE is |
| defined then LPUART_BAUD_INIT has to be defined even if the LPUART |
| is not the console From David Sidrane. |
| - Kinetis: I2C ensure timeout on bus error. The code had a dead |
| wait on I2C_S_BUSY. Noise on the bus would cause the driver to |
| hang. Add timeout on invalid states of I2C_S_BUSY to allow the |
| upper layers do deal with restart or abort. From David Sidrane. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT Ethernet: I finally got the Ethernet CRC32 to work properly |
| after the FAE pointed me in the right direction: (1) Added CRC32 |
| functions for multicast address filtering, (2) Do not reset PHY |
| settings when doing an ifup, (2) Use chip's unique id as the device |
| MAC, and (4) Enable discard enet frames with errors at PHY layer. |
| From Jake Choy. |
| |
| * On Semi LC823450 Boards: |
| |
| - LC823450-XGEVK: Fix parallel build on lc823450-xgevk. This change |
| fixes an archive file (*.a) corruption by locking $(TOPDIR). |
| Please note that locking the current directory is insufficient |
| because some archive files such as libapps.a are specified with |
| absolute path. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Change IOB related params for rndis. Since TCP |
| flow control scheme was changed, HTTP audio streaming has not been |
| working. These IOB params are not optimized but HTTP audio |
| streaming now works. From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32 F7: Fix compile error caused by intentional use of fall |
| through From Daniel Agar. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 F1-F4: Port Bob Feritich's change to STM32 F2 and F4 which |
| appear to have identical SD support and I/O compensation |
| requirements. |
| - STM32 F1-F4, STM32 F7, and STM32 L4: The STM32 RTC driver was |
| being selected by the global CONFIG_RTC option. That is in |
| correct. For example, if you want to disabled the STM32 RTC and |
| use an external RTC you cannot because the external RTC also |
| depends on the global CONFIG_RTC. The solution is to add a new |
| CONFIG_STM32xx_RTC configuration option the permits to you select |
| or deselect the STM32 RTC but still be able to select the external |
| RTC. From Gregory Nutt. |
| - STM32 F3 I2C: Fix compile error with I2C reset. From Juha |
| Niskanen. |
| - STM32 F7 Serial: Fix ioctl TIOCSSINGLEWIRE The TRM notes that UE |
| must be disabled in order to write HDSEL in USART_CR3. This was not |
| being done, so calls to TIOCSSINGLEWIRE were silently failing. |
| This change checks the state of UE in USART_CR1, clears the UE bit |
| before writing HDSEL, then re-enables it if necessary. From Kurt |
| Kiefer. |
| - STM32 F7 DMA: DMA macros did not account for the increase from 8 |
| to 16 DMA channels. From Gregory Nutt. |
| - STM32 F7 I2C: I2C reset Configure I2C pins as GPIO output. Pins |
| were reset to inputs in the deinit(). This resets them to outputs. |
| From David Sidrane. |
| - STM32 F7: All of the SDMMC pins were set to 50 MHz, but not the |
| clock. This sets the clock to 50 MHz also. This combined with |
| turning on I/O compensation makes intermittent failures go away. |
| From Bob Feritich. |
| - STM32 F7: Port Bob Feritich's change to SDMMC2 and to all other |
| STM32 F7 architectures. Also add a configuration option to |
| automatically enable I/O compensation. From Gregory Nutt. |
| - STM32 F7 SDMMC: Fix data timeout errors with multi-block |
| transfers. From Bob Feretich. |
| - STM32 L4: Corrects some mistakes in pin definitions for the |
| STM32 L4 family. According to datasheet of STM32L496xx, STM32L475xx |
| and STM32L443XX the AF2 of PE14 is TIM1_BKIN2 not TIM2_BKIN. From |
| Daniel Pereira Carvalho. |
| - STM32 L4: Avoid using redundant CONFIG_STM32L4_STM32L4X2. This is |
| almost always same as CONFIG_STM32L4_STM32L4X3. Avoid duplication |
| to reduce macro clutter. This patch limits |
| CONFIG_STM32L4_STM32L4X2 usage to dependency tracking and pinmap. |
| Also enable ADC for CONFIG_STM32L4_STM32L4X5 (untested, but same |
| RM). From Juha Niskanen. |
| - STM32 H7 Serial: don't include stm32_dma.h From raiden00pl. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F4-Discovery: Fix pca9635pw LED driver compilation on |
| STM32F4-Discovery. From Alan Carvalho de Assis. |
| - STM32F4-Discovery: Krassimir Cheshmedzhiev claims that sys/types.h |
| needs to be included in the RGB LED file to avoid undeclared 'OK' |
| From Gregory Nutt. |
| - STM32F4-Discovery: Missing EXTERN(_vectors) in linker script. |
| From Gregory Nutt. |
| - Nucleo-L422KC: Fix RAM size; STM31L4x2xx has only 64Kb of RAM. |
| Remove references to I2C and SDIO: There is no I2C2 or SDIO on the |
| STM32F4x2xx. From Daniel P. Carvalho. |
| - Nucleo-L422KC: Fix stm32_userleds. After change LD2 to LD3 in |
| board.h stm32_userleds.c was broken. From Daniel P. Carvalho. |
| - Nucleo-L422KC: Fix TIMx clock configuration. Also removes |
| definitions related to timers not available in the STM32L432KC. |
| From Daniel Pereira Carvalho. |
| - Nucleo-L452RE: Fix TIMx clock configuration. This is cloned from |
| similar change to the Nucleo-L422KC. Also fixes DAC build |
| failure. From Juha Niskanen. |
| - B-L475E-IOT01A: Fix copy paste errors in names: |
| stm32_bringup->stm32l4_bringup. Noted by Freemans Goden. From |
| Gregory Nutt. |
| - STM32VL-Discovery: Changed the status LED to be the green one as |
| mentioned in the README file. Removed the global array for buttons |
| and replace it with the only button. Improve defconfig for the nsh |
| configuration. From Ouss4. |
| |
| * C Library/Header Files: |
| |
| - libc audio: Call nxsem_destroy in apb_free. From Xiang Xiao. |
| - libc netdb: The 'port' argument to the static alloc_ai() function |
| is always in network byte order. However, that static function was |
| still calling HTONS() on the port, incorrectly converting it back |
| to host byte order. From Gregory Nutt. |
| - libc netdb: Fix a link error in lib_gethostbynamer.c with protected |
| build. NOTE: g_lo_ipv4addr also exists in |
| net/loopback/lo_globals.c which can be linked with kernel build |
| only. From Masayuki Ishikawa. |
| - libc unistd : Fix backward conditional logic in Kconfig. From |
| Gregory Nutt. |
| - include/nuttx/compiler.h: Fix warning: __cplusplus is not defined. |
| Some gcc derived compiler do not define __cplusplus From Xiang |
| Xiao. |
| - include/nuttx/fs/binfs.h: Fix warning: Type defaults to 'int' in |
| declaration of 'mountpt_operations' From Xiang Xiao. |
| - include/nuttx/net/ethernet.h: Remove CONFIG_NET_ETHERNET guard |
| From Xiang Xiao. |
| - include/nuttx/semaphore.h: don't include nuttx/fs/fs.h. (1) Avoid |
| nested loops if CONFIG_SIG_EVTHREAD enabled, (2) semaphore.h |
| doesn't depends on fs.h. From Gregory Nutt. |
| - include/crc64.h: Fix warning: integer constant is too large for |
| its type From Xiang Xiao. |
| - include/limits.h and include/sys/types.h: Fix warning about |
| 'SIZE_MAX' redefined. include/nuttx/usb/audio.h: Fix warnings due |
| to '-' used whete '_' intended. From Xiang Xiao. |
| - include/spawn.h: Fix posix_spawnattr_destroy warning: 'the |
| address of attr will always evaluate as true' From Xiang Xiao. |
| - include/sys/types: Move wint_t and wctype_t from wchar.h to |
| types.h. This change is compatible as before since wchar.h |
| include types.h indirectly. This fixes a compilation error with |
| newlib's math.h: 'unknown type name wint_t' From Xiang Xiao. |
| - apps/include/netutils/netlib.h: Eliminate a warning about |
| AF_UNSPEC and AF_INET not defined. From Gregory Nutt. |
| |
| * Build System: |
| |
| - Build System: Fix parallel build in making context. This change |
| avoids running $(MKSYSCALL) and .context in parallel and ensures |
| that tools/mksyscall is built before it is actually used. From |
| Masayuki Ishikawa. |
| - Kconfig files: Fix several errors noted by Alex Denisov in |
| Bitbucket issue 115. From Gregory Nutt. |
| - apps Build System: Fix an error when building apps/ without |
| nuttx/, using only the NuttX export package and assuming that the |
| nuttx/ directory in not even present. In this case, the problem |
| fixed where the apps/Make.defs file was selecting tools from the |
| /tools directory which does not exist because TOPDIR=apps/import. |
| Instead, for this build case, I have not thought of any option but |
| to duplicate scripts as necessary in the apps/tools directory. |
| Also added a top-level target to compile the symbol table. Misc |
| fixes: quoting in scripts, some errors in script syntax. From |
| Gregory Nutt. |
| - apps/Application.mk: If a loadable module is generated the we |
| need to add logic to remove the loadable module in the 'make |
| clean' logic. From Gregory Nutt. |
| |
| * Tools: |
| |
| - nuttx/tools/Makefile.unix: Was not cleaning up export directory |
| if it was left from a failed export. From Gregory Nutt. |
| - apps/tools: Fix an error in mksymtab.sh From Masayuki Ishikawa. |
| |
| * NSH Library: apps/nshlib: |
| |
| - apps/nshlib: Fix 'while' and 'until' loop condition The loop |
| condition logic was inverted: 'while true; do echo "test"; done' |
| would exit immediately, while using 'until' would stay in the |
| loop. This is the opposite of how it is supposed to work. The |
| reason is that 'state' was set wrong because 'whilematch' is a |
| bool. From Beat Küng. |
| - apps/nshlib: I was able to cause an assertion with some typos in |
| testing the 'fi' command. Not an important thing, but this will |
| protect against the assertion. From Gregory Nutt. |
| - apps/nshlib: Increase the default configuration for the maximum |
| number of command line arguments to 7 (CONFIG_NSH_MAXARGUMENTS). |
| This is needed for 'mount' with the -o option. From Xiang Xiao. |
| - apps/nshlib: Do not dereference NULL 'pstate' in nsh_console.c. |
| From Juha Niskanen. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples: Remove illegal calls into OS to initialize BINFMT |
| support. This must be moved to the board initialization logic |
| within the OS. From anchao. |
| - apps/examples/nettest: Fix typo: NET_LOOPBACK -> |
| CONFIG_NET_LOOPBACK nettest: Fix compilation error. Should enable |
| NET_SETSOCKOPT for preventing compilation error. From EunBong Song. |
| - apps/examples/ostest: Signal handling tests should use the same |
| configurable stack size as used in other tests, not |
| PTHREAD_STACK_DEFAULT. From Gregory Nutt. |
| - apps/examples/ostest: Attempt to make the nested signal test |
| compatible with the suspend/resume test. Some signals cannot be |
| caught when the suspend/resume configuration is in place. From |
| Gregory Nutt. |
| - apps/examples/smps: Fixes in some printf and in Kconfig. From |
| Mateusz Szafoni. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/cu: (1) Protect from possible re-definition of signal |
| values, (2) Fix CU ctrl-C hand when remote core hang. From ligd. |
| - apps/system/i2c: Fix a backward comparison in i2c_main.c. Noted |
| by Jakob Haufe. From Gregory Nutt. |
| - apps/system/nsh: Fix compile errors with |
| CONFIG_EXAMPLES_NSH_SYMTAB=y. From Masayuki Ishikawa. |
| - apps/system/ping and ping6: Send ID and seqno in network byte |
| order. From Xiang Xiao. |
| - apps/system/ping and ping6: Change dependency in ping and ping6 |
| Kconfig. These may be implemented in users sockets and, hence, |
| may need to be available even if ICMP and ICMPv6 sockets are not |
| support. From Xiang Xiao. |
| - apps/system/system: Add 'const' to make function prototype |
| compatible with OpenGroup.org requirement From Xiang Xiao. |
| - apps/system/zmodem: Fix error "sz_main.o: No such file or |
| directory" From Xiang Xiao. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/ftpc: Fix handling of url-encoded strings From |
| Dmitriy Linikov. |
| - apps/netutils/ping: Remove unsupported ping. netutils/ping is not |
| supported anymore. It's better to remove this folder for |
| preventing confusing. ping is supported by system/ping. From |
| EunBong Song. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/wapi: Remove dependency on CONFIG_EXPERIMENTAL from |
| Kconfig From Gregory Nutt. |
| |
| * GPS Utilities: apps/gpsutils: |
| |
| - apps/gpsutils/minmea: Include wchar.h in minmea.c file to fix |
| wint_t error From Alan Carvalho de Assis. |
| |
| * Interpreters: apps/interpreters: |
| |
| - Remove apps/interpreters/micropthon. There are several reasons |
| for this. (1) the current version 1.3.8 is very old and no one is |
| supporting it. (2) the port only includes the core micropython |
| logic and none of the Python libraries. As such it is useless in |
| any real application. (3) There have recently been compile |
| failures reported. It looks like this is due to changes in newlib |
| based toolchains that now bring in incompatible newlib header |
| files. See issue 104 at |
| https://bitbucket.org/nuttx/nuttx/issues/104/build-micropython-138-error. |
| With no one dedicated to the support of micropython, it can no |
| longer be carried in the NuttX apps/ repository. From Gregory Nutt. |
| |
| NuttX-7.27 Release Notes |
| ------------------------ |
| |
| The 127th release of NuttX, Version 7.27, was made on November 14, 2018, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.27.tar.gz and |
| apps-7.27.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - Assertions: Add 'BOARD_ASSERT_RESET_VALUE' in config/Kconfig and |
| replace reboot status '0' to 'CONFIG_BOARD_ASSERT_RESET_VALUE'. From |
| Gregory Nutt. |
| - Assertions: up_registerdump capture the general register if not yet |
| saved and up_saveusercontext is implemented, the register dump is very |
| useful to find the cause of failure. From Xiang Xiao. |
| - Assertions: up_stackdump() dump the full stack if stack overflow the |
| stack info is very useful to find the backtrace From Xiang Xiao. |
| - binfmt/ and libs/libc: Make exepath_*() more common: Move |
| exepath_*() related code to libc/misc, rename exepath_ to envpath_, |
| and rename BINFMT_EXEPATH to LIB_ENVPATH. From nchao. |
| - CLOCK: Support CLOCK_MONOTONIC in clock_getres.c. From Xiang Xiao. |
| - Clock Timekeeping: Use clock_basetime() to initialize |
| g_clock_wall_time to get the best initial RTC value and initialize |
| g_clock_last_counter too since the hardware may not start counting |
| from zero. From Xiang Xiao. |
| - exit(): Add SCHED_EXIT_KILL_CHILDREN option to kill all child threads |
| when the main thread of a task exits. From nchao. |
| - IOBs: Add an IOB notifier that will notify any registered threads |
| that want to known when an IOB has been freed. This is basically just |
| a wrapper around the generic notifier. Includes a divider that can be |
| used to reduce the rate of IOB notifications. From Gregory Nutt. |
| - Memory Manager: In mm_free(), add DEBUGASSERT()'s to catch memory |
| corruption early. From Petteri Aimonen. |
| - Memory Manager: Add debug option CONFG_MM_FILL_ALLOCATIONS to fill |
| all mallocs() with recognizable value. From Petteri Aimonen. |
| - sched/signal and syscall/: Add support for pselect() and ppoll() |
| functions From dongjianli. |
| - Task Groups: group_foreachchild() now iterates in reverse order since |
| the callback (e.g. group_killchildren) may remove the tcb from list. |
| From zhangyuan7. |
| - WDOG Timer: Improve accuracy of wd_gettime() in tickless mode From |
| ligd. |
| - Work Queues: Add a generic notification facility that runs on a work |
| queue. The notification facility can notify a group of subscribers to |
| an event via callbacks. This API is for use within the OS only. From |
| Gregory Nutt. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - FAT: Add CONFIG_FAT_LFN_ALIAS_HASH to speed up creating long |
| filenames. Long filenames on FAT file systems have associated 8.3 |
| character alias short filenames. The traditional form of these is |
| FILENA~1.EXT with a running count of the number of similar names. |
| However creating this unique count can take several seconds if there |
| are many similarly named files in the directory. Enabling |
| FAT_LFN_ALIAS_HASH uses an alternative format of FI0123~1.TXT where |
| the four digits are a hash of the original filename. This method is |
| similar to what is used by Windows 2000 and later. From Petteri |
| Aimonen. |
| - FAT: Add CONFIG_FAT_LFN_ALIAS_TRAILCHARS alternative format for 8.3 |
| filenames. Traditional format for long filename 8.3 aliases takes |
| first 6 characters of long filename. If this option is set to N > 0, |
| NuttX will instead take first 6-N and last N characters to form the |
| short name. This is useful for filenames like "datafile12.txt" where |
| the first characters would always remain the same. From Petteri |
| Aimonen. |
| - FAT: if block driver wait seems to be a long one, give time for other |
| threads to run. From Petteri Aimonen. |
| - file_open(): Add file_open() implementation with some fully-function, |
| interim, placeholder logic. Change occurrences of open() followed by |
| file_detach() in the OS to file_open(). From Gregory Nutt. |
| - MX25LF25635F: Add support to Macronix MX25LF25635F serial NOR flash |
| From David Sidrane. |
| - nx_open(): Add nx_open() which is the same as open() except that it |
| does not create a cancellation point nor does it modify the errno |
| variable. Change most other, non-controversial calls to open() to |
| nx_open(). From Gregory Nutt. |
| - file_ioctl(): Replace calls to ioctl() in the OS to file_ioctl(). |
| From Gregory Nutt. |
| - mount: Add mount() support for file systems that require MTD drivers |
| (vs. block drivers). From Gregory Nutt. |
| - mount: Add support for mounting a file system with either a block or |
| an MTD driver. From Xiang Xiao. |
| - MTD FTL: Support BIOC_FLUSH ioctl From Xiang Xiao. |
| - MTD FTL: Make READAHEAD and WRITEBUFFER work independently of each |
| other. There have cases we use writebuffer but not readbuffer, so the |
| write buffer must be flushed before read. Let rwb driver do it. From |
| zhuyanlin. |
| - MTD FTL: Allocate eblock only when it's really needed From Xiang Xiao. |
| - MTD FTL: Add support support unlink operation to avoid the memory |
| leak. From Xiang Xiao. |
| - MTD Partition: Add register_mtdpartition() for MTD partition From |
| Xiang Xiao. |
| - MTD Partition: Remove the hard code partition name length From Xiang |
| Xiao. |
| - MTD Proxy: Make MTD device accessible via a character driver proxy |
| like block devices From Xiang Xiao. |
| - ProcFS: Change output of the ProcFS 'env' file so that it looks more |
| like output from the 'env' command. From Gregory Nutt. |
| - ProcFS: Add support to provide MLD statistics at /proc/net/mld. From |
| Gregory Nutt. |
| - ProcFS: Remove MTD ProcFS and mtd_procfsoperations() since we can now |
| get the same information from inode From Xiang Xiao. |
| - ProcFS: Add /proc/version support to get version info From iuhaitao. |
| - ProcFS: Add support for named MTD drivers in the pseudo file system. |
| This will, eventually, allow us to mount file systems that need MTD |
| drivers without having to fake an intervening block driver. |
| - R/W Buffer: Don't queue work to flush write buffer if |
| CONFIG_DRVR_WRDELAY == 0 From Xiang Xiao. |
| - R/W Buffer: Improve the rwb_read/write overlap performance From |
| zhuyanlin. |
| - SIM HOSTFS: Support S_IFSOCK, DT_LNK, O_DIRECT and O_SYNC From Xiang |
| Xiao. |
| - SPIFFS: Brings in a NuttX port of version 0.3.7 of Peter Anderson's |
| SPIFFS flash file system into NuttX. From Gregory Nutt. |
| |
| * Networking/Network Drivers: |
| |
| - Network Configuration Add new configuration CONFIG_NET_MCASTGROUP. |
| This option is selected automatically if either CONFIG_NET_IGMP or |
| CONFIG_NET_MLD are selected. Most conditional logic based on |
| CONFIG_NET_IGMP replaced with conditioning on CONFIG_NET_MCASTGROUP. |
| From Gregory Nutt. |
| - Network Device: Add notification logic for the case where the network |
| goes down. From Gregory Nutt. |
| - Network Device: Rename netdev_dev_lladdrsize() to netdev_lladdrsize() |
| and move the prototype to include/nuttx/nex/netdev.h, giving is global |
| scope within the OS. From Xiang Xiao. |
| - ARP: Redesign ARP table aging to simplify the net initialization |
| From Xiang Xiao. |
| - ARP: Check ifname match before sending packet. From Xiang Xiao. |
| - ARP and ICMPv6: Double the delay time on each iteration for ARP/ICMP |
| to fight work jitter better. From Xiang Xiao. |
| - ICMP/ICMPv6: Add NET_ICMP[v6]_NO_STACK for usrsock case From Xiang |
| Xiao. |
| - ICMPv6: Encapsulate the link scope address generation into |
| icmpv6_linkipaddr() From Xiang Xiao. |
| - ICMPv6: Remove the coupling between ICMPv6 and Ethernet by moving all |
| Ethernet stuff to neighbor_ethernet_out.c and make the mac address as |
| first field. From Xiang Xiao. |
| - ICMPv6 MLD: Implement Multicast Listener Discovery (MLD) protocol based |
| on RFC 2710 and RFC 3810. From Gregory Nutt. |
| - ICMPv6 MLD: Implement MLDv1 compatibility mode. From Gregory Nutt. |
| - ICMPv6 MLD: Implement 'Other Querier Present Timer'. This timer is |
| used to revert to Querier mode if there is no other querier on the |
| network. From Gregory Nutt. |
| - IGMP: Backport some MLD design improvements/fixes. From Gregory Nutt. |
| - IPv4 setsockopt(): Add implementation for all IPv4 socket options that |
| have implemented IOCTL command counterparts. From Gregory Nutt. |
| - IPv4/6 Socket Options: Add framework to support IPv4 and IPv6 |
| protocol socket options (i.e., SOL_IP and SOL_IP6). Handling of these |
| socket options was a necessary step on the way to ICMPv6 MLD support. |
| From Gregory Nutt. |
| - ICMPv6 Autoconfiguration: Don't take the network device down when |
| reconfiguring only the IP address from within ICMPv6 logic. |
| Recommended by Xiang Xiao in order to avoid the long delays of |
| bringing some networks back up. Normally it is required that the |
| network be in the "down" state when re-configuring the network |
| interface. This is thought not to be a necessary here because: (1) |
| The ICMPv6 logic here runs with the network locked so there can be no |
| outgoing packets with bad source IP addresses from any asynchronous |
| network activity using the device being reconfigured. And (2) incoming |
| packets depend only upon the MAC filtering. Network drivers do not |
| use the IP address; they filter incoming packets using only the MAC |
| address which is not being changed here. From Gregory Nutt. |
| - IPv6 Input: Add logic to skip over the variable number of IPv6 |
| extension headers that may be present between the IPv6 header and the |
| transport layer header. The extension headers are simply ignored. |
| This is necessary because with MLD, certain incoming messages may |
| have, at a minimum, a Router Alert Hop-by-hop extension header. |
| Additional changes to ICMPv6, TCP, and UDP input to handle the offset |
| protocol headers. From Gregory Nutt. |
| - IPv6 Neighbor: Simplify the neighbor table aging process From Xiang |
| Xiao. |
| - IPv6 Neighbor: Simplify neighbor_dumpentry() implementation From |
| Xiang Xiao. |
| - IPv6 Neighbor: neighbor_lookup() checks if the target IP belongs to |
| one of the local network devices. From Xiang Xiao. |
| - IPv6 Neighbor: Support neighbor_out() for multiple link layer at the |
| same time From Xiang Xiao. |
| - IPv6 setsockopt(): Implement the IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP |
| socket options. From Gregory Nutt. |
| - TCP: Extend the TCP notification logic logic so that it will report |
| loss of connection events. From Gregory Nutt. |
| - SLIP: Add IPv6 support and fix minor issue From Xiang Xiao. |
| - TCP: Add TCP poll() logic to receive notifications when IOBs are |
| freed. From Gregory Nutt. |
| - TCP: In TCP backlog, add SOMAXCONN definition and implementation per |
| OpenGroup.org. From zhangyuan7. |
| - TCP/UDP: Extend send()/sendto() logic it also requires that at least |
| one IOB is also available to be able to send. From Gregory Nutt. |
| - TCP/UDP: Add notification logic when TCP or UDP read-ahead data is |
| buffered. From Gregory Nutt. |
| - TUN: Call ipv[4|6]_input dynamically by checking packet header and |
| remove the code duplication From Xiang Xiao. |
| |
| * Wireless/Wireless Drivers: |
| |
| - Broadcom IEEE 802.11: Add capability for Broadcom chips to get |
| firmware and CLM data from a mounted file system vs. in-memory data |
| structures. From Ramtin Amin. |
| - XBee IEEE 802.15.4: Add support for setting/getting tx power. From |
| Anthony Merlino. |
| |
| * Other Common Device Drivers: |
| |
| - GPIO: Support multiple registrations of GPIO signal events. From |
| Xiang Xiao. |
| - INA226: Add INA226 device driver. From Daniel P. Carvalho. |
| - MAX7219: Support all digits presented in the MAX7219 datasheet. From |
| Alan Carvalho de Assis. |
| - MLX90614: Add support for the Infrared Thermometer MLX90614 From |
| Alan Carvalho de Assis. |
| - RTC Driver: up_rtc_set_lowerhalf call clock_synchronize() for |
| external RTC. From Xiang Xiao. |
| - SYSLOG: Uncomment the g_syslog_channel->sc_flush call in |
| syslog_flush(). From Xiang Xiao. |
| - SYSLOG: syslog_initialize initialize dev/syslog too and call syslog |
| to add the prefix and timestamp. From Xiang Xiao. |
| - USB Composite and DFU drivers: Add support for Microsoft OS |
| descriptors. These Microsoft-only descriptors help in loading the |
| correct driver on Windows. They are especially helpful to give libusb |
| access to a custom device without having to manually configure/install |
| WinUSB driver. With this change DFU interface works automatically on |
| Windows 10 with dfu-util 0.9 and libusb 1.0.22. On Windows 7 it still |
| appears to need driver installation. From Petteri Aimonen. |
| - USB DFU Device: Add DFU Runtime driver for activating boot-loader |
| through USB command. From Petteri Aimonen. |
| - USB RNDIS Device: Account for CONFIG_NET_GUARDSIZE in allocation of |
| packet buffer allocation: Make USB device parameters configurable. |
| From Sakari Kapanen. |
| - USB RNDIS Composite Device: Fix strid comparison. Add support for |
| composite configuration. From Petteri Aimonen. |
| |
| * Microchip PIC32MX Boards; |
| |
| - PCBLOGIC-PIC32MX: Remove support for the PCB Logic PIC32MX board. I do |
| not find any references to PCB Logic on the web and I do not believe |
| that this breakout board is available any longer. From Gregory Nutt. |
| |
| * NXP Freescale i.MX RT: |
| |
| - i.MXRT: Added support for the i.MXRT 106x family. From David Sidrane. |
| |
| * NXP Freescale i.MX RT Drivers: |
| |
| - i.MXRT: Add LPI2C driver. From Ivan Ucherdzhiev. |
| - i.MXRT LPSPI: Add full support for the LPSPI in poll mode; includes a |
| minor fix for LPI2C. |
| - i.MXRT USDHC: Initial commit of the i.MXRT SDHC driver working in PIO |
| mode. From Dave Marples. |
| - i.MXRT USDHC: Complete the interrupt driven USDHC1 functionality for |
| the IMXRT EVKB. Improve SD card handling in the DMA case. From Dave |
| Marples. |
| |
| * NXP Freescale i.MX RT Boards: |
| |
| - IMXRT1060-EVK: Add support for the IMXRT1060-EVK. From David Sidrane. |
| |
| * NXP LPC17xx Boards: |
| |
| - Olimex-LPC1766STK: Add support to initialize a USB HID keyboard. Add |
| a configuration for testing the HID keyboard. From Gregory Nutt. |
| |
| * On Semi LPC23450 Drivers: |
| |
| - LC823450: MPU support for FLAT build From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32: Add support for STM32F303xD/E. From Mateusz Szafoni. |
| - STM32 L4: Add initial support for STM32L412 and STM32L422 chips From |
| Juha Niskanen. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 ADC: Major refactor: Use STM32 ADC IP core version and ADC |
| available functions instead of chip family names in conditional |
| compilation. Replace family specific ADC headers with STM32 ADC IP |
| core version headers. Configurable sample time supported for all |
| chips, not just L1. Enable/disable interrupts supported for all |
| chips, not just L1. Add ADC resolution configuration. From Mateusz |
| Szafoni. |
| - STM32 PWM: Improvements in STM32 PWM low level driver: Support |
| complementary outputs, dead-time configuration, output polarity and |
| IDLE state configuration. From Mateusz Szafoni. |
| - STM32 PWM: Break and lock configuration and some cosmetics From |
| Mateusz Szafoni. |
| - STM32 SPI. Enable separate DMA per SPI configuration From Daniel Agar. |
| - STM32 F7 FLASH: Allow programming OTP blocks through progmem |
| interface From Jussi Kivilinna. |
| - STM32 H7 I2C: Add I2C support for STM32H7. From raiden00pl. |
| - STM32 H7 RCC: Update RCC definitions, add SPI clock configuration and |
| some fixes in RCC. From raiden00pl. |
| - STM32 H7 SPI: Add basic SPI support for H7. Enable SYSCFG clock in |
| RCC. From Mateusz Szafoni. |
| |
| * STMicro STM32 Boards: |
| |
| - Nucleo-F302R8: Add support for Nucleo-F302R8 board From raiden00pl. |
| - Nucleo-F302R8: Add PWM support. From Mateusz Szafoni. |
| - Nucleo-F303ZE: Add basic support for nucleo-f303ze. From Mateusz |
| Szafoni. |
| - Nucleo-F303ZE: Support for ADC and ADC example. From Mateusz Szafoni. |
| - Nucleo-L432KC: Added support for AT45DB Serial Flash From Daniel P. |
| Carvalho. |
| - Nucleo-L432KC: Add support for the INA226. From Daniel P. Carvalho. |
| - Nucleo-H743ZI: Add NRF24L01 support. From Mateusz Szafoni. |
| - Olimex-STM32-P407: Add a HID keyboard configuration. From Gregory |
| Nutt. |
| - STM32F4-Discovery: Add MLX90614 support for the STM32F4-Discovery |
| board From Alan Carvalho de Assis. |
| - STM32F429I-DISCO: Add PWM support. From Mateusz Szafoni. |
| - STM32F429I-DISCO: Support for ADC and ADC example. From Mateusz |
| Szafoni. |
| |
| * MIPS32: |
| |
| - MIPS32 Toolchain.defs: Add toolchain flags for the pinguino toolchain |
| under Linux. From Ouss4. |
| |
| * RISC-V: |
| |
| - RISC-V GAP: This commit brings in support for the GAP8 architecture. |
| The GAP8 is a 1+8-core DSP-like RISC-V MCU. Also included is support |
| for the Gapuino GAP8 evaluation board. From hhuysqt. |
| |
| * Other Tools: |
| |
| - tools/tesbuild.sh: No longer installs and builds the NxWidgets |
| libraries. They are now a port of apps/. From Gregory Nutt. |
| |
| * Libraries/Header Files: |
| |
| - include/net and include/sys: Align the constant values with values in |
| the Linux kernel which makes targeting the usrsock server to Linux |
| kernel easier. From Xiang Xiao. |
| - include/netdb.h Add NO_ADDRESS definition From zhangyuan7. |
| - include/netinet/in.h: Adds definitions for IPPROTO_IPV6 socket |
| options to netinet/in.h. Adds missing fields to sockaddr_in6. Adds |
| struct ipv6-mreq. These changes all follow the opengroup standard for |
| netinet/in.h From Anthony Merlino. |
| - include/netinet/in.h: Add IPv4 SOL_IP socket options for symmetry |
| with IPv6 definitions added in a previous commit. Remove some |
| duplicate types from sys/sockio.h. From Gregory Nutt. |
| - include/netinet/in.h: Add other definitions required by |
| OpenGroup.org. From Gregory Nutt. |
| - include/netinet/in.h: Add Linux IP_PKTINFO and IPV6_PKTINFO |
| definitions. |
| - include/nuttx/net/ipv6ext.h: Create header file with all of the |
| definitions of IPv6 extension headers that I could find. From Gregory |
| Nutt. |
| - include/nuttx/net/mld.h: Add MLD header file based on RFC2710 and |
| RFC3810. From Gregory Nutt. |
| - include/sys/socket.h: With increased size of struct sockaddr_in6, the |
| size of struct sockaddr_storage in include/sys/socket.h must also be |
| increase so that it can contain the new, larger sockaddr_in6. From |
| Gregory Nutt. |
| |
| - libs/libc/misc: Add implementation of CRC8-CCITT. From Alan Carvalho |
| de Assis. |
| - libs/libc/modlib: Add per-module library symbol table support. From |
| nchao. |
| - libs/libc/net: Add basic implementation for recvmsg() and sendmsg() |
| per OpenGroup.org specification. From ligd. |
| - libs/libc/netdb: A few improvements to getaddrinfo: (1) Use the |
| protocol and socktype hints in returned address, (2) Ignore AI_PASSIVE |
| argument if hostname is not NULL From Anthony Merlino. |
| - libs/libc/netdb: Make DNS receive timeout configurable. From ligd. |
| - libs/libc/stdio: Eliminate recursive in conversion functions of |
| lib_vsprintf(). From Xiang Xiao. |
| - libs/libc/string: Add some new functions defined in POSIX.1-2017: |
| stpncpy(), strsignal(), psignal(), psiginfo(). From Gregory Nutt. |
| - libs/libc/string: Add memrchr() function From Xiang Xiao. |
| - libs/libc/string: Make strerror() return the string "Success" for |
| error = 0. From Petteri Aimonen. |
| |
| * Build System: |
| |
| - Makefile.unix/win: Remove deletion of Eclipse project files from make |
| distclean target. From Gregory Nutt. |
| - apps/Application.mk: Fix some build issues. (1) Unable to found |
| target 'context' when CONFIG_NSH_BUILTIN_APPS disabled. (2) Unable to |
| generate multiple programs. From Chao An. |
| - apps/Directory.mk: Fix distclean targets. Makefiles were not |
| removing generated Kconfig files. There was then no way to remove |
| this Kconfig files without manually deleting them one at a time. From |
| Gregory Nutt. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib/, apps/examples/: Update to show newer file system |
| object types returned by stat(). From Gregory Nutt. |
| - apps/nshlib: Add support for the 'env' command. From Gregory |
| Nutt. |
| - apps/nshlib: Add support for NSH local variables if |
| CONFIG_NSH_VARS are set. These are like environment variables but |
| are local to NSH. The importance of this is that these variables |
| are *not* inherited when NSH creates a new task. The new command |
| 'export' was added. In this case, the NSH variable will be promoted |
| to an environment variable and will then be inherited by any tasks |
| executed by NSH. From Gregory Nutt. |
| - apps/nshlib: If CONFIG_NSH_VARS=y, the NSH 'set' command with no |
| argument will list all of the local NSH variables. From Gregory |
| Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/gpio: Align with GPIO driver update From wangyanjiong. |
| - apps/examples/ina226: Added INA226 example From Daniel P. Carvalho. |
| - apps/examples/mld: Add a test of MLD. Provides a mechanism for some |
| low-level bring-up of MLD. From Gregory Nutt. |
| - apps/examples/mlx90614: Add mlx90614 test example From Alan Carvalho |
| de Assis. |
| - apps/examples/mlx90614/: Include support to change device address on |
| mlx90614 From Alan Carvalho de Assis. |
| - apps/examples/fstest: Adapt the existing fstest example for SPIFFS: |
| For SPIFFS, add garbage collection and file system integrity IOCTL |
| calls. Call statfs() and show state of file system on each loop. Add |
| logic to dump logic content of SPIFFS. Ignore EINTR errors while |
| reading or writing. Add configuration option to customize stack |
| size. Detect when the media is full and stop writing files. Report |
| total file size. From Gregory Nutt. |
| - apps/examples/tcpblaster: Add an option to use poll() to pace input |
| or output. From Gregory Nutt. |
| - apps/examples/tcpblaster: Select CONFIG_LIBC_FLOATINGPOINT |
| automatically. Units in output are wrong: Not Kbps bus Kb/Sec. From |
| Gregory Nutt. |
| - apps/examples/udpblaster: Add option to use poll() on output (only). |
| From Gregory Nutt. |
| |
| * System Utilities: apps/system |
| |
| - apps/system/ping and apps/system/ping6: Set optind to zero in the |
| error case/. Move all ping preparation work into icmp_ping. Support |
| -W <timeout> and -s <size> option. Decouple the output from ping |
| logic. From Xiang Xiao. |
| - apps/system/ping and pings and apps/netutils/ping: Extract icmp ping |
| and icmpv6 ping6 logic from system/ to C-callable library in |
| netutils/. From ligd. |
| - apps/system/progmem: Remove this utility. It makes illegal direct |
| calls into the OS. From Gregory Nutt. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/netlib and apps/examples/igmp: Adapt to use the |
| corrected, semi-standard version of struct ip_msfilter. From Gregory |
| Nutt. |
| - apps/netutils/chat and apps/examples/chat: 'constify' chat variables |
| and parameters From Xiang Xiao. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/ieee802154/i8sak: Properly shuts down event thread. |
| From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Fixes i8sak name. Accidentally renamed |
| to i8ask in recent changes From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Adds support for getting/setting |
| transmit power. From Anthony Merlino. |
| |
| * Graphic Utilities: apps/graphics: |
| |
| - apps/graphics/NxWidgets: Move the NxWidgets repository into the apps/ |
| repository. Remove old apps/NxWidgets directory. Move NxWidgets |
| files into apps/graphics/NxWidgets. Integrate configuration/build |
| system. Fix file paths in file headers. Remove some duplicate |
| tools. Add new NxWidgets Unit Test configuration and build logic. |
| From Gregory Nutt. |
| - apps/graphics/NxWidgets: Add CNxString string + operator and |
| ::format() function. Add CNumericEdit option to include unit name |
| after the value. Make CNxWidget useWidgetStyle() public. From |
| Petteri Aimonen. |
| - apps/graphics/NxWidgets: Add CLabelGrid control for displaying text |
| in grid format. From Petteri Aimonen. |
| |
| 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: |
| |
| - Clock: Remove g_monotonic_basetime and g_clock_monotonic_time since |
| we don't need ensure monotonic time start from zero as state here: |
| http://pubs.opengroup.org/onlinepubs/009696899/functions/clock_getres.html |
| From Xiang Xiao. |
| - Clock: Don't call up_timer_gettime in clock_gettime() and |
| clock_systimer() to ensure the return value from them consistent with |
| clock_systimespec From Xiang Xiao. |
| - Clock Initialization: clock_inittime() needs to be done with |
| CONFIG_SCHED_TICKLESS and clock_initialize should skip |
| clock_inittime() for external RTC case since the RTC isn't ready yet. |
| From Xiang Xiao. |
| - IOBs: Work around some issues with the IOB throttle semaphore. It |
| has some odd behaviors that can cause assertions in sem_post(). Also, |
| it seems to get outside of its range occasionally. Need to REVISIT |
| this. From Gregory Nutt. |
| - IOBs: iob_navail() was returning the number of free IOB chain queue |
| entries, not the number of free IOBs. Completely misnamed. From |
| Gregory Nutt. |
| - PM: Use the start time of state btime to calculate thrcnt; remove the |
| loop whose count may be very big after the long idle From ligd. |
| - PM Uninitialization: Fix pm_domain_s.stime un-initialize caused time |
| error. From ligd. |
| - sched_kfree() and sched_ufree(): This patch prevent heap corruption |
| in a corner case where memory is freed while switching contexts. This |
| change forces all de-allocations via sched_kfree() and sched_ufree() |
| to be delayed. Eliminating the immediate de-allocation prevents the |
| problem with the the re-entrant semaphore because the deallocation |
| always occurs on the worker thread, never on the suspended task. From |
| EunBong Song. |
| - sigsuspend(): sigsuspend() shouldn't eat the pending signal but |
| dispatch all instead From Xiang Xiao. |
| - task_restart(): Was restarting tasks with all signals set in the |
| sigprocmask set. Should have restarted with the sigprocmask cleared. |
| Noted by Jeongchan Kim From Gregory Nutt. |
| - unsetenv(): Fix and error in unsetenv() when un-setting the last of |
| the environment variables. From Gregory Nutt. |
| - waitpid(): Remove a bad error check. From Gregory Nutt. |
| |
| * File System/Block and MTD Drivers: |
| |
| - FAT: Fix file data corruption in fat_truncate(). From Petteri Aimonen. |
| - Partitions: Try MTDIOC_GEOMETRY IOCTL before bops's geometry. |
| From Xiang Xiao. |
| - MTD Progmem: Change up_progmem_npages() to up_progmem_neraseblocks(). |
| page is a unit for read/write operation. eraseblock is a unit for |
| erase operation. up_progmem_npages() is a little bit confusing |
| because it returns number of erase blocks in flash memory. This patch |
| changes up_progmem_npages to up_progmem_neraseblocks. |
| up_progmem_eraseblock erase a block. so it's better to return the |
| erase block size than page size. From EunBong Song. |
| - R/W Buffer: Fix a lock issue From Xiang Xiao. |
| - SmartFS: Current sector should have a space for next entry size. If |
| not, we should move to next sector. From EunBong Song. |
| |
| * Networking/Network Drivers: |
| |
| - 6LoWPAN: Fixes bug in uncompress_addr handling of odd postfix. This |
| affected multicast compress/uncompress since it's the only logic that |
| used an odd postfix. The odd byte needs to be handled first, not |
| last. From Anthony Merlino. |
| - ARP and ICMPv6: Don't call d_txavail directly since it may point to |
| NULL From Xiang Xiao. |
| - ICMPv6: icmpv6_neighbor() shouldn't use the out of scope |
| variable(dripaddr) From Xiang Xiao. |
| - IPv6 input: Fixes logic in ipv6_input to handle more than ff02::/16 |
| multicast addresses. Don't forward mcast packets if scope is not |
| appropriate From Anthony Merlino. |
| - IPv6 Input: Fix a logic error when the received IPv6 srcaddr is a |
| multicast address. Exiting logic only supported UDP multicast. But |
| MLD and certain other ICMPv6 packets also require acceptance of |
| multicast packets. From Gregory Nutt. |
| - TCP: In TCP recv window calculations, in order to receive data we |
| must not only have IOBs available, but we must also have at least one |
| IOB chain qentry available. Otherwise, we will advertise that we an |
| buffer a lot of data when, in fact, we cannot. This is an |
| experimental fix to a performance problem noted by Masayuki Ishikawa. |
| From Gregory Nutt. |
| - TCP: Fix compiler error and warning when CONFIG_NET_SENDFILE=y From |
| Xiang Xiao. |
| - TCP Input: Fix recovery when ackseq > unackseq. The comment near |
| this line says "reset the number of outstanding, unacknowledged |
| bytes". However, the code actually resets the whole TCP connection. |
| It was changed to the current form in commit f034d84ea1f with no |
| explanation of the intent. Recover the line to what it was before that |
| commit. From Sakari Kapanen. |
| - TCP Write Buffering: Fix buffer release handling on failed buffer |
| allocation. Attempt to release write buffer on failed TCP write I/O |
| buffer alloc and tryalloc failed to wrb->wb_iob assertion. From Harri |
| Luhtala |
| - TCP/UDP: In the POLLOUT poll logic, request an immediate Tx poll from |
| the network device bound to the socket. From Gregory Nutt. |
| - UDP: On a failure to find the destination device, fallback to |
| netdev_default device if the device is not found, rather than |
| arbitrary using the device at the head of the list of devices. From |
| Xiang Xiao. |
| - USRSOCK: Revert previous commit to re-allow combination of usrsock |
| and NuttX TCP/IP stack. For example, in case device has Ethernet and |
| mobile connectivity and NuttX TCP/IP stack is used when configured to |
| use Ethernet connection and usrsock when configured to use modem |
| (modem TCP/IP stack through usrsock). From Jussi Kivilinna. |
| - USRSOCK accept(): Mark newconn ready before issue accept request to |
| avoid the case that the request is discarded due to the socket being |
| in the invalid state From Xiang Xiao. |
| |
| * Wireless/Wireless Drivers: |
| |
| - Broadcom 802.11 Driver: There were two functions that have a address |
| issue. In bcmf_read_sbreg() and bcmf_write_sbreg(): |
| SBSDIO_SB_OFT_ADDR_MASK should be used before map address space. |
| Noted by Shao Li in Bitbucket issue #126. From Gregory Nutt. |
| - Broadcom 802.11 Driver: Remove incorrect OR condition. Always true. |
| Noted by Shao Li in Issue 127. From Gregory Nutt. |
| - NRF24L01: Fix compilation errors. From Mateusz Szafoni. |
| |
| * Other Common Drivers: |
| |
| - ALARM Upper Half: Fix alarm ISR error when no CONFIG_SCHED_TICKLESS |
| drivers/timers/arch_alarm.c: Use uint64_t to avoid alarm 32-bit |
| overflow. From ligd. |
| - MAX11802: Fix compilation errors and allow setting PULL and SAMPLE |
| registers. From Petteri Aimonen. |
| - S25FL1: During a MTDIOC_GEOMETRY ioctl call, the driver was |
| incorrectly reporting the blocksize to be the same as the erasesize. |
| The blocksize should be 256 (the page size). This patch fixes that, |
| and now the SmartFS configuration is working. From Ken Pettit. |
| - SYSLOG: nx_syslog's return value should include the timestamp length |
| From Xiang Xiao. |
| - SYSLOG: syslog_putc() calls sc_force in idle task even if interrupt |
| buffer enabled. The following cases may hang randomly in the bring up |
| phase: (1) boot up process and (2) suspend/resume process. Either |
| case runs in the idle task context, so it's difficult to debug the |
| hang issue if these output go through the interrupt buffer. From |
| Xiang Xiao. |
| - SYSLOG: Ensure interrupt log doesn't interlace in normal log. Don't |
| call syslog_putc in syslog_default_write because syslog_putc will try |
| to empty the interrupt buffer every time. From Xiang Xiao. |
| - UART 16550: Fix UART flow control issue. UART_MCR_RTS need be high |
| even UART_MCR_AFCE is enabled From zhangyuan7. |
| - USB RNDIS Device: Fix buffer overrun check in rndis.c. The rndis |
| driver has been working since 13 Nov 2017. However, I finally found |
| that it depends on network and buffer configurations. If a receiving |
| TCP packet is divided into smaller ones based on USB max packet size, |
| this condition check works correctly. From Masayuki Ishikawa. |
| |
| * ARMv7-A: |
| |
| - ARMv7-A: Replicate the same fix was previously committed for the |
| ARMv7-R. From Gregory Nutt. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R: Fix error in cp15_flash_dcache. Change mcrne to mcr for |
| unconditional dcache. From EunBong Song. |
| |
| * ARMv7-M: |
| |
| - ARMv7-M Interrupts: Correct all ARMv7-M architectures. Interrupts |
| were not be disabled correctly on power up. Writing zero to the NVIC |
| SET-ENABLE registers has no effect. In order to disable interrupts, |
| it is necessary to write all ones to the NVIC CLEAR-ENABLE register. |
| Noted by David Sidrane. From Gregory Nutt. |
| |
| * Broadcom BCM2708 Drivers: |
| |
| - BCM2708 Serial: Juha Niskanen's fix related to STM32 |
| CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in BCM2708. |
| From Gregory Nutt. |
| |
| * Intel x86: |
| |
| - Qemu i486: Correct .bss, IDLE stack, heap organization. From Gregory |
| Nutt. |
| |
| * NXP/Freescale LPC43xx Drivers: |
| |
| - LPC43 Ethernet: Fix Ethernet TX_EN pin definitions. TX_EN on LPC43xx |
| can be routed via P0.1 and PC.4 in both MII and RMII mode. Before, |
| P0.1 was hard-coded for MII and PC.4 was hard-coded for RMII. Also, |
| the definitions used inconsistent naming (TXEN vs. TX_EN). From Jakob |
| Haufe. |
| - LPC43 Serial: Fix copy-paste error: g_usart1port->g_uart1port. From |
| Dave Marples. |
| - LPC43 SDMMC: Fix the LPC43 family SDMMC card access: Clocks were |
| wrongly configured, way too fast because there is no primary divider |
| on LPC4330, the LPC43_SDMMC_DELAY register was not being set, the |
| LPC43_SDMMC_BLKSIZ and LPC43_SDMMC_BYTECNT registers had the wrong |
| values. From Dave Marples. |
| - LPC43 SDMMC: Corrected a problem in lpc43_dmasendsetup(). There was |
| no linked DMA descriptor code on the send side. The end result was |
| stalls while sending multiple sectors. This commit adds that in and |
| the send code is working much better. From Dave Marples. |
| - LPC43 SDMMC: With these changes the SDMMC card for LPC43 is now |
| working properly: Timing was dependent on CPU speed rather than |
| absolute time, end of transfer handling was a bit mixed up. It is |
| possible for data to still be in the FIFO (i.e. not have reached the |
| card) when a next write is requested, so we need to wait for that to |
| complete. Interrupt Status could be carried over from one transfer |
| episode to the next, corrupting progress. Multi-descriptor DMA |
| writing simply wasn't implemented. From Dave Marples. |
| |
| * NXP/Freescale LPC43xx Boards: |
| |
| - Bambino-200E: Correct calculation of SDMMC clock configuration. The |
| LPC43 has no SDMMC source clock divider. Error noted by Dave |
| Marples. From Gregory Nutt. |
| |
| * NXP/Freescale Kinetis: |
| |
| - Kinetis: Remove all attempts to reprioritize interrupts. From Gregory |
| Nutt. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis I2C: I2C On failed reset re-initialization I2C and clocking. |
| If a reset fails, we still must reinitializes the I2C block so that |
| subsequent transfers will not cause a hard-fault due to the clock |
| being off. If that transfer fails it can try to reset again. From |
| David Sidrane. |
| - Kinetis Serial: Juha Niskanen's fix related to STM32 |
| CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in Kinetis. |
| From Gregory Nutt. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT Ethernet: The board would not come up if I ran Nuttx from cold. |
| I dumped the PHY registers to see what the differences were and the |
| PHY was coming up in NANDTree mode. This is a mode for testing |
| connectivity between the PHY and the MAC. Switching this mode off in |
| the PHY registers has fixed the problem. From Dave Marples. |
| - i.MXRT Ethernet: Fix a race condition in setting up the Ethernet Tx |
| transfer. From Dave Marples. |
| - i.MXRT Ethernet: Corrections for the i.MXRT Ethernet: (1) Now the |
| Ethernet is completely re-initialized when an error occurs by means of |
| taking the interface down and back up but the PHY is _not_ |
| renegotiated for that case because that is very time consuming and an |
| error in the Ethernet is no reflection on the state of the PHY |
| anyway. (2) Explicitly sets the expected PHY address to zero (this |
| could be moved into the config rather than searching for it which |
| takes ages, and it's zero anyway for this board (that's the broadcast |
| address, and anything that cannot respond on that has multiple PHYs, |
| so that would be a new board). (3) Allows for the renegotiation of |
| the PHY to be optional when a reset is needed. If a non-renegotiated |
| reset doesn't result in good comms to the PHY then it'll automatically |
| be escalated to a renegotiated one. (4) Only performs a reset for |
| errors that need it (the CRITICAL_ERROR define). The list of errors |
| that need reset are somewhat arbitrarily chosen based on my prejudices |
| and might need to be revisited, but certainly the jabber errors don't |
| need reset, the partial packet is thrown away by the layer above |
| anyway. (5) Re-loads the multicast table on reset. (6) Adds a bit |
| more logging into the imxrt Ethernet module. From Dave Marples. |
| - i.MXRT LPI2C: Fixes 2 bugs in the for IMXRT1050: (1) I2C time out and |
| did not send STOP condition when sending single byte, (2) I2C could |
| not receive bytes after repeated start. From Ivan Ucherdzhiev. |
| - i.MXRT LPSRTC: SVNC LPCR register bits 0 & 1 are NOT reserved and |
| are, in fact, needed to enabled the SRTC. Now the SRTC is working. |
| From Ivan Ucherdzhiev. |
| - LPC54 SDMMC: Add support for and SDMMC errata. It appears that now I |
| can read the SD card successfully, but I get CRC errors when writing |
| to the card. From Gregory Nutt. |
| - LPC54 SDMMC: Ported Dave Marples fixes LPC43 SDMMC to the LPC54. |
| From Gregory Nutt. |
| - i.MXRT WDOG: Typos in bit definitions, wdog registers are 16 bits, |
| wdog update has to be within 255 clocks of unlock, define board |
| clocking based on divisor and muxes. From David Sidrane. |
| |
| * NXP i.MXRT: |
| |
| - i.MXRT: clockconfig bug fix: Fixed logic that was not clearing bits |
| as ~ was missing in &= mask operations. Use values from the board.h |
| file so set the Mux that selects the clock sources. Use board |
| defined PODF values to select clock. Only configure USDHC2 clocks |
| when board defines clocks. From David Sidrane. |
| |
| * NXP i.MXRT Boards: |
| |
| - IMXRT1050-EVK: Previous committed implemented SPI-based MMC/SD card |
| support conditioned on CONFIG_MMCSD. This interferes with the |
| implementation of MMC/SD card support using the SDIO-based |
| peripheral. This commit renames that atypical support to *mmcsd_spi* |
| and conditions using the SPI-based support on CONFIG_MMCSD_SPI which |
| will then not interfere with the MMC/SD support that can be |
| conditioned on CONFIG_MMCSD_SDIO. From Gregory Nutt. |
| |
| * On Semi LC823450 Boards: |
| |
| - LC823450: Fix up_allocate_heap() in lc823450_allocateheap2.c. For |
| lc823450, heap area in flat build mode must start just after |
| _eronly. Because bss/data area is allocated in lower address than |
| text area in SRAM. See ld.scripts for details. Also, this change |
| removes unused up_allocateheap.c From Masayuki Ishikawa. |
| |
| * Silicon Labs EFM32 Drivers: |
| |
| - EFM32 Serial: Juha Niskanen's fix related to STM32 |
| CONFIG_SERIAL_OFLOWCONTROL also applies to cloned logic in EFM32. |
| From Gregory Nutt. |
| - EFM32 USB Device: The epin_configure() function used the same eptype |
| as the TxFIFO number for all endpoints. This should probably be the |
| physical EP number, not the EP type. Suggested by Key Two. From |
| Gregory Nutt. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32* SPI: Don't rely on SPI_CR1_SPE to determine if peripheral has |
| been initialized. This change is needed specifically for the case |
| where a boot loader sets the SPE bit before starting NuttX. In that |
| case, the test in the SPI driver is wrong. This change fixes that by |
| assuring that NuttX has booted and initialized at least once (whether |
| or not SPE is set) before the driver starts refusing to initialize. |
| From Anthony Merlino. |
| - STM32 F0, F7, H7, L4 Serial: Fix use of CONFIG_SERIAL_IFLOWCONTROL |
| where CONFIG_SERIAL_OFLOWCONTROL was intended. From Juha Niskanen. |
| - STM32 TIM: Don't use hard-coded UIF interrupt in some functions. |
| From raiden00pl. |
| - STM32 (FS/HS), STM32F7, and STM32L4 OTGFS/HS Device: The |
| epin_configure() function used the same eptype as the TxFIFO number |
| for all endpoints. This should probably be the physical EP number, |
| not the EP type. Suggested by Key Two. From Gregory Nutt. |
| - STM32 F2: Fixes Kconfig options to include all STM32F20XX processors, |
| not just STM32F207. Also removes redundant STM32_STM32F429 depends |
| from Kconfig. STM32F4XXX already does this. From Anthony Merlino. |
| - STM32 F4 DAC: STM32F407VG has only one DAC. NDAC=2 causes |
| compilation error when trying to use e.g. STM32_DAC1_CR macro. From |
| Petteri Aimonen. |
| - STM32 F7 Serial: Force invalidation of data cache after DMA re-enable |
| when returning from low-power mode From Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L475E-IOT01A: Correct timer source clock frequencies. From Freemans |
| Goden. |
| - Nucleo-L432KC: Fix SPI pin definitions in board.h. From Daniel P. |
| Carvalho. |
| |
| * MIPS32: |
| |
| - CP0 Definitions: Fix some copy-paste errors that cause malformed |
| comments and syntax errors when certain CP0 CONFIG1 bits are |
| referenced. Note in Issue 123 by Anonymous. From Gregory Nutt. |
| - microMIPS: Reported by Anonymous in Bitbucket Issue #129: When MIPS |
| port is built for microMIPS and then loaded as an application, the |
| __start entry point is entered in microMIPS mode, but the CPU core |
| initialization code there misses to set the config3ISAOnExc bit to 1. |
| Subsequently, exceptions are entered in MIPS32 mode, but the code base |
| was built for microMIPS. |
| |
| * Microchip PIC32MZ: |
| |
| - PIC32MZ Startup: In pic32mz-head.S, initialize the global pointer in |
| all shadow sets. From Ouss4. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ Serial: Fix a typo in assignment of TTYS0 to UART6 From Ouss4. |
| |
| * Simulation: |
| |
| - SIM Network Driver: Fix error 'invalid operands to binary &' From |
| Xiang Xiao. |
| |
| * C Library/Header Files: |
| |
| - Fix typographical error in endian.h and resource.h From anchao. |
| - include/net/if.h: Adds extern "C" guard in include/net/if.h From |
| Anthony Merlino. |
| - include/netinet/in.h: Per OpenGroup.org, type of sin_port in struct |
| sockaddr_in must be in_port_t vs uint16_t. NOTE: in_port_t is |
| typdef'ed as uint16_t anyway. From Gregory Nutt. |
| - include/nuttx: Fix definitions used to access OS functions within the |
| libraries. In the FLAT build, we must always set the errno and/or |
| create cancellation points because the same library functions are used |
| within the OS as are used by applications. This could cause issues |
| for the OS but corrects some problems at the user interface. Noted by |
| Federico Braghiroli in Bitbucket issue 121. From Gregory Nutt. |
| - include/nuttx/clock.h: Fix uptime wrong if DEBUG_FEATURES and |
| SCHED_TICKLESS enabled. From Xiang Xiao. |
| - include/nuttx/fs/fs.h: Fix some backward parameters in a new macro |
| definition. From Gregory Nutt. |
| - include/nuttx/fs/fs.h: Register_mtddriver should depend on CONFIG_MTD |
| not CONFIG_MTD_PARTITION From Xiang Xiao. |
| - include/sys/socket.h: Renumber the socket types. They must begin at |
| 1, not zero. Socket type zero has a special meaning for some |
| interfaces. For example, getaddrinfo() uses a socket type of zero to |
| many any type of socket. The is no standard name for the |
| any-type-socket, but macOS uses SOCK_UNSPEC. NuttX will do the same. |
| Issue noted by Anthony Merlino. From Gregory Nutt. |
| |
| - libs/libc: Correct some errors in psignal() and stpncpy(). From |
| Lokesh B V. |
| - libs/libc/math: Add variable convergence in log() and logf() to avoid |
| hangs caused by failure to converge for very specific input values. |
| Also includes a small change to log() and logf() that improves |
| accuracy and convergence time. From Rajan Gill. |
| - libs/libc/stdio: Fix conversion for format specifiers in sscanf() that |
| appear right after a floating point format specifier. When |
| performing a floating point conversion the parsing code could consume |
| more than required characters from the input buffer. This made |
| impossible to convert input of form "1.1K" using format "%f%c". Fix |
| the issue by advancing the input buffer with the actual characters |
| converted as a float point number. From Mihai Serban. |
| - libs/libc/stdio: Remove CONFIG_NOPRINTF_FIELDWIDTH. That option |
| does, indeed, make the printf family of functions much smaller. But |
| it also adds a lot of complexity and makes the functions |
| non-standard. Removing this might break some of the tinier platforms |
| but it is the best thing to do for long term maintenance for for |
| OpenGroup.org compliance. |
| - libs/libc/stdio: Update to vsprintf(). This resolves the integer |
| field width problem if Issue 35 for the cases of integer, long and |
| long long integer types. The output now matches the output form |
| glibc. From Gregory Nutt. |
| - libs/libc/string: Correct the return pointer value from stpncpy() for |
| the case where the NUL terminator is transferred. From Gregory Nutt. |
| - libs/libc/string: Fix strrchr() so that it considers null terminator |
| as part of string. From Petteri Aimonen. |
| - libs/libc/wqueue: Eliminate a race condition noted by Xiang Xiao. |
| Use sigprocmask() so that we do not lose a signal. From Gregory Nutt. |
| - libs/libnx/nxfonts: Fix kerning of 'I' in Sans17x22 font. From |
| Petteri Aimonen. |
| - libs/libnx/nxfonts: In nxfonts_getfont(), avoid unnecessary warnings |
| for other whitespace chars also. From Petteri Aimonen. |
| - libs/libnx/mxmu: NXMU now re-validates window pointer for mouse |
| events. NXMU caches the previous window pointer so that further mouse |
| events can be sent to the same window. However, if the window is |
| destroyed while mouse button is held down, the pointer may become |
| invalid and cause a crash. This patch revalidates the pointer before |
| using it. From Petteri Aimonen. |
| - libs/libnx/nxtk: nxtk_bitmapwindow: Fix warning message when bitmap is |
| fully off-screen. From Petteri Aimonen. |
| |
| * Build System: |
| |
| - Fix issue with libcxx build. This was changed multiple times, but |
| should be fixed now. From Anthony Merlino. |
| - configs/Makefile and tools/Config.mk: Move single file copy to the |
| new function COPYFILE. This fixes the Windows native build case when |
| there is no cp or cp does not recognize Windows paths. From Anatol |
| Ivanov. |
| - tools/Config.mk and tools/Makefile.win: Force use 'cmd' for shell |
| with windows native build From Anatol Ivanov. |
| - tools/Directories.mk: Correct the path to the installed libcxx |
| directory. From Gregory Nutt. |
| - tools/Makefile.win/unix: Staging directory (and its libraries) should |
| be removed on 'make clean' (issue noted by Dave Marples). From |
| Gregory Nutt. |
| |
| - apps/Directory.mk: If the current directory contains a Kconfig file |
| and MENUDESC is not defined, then Directory.mk must not trash the |
| Kconfig in the current directory. From Gregory Nutt. |
| - apps/Makefile: Fix Windows native build patch extension. From Anatol |
| Ivanov. |
| |
| * Other Tools: |
| |
| - tools/Config.mk: Fix an error in RWILDCARD implementation From |
| Anthony Merlino. |
| - tools/configure.c: Add missing '\n' in printf statement |
| - tools/configure.c: Add missed -g option to getopt() string. From |
| Anatol Ivanov. |
| - tools/configure.c and tools/configure.sh: Fix Windows native |
| pre-build kconfig-conf incompatibility. From Anatol Ivanov. |
| - tools/csvparser.h: Extend MAX_PARMSIZE to 256. Fixes this issue: |
| 70: Parameter too long: ... From Xiang Xiao. |
| - tools/link.bat: Fix .fakelink creation. From Anatol Ivanov. |
| - tools/mkdeps.c: Fix '\0' missing with MinGW. From Anatol Ivanov. |
| |
| * NSH Library: apps/nshlib: |
| |
| - apps/nshlib: Correct maximum number of arguments that can be provided |
| to the mksmartfs command. From Eunbong Song. |
| - apps/nshlib: Add fflush to nsh_consolewrite(). This resolves this |
| problem: 'cat /dev/ttyCP &' followed by 'echo ls >/dev/ttyCP'. In |
| that case we can't get the 'ls' result immediately, because 'cat' cmd |
| uses nsh_consolewrite() and that uses fwrite with no fflush. We can |
| get the 'ls' result after type '\n', because nsh will fflush output |
| when get '\n'. From ligd. |
| - apps/nshlib: nsh_catfile() should not append '\n' if the last char in |
| file is already '\n' From Xiang Xiao. |
| - apps/nshlib: Fix warning g_oldpwd defined but not used |
| [-Wunused-const-variable] in nsh_envcmds.c. From Xiang Xiao. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/adc/Kconfig: CONFIG_BOARDCTL_ADCTEST does not exist |
| anymore and should removed as a dependency. From Eunbong Song. |
| - apps/examples/webserver/Kconfig: The webserver "app" allows for DHCP |
| client to be enabled. However, the Kconfig infrastructure does not |
| contain EXAMPLES_WEBSERVER_DHCPC config. Based on patch from |
| "Anonymous" attached to Bitbucket Issue #130. From Gregory Nutt. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/hexed: Fix memory leak From zhuyanlin. |
| - apps/system/i2c: Fix i2c_msg freq initialization problem. Typo |
| prevented I2C frequency initialization in a struct i2c_msg. From |
| dongjiuzhu. |
| - apps/system/system: Fix warning when passing argument 6 of |
| 'task_spawn' from incompatible pointer type |
| [-Wincompatible-pointer-types] From Xiang Xiao. |
| |
| * Network Utilities: apps/netutils: |
| |
| - Correct some network-related configuration variable names. All *_MTU |
| defines were changes to *_PKTSIZE gut that was not reflected in |
| apps/ From Gregory Nutt. |
| - apps/netutils/netlib/netlib_parsehttpurl.c: Correct handling of long |
| URLs as noted in Bitbucket issue #119 (in the nuttx/ repository, not |
| the apps/ repository). From Gregory Nutt. |
| - apps/netutils/codecs: "dst" overflow protection when base64 string |
| ends with "=" From Aleksandr Vyhovanec. |
| - apps/include/netutils/ipmsfilter.h: Eliminate error generated by bad |
| pre-processor logic. From Gregory Nutt. |
| |
| * GPS Utilities: apps/graphics: |
| |
| - apps/graphics/NxWidgets: Fix garbage returned when |
| CCycleButton::getValue() is called after removeAllOptions(). |
| CScrollingPanel should not draw outside the widget area. From |
| Petteri Aimonen. |
| |
| NuttX-7.28 Release Notes |
| ------------------------ |
| |
| The 128th release of NuttX, Version 7.28, was made on January 19, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.28.tar.gz and |
| apps-7.28.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - Critical Section Monitor: Adds data collection logic in support of |
| pre-task monitoring critical sections and pre-emption state. From Gregory |
| Nutt |
| - Critical Section Monitor: Add support for global pre-emption and |
| global critical sections to monitor as suggested by Xiang Xaio. From |
| Gregory Nutt |
| - Interrupt Time: Measurement of interrupt handler duration used to |
| be available only in Tickless mode since it used the high resolution |
| Tickless timer to measure interrupt time. This change adds |
| CONFIG_SCHED_IRQMONITOR_GETTIME which, if enabled, will force the |
| interrupt duration calculation to use the same high-resolution, |
| platform-specific timer as is used with the Critical Section Monitor. |
| This leads to two improvements: (1) You can now measure interrupt |
| duration in non-Tickless mode, and (2) in either mode, the interrupt |
| duration and the critical section measures will use the same |
| high-resolution timer and should, therefore, never be any discrepancy |
| due to different clock sources. From Gregory Nutt |
| - Context Switching Protection: Add debug assertions before each call |
| to up_block_task() to assure that there is no attempt to block an |
| IDLE task. From Dave Marples |
| - init Task: Allow the init task priority to be configurable. From |
| David Sidrane |
| - pthreads: Implement pthread_key_delete(). This involves some minor |
| changes to the group data structure. From Gregory Nutt |
| |
| * File Systems/Block and MTD Drivers |
| |
| - ProcFS: Extended the process ID ProcFS output to show per-thread |
| maximum time for pre-emption disabled and maximum time within a |
| critical section. From Gregory Nutt |
| - NXFFS: Pass unrecognized IOCTL commands to the contained MTD |
| driver. From Daniel P. Carvalho |
| - LittleFS: Adds an initial port the ARM mbed littlefs to NuttX. This does |
| not include FLASH formatting utilities. Depends on CONFIG_MTD_BYTE_WRITE. |
| From lihaichen |
| - AT25 MTD Driver: Added support for AT25DF081A serial flash chip. |
| From Marc Rosen |
| - MTD Configdata Device: Extends the MTD configdata device with the |
| following features / additions: |
| 1. Configurable option to use named config items instead of enumerated |
| ID/Instance numbers. |
| 2. Ability to iterate through the existing configdata items in the |
| /dev/config device. |
| 3. Ability to "unset" a configdata item. |
| 4. Ability to perform "flash_eraseall" on the /dev/config device. |
| From Ken Pettit |
| |
| * Networking/Network Drivers: |
| |
| - Telnet Driver: Add NAWS and poll interface to telnet for screen size |
| negotiation used with termcurses. From Ken Pettit |
| |
| * Wireless/Wireless Drivers: |
| |
| - BLE HIC Core: Add second RX work function From Lwazi Dube |
| - BLE IOCTL Commands: Add SIOCBTCONNECT and SIOCBTDISCONNECT ioctl |
| commands From Lwazi Dube |
| - CC2564: Add cc2564 HCI UART driver. From Lwazi Dube |
| |
| * Graphics/Display Drivers: |
| |
| - Sitronix ST7032i: Add support to Alphanumeric Sitronix ST7032i |
| display From Alan Carvalho de Assis |
| - NXP TDA19988: This commit brings in a complete, but untested, |
| implementation of a driver for the TI TDA19988 HDMI Encoder. This encoder |
| is used on the Beaglebone Black board. Since this driver is untested, it |
| requires CONFIG_EXPERIMENTAL in the configuration. From Gregory Nutt |
| |
| * Crypto: |
| |
| - crypto/aes.c: This change provides an improved AES cipher API in |
| addition to the existing routines. The reasons for this new API are: |
| 1) better performance, giving the possibility to avoid re-setting-up |
| the key for each AES block when the same key is used multiple times. |
| This is important for the current single user of AES, which is |
| related to storage and FTL. And 2) suitable for simultaneous use of |
| multiple AES keys, which will be required by the upcoming crypto |
| framework. It retains compatibility with the previous API, so there |
| is no need to change anything else right now. From Sebastien Lorquet |
| |
| * Other Common Device Drivers: |
| |
| - MMCSD SDIO: The mmcsd_sdio driver makes calls for dcache |
| invalidation through the chip specific architecture function |
| SDIO_DMARECVSETUP(). I changed the arch/arm/stm32f7 chips to use |
| arch_invalidate_dcache_by_addr() instead of arch_invalidate_dcache(). |
| |
| This commit includes additional changes to mmcsd_sdio.c. I |
| created SDIO_DMADELYDINVLDT() (DMA delayed invalidate) to |
| invalidate store-into mode dcaches after the DMA transfer. I |
| have been using SDIO_DMADELYDINVLDT() for several weeks now and |
| it has fixed the problems that I previously reported regarding |
| non-cache aligned buffer invalidation errors (for my store-through |
| dcache). However, it does not permit use of unaligned DMA buffers |
| for store-into mode dcaches. |
| |
| SDIO_DMADELYDINVLDT() is a NoOp unless the chip specific Kconfig |
| file selects CONFIG_ARCH_HAVE_SDIO_DELAYED_INVLDT. I have modified |
| all the stm32f7 chips to select it. From Bob Feretich |
| - SPI Lower Half Interface: Extend the HW features supported by SPI. |
| It now supports a deferred DMA trigger hardware configuration. From |
| Dave Marples |
| - DS28E17 1-Wire Driver: Optimize I2C write followed by read to same |
| address. From Juha Niskanen |
| - LMP92001: Add support for the TI LMP92001 Multi-channle DAC/ADC |
| device. From Abdelatif Guettouche. |
| - EEPROM Character Driver: Add support to Microchip AT24CM02 From |
| Alan Carvalho de Assis |
| - Microchip MCP73871: Add support to Microchip MPC73871 Battery Charger. |
| From Alan Carvalho de Assis |
| - MCP7941x: Add support for the Microchip MCP741x external RTC. From Ouss4 |
| - Sensirion SCD30: Driver for Sensirion SCD30 CO2 sensor. From Jussi |
| Kivilinna |
| - Sensirion SGP30: Driver for Sensirion SCD30 gas sensor. From Jussi |
| Kivilinna |
| - Sensirion SPS30: Driver for Sensirion SCD30 particulate matter sensor. |
| From Jussi Kivilinna |
| - USB CDC/ACM Device: When implemented usb cdc on nrf52840, I found |
| some issues with cdc driver: |
| 1. Lost data when receiving buffer is full; |
| 2. Low-water mask implement issue; |
| 3. Re-flush cdc buffer when enabling |
| 4. Serial dma is conflict with cdc , modify the serial.h |
| From Levin Li |
| |
| * MIPS32: |
| |
| - Configuration System: Allow Penguino for windows for the Windows |
| Ubuntu platform as well. |
| |
| * Maxim Integrated MAX326xx |
| |
| - MAX32660: Support for the MAX32660 was added (along with partial |
| support for other members of the MAX326xx family). The initial port |
| includes Clock configuration, timer, GPIO pin configuration, ICC, |
| and UART. Additional untested drivers are complete and ready for |
| testing: DMA, GPIO interrupts, SPI0 Master, TC, WDT. The following |
| drivers are not yet implemented: I2C and I2S. |
| |
| * Maxim Integrated MAX326xx boards |
| |
| - MAX32550-EVSYS: Basic support for the Maxim Integrated MAC3X660 |
| EVSYS is included. A basic NSH configuration is available and is |
| fully functional. Includes unverified support for an SPI0-based |
| SD card. |
| |
| * Microchip/Atmel SAMD21/L21 Drivers: |
| |
| - SAMD21/L21: Adds a complete ADC header file for SAMD21 and a partially |
| complete ADC header file for the SAML21. From Alexander Vasiliev |
| - SAMD21/L21: Export sam_i2c_master_initialize(int bus) to be used by |
| board config. From Alan Carvalho de Assis |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ I2C: Add support for the I2C bus. From Ouss4 |
| |
| * ARMv7-A |
| |
| - ARMv7-A MMU: Use TLBIMVA vs TLBIMVAAIS to invalidate the Cortex-A8 |
| cache. From Petro Karashchenko |
| |
| * ARMv7-M |
| |
| - Cortex-M7 Cache: This commit adds a new function |
| arch_invalidate_dcache_by_addr(). It takes the same parameters as |
| arch_invalidate_dcache(), but performs invalidation of only the lines |
| in cache that need to be invalidated. This new function could be |
| used as a a direct replacement for arch_invalidate_dcache(). From |
| Bob Feretich |
| - ARMv7-M: In the current implementation we only use very high |
| priority interrupts (levels 0, 0x10 and 0x20 in CORTEX-M speak) but |
| that means there are loads of lower priority ones that are |
| effectively unused. I have *not* changed the semantics of these |
| levels but have 'shifted' them to be based around the midpoint of the |
| available interrupts (0x80) rather than at the top end....that allows |
| for interrupts to be defined above (or, indeed, below) them as needed |
| by the application. This should have no functional effect on |
| existing code but adds in a clean capability to define higher |
| priority interrupts. From Dave Marples |
| |
| * Broadcom BCM2708: |
| |
| - BCM2708: Remove all support for the BCM2708/2835. This was added |
| only for support of the RaspberryPi Zero board which was previously |
| removed. The support was minimal and unverified. The removed files |
| can still be found in the Obsoleted directory. From Gregory Nutt |
| |
| * Broadcom BCM2708 Boards: |
| |
| - Raspberry Pi Zero: Remove the partial support for the Raspberry Pi |
| Zero. This port was started with the best of intentions but was |
| never completed. The board support can still be found in the |
| Obsoleted repository. From Gregory Nutt |
| |
| * Nordic NRF52 Boards: |
| |
| - Improve LED handling #if~#endif in nrf52_autoleds.c and |
| nrf52_userleds.c |
| Add Adafruit Feather nRF52 board LED support |
| Add Adafruit Feather nRF52 board |
| Add nrf52-generic |
| Replace 'pca10040' with 'generic' |
| Copy from nrf52-pca10040 to nrf52-generic |
| From Zou Hanya |
| |
| * NXP i.MX RT Drivers: |
| |
| - i.MXRT: Add PIT, GPT, and QIMER(TMR) header files From David Sidrane |
| - i.MXRT: Add FLEXPWM. From David Sidrane |
| - i.MXRT: Add ADC chip header From David Sidrane |
| - i.MXRT Build: Include up_systemreset and up_stackcheck.c From David Sidrane |
| - i.MXRT GPIO: Add GPIO Support Input daisy selection. From David Sidrane |
| - i.MXRT Serial: Support independent input and output flow control. From |
| David Sidrane |
| - i.MXRT USB: Use single define for USB pin definitions. From David Sidrane |
| - IMXRT106X: Add FLEXCAN3 to pinmux header file. From David Sidrane |
| |
| * NXP Freescale i.MX RT Boards: |
| |
| - IMXRT1050-EVK: GPIO device driver support added and tested by |
| Pavlina Koleva and Ivan Ucherdzhiev. From Pavlina Koleva |
| |
| * On Semi LPC23450: |
| |
| - LPC23450: Add support for SPI flash boot. Also, remove unnecessary |
| code for the SPI flash boot. From Masayuki Ishikawa |
| |
| * On Semi LPC23450 Boards: |
| |
| - LC823450-XGEVK: Add linker script for SPI flash boot. From |
| Masayuki Ishikawa |
| - LC823450-XGEVK: Enable NFS client for RNDIS configuration. Also, some |
| stack size were adjusted to work with NFS From Masayuki Ishikawa |
| |
| * Simulation |
| |
| - Critical Section Monitor: Add low level timer support for simulation. From |
| Gregory Nutt |
| |
| * STMicro STM32: |
| |
| - Configuration: Simplify ARM core selection logic From Mateusz Szafoni |
| - Configuration: USB Host is an option. From David Sidrane |
| - STM32 L0: Brings in initial support for the STM23 L0. From Mateusz |
| Szafoni |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 ADC: Configurable ADC DMA mode (one shot mode, circular |
| mode). From Mateusz Szafoni |
| - STM32 ADC: Start conversion on startup is now possible if TIM |
| triggering selected. This can be useful to start ADC TIM conversion |
| for ADC IPv2 when opening ADC device. |
| - STM32 DAC: Unified naming for DAC interfaces From Mateusz Szafoni |
| - STM32 DMA: Add interfaces to interact with high priority DMA |
| interrupts. From Mateusz Szafoni |
| - STM32 DMA: Use STM32 DMA IP core version instead of chip family |
| names. From Mateusz Szafoni |
| - STM32 DMA: Add support for DMA v1 CSELR support. From Mateusz Szafoni |
| - STM32 HRTIM: Do not enable timers on startup if option from Kconfig |
| selected and add interface to enable/disable timers. From Mateusz |
| Szafoni |
| - STM32 PWM: Add timer enable/disable and frequency update to |
| low-level ops. From Mateusz Szafoni |
| - STM32 SPI: Implements the new deferred DMA trigger feature. From |
| Dave Marples |
| - STM32 F0 Build: Rename the stm32f0 directory to stm32f0l0 to make a |
| space for STM32 L0. Rename files, functions and defines, removing |
| the f0_ from the names in order to make them MCU agnostic. From |
| Gregory Nutt |
| - STM32 F0 GPIO: Add support for GPIO EXTI. From Mateusz Sfafoni |
| - STM32 F2 FLASH: stm32_flash_writeprotect() supported the same for |
| STM32F20XX as STM32F4XXX From Anthony Merlino |
| - STM34 F7 DMA: stm32f7 enable separate DMA per SPI configuration |
| From Daniel Agar |
| - STM32 F7 QEncoder: Ported the QEncoder from F4 to F7. From Eduard |
| Niesner |
| - STM32 F7 SPI: Port Dave Marples STM32 deferred trigger enhancement |
| to the STM32 F7 SPI drivers. From Gregory Nutt |
| - STM32 H7 SPI: Port Dave Marples STM32 deferred trigger enhancement |
| to the STM32 H7 SPI drivers. From Gregory Nutt |
| - STM32 L4 SPI: Port Dave Marples STM32 deferred trigger enhancement |
| to the STM32 L4 SPI drivers. From Gregory Nutt |
| |
| * STMicro STM32 Boards: |
| |
| - B-L072Z-LRWAN1: Add basic support for b-l072z-lrwan1. Nucleo boards |
| use as default ST LINK MCO as clock input from MCU and for this |
| HSEBYP must be enabled. From Mateusz Szafoni |
| - Nucleo-F103RB: Add board support. From Mateusz Szafoni |
| - Nucleo-F103RB: Add ADC and PWM examples. From Mateusz Szafoni |
| - Nucleo-F207ZG: Add board support. From Mateusz Szafoni |
| - Nucleo-F207ZG: Add ADC and PWM examples. From Mateusz Szafoni |
| - Nucleo-F302R8: Add high priority ADC interrupts example to the |
| 'highpri' configuration. From Mateusz Szafoni |
| - Nucleo-F334R8: Add support for ADC injected sequence to the 'highpri' |
| configuration, add triggering from TIM1. From Mateusz Szafoni |
| - Nucleo-F334R8: Add example for the SPWM generation (custom STM32 PWM |
| usage). From Mateusz Szafoni |
| - Nucleo-F767ZI: Use on board USB UART as default console. Board is powered |
| by USB which can be used as UART link for upload and console. Previously |
| it was set to use Arduino shield which developer may not have. From Phil |
| Coval |
| - Nucleo-F767ZI: Add ethernet config based on nsh configuration plus |
| stm32f769i-disco/nsh-ethernet. From Phil Coval |
| - Nucleo-L073RZ: Add basic support for nucleo-l073rz. Nucleo boards |
| use as default ST LINK MCO as clock input from MCU and for this |
| HSEBYP must be enabled. From Mateusz Szafoni |
| - Nucleo-L152RE: Add board support. From Mateusz Szafoni |
| - STM32F4 Discovery: Add timing support for the critical section |
| monitor using the DWT CYCNT register. From Gregory Nutt |
| - STM32F4 Discovery: If the Critical Section Monitor, modify the |
| ITM_LAR register to assure that the DWT cycle counter is enabled. |
| Suggested by Dave Marples. From Gregory Nutt |
| - STM32F4 Discovery: Add board support to display ST7032i From Alan |
| Carvalho de Assis |
| - STM32F4 Discovery: Add loadable application build support in |
| Make.defs From Masayuki Ishikawa |
| - STM32F4 Discovery: Update RNDIS configuration: (1) Add NFS and adjusted |
| stack size for usermain and telnetd client. (2) Add support for loadable |
| application and ping. From Masayuki Ishikawa |
| - STM32F4 Discovery: Update nsh configuration: (1) Add |
| CONFIG_BOARD_INITIALIZE=y, (2) Add CONFIG_EXAMPLES_HELLO=y. From Masayuki |
| Ishikawa |
| - STM32F429I-DISCO: Add high priority ADC interrupts example to the |
| 'highpri' configuration. From Mateusz Szafoni |
| - configs/nucleo-l073rz: Support for nrf24l01. From Mateusz Sfafoni |
| |
| * TI CCxx: |
| |
| - CC13x0 family and CC13x2/CC26x2: Basic, minimal support was added |
| for these two chip families. This is a Work-In-Progress: There is |
| just enough logic in place to support a simple NSH configuration. |
| However, the port is still missing certain, necessary hooks into the |
| TI ROM-based 'DriverLib'. As a result, the support is not fully code |
| complete and is totally untested. Support for the CC26x2, which is |
| nearly identical to the CC13x2 is fragmentary. Stay tuned. |
| Hopefully full support will be available in NuttX 7.29. |
| |
| * TI CCxx Boards: |
| |
| - LAUNCHL-CC1312R1: Board support is available for the TI |
| LAUNCHL-CC1312R1. That board support consists only of an unverified |
| NSH configuration. The primary purpose of this port for the time |
| being is simply support the core architecture bring-up. |
| |
| * TI AM335x: |
| |
| - AM335x: Adds initial support for the TI AM355x family. |
| - AM335x: Add minimal wdog logic needed to disable the watchdog timer. |
| Otherwise, the board is rebooted after certain time expires while NuttX is |
| running. From Petro Karashchenko |
| - AM335x: Switch to DMTimer2 for system tick generation. U-Boot does not |
| enable DMTimer1ms clocks hence it is not possible to use it until |
| implementation in am335x_clockconfig.c is ready. From Petro Karashchenko |
| |
| * TI AM335x Boards: |
| |
| - Beaglebone Black: Initial port for BeagleBone Black board support |
| (TI AM335x family based on Cortex-A8). Includes a basic functional NSH |
| configuration . From Petro Karashchenko |
| |
| * TI Tiva: |
| |
| - LM3S9B92: Add support for LM3S9B92. From Lwazi Dube |
| |
| * TI Tiva Drivers: |
| |
| - Tiva HCI UART: Port bluetooth HCI uart interface from stm32 to tiva |
| From Lwazi Dube |
| |
| * TI Tiva Boards: |
| |
| - TM4C1294-Launchpad: Add IRQBUTTONS support to tm4c1294 launchpad. |
| From Lwazi Dube |
| |
| * Tools: |
| |
| - tools/convert-comments.c: Add a tool to convert C++-style comments |
| to C89 C-style comments. From Gregory Nutt |
| - tools/detab.c: Add detab.c which will convert all tabs in a file to |
| spaces. From Gregory Nutt |
| - tools/lowhex.c: Add lowhex.c that will convert hexadecimal constants |
| in a file to use lower case representation. From Gregory Nutt |
| - tools/mkconfig.c: Add definitions to distinguish between tristate |
| 'y' and 'm' options. From Gregory Nutt |
| - tools/nxstyle.c: Add logic to detect long lines. From Gregory Nutt |
| - tools/nxstyle.c: Add -h for help. From Gregory Nutt |
| |
| * Libraries/Header Files: |
| |
| - include/nuttx/lcd/edid.h: Add EDID definitions From Gregory Nutt |
| - libs/libc/netdb: Make DNS retries configurable From Juha Niskanen |
| - libs/libc/netdb: Harden query logic against DNS spoofing. This |
| commit implements most of the RFC 5452 guidelines for making DNS more |
| resilient. We now verify response matches against what was queried |
| and use unpredictable query IDs. It is also checked that response |
| come from correct DNS server. Also fixes a buffer overflow when |
| querying hostnames longer than CONFIG_NETDB_DNSCLIENT_NAMESIZE. From |
| Juha Niskanen |
| - libs/libc/netdb: Support multiple IP addresses per hostname From |
| Juha Niskanen |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib: Add support to use SLCD as NSH Console From Alan Carvalho de |
| Assis |
| - apps/nshlib: Add support for CROMFS start-up script. From David Sidrane |
| - apps/nshlib: Add var expansion in NSH parse. From Daniel Agar |
| - apps/nshlib: Display built-in apps using multi-column mode like the NSH |
| commands. From Ken Pettit |
| - apps/nshlib: In all multi-column help output, calculate an optimal column |
| width rather than using a hard-coded width that may or may not be |
| appropriate. Also make the number of rows presented dependent upon the |
| maximum width of the widest column. From Gregory Nutt |
| - apps/nshlib: Adds addroute command options for setting default gateway. |
| Like 'addroute default <ipaddr> <interface>'. From Anthony Merlino |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/battery: Add Battery Charger Monitor Example From Alan |
| Carvalho de Assis |
| |
| * System Utilities: apps/system |
| |
| - apps/system/configdata: Adds an "cfgdata" command which allows |
| manipulation of the /dev/config items via the command line. One such use |
| for this utility would be to set a "macaddr" configdata item, etc. The |
| utility is sort-of like a u-boot env variable edit function: |
| |
| For instance, to set a "macaddr" when the new CONFIG_MTD_CONFIG_NAMED |
| option is selected, you would do: |
| |
| nsh> cfgdata set macaddr [0xfc 0x01 0x0b 0x45 0xa1 0x12] |
| (The brackets denotes an array of bytes) |
| nsh> cfgdata set hostname myboard |
| |
| or using the old ID,INSTANCE numeric method: |
| |
| nsh> cfgdata set 0,0 [0xfc 0x01 0x0b 0x45 0xa1 0x12] |
| (The brackets denotes an array of bytes) |
| nsh> cfgdata set 1,0 myboard |
| |
| You can also display all config items: |
| |
| nsh> cfgdata print all |
| Name Len Data |
| macaddr 6 0xFC 0x01 0x0B 0x45 0xA1 0x12 |
| hostname 8 myboard |
| |
| From Ken Pettit |
| - apps/system/critmon: Add a daemon to monitor critical section usage. From |
| Gregory Nutt |
| - apps/system/nsh: Set NSH priority if the NSH task was scheduled at a |
| different priority than the configured priority. From Gregory Nutt |
| - apps/system/nxplayer: Introduce CONFIG_NXPLAYER_MAINTHREAD_STACKSIZE. From |
| Masayuki Ishikawa |
| - apps/system/termcurses: Addition of termcurses libraries in |
| apps/system/termcurses From Ken Pettit |
| - apps/system/vi: New feature additions |
| 1. Vi startup feature to prepend the current working directory to the |
| supplied filename if it does not start with '/' absolute path |
| specifier. This allows editing files in the current directory |
| without needing to fully qualify the filename. |
| 2. Standard '~' empty screen line characters for proper identification |
| of empty '\n' only lines at the end of the file. |
| 3. Moving into insert or append mode now prints '--INSERT--' in the |
| status line and clears it upon exit. |
| 4. Integration with termcurses to detect special keystrokes and to |
| handle terminal type differences. Haven't yet converted all vt100 |
| print codes to termcurses equivalents. |
| 5. Support for up, down, left, right arrows, page-up, page-down keys in |
| command mode. |
| 6. Added 'b' command to move cursor 'b'ack to previous word. Honors the |
| command repeat value for multiple word moves. |
| 7. Added 'w' command to move cursor to next 'w'ord. Honors the command |
| repeat value for multiple word moves. |
| 8. Added 'f' and 't' commands to find characters on the current line. |
| Honors the command repeat value. |
| 9. Added the find 'n'ext command to repeat the previous find operation. |
| 10. Added the 'H', 'M', and 'L' commands to move the cursor to top, |
| middle and bottom of the display. |
| 11. Extended yank/paste to manage a paste buffer with character mode in |
| addition to line mode. Character mode allows cut / paste of |
| individual characters or groups of characters vs. full lines. |
| 12. Added support in the 'd'elete and 'y'ank commands for character mode |
| deletions such as 'dw', 'dfa', '2yw', etc. |
| 13. Added support in paste routine for multiple paste using command value |
| argument. |
| 14. Added support for the 'D' and 'C' delete and change to end of line |
| commands. |
| 15. Added support for 's'ubstitute key ('x' followed by insert mode). |
| 16. Modified yank / paste allocation scheme to avoid repeated alloc and |
| free of paste buffer. Uses a minimum allocation size scheme and only |
| does free / realloc when paste does not fit. If the paste is smaller |
| than the current allocation and the current allocation is larger than |
| the threshold, then the buffer is freed and a smaller buffer |
| allocated. Otherwise the existing buffer is used. |
| 17. Support for 'P'aste before current cursor position. |
| 18. Support for '?' reverse search mode. |
| 19. Support for 'J'oin next line with current line command. |
| 20. Printing of current row,col in status line of display. |
| 21. Command repeat '.' support for commands that modify text. |
| 22. Support in replace / insert mode for arrow keys, PGUP / PGDN, HOME, |
| and END. Using these will cause the command repeat buffer to reset |
| such that only the last text addition after a cursor movement is saved. |
| 23. Added 'X' delete previous command. |
| 24. Added "gg" go to top of document command sequence. |
| 25. Added "ZZ" save and quit command (equivalent to :wq). |
| 26. Implemented '^' goto first non-whitespace on current line, along with |
| '+' and '-' goto first non-whitespace on next / previous line. |
| 27. Added CR / LF goto first non-whitespace on next line in command |
| mode. From Ken Pettit ? |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/webserver: The webserver/httpd app is was broken when script |
| support was enabled (CONFIG_NETUTILS_HTTPD_SCRIPT_DISABLE). The root cause |
| has been tracked down to the "Content-length" not being available ahead of |
| time in this case (length of -1 passed to send_headers() ). On the other |
| hand, the server closing the socket does not result in FIN being sent to |
| the browser either (FIN not supported by NuttX yet). |
| |
| Simple solution: Add support for HTTP Chunked Encoding to webserver/httpd. |
| The change is simple. It adds a configuration option to enable chunked |
| encoding. When enabled, the implementation will auto-detect the cases where |
| content length is not available ahead of time, and will automatically |
| engage chunked encoding transfers. |
| |
| Without this patch, the browser/client hangs forever, as it is expecting |
| more data. With this patch, the browser displays the content. From Vlado |
| Vidovic |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/bluetooth/btsak: Add connect and disconnect commands to |
| btsak. From Lwazi Dube |
| |
| * Graphic Utilities: apps/graphics: |
| |
| - apps/graphics/pdcurs34: Integration of termcurses into pdcurses, plus |
| pdcurses updates for multi-thread support From Ken Pettit |
| - apps/graphics/pdcurs34: Adds a configuration option to pdcurses to enable |
| line-drawing character (ALTCHARSET) when using the short 16-bit chtype. |
| This is done by limiting the characters to 7-bit ASCII values and using the |
| 8-th bit as the A_ALTCHARSET bit. This allows a significant RAM savings 4K |
| - 20K depending on terminal size) while still allowing the nicer |
| line-graphic characters for border drawing. From Ken Pettit |
| |
| * Testing: apps/testing: |
| |
| - apps/testing/ostest: Add test for pthread-specific data. From Gregory |
| Nutt |
| |
| 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: |
| |
| - Assertions: Identify the running task correctly when dumping task |
| state information. It takes time to switch to the target task after |
| g_readytorun has been modified. If panic/assert happen during this |
| period, the dump will contain the incorrect and confusing information |
| due to the difference between the real running task and the return |
| value of this_task(). This change resolve this problem by adding |
| g_running_task to track the real running task through the context |
| switch. From Xiang Xiao |
| - Assertions: Correct duplicated logic from commit |
| dbf01d12b7321d1b48b68d3b69842a853b049376. Checking for PID == zero |
| is not a valid way to test for the IDLE task in all configurations! |
| This is only true in the single CPU configuration. In multiple CPU |
| configurations, there will be a separate IDLE task for each CPU with |
| a different PID and an alternative check must be used. NOTE: The |
| logic fixed in some places still lacks sufficient intelligence in SMP |
| mode to find the right stack for the CPU IDLE thread and could still |
| show the wrong stack. From Gregory Nutt |
| - Interrupt Prioritization: Remove all driver-specific logic that may |
| set the interrupt priority to anything but the default. There is no |
| good reason to change the interrupt priority unless you just want to |
| debug a difficult problem. OR if you want to use high priority |
| interrupts. In that case the specific interrupt priorities will need |
| to be set by board-specific logic. From Gregory Nutt |
| - Memory Management: Revert "This patch prevent heap corruption as in |
| below case." This solution to the problem noted by EunBong Song |
| results in major memory fragmentation and out-of-memory |
| conditions on the PX4 platform. On that platform the lower priority |
| work queue is very low priority and essentially never runs when the |
| system is busy. As a result, the systems gets slowly starved of |
| memory until failures and bad behaviors begin to occur. From Gregory Nutt |
| - Memory Management: This is a replacement for EunBong Song's reverted |
| change. This change adds (1) logic in getpid() to return an error instead |
| of the PID if the (apparent) currently executing task is not marked as |
| RUNNING. Then (2) mm_trysemaphore() (the root implementation of both |
| kmm_trysemaphore() and umm_trysemaphore()) will know that the (apparent) |
| running task cannot be the holder of the semaphore. How could the |
| non-running task be trying to get the MM semaphore? I think only in the |
| exact scenario that Eunbong Song has described. So this new solution |
| should provide the same protection as the original change but without the |
| bad consequences to memory usage. From Gregory Nutt (with corrections |
| from David Sidrane) |
| - Memory Management: In implementation of calloc(), verify that the number of |
| elements times the size of an element will not overflow type size_t. This |
| is required by the SEI CERT C coding style and resolves anonymous Bitbucket |
| Issue #139 From Gregory Nutt |
| - sigtimedwait(): Remove unnecessary disable of pre-emption. From |
| Gregory Nutt |
| - _exit(): Update all architecture-specific _exit() implementations |
| so that they correctly call the scheduler instrumentation layer for |
| the new task that runs when the old one exits. This missing |
| instrumentation was confusing the Critical Section Monitor logic with |
| uses this instrumentation to track the state of critical sections. |
| From Gregory Nutt |
| - sched_foreach(): sched_foreach() should not have to hold the |
| critical section over the entire traversal. It should be acceptable |
| to simply only the critical section while one entry is being |
| processed (the caller can always call sched_foreach within a critical |
| section is greater stability is needed). From Gregory Nutt |
| - task_spawn(): Correct description of input parameters to |
| task_spawn_exec(). Noted by: JeongchanKim From Gregory Nutt |
| |
| * Crypto: |
| |
| - crtypo/: This change: |
| |
| Avoids the use of up_aesinitialize() entirely, which resolves |
| dependency problems, because this function does not make sure that |
| an actual hardware aes implementation was made available: each SoC |
| is now responsible to ensure the AES hardware is initialized before |
| first use. This applies to lpc43xx, stm32 and sam34. |
| |
| Remove definitions of the NEVER used aes_init and aes_update |
| operations. The new AES API will be more suitable. |
| |
| From Sebastien Lorquet |
| |
| * File System/Block and MTD Drivers: |
| |
| - opendir(): Corrects a problem with opendir() noted by Petteri |
| Aimonen in Bitbucket Issue 132: "opendir() fails for FAT filesystem |
| with trailing slash in path". I see the following behaviour on NuttX |
| 7.26, where I have SD card mounted on /flash and a directory called |
| "frm" on it: |
| |
| opendir("/flash") returns (DIR *) 0x1000c580 |
| opendir("/flash/") returns (DIR *) 0x1000c5d0 |
| opendir("/flash/frm") returns (DIR *) 0x1000c620 |
| opendir("/flash/frm/") returns (DIR *) 0x0 |
| |
| From POSIX specs for opendir(): "A pathname ... that ends with one or |
| more trailing slashes shall be resolved as if a single dot character |
| ( '.' ) were appended to the pathname." So for mount points, |
| opendir() works correctly, but for FAT32 filesystem it fails to open |
| directory if the path has a trailing slash... |
| |
| NOTE: You would not see this problem if you call opendir() indirectly |
| in NSH (like 'ls -R /') because NSH contains logic to remove trailing |
| '/' characters from paths. From Gregory Nutt |
| - dup()/dup2(): dup() and dup2() were broken some time back. |
| fs_dupfd() was return returning OK on success, not the file |
| descriptor of the duplicated fd. From David Sidrane |
| - ProcFS: Remove the unnecessary critical section From Xiang Xiao |
| - CROMFS: Fix hardfault. From David Sidrane |
| - SmartFS MTD Driver: Fix smart_write_alloc_sector sector size mapping. |
| Was not correctly calculating the encoded sector size for small (256) |
| byte or large (>= 4096 byte) sectors. Noted by Daniel P. Carvalho. |
| Fix from Ken Pettit |
| - AT25 MTD Driver: Fixed missing opening parenthesis. From Marc Rosen |
| - MTD Configdata MTD Driver: Check return value mtdconfig_readbytes(). |
| From Jussi Kivilinna |
| - S25FL1 MTD Driver: Minor change for the s25fl1 QSPI FLASH driver which |
| fixes additional sectorshift vs. pageshift confusion. From Ken Pettit |
| |
| * Networking/Network Drivers: |
| |
| - All network drivers! Change pre-processor logic that selects the |
| high priority work queue or gives preferential treatment to the high |
| priority work. All network logic must run on the low priority work |
| queue! Or suffer the consequences. From Gregory Nutt |
| - Socket Clone/Dup: On a failure to start the TCP monitor, the cloned |
| socket is closed but is not properly freed, leaving it attached to a |
| TCP connection structure with the wrong reference count. From |
| Gregory Nutt |
| - ARP: Fix whitespace after ARPHRD_IEEE80211 in ARP header file. From |
| Daniel Agar |
| - 6LoWPAN: Fixes decompression of ipaddr from MAC address. The logic |
| used to populate the IP from the radio address should match |
| sixlowpan_ipfromsaddr/sixlowpan_ipfromeaddr From Anthony Merlino |
| - 6LoWPAN: Fixes logic surrounding the Universal/Local bit. This bit |
| represents whether the IID is locally/globally administered. The U/L |
| bit is bit 1 of the MSB of the EUI-64. It should only be inverted in |
| cases where there is a full EUI-64. In cases where the IID is derived |
| from say, a short address, this bit should be forced to 0, indicating |
| that it is locally administered. See: |
| https://tools.ietf.org/html/rfc4291#section-2.5.1 |
| https://tools.ietf.org/html/rfc4944#section-6 |
| https://tools.ietf.org/html/rfc2464#section-4 |
| From Anthony Merlino |
| - 6LoWPAN: IEEE802.15.4 stores and uses addresses in little endian |
| order. From Anthony Merlino |
| - 6LoWPAN: Address comment regarding avoiding double lookup of address |
| context. From Anthony Merlino |
| - 6LoWPAN: Record and restore d_buf on entry/exit of sixlowpan_input. |
| This avoids an issue where d_buf gets set to NULL by 6LoWPAN, and |
| then is used by forwarding logic from another network interface |
| before getting set back to the drivers internal buffer. From Anthony |
| Merlino |
| - 6LoWPAN: sixlowpan_input should always return 0 if the incoming frame was |
| consumed. From Anthony Merlino |
| - TUN Driver: Fixes a problem reported by Masayuki Ishikwawa: Recently I |
| noticed that ARP response packet is corrupted when I tried to run |
| bluekitchen with the latest tun.c in TAP mode. If I revert commit |
| 8193c28e9126c9cb89042e80d6ebab7485a831e4, then it works again. From Xiang |
| Xiao |
| - Telnet Driver: Add missing logic to set read event flags in poll() |
| method. From Ken Pettit |
| |
| * Wireless/Wireless Drivers: |
| |
| - BLE: Fix uninitialized variables. From Lwazi Dube |
| - BLE GATT header file: Fix struct name. From Lwazi Dube |
| - BLE GATT: Remove unnecessary GATT ioctls From Lwazi Dube |
| |
| * Graphics/Display Drivers: |
| |
| - ST7032: Fix seek method. Was not taking into account the offset for the |
| SEEK_END case. Did not account for negative offsets. On errors, it was |
| clobbering the filep->f_pos setting. From Gregory Nutt |
| - PCF8574 Backpack: Fix seek method. Had the same problems as noted for |
| ST7032 driver. From Gregory Nutt |
| |
| * Common Drivers: |
| |
| - Button Upper Half: Fix two bad NULL checks From Juha Niskanen |
| - PWM Interface: Remove dependency on CONFIG_PWM for the upper-half |
| PWM header. This allows compilation for the lower-level PWM drivers |
| even if the upper-half PWM logic is not used. From Mateusz Szafoni |
| - Various I2C Drivers: In most I2C drivers, correct upper index value |
| in I2C trace dump. Eliminates the extra NONE event from the trace |
| dump output. From Ouss4 |
| - Battery Gauge: Add missing initialization of semaphore. From Alan |
| Carvalho de Assis |
| - Batter Charger: Add missing initialization of semaphore. From Alan |
| Carvalho de Assis |
| - MCP73871: Fix Microchip MCP73871 Battery Charger driver to register |
| correctly as a battery charger. The first element of a 'struct |
| battery_charger_dev_s' should be a pointer to operations structure. From |
| Alan Carvalho de Assis |
| - MCP794xx: Fix MCP794xx driver to wait for OSCRUN and fix tm_year. From |
| Abdelatif Guettouche |
| - Numerous files: Fixes usage of CONFIG_BIG_ENDIAN; should be |
| CONFIG_ENDIAN_BIG From Anthony Merlino |
| |
| * ARMv7-A: |
| |
| - ARMv7-A MMU: Fix end address calculation for mmu_invalidate_region() API |
| From Petro Karashchenko |
| |
| * ARMv7-M: |
| |
| - ITM: Fix missing space causing macro issues From Alan Carvalho de |
| Assis |
| - Common Exception Handlers: This commit changes the lazy and non-lazy |
| exception handler to remove a couple of cpsid instructions from them |
| on ARMv7-m. If my understanding is correct then these interrupt |
| manipulations aren't doing anything anyway because prioritization |
| stops secondary interrupts arriving and, even if they did work, they |
| would have introduced race conditions for the period of time between |
| the interrupt arriving and further interrupts being disabled. From |
| Dave Marples |
| - MPU/Protected Mode Build: Revert "arch/arm/armv7-m: MPU: |
| mpu_log2regionceil needs take into account the offset too". Masayuki |
| Ishikawa reports that this commit breaks ALL PROTECTED mode builds. It |
| violates the basic requirements of the use of the MPU in protected mode. |
| Those basic requirements are: |
| 1. The MPU region must be aligned to the base address of the memory |
| region being mapped (it may NEVER extend before the memory region). |
| That is, the following MUST always be zero: (base & ((1 << l2size) - 1)) |
| 2. The MPU region must never extend beyond the end of the memory region. |
| That is, the following must be true: size >= (1 << l2size) |
| From Gregory Nutt |
| |
| * Microchip PIC32MX Drivers: |
| |
| - PIC32MX Ethernet: Fix a comparison in a debug assertion. Should be |
| <= vs <. Noted by Anonymous in Bitbucket Issue 134. From Gregory Nutt |
| |
| * Microchip PIC32MZ: |
| |
| - PIC32MZ chip.h Header: Add a missing " in an error message. From Ouss4 |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ Ethernet: Fix a comparison in a debug assertion. Should be |
| <= vs <. Noted by Anonymous in Bitbucket Issue 134. From Gregory Nutt |
| |
| * Microchip/Atmel SAMD21/L21 |
| |
| - SAMD21/L21: Corrects behavior of the I2C_M_NOSTART flag. Also adds |
| a release a bus on RXNACK and corrects typo priv->flags to msg->flags |
| as priv->flags is never set. From Alexander Vasiliev |
| - SAMD21/L21: Fix SAMD2L2 arch to use calibrated oscillator value. Now |
| SAMD20 and SAMD21 should work fine without external crystal. Note that |
| SAML21 Xplained board has an external crystal and doesn't need this change, |
| unless you don't want to use the crystal. From Alexander Vasiliev |
| - SAMD21/L21 I2C Master: Adds calculation of a timeout and disables |
| interrupts in case of error. From Alexander Vasiliev |
| |
| * Microchip/Atmel SAMD21/L21 Boards |
| |
| - SAML21-Xplained: Fix removed MAXCOARSESTEP from saml21-xplained board. |
| From Alan Carvalho de Assis |
| |
| * Microchip/Atmel SAMD51/Ex |
| |
| - SAMD51/Ex: Alexander Vasiliev's fix to the SAMD21 I2C Master (commit |
| b1110ba91c549572e94c24ebed202643233deee3) should probably also be |
| applied to the SAMD51 I2C Master which is identical. From Gregory Nutt |
| |
| * Microchip/Atmel SAMV7 |
| |
| - SAMV7 Serial: Fix case where TTYS0 is not defined. From Ken Pettit |
| |
| * Maxim Integrated MAX326xx |
| |
| - MAX326xx: WFI instruction in IDLE loop seems to interfere with |
| stability. Commented out for now. Needs to be investigated further. |
| From Gregory Nutt |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT FLEXPWM: Correct duplicated definitions From David Sidrane |
| - i.MXRT SERIAL: Fix TTYS0 defined definitions of higher numbered ports |
| From David Sidrane |
| - i.MXRT LPSPI: Removed unused clock, that borked the build. From David |
| Sidrane |
| - i.MXRT LPI2C: I2C Reset rework From David Sidrane |
| |
| * On Semi LC823450: |
| |
| - LC823450: Fix up_allocate_heap() in lc823450_allocateheap2.c. This |
| change fixes heap size and also implements up_addregion(). From |
| Masayuki Ishikawa |
| - LC823450: Fix go_os_start() in lc823450_start.c. I found a bug in |
| go_os_start() that it returns immediately because it does not compare |
| r1 to zero. This commit fixes this bug. Also, this commit fixes its |
| description. From Masayuki Ishikawa |
| - Other Architectures: Masayuki Ishikawa's change to go_os_start() was |
| also to all MCU-specific start-up functions that support |
| go_os_start(). From Gregory Nutt |
| |
| * On Semi LC823450 Boards: |
| |
| - LC823450-XEVK: Fix IOB params in rndis/defconfig. These parameters |
| work for HTTP audio streaming. From Masayuki Ishikawa |
| - LC823450-XGEVK: Change RNDIS MAC address assignment in rndis |
| configuration. In previous implementation, mac[0] was assigned to |
| 0xaa for RNDIS host to avoid MAC address conflicts with RNDIS |
| device.. However, I noticed that this assignment causes a random MAC |
| address generation on ubuntu16.04 or later which is inconvenient to |
| set up network interface. This new assignment scheme fixes this |
| issue. From Masayuki Ishikawa |
| - LC823450-XGEVK: Fix overlapped memory settings in memory.ld. From |
| Masayuki Ishikawa |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32: Remove redundant STM32 family definitions from chip.h header |
| file. It is already done in arch/arm/src/stm32/Kconfig From Mateusz |
| Szafoni |
| - STM32 ADC: There is no DMA CFG bit for the basic IPv1 ADC. From |
| Mateusz Szafoni |
| - STM32 ADC: Refactor adc_reset. It should be easier to maintain this |
| code if it's divided into smaller functions From Mateusz Szafoni |
| - STM32 F0 Clocking: Fixes the problem in GPIO port clocks. Only port |
| A clock was enabled although the comment states otherwise. From Juha |
| Paalijärvi |
| - STM32 F7 I2C: I2C out of bounds access on priv->msgv. Error in if |
| statement. It was checking for msgc > 0. If message count is 1, only |
| index 0 is valid on priv->msgv. Therefore random values in memory |
| were used to set next_norestart. From David Sidrane |
| - STM32 H7 I2C: Applied David Sidrane's I2C fix to the identical logic |
| for STM32 H7. From Gregory Nutt |
| - STM32 L4 I2C: Applied David Sidrane's I2C fix to the identical logic |
| for STM32 L4. From Gregory Nutt |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 ADC: Fix RCC reset logic. From Mateusz Szafoni |
| - STM32 ADC: Fix compilation errors for chips with one ADV TIM. From |
| Mateusz Szafoni |
| - STM32 DMA: Add missing DMA channel configuration. |
| - STM32 PWM: STM32 MOE is not being appropriately handled for PWM for |
| advanced timers. It is only ever reset and so no PWM train is |
| generated. This change addresses this. Noted by Dave Marples. From |
| Mateusz Szafoni |
| - STM32 PWM: Fix compilation errors if the upper-half PWM logic is not |
| enabled. From Mateusz Szafoni |
| - STM32 SPI: STM32F446 & STM32F469 correct PC1 SPI assignments From |
| David Sidrane |
| - STM32 TIM: Fix compilation error if there is no TIM8. From Mateusz |
| Szafoni |
| - STM32 F0: Fix GPIO EXTI lines assignment for STM32 M0. From Mateuz Szafoni |
| - STM32 F3 I2C: Remove the extra NONE event from the trace dump |
| output. From Ouss4 |
| - STM32 F4 I2C: Remove the extra NONE event from the trace dump |
| output. From Ouss4 |
| - STM32 F7 I2C: Use clock_t for ticks instead of uint32_t to hold system |
| time. From Jussi Kivilinna |
| - STM32 L4 I2C: Use clock_t for ticks instead of uint32_t to hold system |
| time. From Jussi Kivilinna |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F429I-DISCO: Fix lvgl demo removing STM32_FB_CMAP. From Alan |
| Carvalho de Assis |
| - STM32VL Discovery: Fix SRAM and FLASH size in the linker script. |
| There is STM32F100RB with 8KB RAM and 128KB FLASH on the STM32VL |
| Discovery kit. Invalid memory size could cause a hard fault. From |
| Matous Pokorny |
| - STM32VL Discovery: Fix memory size configuration and documentation. |
| There is STM32F100RB instead of STM32F100RC on the STM32 VL Discovery |
| kit. From Matous Pokorny |
| - Viewtool-STM32F107: Change RNDIS MAC address assignment in rndis |
| configuration. In previous implementation, mac[0] was assigned to |
| 0xaa for RNDIS host to avoid MAC address conflicts with RNDIS |
| device.. However, I noticed that this assignment causes a random MAC |
| address generation on ubuntu16.04 or later which is inconvenient to |
| set up network interface. This new assignment scheme fixes this |
| issue. From Masayuki Ishikawa |
| |
| * TI Tiva: |
| |
| - Tiva LM/TM4C Start-Up: Remove option CONFIG_TIVA_BOARD_CLOCKCONFIG. It is |
| not used and unnecessary. Fix some naming. up_clockconfig() is |
| inappropriate. Change tiva_clockconfig() to tiva_clock_reconfigure() |
| then we can change up_clockconfig() to tive_clock_configure(). From |
| Gregory Nutt |
| - Tiva LM/TM4C GPIO Interrupts: Fix tiva gpio interrupts From Lwazi Dube |
| - Tiva LM/TM4C: Improve GPIO interrupt support by removing unnecessary, |
| hard-coded per-MCU defines and using the existing Kconfig configuration |
| options instead. From Lwazi Dube |
| |
| * TI Tiva Drivers: |
| |
| - Tiva TM4C Serial: After commit |
| 51b78034ac8d1fdf598107bf4093f0beccd5b80b, my tiva console does not |
| work - enter key produces garbage characters. This commit fixes the |
| problem for me. From Lwazi Dube |
| |
| * C Library/Header Files: |
| |
| - include/dsp.h: Fix missing semicolon error in dsp.h From MYAPICI |
| - include/nuttx/compiler.h: Correct support of C-version-specific features. |
| Cannot depend on GCC version because -std=c89 may be used on comomand |
| line. Need instead to use __STDC_VERSION__ to determine if a feature is |
| supported. Also add conditional support inline, depending on C99. From |
| Gregory Nutt |
| - libs/libc/stdio: fread() should always set EOF if fewer than the |
| requested number of bytes was not read. Per Anthony Merlino. From |
| Gregory Nutt |
| |
| * Build System: |
| |
| - sched/irq/Make.defs: Fix warning about irq_csection.o appearing |
| multiple times in the same rule. From Gregory Nutt |
| |
| * Tools: |
| |
| - tools/gencromfs.c: "gencromfs.c:1171:3: warning: ignoring return |
| value of 'asprintf'", declared with attribute warn_unused_result |
| [-Wunused-result]. From David Sidrane |
| - tools/gencromfs.c: Fix build on macOS. From David Sidrane |
| |
| * NSH Library: apps/nshlib: |
| |
| - apps/nshlib: Fixes an error in the NSH parser. There was a bug when |
| executing an nsh shell script which contains a redirection. When the |
| command in the script is executed, it sets the vtbl->np.np_redirect flag |
| (as it should), but then doesn't restore it, leaving it set at the end of |
| the script execution. Then the vtbl->np.np_redirect flag is set when the |
| 'sh' command completes, causing a restore from un-initialized variables, |
| thus leading to a crash. See the code snippet below for an example test |
| case. |
| |
| Test case: |
| |
| NuttShell (NSH) |
| nsh> mkrd -s 1024 40 |
| nsh> mkfatfs /dev/ram0 |
| nsh> mount -t vfat /dev/ram0 /tmp |
| nsh> echo "echo 1 > /dev/null" > /tmp/test.sh |
| nsh> cat /tmp/test.sh |
| echo 1 > /dev/null |
| nsh> sh /tmp/test.sh |
| ... |
| |
| The nsh prompt doesn't get printed. You can type a couple of commands, |
| but then the system will crash because of bad pointers. From Ken Pettit |
| - apps/nshlib: Fix buffer overrun when redirected to a file. SAVE_SIZE |
| must be the same as sizeof(struct serialsave_s). From Masayuki Ishikawa |
| |
| * System Utilities: apps/system: |
| |
| - system/system.c: Fixes build error; There is no result variable, use |
| errcode instead. From Anthony Merlino |
| - apps/system/vi: Bug fixes: |
| 1. Deletion of last line in file using 'dd' caused infinite loop |
| searching for 'nextline'. Fixed. |
| 2. Insertion of line above 1st line using 'O' caused line to be |
| inserted on 2nd line. Fixed. |
| 3. Paste buffer from 'dd' was being free'd after the 'p'aste operation, |
| preventing multiple paste opportunity. Fixed. |
| 4. The cursor was not being bound to the line end and was allowed to |
| 'hover' over the '\n' EOL character. This caused weird (relative to |
| standard vi) insertion locations and cursor movement with 'a'ppend |
| and 'i'nsert. Fixed. |
| 5. The 'vi_shrinkpos' position didn't take the end of file pointer into |
| account when calculating 'curpos', 'prevpos' variables causing |
| weirdness when deleting things near the end of the file. Fixed. |
| 6. The 'yy'ank command was improperly deleting the text from the |
| document instead of simply yanking to the paste buffer. Fixed. |
| 7. The 'dd'elete line function was not copying the deleted line to the |
| paste buffer as part of the delete operation. Fixed. |
| 8. The bottom line of the screen was sometimes being used for document |
| text and other times for command / find entry. Fixed by reserving |
| the bottom the bottom line for status / command only. |
| 9. When scrolling up / down through a file, the cursor position was not |
| preserved and moved further and further to the left column based on |
| the line lengths of the lines visited. Fixed. |
| 10. The display was being COMPLETELY redrawn with each keystroke, |
| causing the responsiveness to be unbearable. Fixed. Added logic to |
| dynamicall indicated which portions of the screen need to be updated |
| (full display, current line to end of screen, current line only, |
| none). |
| 11. The individual display line updates were being performed a character |
| at a time by calling the vi_putch() function, causing slow |
| performance, especially in telnet or USBCDC sessions where there is |
| a lot of overhead per packet. Fixed by calling vi_write() instead |
| with a block of characters with breaks as needed for TAB exansion. |
| 12. The forward delete 'x' operation allowed deletion through '\n' |
| characters causing lines to be joined. This is different from |
| standard vi where 'x' at the end of a line performs a delete |
| backward operation. Fixed. |
| 13. When in 'ex' or find sub-modes (':' or '/' bottom line modes), |
| hitting backspace with empty text did not return the operation to |
| command mode like it does in standard vi. Fixed. |
| 14. Performing a 'find' opertation would only search from the current |
| cursor position to the end of the file and did not wrap like in |
| standard vi. Fixed. |
| 15. Loading a file that was larger than the initial text allocation |
| would force a call to 'vi_extendtext', marking the file as modified |
| when in fact it hadn't even been loaded yet. Fixed. |
| 16. Combined vi_insert_mode and vi_replace_mode into a single function |
| to save code space since they are nearly identical routines. |
| 17. In command mode, backspace was deleting characters which is |
| different from standard vi. Backspace in command mode normally |
| simply moves the cursor left / to the previous line. Fixed. |
| 18. Added code to handle boundary conditions when the file is new and |
| commands are applied to an empty file. |
| 19. Fixed vi_shrinktext so it doesn't allocate a zero-length buffer when |
| the last character in the file is deleted. |
| 20. The 'x' command was not copying to the paste buffer. Fixed. |
| 21. Fixed parsecolon routine to properly deal with ":wq" command sequence. |
| From Ken Pettit |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/bluetooth/btsak: 'bt bnep0 info' outputs a reversed addr. It |
| should print BDAddr: aa:bb:cc:dd:ee:ff instead of BDAddr: |
| ff:ee:dd:cc:bb:aa. From Lwazi |
| - apps/wireless/bluetooth/btsak: Fix some errors in btsak. From Lwazi Dube |
| - apps/wireless/bluetooth/btsak/btsak_main.c: Fix address parsing. From |
| Lwazi Dube |
| - apps/wireless/bluetooth/btsak: Remove unnecessary gatt get commands. From |
| Lwazi Dube |
| - apps/wireless/bluetooth/btsak/btsak_scan.c: Fix reversed address. From |
| Lwazi Dube |
| - apps/wireless/ieee802154/i8sak: Fixes issues related to re-running |
| daemon. Releases lock when releasing daemon. Re-sets daemon_shutdown so |
| that a subsequent daemon launch does not immediately return. From Anthony |
| Merlino |
| |
| NuttX-7.29 Release Notes |
| ------------------------ |
| |
| The 129th release of NuttX, Version 7.29, was made on March 25, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.29.tar.gz and |
| apps-7.29.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - Configuration: CONFIG_NFILE_DESCRIPTORS=0 can no longer be used to |
| disable the file system. NuttX with no file system does not make |
| sense and is no longer supported. From Gregory Nutt. |
| - Rename most internal OS functions from sched_* to nxsched_* to |
| indicate that they are NuttX internal functions (some renaming is |
| still needed). From Gregory Nutt. |
| - Rename all internal OS functions from task_* to nxtask_* to indicate |
| that they are NuttX internal functions. From Gregory Nutt. |
| - Rename sched_process_timer to nxsched_process_timer. Rename |
| sched_timer_expiration to nxsched_timer_expiration. Rename |
| sched_alarm_expiration to nxsched_alarm_expiration. Those are the |
| appropriate names for an internal sched/ function (still many named |
| incorrectly). From Gregory Nutt. |
| - Standardize naming: Rename os_start() to nx_start(), rename os_smp* |
| to nx_smp*, rename os_bringup to nx_bringup, rename all internal |
| static functions to begin with nx_ vs os_. From Gregory Nutt. |
| - Initialization: Remove the option CONFIG_BOARD_INITTHREAD. Now, if |
| CONFIG_BOARD_INITIALIZE is selected, then the board_initialize() |
| logic will ALWAYS run on an internal kernel thread. This will |
| prevent the problems people have had doing inappropriate |
| board_initialization on the IDLE thread. From Gregory Nutt. |
| - Initialization: Add support for CONFIG_BOARD_EARLY_INITIALIZE. If |
| this option is selected then nx_start() will call a board-provided |
| function board_early_initialize() immediately after calling |
| up_initialize(). Rename board_initialize() to |
| board_late_initialize(). From Gregory Nutt. |
| - Signal Delivery: Add a flag to the TCB to indicate that we are in a |
| signal handler. Use this flag to assure that a there is never |
| attempts to nest signal handling operations on a thread. This was |
| guaranteed before but when locking of pre-emption during signal |
| delivering was eliminated in a previous commit, there was a remote |
| possibility of an attempt to do nested signal handling. This flag |
| assures that there is only one signal handled at a time. From |
| Gregory Nutt. |
| - Signal Handler Security: The architecture-specific signal handler |
| return register state is saved and available on the user stack. |
| This commit reorders some logic so that certain, critical registers |
| are preserved in the TCB. This eliminates most malicious exploits |
| which more the return address, for example, but does not make the |
| logic 100% secure. From Gregory Nutt. |
| - Timer Interrupt Procssing: Add a configurable call out to a |
| user-provided function, 'timer hook', on each timer interrupt. From |
| Gregory Nutt. |
| - PM Activity: Add pm_staycount() API for get stay numbers. This |
| function is currently not used and a waste of FLASH space. From ligd. |
| - Pthreads: Add support for pthread_mutex_timedlock From Leif Jakob. |
| - Pthread Spinlocks: Add a very preliminary implementation of the new |
| POSIX pthread_spinlock_* interfaces. From Gregory Nutt. |
| - Critical Section Monitor: Remove SCHED_IRQMONITOR_GETTIME to |
| simplify the clock source selection: (1) Use up_critmon_gettime if |
| SCHED_IRQMONITOR, (2) Call clock_systimespec if SCHED_TICKLESS, (3) |
| Don't collect timing info for all other cases. From Xiang Xiao. |
| - Work Queue Notification: Notifier can now work with either lpwork |
| or hpwork. From Xiang Xiao. |
| - Protected Build: Add add a new field (us_heapend) to struct |
| userspace_s that labels the end of the heap. From Xiang Xiao. |
| |
| * Binary Loader/Kernel Modules/Shared Libraries |
| |
| - Shared Libraries: Implement dlerror() using strerror(). From Xiang |
| Xiao. |
| - Shared Libraries: Add LD_LIBRARY_PATH environment variable |
| support. From anchao. |
| - ELF Loaders: Optimize elf load speed: (1) Don't zero out memory, |
| (2) Reduce the initial buffer size to 32 bytes. From Xiang Xiao. |
| - ARM ELF Relocation: Add support for the R_ARM_THM_JUMP11 relocation |
| type. This relocation type may be generated when LTO optimization |
| is enabled. From anchao. |
| - ELF Modules: Add relocation buffer table to reduce filesystem |
| access. From anchao. |
| - ELF Modules: Add symbol buffer table to reduce filesystem access. |
| From anchao. |
| |
| * File Systems/Block and MTD Drivers |
| |
| - Filesystem Mount: Move the union inode_ops_u i_mtd field into the |
| mount section of inode_ops_u and remove the guard to simplify fs |
| which support both block and mtd. From Xiang Xiao. |
| - ROMFS: Add support to mount a ROMFS volume using an MTD driver |
| interface using the standard mount() operation. From Xiang Xiao. |
| - LittleFS: VFS wrapper improvement: (1) Support block device |
| interface, (2) support ioctl, stat and sync file operation, (3) |
| support forceformat and autoformat option, (4) update file->f_pos |
| and dir->fd_position, (5) remove the internal struct from dir, and |
| (6) remove mtd byte read/write requirement. From Xiang Xiao. |
| - UnionFS: Support mount of UnionFS from the NSH command line. From |
| Xiang Xiao. |
| |
| * Networking/Network Drivers: |
| |
| - UsrSock: Add mutual exclusion so that only user can perform a |
| socket request From zhangyuan7. |
| - UDP: Initialize callback address structure to avoid random values |
| in padding. From anchao. |
| |
| * Wireless/Wireless Drivers: |
| |
| - SX127x: Initial support for SX127x LoRA radio From Mateusz Szafoni. |
| |
| * Graphics/Display Drivers: |
| |
| - Graphics: Fix a naming collision: Ye olde nx_start that started |
| the NX graphics is now nxmu_start(). nxmu_start() is now |
| prototyped in nxmu.h (instead of nx.h). From Gregory Nutt. |
| - NX Server Startup: Extend nxmu_start() so that receives a display |
| number as an argument. This makes it possible to have multiple |
| instances of the NX server running on boards that support multiple |
| displays. Also includes updates to boardctl() to accept display |
| number parameters. From Gregory Nutt. |
| - Graphics: nx_openwindow() and nxtk_openwindow() now accept an |
| additional 'flag' parameter. This argument is current used only to |
| select a RAM backed, per-window framebuffer. From Gregory Nutt. |
| - Per-Window Framebuffers: Windows may now be optionally created |
| with a RAM framebuffer backing up the window content. Rending into |
| the window will result in rending into the backup framebuffer, then |
| updating the physical display from the framebuffer. The advantage |
| of this option is that the application that manages window will no |
| longer receive redraw() callbacks. Those calls normally occur when |
| a window "above" moves exposing a portion of the window below. If |
| this option is selected, then the system will redraw the exposed |
| portion of the window from the backup framebuffer without |
| intervention of the window applications. This greatly reduces the |
| complexity of the application and performance of the window at the |
| expense of increased memory usage. Redraw requests in other cases |
| are also suppressed: Changes to window position, size, etc. As a |
| consequence, some manual updates will be required when certain |
| events occur (like removing a toolbar from a window). NOTE: A |
| significant amount of RAM, usually external SDRAM, may be required |
| to use per-window framebuffers. |
| |
| * Other Common Device Drivers: |
| |
| - Driver Notifications: Support signal notification through |
| SIGEV_THREAD in all drivers that provide signal notifications: |
| RTC, Joysticsks, buttons, Zero-Crossing, wireless, FT80x, Timer, |
| PHY. From Xiang Xiao. |
| - Watchdog Driver: Support auto-monitor service From Gregory Nutt. |
| - Timer and Alarm Drivers: Implement up_critmon_gettime and |
| up_critmon_convert and remove the critical section from |
| current_usec to infinite recursion. From Xiang Xiao. |
| - RTC Driver: Protect the RTC state with a semaphore. From Xiang |
| Xiao. |
| - Serial Upper Half: Call pm_activity() when characters are received |
| on a console device. From Gregory Nutt. |
| - MPU60x0: Initial support for TDK InvenSense MPU6000 and MPU6050 |
| 6-axis gyroscope and accelerometers. This commit supports SPI |
| media only. From Bill Gatliff. |
| - EEPROM Driver: Add configurable SPI eeprom frequency. From |
| Valmantas Paliksa. |
| - GPIO Driver: Support reading and writing gpio pins using cat and |
| echo. From Valmantas Paliksa. |
| - MCP2515: Add MCP2515 clock input config to KConfig. From |
| Valmantas Paliksa. |
| - MAX7456: Support for the Maxim MAX7456 on-screen-display chip. |
| From Bill Gatliff. |
| |
| * Common Board Logic: |
| |
| - boardctl(): up_testset() can now be accessed by applications via |
| the boardctl() interface rather than attempting to call it |
| directly. pthread Spinlocks are not available unless the |
| architecture supports the up_testset() operation. From Gregory |
| Nutt. |
| - boardctl(): Add support for BOARDIOC_NXTERM which can be used to |
| create an NxTerm terminal. From Gregory Nutt. |
| - boardctl(): Add boardctl() commands to replace direct calls to |
| nxterm_redraw() and nxterm_kbdin(). From Gregory Nutt. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ Timers: Add support for the PIC32MZ timers (driver, |
| lowerhalf, freerun and oneshot) From Abdelatif Guettouche. |
| |
| * Common ARM Options: |
| |
| - arch/arm: Move FPU options to a common place and unify the usage |
| by removing ARCH_CORTEXRxF. From Xiang Xiao. |
| - arch/: Unify the cache interface for all architectures that |
| support a data cache. From Xiang Xiao. |
| - ARMv7-M/A/R: Add a architecture-specific new barriers.h header |
| file that provides the memory barrier definitions that were |
| previously in the (now unified) cache.h header files. From Gregory |
| Nutt. |
| |
| * ARMv7-A |
| |
| - ARMv7-A: Support thumb mode and fix interworking issue. From |
| zhangyuan7. |
| - ARMv7-A: Add weak attribute to arm_data_initialize so platform |
| could provide the new implementation as needed. From zhangyuan7. |
| - ARMv7-A: Add SCR bit definitions. From Xiang Xiao. |
| - ARMv7-A: Add mmu_l1_map_regions() to remove the code duplication. |
| From Xiang Xiao. |
| - ARMv7-A: Add the initial cortex-a7 architecture support From |
| zhangyuan7. |
| |
| * ARMv7-M |
| |
| - ARMv7-M: stackcheck allow faulting stack calculation to make it to |
| the up_assert reg dump From David Sidrane. |
| |
| * Microchip/Atmel SAMD21/L21 Drivers: |
| |
| - SAMD2/L2: Add RS485 support to SAMD2L2 serial. From Alan Carvalho |
| de Assis. |
| |
| * Misoc: |
| |
| - Minerva: Add support for the Minerva architecture. From Ramtin |
| Amin. |
| |
| * Misoc Boards: |
| |
| - misoc: Add support for an NSH configuration using the Verilator |
| board. From Ramtin Amin. |
| |
| * Nordic NRF52: |
| |
| - NRF52: 1. Added 52840 family support 2. Use common IRQ and memory |
| layout header file for 52832 & 52840. From Levin Li. |
| |
| * Nordic NRF52 Drivers: |
| |
| - NRF52 RNG: 1. added RNG device driver 2. added errdata to correct |
| temp which will be used by RNG module 3. use general task_trigger / |
| event_clear inline api for all driver. From Levin Li. |
| |
| * NXP i.MX RT Drivers: |
| |
| - i.MXRT XBAR: Add XBAR Support. From David Sidrane. |
| - i.MXRT USB: Add USB analog header file. From David Sidrane. |
| - i.MXRT OCOTP: Added OCOTP Support. From David Sidrane. |
| - i.MXRT LCD: Adds framebuffer support for the i.MXRT 1050. |
| Includes DCD initialization for SDRAM to provide space for the |
| framebuffer. External code I used/ported is from NXP and is BSD |
| 3-clause license. From Johannes. |
| |
| * NXP i.MX RT Boards: |
| |
| - IMXRT1050-EVK: Adds framebuffer support for the i.MXRT 1050. |
| From Johannes. |
| |
| * NXP LPC17xx |
| |
| - LPC17xx: Add a configuration option to skip over the framebuffer |
| when adding DRAM to the heap. From Gregory Nutt. |
| |
| * NXP LPC17xx Boards |
| |
| - Open1788: Add a configuration to test NxTerms in the PROTECTED |
| mode. From Gregory Nutt. |
| - Open1788: Re-arrange PROTECTED mode link map to make more space |
| for large kernels with debug enabled. From Gregory Nutt. |
| - Open1788: Add a configuration for testing per-window frame buffers |
| using apps/examples/pwfb. From Gregory Nutt. |
| |
| * NXP LPC54xx Boards |
| |
| - LPCXpresso-LPC54628/pwfb: Add per-window framebuffer configuration |
| using apps/examples/pwfb. From Gregory Nutt. |
| - LPCXpresso-LPC54628: Add a configuration for addition per-window |
| framebuffer using apps/examples/pwlines. From Gregory Nutt. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32F0/L0 SPI: Add SPI support for F0. From Mateusz Szafoni. |
| - STM32 ADC, PWM and TIM: (1) configure injected channels external |
| trigger when ADC enabled, (2) update injected conversion queue of |
| context after configuration, (3) support for offset configuration, |
| and (6) support for advanced timers channel 5 and 6. From Mateusz |
| Szafoni. |
| - STM32 DFU Mode: Add logic to reboot the STM32 in DFU mode. |
| Current implementation only works for STM32F2 and F4. From Bill |
| Gatliff. |
| - STM32F7 LSE: Add configuration of LSE oscillator drive capability |
| From Jussi Kivilinna. |
| - STM32F7 I2C: Fix another memory access issue on a bus error. From |
| David Sidrane. |
| - STM32F7 TIM: Add OUTTOGGLE mode for STM32f7 timer From Valmantas |
| Paliksa. |
| - STM32F7 Timer Lower Half: Add timer lowerhalf driver for stm32f7. |
| From Valmantas Paliksa. |
| - STM32F7 ITM: Add ITM syslog support. From Valmantas Paliksa. |
| - STM32F7 CAN: Add CAN driver with support for three bxCAN |
| interfaces. From Valmantas Paliksa. |
| - STM32F7 QSPI: Add stm32f7 Quad SPI support. From Valmantas Paliksa. |
| - STM32L4 LSE: Ports Jussi Kivilinna's recent STM32F7 LSE change to |
| STM32L4. From Juha Niskanen (Haltian). |
| - STM32H7 I2C: Apply David Sidrane's fix for the STM32F7 to the |
| STM32H7. From Gregory Nutt. |
| - STM32H7 DMA: Rename DMA1/2 IRQ names to match those from other |
| STM32. Add auxiliary definitions. Add DMAMAP definitions for |
| MDMA, DMA1, DMA2 and BDMA. Add some address blocks. Change RCC |
| definitions to match other STM32 ports. Enable clock for MDMA and |
| BDMA. Rename DMA channel definitions. Separated files for MDMA, |
| DMA, BDMA and DMAMUX. Add missing definitions for MDMA, BDMA and |
| DMAMUX. SPI DMA mode. Add base addresses for D1, D2 and D3 |
| domain; use 2 bytes to specify memory region. Add D1 domain core |
| prescaler configuration. From Mateusz Szafoni. |
| - STM32H7 OTG: Initial OTG support for STM32H7 and some minor |
| improvements. Add support for HSI48 clock. From Mateusz Szafoni. |
| - STM32H7 Build: Initial support for protected build mode. From |
| Mateusz Szafoni. |
| - STM32L4 I2C: Apply David Sidrane's fix for the STM32F7 to the |
| STM32L4. From Gregory Nutt. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L072Z-LRWAN1: Add SX127x configuration. From Mateusz Szafoni. |
| - Nucleo-F091RC: Add support for SX127x radio. From Mateusz Szafoni. |
| - Nucleo-F091RC: Add SX127x configuration. From Mateusz Szafoni. |
| - Nucleo-F207ZG: Add support for USB and initialize CDCACM if |
| configured. From Mateusz Szafoni. |
| - STM32F429I-DISCO: Add an apps/examples/examples/nxhello |
| configuration. From Gregory Nutt. |
| - Nucleo-F446RE: Add support for the Nucleo F446RE. From Sebastien |
| Lorquet. |
| - B-L072Z-LRWAN1: Use HSI as default clock source. From Mateusz |
| Szafoni. |
| - Nucleo-L073RZ: Add SX127x configuration. From Mateusz Szafoni. |
| - Nucleo-L073RZ: Port button logic from nucleo-f072 which appears to |
| be the same. From Gregory Nutt. |
| - Nucleo-L432KC: Add support for I2C driver initialization. From |
| Nikolay Semenov. |
| - Nucleo-H743ZI: Add support for USB and initialize CDCACM if |
| configured. From Mateusz Szafoni. |
| - OmnibusF4: Initial support for the OmnibusF4 family of flight |
| management units. "OmnibusF4" is not a product name per se, but |
| rather a design spec that many product vendors adhere to. The spec |
| defines the major components, and how those components are wired |
| into the microcontroller. Airbot is one such vendor, and they |
| publish a schematic here: http://bit.ly/obf4pro. Other software |
| that supports the OmnibusF4 family include Betaflight, iNAV, and |
| many others. PX4 recently added support as well, using their own, |
| non-upstreamed, bespoke port of NuttX. No code from those resources |
| is included in this port. From Bill Gatliff. |
| - OmnibusF4: Add MAX7546 support. From Bill Gatliff. |
| |
| * TI CCxx: |
| |
| - CC1312R1: Code complete and builds successfully. Stalled on |
| further radio development. I planned to integrate the IEEE 802.15.4 |
| radio interface, but the Cortex-M0 interface is not available with |
| an open license. |
| |
| * TI CCxx Boards: |
| |
| - LaunchXL-CC1312R1: Add support for on-board LEDs and buttons. The |
| LauchXL-CC1312R1 NSH Configuration is now fully functional. From |
| Gregory Nutt. |
| - LaunchXL-CC1310: Clone LED and button support from the |
| LaunchXL-CC1312R1. The number of LEDs and buttons as well as DIO |
| usage is identical (Still not functional). From Gregory Nutt. |
| |
| * Tools: |
| |
| - tools/rmcr.c: Add a tool to remove carriage returns and dangline |
| whitespace at the end of lines. From Gregory Nutt. |
| - tools/nxstyle.c: Can now detect if the C comment closing is not on |
| a separate line. From Gregory Nutt. |
| - tools/nxstyle.c: Make sure that all files begin with a comment on |
| line 1 (which should be the file header). From Gregory Nutt. |
| - tools/nxstyle.c: Add check for multiple definitions of local |
| variables on a line. From Gregory Nutt. |
| - tools/nxstyle.c: Beef up logic that detects multiple variable |
| definitions per line. From Gregory Nutt. |
| - tools/nxstyle.c: Add capability to detect CamelCase identifiers. |
| From Gregory Nutt. |
| - tools/nxstyle.c: Add logic to detect a blank line following a left |
| brace or a blank line preceding a right brace. From Gregory Nutt. |
| - tools/nxstyle.c: Don't complain about certain lowercase characters |
| in otherwise uppercase pre-processor identifiers: IPv6, IPv4, |
| ICMPv6, IGMPv2, p as a decimal point, d signifying a divisor. It |
| was a bad idea to let the door open a crack for there. While they |
| improve readability, the inconsistently also causes other |
| problems. From Gregory Nutt. |
| |
| * Build System: |
| |
| - Makefiles: Modify tools/Makefiles to add a "Do not Edit" warning |
| on defconfig files From Alan Carvalho de Assis. |
| |
| * Libraries/Header Files: |
| |
| - lib_vsprintf() (Nano): Add newlib-nano lib_vsfprintf has been |
| added and is now the default support for the printf family. This |
| fprintf code was originally adapted from AVR libc and provides |
| improved floating point output support, including 'g' mode and |
| making 'f' mode include digits past the decimal by default. The |
| newlib version can be found here: |
| https://salsa.debian.org/electronics-team/toolchains/newlib-nano. |
| That project is GPL overall, but the newlib-nano printf portions |
| are BSD licensed as described in the COPYING.NEWLIB file. From |
| Keith Packard. |
| - lib_vsprintf() (Nano): Added support for long lont types. From |
| Johannes. |
| - lib_vsprintf() (Nano): Added hh type modifier (without extending |
| the flag variable). From Johannes. |
| - lib_vsprintf() (Nano): Adds configurable support for numbered |
| arguments. From Johannes. |
| - lib_vsprintf() (Nano): Cleaned naming and allow for leading zeros |
| in argument number (which doesn't make sense but should be). From Johannes. |
| - lib_vsprintf() (Legacy): Add support for %g format which, for |
| these purpose, is equivalent to %f except that trailing zeroes are |
| suppressed. From Gregory Nutt. |
| - vscanf(): Moved vscanf logic to lib_sscanf.c Switched to stream |
| interface (tricky, because the old implementation used massive read |
| ahead, which isn't suitable for streams, chars already read are |
| gone). Added hh, h, and ll modifiers. From Johannes. |
| - scanf() and fscanf(): Added scanf and fscanf based on enhanced |
| vscanf(). From Johannes. |
| - uname(): Add build date and time to uname output (like Linux). |
| From Gregory Nutt. |
| - strsep(): Add strsep BSD/Linux function. From Xiang Xiao. |
| - netdb: Hostname support no longer depends on CONFIG_NET since the |
| host name is also useful in the non-network environment. |
| CONFIG_NET_HOSTNAME changed to CONFIG_LIB_HOSTNAME. From Xiang Xiao. |
| - netdb: Support the nameserver change notification then we can pass |
| DNS info from server to client in usrsock case. From Xiang Xiao. |
| - include/fixedmath.h: Add macros for conversion between types |
| b16_t and type double From Gregory Nutt. |
| - include/limits.h: Define NL_ARGMAX (as well as some of the other |
| 'invariant values' per |
| http://pubs.opengroup.org/onlinepubs/7908799/xsh/limits.h.html). |
| From Johannes. |
| - linclude/limits.h: Add 'range 9 999999' to CONFIG_LIBC_NL_ARGMAX |
| to Kconfig. Per OpenGroup.org, the minimum value for NL_ARGMAX is |
| 9. From Gregory Nutt. |
| - include/nuttx/lcd/edid.h: Add extended EDID block IDs From |
| Gregory Nutt. |
| |
| * apps/ General: |
| |
| - apps/: Follow up the kernel signal-related change in various files |
| under examples/ and graphics/. From Xiang Xiao. |
| - apps/: Update for corrected name of standard header file. Should |
| be dlfcn.h, not dllfcn.h. From Gregory Nutt. |
| - apps/: The file system can no longer be disabled. Remove all |
| conditional logic based on CONFIG_NFILE_DESCRIPTORS==0 From |
| Gregory Nutt. |
| - apps/: Remove/replace all conditional logic based on |
| CONFIG_NSOCKET_DESCRIPTORS == 0. That value is always greater than |
| zero now. In places just replace with #ifdef CONFIG_NET. From |
| Gregory Nutt. |
| - apps/: Some updates due to NuttX renaming: |
| CONFIG_BOARD_INITIALIZE is now CONFIG_BOARD_LATE_INITIALIZE; |
| board_initialize() is now board_late_initialize(). From Gregory |
| Nutt. |
| - apps/: Graphics interfaces nx_openwindow() and nxtk_openwindow() |
| now accept an additional 'flag' parameter. From Gregory Nutt. |
| |
| * NSH: apps/nshlib: |
| |
| - apps/nshlib/nsh_netinit.c: Update for changes to signal |
| notification structures. From Gregory Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/ini_dumper: New example program. ini_dumper is |
| example program that dumps content of ini file in pretty ascii table. |
| It is using inih ini library in fsutils/inih. From Michal Lyszczek. |
| - apps/examples/modbusmaster: Add Simple Modbus master example. |
| This example only supports Read/Write HoldingRegisters, but it is |
| easy to extend it to support Read/Write Input/Coils/etc. |
| Originally creatd by Vytautas in 2016 and updated with minor fixes |
| for this commit. From Alan Carvalho de Assis. |
| - apps/examples/pwfb: Added a test/example at apps/examples/pwfb |
| that was used for initial testing of the per-window framebuffer |
| feature. From Gregory Nutt. |
| - apps/examples/pwlines: Added another a test/example at |
| apps/examples/pwlines that was used for further testing of the |
| per-window framebuffer feature. From Gregory Nutt. |
| - apps/examples/sx127x: Add sx127x demo From Mateusz Szafoni. |
| |
| * File System Utilities: apps/system |
| |
| - apps/fsutils/inih: New package. inih (INI Not Invented Here) is a |
| simple .INI file parser written in C. |
| https://github.com/benhoyt/inih. From Michal Lyszczek. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/codecs/: Remove the big Base64 stack array. From |
| Xiang Xiao. |
| - apps/netutils/codecs/: Add base64_[de|en]code_length() API From |
| ligd. |
| |
| * System Utilities: apps/system |
| |
| - apps/system/cfgdata: Make builtin task stack size and priority |
| configurable. Set default to 2048 (from 1024) per recommendation |
| of Ken Pettit. From Gregory Nutt. |
| - apps/system/embedlog: Update to version 0.4.0. From Michal Lyszczek. |
| - apps/system/nxplayer and nxrecorder: Change 'int prio' to |
| 'unsigned int prio'. Required by changes to MQ function |
| prototypes. From Michal Lyszczek. |
| - apps/system/psmq: New package. psmq is publish subscribe message |
| queue. It's a set of programs and libraries to implement |
| publish/subscribe way of inter-process communication on top of |
| POSIX message queue. From Michal Lyszczek. |
| - apps/system/zmodem: Switch to the raw mode before transfer and |
| restore to the original setting after finishing the transfer. From |
| Xiang Xiao. |
| |
| * Testing: apps/testing: |
| |
| - apps/testing/: Move all file system tests from examples/ to |
| testing/ (cxxtest, fstest, nxffs, smart, smart_test, smp). From |
| Gregory Nutt. |
| - apps/testing/cxxtest: Add a README file. From Gregory Nutt. |
| - apps/testing/ostest: Add test of pthread_mutex_timedlock() From |
| Gregory Nutt. |
| - apps/testing/ostest: Fix several errors in the setvbuf() test. |
| From Gregory Nutt. |
| - apps/testing/scanftest: Port of Greg King's scanf test |
| (https://github.com/cc65). From Johannes. |
| |
| * Tools: apps/tools: |
| |
| - apps/tools/check-hash.sh: Add a tool check hash on downloaded |
| packages. From Michal Lyszczek. |
| |
| 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: Restructure nxsig_deliver() so that the signal handler is |
| not called with the pre-emption disabled (or, at least no with |
| pre-emption disabled by nxsig_deliver() itself). From Gregory Nutt. |
| - Critical Section Monitor: Move up_critmon_* to arch.h avoid the |
| duplicated declaration. From Xiang Xiao. |
| - Assertions: Architecture-specific assertion logic should dump CPU0 |
| IDLE stack only when PID equals 0. IDLE threads of other CPUs do |
| not need this special check. From Xiang Xiao. |
| - Message Queues: Change 'int prio' to 'unsigned int prio'. |
| According to open group specification, priority field in mq_* |
| functions should have unsigned type: |
| http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html. |
| From Michal Lyszczek. |
| - Timer Expiration: Fix macro SEC2TICK() 32-bits overflow by using |
| uint64_t in calculation. From ligd. |
| - Kernel Memory Manager: In mm/kmm_heap/kmm_kernel.c, remove unused, |
| duplicated kmm_heapmember(). From Xiang Xiao. |
| - User Memory Manager: Ensure all user allocation try sbrk before |
| fail From Xiang Xiao. |
| - waitid(): Could exit without leaving critical section on some |
| error conditions. From Gregory Nutt. |
| - IOBs: iob_allocwait() should decrease semcount manually. From |
| Xiang Xiao. |
| - IOBs: iob_copyin() should wait for each buffer and adjust the |
| return value of iob_copyin_internal return to simplify the code |
| From Xiang Xiao. |
| - IOB Notifier: Don't check iob_navail in iob_notifier_setup to |
| avoid a potential race condition. From Xiang Xiao. |
| - IOB Debug Dump: Format the whole line before log to avoid the |
| multiple timestamp prefix in each line. From Xiang Xiao. |
| - SHM: Convert bytes to pages by MM_NPAGES instead of MM_PGALIGNUP |
| From Xiang Xiao. |
| - SHM: shmget() should hould call shm_extend() to allocate the |
| physical memory. From Xiang Xiao. |
| - Page Allocator: mm/pgalloc: shouldn't just allocate one page |
| always. From Xiang Xiao. |
| - Granule Allocator: Fix the wrong data in g_1bit_info and make the |
| internal function static. From Xiang Xiao. |
| - srbk(): Fix a backward conditional test. Should call |
| mm_initialize() when brkaddr equal zero From Xiang Xiao. |
| - sbrk(): Pass ARCH_HEAP_VEND as maxbreak argument From Xiang Xiao. |
| - ELF Headers: Move elf related arch function to include/nuttx/elf.h |
| because the implementation is located in libs/libc/machine and in |
| order to avoid the conflict with the 3rd party libraries and clean |
| up the file inclusion: (1) Remove redundant elf32.h, (2) Remove |
| nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove |
| nuttx/binfmt/elf.h in modlib, and (4) Remove nuttx/module.h in |
| modlib. From Xiang Xiao. |
| - ELF Executables: If there is an address environment |
| (CONFIG_ARCH_ADDRENV), binfmt/elf doesn't need to free ctor/dtor |
| alloc since freeing the address environment releases the heap |
| automatically. From Xiang Xiao. |
| - ELF Configuration: Correct libcxx exception handling by |
| introducing the generic config(CXX_EXCEPTION and CXX_LIBSUPCXX) |
| From Xiang Xiao. |
| - ELF Loaders: Call umm_initialize as soon as possible otherwise |
| elf_loadctors/elf_loaddtors may fail to allocate memory. From |
| Xiang Xiao. |
| |
| * Crypto: |
| |
| - Crypto AES: After NuttX 7.28 crypto/aes.c would no longer |
| compile. From Gregory Nutt. |
| |
| * File System/Block and MTD Drivers: |
| |
| - open(): Fix not returning failure for block_proxy() call. From |
| David Sidrane. |
| - AIO: aio_cancel() needs to signal caller after success. Also fix |
| minor issue in the error handler. From Xiang Xiao. |
| - HostFS: Remove the unnecessary use of host_stat() in |
| hostfs_bind() From ligd. |
| - LittleFS: Fix a minor issue found in code review: (1) Replace |
| printf to finfo/fwarn/ferr, (2) Replace malloc/free to |
| kmm_malloc/kmm_free, (3) define LFS_NAME_MAX to NAME_MAX, (4) Check |
| the big endian using CONFIG_ENDIAN_BIG. From Xiang Xiao. |
| - LittleFS: VFS Lookahead should use bit unit not byte unit. From |
| Xiang Xiao. |
| - NxFLAT: Correct a double free debug assertion. This occurs when |
| groups are enabled: (1) once via binfmt_exit and unload_module, |
| and (2) once via sched_releasetcb(). this was corrected by adding |
| logic to free/unload the memory once and nullify the pointer so |
| that cannot be freed a second time. This commit resolves Bitbucket |
| issue #145. From Valmantas Palikša. |
| - NxFLAT: File descriptor leaks when nxflat loading fails. From |
| Valmantas Palikša. |
| - ProcFS: Fix typo in procfs uptime logic. From Sebastien Lorquet. |
| |
| * Networking/Network Drivers: |
| |
| - Network Configuration: The setup seems to support a network |
| without sockets (CONFIG_NSOCKET_DESCRIPTORS == 0). That is not the |
| case; if the network is enabled, sockets must be provided. From |
| Gregory Nutt. |
| - Networking: The value ERROR should never be returned from internal |
| OS functions. That is reserved for returning values to appliations |
| with the errno value set. Within the OS, errors are returned with |
| a negated errno value ALWAYS. From Gregory Nutt. |
| - Networking: The struct in_addr doesn't have the member sin_addr. |
| The function lib_lo_ipv6match() is for IPv6. Correct the function |
| it calls from lib_lo_ipv4matchto() to lib_lo_ipv6match(). Also add |
| CONFIG_NET_IPv6 for configuration. From Kejun ZHOU. |
| - TCP (buffered) send: Fix assertion crash when window size is |
| zero. From Gregory Nutt. |
| - ICMP/ICMPv6: Bind icmp callback from device to connection. |
| Resolves the issue that bind() could not be called before send() |
| From anchao. |
| - TUN/TAP Driver: Re-order all TUN/TAP driver state data. Not only |
| was was with wasting memory due to alignment requirements, it was |
| also causing network packet buffers to be improperly aligned |
| causing problems because the network requires 16-bit packet buffer |
| alignment for uint16_t accesses. This alignment problem was |
| discovered by Alan Carvalho de Assis. From Gregory Nutt. |
| - TUN/TAP Driver: Packet buffer size should include the configured |
| GUARD_SIZE. And, given how the buffers are allocated, the |
| allocation size must be an even number of 16-bit values to preserve |
| alignment. From Gregory Nutt. |
| - Local Sockets: In local_connect(), initialize lc_result before |
| giving lc_waitsem From zhangyuan7. |
| - Local Sockets: Fixed deadlock issue by replacing nxsem_wait() with |
| net_lockedwait() so that we do not wait with the network locked. |
| From zhangyuan7. |
| |
| * Graphics/Display Drivers: |
| |
| - NX Graphics: Remove naming associated with the now non-existent |
| NXFE graphics layer: Rename nxfe_reportposition to |
| nxmu_reportposition. Rename nxfe_redrawreq to nxmu_redrawreq. |
| Rename nxfe.h to nxmu.h. Rename nxfe_state_s to nxmu_state_s. |
| Rename nxfe_conn_s to nxmu_conn_s. From Gregory Nutt. |
| - NxTERM: Remove the nxterm_unregister interface. The correct way |
| to unregister a device is to unlink it. From Gregory Nutt. |
| - NxTerm: Needs to clear display initially. Otherwise, garbage from |
| previous display may still be present from preceding NxWM window. |
| From Gregory Nutt. |
| - Font Cache: Fix a memory leak in the font cache. With a busy |
| NxTerm display, this could drain off all the memory pretty quickly! |
| From Gregory Nutt. |
| - Graphics: Nothing under graphics/ should set the errno. From |
| Gregory Nutt. |
| - Graphics: Fix a coordinate system error in nx_filltrapezoid(). |
| When no clipping rectangle is falls, it falls back to use the |
| entire window as for the clip. However, that window must then then |
| be in window relative coordinates, not in absolute device |
| coordinates. From Gregory Nutt. |
| |
| * Common Board Logic: |
| |
| - boardctl(): Fix compiling error when set |
| CONFIG_BOARDCTL_IOCTL/CONFIG_BOARDCTL_UNIQUEID. From Kevin Liu. |
| |
| * Common Drivers: |
| |
| - INA3221: Fix errors in INA3221 register field addresses and |
| bitfield values. Signed value was losing its signed-ness due to |
| use of unsigned type for register. From Ken Pettit. |
| - Serial Upper Half: Initialize OPOST and ONLCR in uart_register. |
| From Xiang Xiao. |
| - Serial Upper Half: Don't reset the circular buffer on close since |
| DMA may still be transferring data in the background if the user |
| closes the handle too quickly and the handle is opened with |
| O_NONBLOCK. From Xiang Xiao. |
| - 16550 UART: Fix error: 'g_uart0port' undeclared. From Xiang Xiao. |
| - 16550 UART: Fix typo for UART1 flow field initialization From |
| Gregory Nutt. |
| - CDC/ACM HCD: Fixes to the IOCTL method in recovery of UART pointer |
| and in names of Termios-related field. From xhbm. |
| - USB Device: Fix type for USBDEV_TRACE_INITIALIDSET in Kconfig. |
| From Mateusz Szafoni. |
| - TCA64xx: Fix some errors in the TCA64XX driver. From Bruno |
| Schwander. |
| - SYSLOG RAMLog: Fix error: Conflicting types for 'ramlog_addchar' |
| From Xiang Xiao. |
| - NRF24L01: Fix uninitialized irq_work which was causing a |
| hard_fault on interrupt handler whenever something was sent from |
| nrf24l01_term From Petri Ahonen. |
| - MCP2515: Use kmm_zalloc to allocate device state structure. Fix |
| some compiler errors. From Valmantas Paliksa. |
| |
| * Architecture Common: |
| |
| - arch/ Common: Remove architecture-specific watchdog.h and |
| arm-elf.h because they are empty. The arm-elf header file was |
| never used; the empty watchdog.h header file was used in only one |
| place. From Xiang Xiao. |
| - arch/ Common: Move up_pminitialize() after timer_initialize() |
| From ligd. |
| - arch/ Common: Align semi-hosting call style with other syscalls in |
| architecture-specific syscall.h. From Xiang Xiao. |
| - arch/ Common: Every file that uses serial IOCTLs (TIOC*) must |
| explicitly include nuttx/fs/ioctl.h. This was included previously |
| via sneak path in the now deleted arch/serial.h. From Gregory Nutt. |
| - arch/ Interfaces: Rename sched_process_cpuload to |
| nxsched_process_cpuload. All internal sched_ functions should be |
| prefixed with nx. From Valmantas Paliksa. |
| |
| * ARMv7-A: |
| |
| - ARMv7-A MMU: Updating the cp15_wrttb and cp15_wrdacr functions to |
| use inline assembly in the correct way. The incorrect method was |
| generating errors as ARMv7-a expects the MCR/MRC instructions to |
| provide registers as an argument(MRC p15, 0, <Rt>, c2, c0, 0) and |
| the code was providing a constant value(and hence the build |
| error). From Bilal Wasim. |
| - ARMv7-A: Remove inclusion pg_macros.h for armv7-a since this |
| header file does not exist. From zhangyuan7. |
| - ARMv7-A: Guard some assembly files if configuration not selected. |
| From zhangyuan7. |
| - ARMv7-A GIC: Fix assemble error when including gic.h From Xiang |
| Xiao. |
| - ARMv7-A GIC: Don't use GIC_ICDDCR_ENABLEGRP1 for GIC NONSECURE |
| since this bit doesn't exist in this mode. From liuzhuang. |
| |
| * ARMv7-R: |
| |
| - ARMv7-R Syscall: In arch/arm/include/syscall.h, add missing |
| inclusion of arch/armv7-r/syscall.h for Cortex-R. From Xiang Xiao. |
| |
| * ARMv7-M: |
| |
| - ARMv7-M Initialization: As noted by Roland Takacs in Bitbucket |
| issue 141, there is a compilation error for STM32 if CONFIG_NET and |
| CONFIG_NETDEV_LATEINIT are selected. That was due in part to the |
| commit which extended up_netinitialize() with a |
| !defined(CONFIG_NETDEV_LATEINIT) guard but did not add the guard to |
| concrete implementations. I say "in part" because I don't think |
| that the original intent of commit 19e16cb was to enable an |
| alternative initialization of MCU internal Ethernet support but |
| rather to enable support of external Ethernet devices that may have |
| dependencies on, for example, SPI. However, this is still a proper |
| fix to avoid the compilation error that can occur with this |
| combination of configuration options. From Gregory Nutt. |
| - ARMv7-M Configuration: ARCH_HIPRI_INTERRUPT shouldn't select |
| ARMV7M_USEBASEPRI. First because that is a violation of the |
| layered nature of the Kconfig architecture, but also because then |
| Kconfig will generate errors when high priority interrupts are used |
| with other architectures. From Xiang Xiao. |
| - ARMv7-M Vector Table: Make the default NVIC_VECTAB_TBLOFF_MASK |
| safer. The base address of the new vector table must be aligned to |
| the size of the vector table extended to the next larger power of |
| 2. From Xiang Xiao. |
| - ARMv7-M RAM Vectors: Correct bad NVIC_VECTAB_TBLOFF_MASK |
| definitions in previous commit. Were missing bits in the mask. |
| Raised DEBUGASSERT in armv7-m/up_ramvec_initialize.c line: 144. |
| From Mateusz Szafoni. |
| |
| * Espressif ESP32 Drivers: |
| |
| - ESP32 Timer ISR: Fix backward comparison. From Gregory Nutt. |
| - ESP32 Serial: Fix some backward arguments. Correct 2-stop bit |
| setting. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMD2x/L2x Drivers: |
| |
| - SAMD2/L2 Serial: SAMD2/L2 serial driver. It needs |
| sam_usart_enable(). to work From Alan Carvalho de Assis. |
| |
| * Microchip/Atmel SAMD3/4 Drivers: |
| |
| - SAM3/4 Ethernet: Port Anthony Merlino's SAMv7 fix to similar |
| Ethernet driver for the SAM3/4. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMV7 Drivers: |
| |
| - SAMv7 SPI: Fix DMA Tx/Rx timeout issue. From Kevin Liu. |
| - SAMv7 QSPI: Compile error when set CONFIG_SAMV7_QSPI_DLYBCT. |
| From Kevin Liu. |
| - SAMv7 Ethernet: The logic for determining the number of queues for |
| SAMV71 must be extended. All SAMv7 parts increase the number of |
| queues from 3 to 6 at revision B, not just the SAMV71. From |
| Gregory Nutt. |
| - SAMv7 Ethernet: Fixes rxdesc index logic to handle Buffer Not |
| Available (BNA) condition. If a SOF is found, but no EOF, don't |
| move past the frame. Instead, keep the index at the SOF buffer |
| until the rest of the data is written. This fixes a receiver |
| lockup condition where the peripheral and this driver get out of |
| sync with there head pointers. In this case the driver has moved |
| past buffers it owns, without clearing ownership, which results in |
| the peripheral and driver in a deadlock with each other. From |
| Anthony Merlino. |
| |
| * Microchip/Atmel SAMA5Dx Drivers: |
| |
| - SAMA5Dx Ethernet: Port Anthony Merlino's SAMv7 fix to similar |
| Ethernet driver for the SAMA5Dx. From Gregory Nutt. |
| |
| * Microchip/Atmel SAMA5Dx Board: |
| |
| - SAMA5D2-XULT: Move console from FLEXCOM4 to UART1. FLEXCOM4 does |
| not work for the Arduino serial. UART1 is used with the VCOM |
| provided by the EDBG. From Gregory Nutt. |
| |
| * NXP i.MXRT: |
| |
| - i.MXRT Clock Configuration: If SDRAM is activated it was only |
| running at 40MHz. This was because imxrt_clockconfig.c changed the |
| SEMC clock divider after the DCD was configured. This commit |
| corrects that. From Johannes. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT GPT: Correct register offsets. From David Sidrane. |
| - i.MXRT TMR: Fix addressing and restructure using common offset. |
| From David Sidrane. |
| - i.MXRT ADC: Error in offset. From David Sidrane. |
| |
| * NXP/Freescacle Kinetis Boards: |
| |
| - Teensy-3.x: Fix a mismatch in types in defconfig. From Gregory |
| Nutt. |
| |
| * NXP LPC17xx: |
| |
| - LPC176x Clock Configuration: The code preserves undocumented |
| reserved bits only if board does not set them to keep previous |
| behavior for boards where developers (hopefully) know what values |
| should be set into these bits. From Pavel Pisa. |
| - LPC17xx Clock Configuration: The enable of EMC clocks has to be |
| preserved when already enabled by loader. EMC and related pins |
| configuration has to be skipped if the system is run from SDRAM. A |
| region of SDRAM which is used by system must not be used for heap. |
| From Pavel Pisa. |
| |
| * NXP LPC17xx Drivers: |
| |
| - LPC17xx CAN: The name can_txready clashes with Nuttx CAN core |
| global function. LPC178x has only single LPC17_SYSCON_PCLKSEL with |
| only single divisor. From Pavel Pisa. |
| |
| * NXP LPC17xx Boards: |
| |
| - Open1788: Add missing MPU configuration option. From Gregory Nutt. |
| |
| * On Semi LC823450 Boards: |
| |
| - LC823450-XGEVK: Remove -nostdinc to avoid build error From |
| Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32: Don't try including stm32_gpio.h from within chip/*.h |
| header files. Not only is bad style for a layered inclusion |
| system, but it doesn't always work. From Gregory Nutt. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 PWM: Fix polarity and IDLE state configuration From Mateusz |
| Szafoni. |
| - STM32 ADC, PWM and TIM: (1) missing T1TRGO2 for JEXTSEL, (2) fix |
| sample time configuration for channels. The array index for |
| channels was missing, (3) fix TRGO/TRGO2 configuration, and (6) |
| support for advanced timers channel 5 and 6. From Mateusz Szafoni. |
| - STM32 Heap: Change 'if CONFIG_STM32_HAVE_CCM' to 'ifdef |
| CONFIG_STM32_HAVE_CCM' to avoid a warning when |
| CONFIG_STM32_HAVE_CCM is not defined. From Gregory Nutt. |
| - STM32 Oneshot Timer: Fix an error introduced be a previous timer |
| commit. From Maximilian Kriegleder |
| - STM32 Tickless Mode and Free-Running Timer: Apply Max's |
| stm32_oneshot.c fix to the tickless implementation and to the |
| freerunning time. From Mateusz Szafoni. |
| - STM32 PWM: Set CCPxP and CCPxNP bits if polarity is negative. |
| Missing commas in initializers could break compilation in certain |
| configurations. From Mateusz Szafoni. |
| - STM32F7 Interrupts: Add the missing macro STM32_IRQ_NIRQS used by |
| arch/arm/src/stm32f7/stm32_irq.c. From Kejun ZHOU. |
| - STM32H7 DMA: Fix AHB1 base addresses memory map. From Mateusz |
| Szafoni. |
| - STM32H7 SysTick: H7 appears to ignore the SysTick CLKSOURCE bit |
| and use the CPU clock in all cases. From Mateusz Szafoni. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L072Z-LRWAN1: Fix typo in SPI1 pin definitions. From Mateusz |
| Szafoni. |
| - STM32F429I-DISCO: Handle multiple calls to the LCD |
| up_fbinitialize() function. From Gregory Nutt. |
| - STM32F769I-DISCO: Florian R. Hölzlwimmer reports that |
| stm32_appinitialize.c often has missing OK and NULL definitions. |
| This should be fixed by including sys/types.h where they are |
| defined. From GregoryN. |
| - STM32F769I-DISCO: Remove CONFIG_STM32F7_QUADSPI=y from the |
| configuration. This was apparently set before the implementation |
| was added. Now that the implementation was added, the configuration |
| will not build because it requires that QSPI GPIO pin definitions |
| be provided in the board.h header file. From Gregory Nutt. |
| |
| * TI AM335x Drivers: |
| |
| - AM335x Serial: Eliminate an error 'TIOCSBRK undeclared. From |
| Gregory Nutt. |
| |
| * C Library/Header Files: |
| |
| - strto*: In alll strto* function family, did't consume single '-' |
| or '+', allow sign in strotul(l)). From Johannes. |
| - getopt(): Add logic to reinitialize the stale context for the |
| FLAT/PROTECTED builds. In these builds getopt() global variables |
| may be shared by many tasks. If any task exits the getopt() loop |
| before all command line arguments have been parsed, then getopt() |
| global variables will be left in a bad state. The next time |
| getopt() is called, this logic should detect the bad state and |
| force the state of getopt() to be re-initialized so that it can be |
| reused. This logic is not full proof (it would fail, for example, |
| if you tried to parse the same command line twice) but should catch |
| the typical misuse cases. From Xiang Xiao. |
| - sscanf(): Initialized the lastc pointer to avoid the checks for |
| NULL. Removed a bug in the floating point parsing which allowed |
| several signs after each other. From Johannes. |
| - lib_vsprintf() (Legacy): No precision specifier resulted in |
| precision 0 but should be precision 6. From Johannes. |
| - lib_vsprintf() (Legacy): Correct justification for alternate forms |
| of %p and %P From ligd. |
| - lib_vsprintf() (Nano): Add long long support. |
| CONFIG_LIBC_LONG_LONG needs at least CONFIG_NANO_PRINTLEVEL 2. |
| Code size for compile without CONFIG_LIBC_LONG_LONG shouldn't be |
| affected. From Johannes. |
| - lib_vsprintf() (Nano): Remove CONFIG_LIBC_PRINT_MINIMAL. The |
| output in that configuration is unsatisfactory and inappropriate |
| for use with NuttX. For example, the output from many NSH commands |
| become corrupted and useless. Doesn't belong in this context. |
| From Gregory Nutt. |
| - libs/libc/symtab: Remove unused symtab_findorderedbyvalue(). From |
| Xiang Xiao. |
| - libs/libc/machine/arm: Fix the minor issue in libc arm machine |
| folder; MOVW/MOVT should use zero(not sign) extension. From Xiang |
| Xiao. |
| - libs/libc/libc.csv: Should be locale.h not local.h. From Joao |
| Matos. |
| - libs/libc/libc.csv: Needed logic for correct compilation if not |
| using CONFIG_LIBC_WCHAR. From Joao Matos. |
| - libxx: Always include libxx_cxa_guard.cxx in the build for for |
| uclibcxx. From zhangyuan7. |
| |
| - include/stdbool.h: Define bool only when __cplusplus isn't |
| defined. From Xiang Xiao. |
| - include/nuttx/list.h: Added a Linux-compatible list |
| implementation. From zhuyanlin. |
| - include/nuttx/irq.h: Fix enter_critical_section/spin_lock_irqsave |
| macro typo error and remove the duplicated inclusion of |
| arch/irq.h. From Xiang Xiao. |
| - include/dlfcn.h: Correct naming of standard header file. Should |
| be dlfcn.h, not dllfcn.h. From Gregory Nutt. |
| - include/nuttx/nx/nxmu.h: This header file could be lethal; it |
| declared an #error if CONFIG_DISABLE_MQUEUE=y. From Gregory Nutt. |
| - include/nuttx/compiler.h: Important fix for C++ users. |
| compiler.h was using the value of __STDC_VERSION__ to determine if |
| inline functions are supported or not. If not then the keyword |
| inline was defined out. Good for C but bad for C++ because C++ |
| does not define __STDC_VERSION__ at all. C++ applications may |
| draw in compiler.h indirectly via other head files and this can |
| result in C++ compiler problems since 'inline' is defined out. |
| This fix is to ignore the (undefined) __STDC_VERSION__ if |
| __cplusplus is defined. From Gregory Nutt. |
| - include/nuttx/elf.h: Adds missing extern "C" __cplusplus guard. |
| From Anthony Merlino. |
| - include/poll.h: Remove un-named union from 'struct pollfd'. It |
| is not required by OpenGroup.org and violates the NuttX C coding |
| standard because it is not C89 compatible. From Gregory Nutt. |
| - libs/libc/Makefile, libs/libnx/Makefile, and mm/Makefile: Remove |
| obj-path MKDEPS option since make dependency target (MT) is not |
| supported by some toolchains. From anchao. |
| - include/nuttx/compiler.h: Assume inline support if |
| __STDC_VERSION__ not defined. From Xiang Xiao. |
| |
| * Tools: |
| |
| - tools/convert-comments.c: Fix an error in handling of a blank C++ |
| comment before a comment block. From Gregory Nutt. |
| - tools/lowhex.c: Fix an initialization problem that was causing |
| some odd behavior at the beginning of lines. From Gregory Nutt. |
| - tools/nxstyle.c: Fix logic that detects if an operator is |
| correctly delimited with spaces. sched/: Various changes because |
| sched/ C files were used as Guinea Pigs to test nstyle.c. From |
| Gregory Nutt. |
| - tools/nxstyle.c: Was confusing hex constants with strings staring |
| with 'x'. Added logic to complain about hex constants containing |
| upper case characters. From Gregory Nutt. |
| - tools/nxstyle.c: Fix logic error that prevent detecion of '/' and |
| '/=' as operators. net/: Minor updates resulting from testing |
| tools/nxstyle. From Gregory Nutt. |
| |
| * NSH Library: apps/nshlib: |
| |
| - NSH Console: Fix copy paste errors. Some Kconfig configuration |
| names needed CONFIG_ prefix. From David Sidrane. |
| - nshlib/nsh_timcmds.c: Uninitialized struct tm caused 'date -s' to |
| fail. From Valmantas Palikša. |
| |
| * Examples: apps/examples: |
| |
| - apps/examples/nxterm: Replace direct calls to nxtk_register() |
| with legal, indirect calls via boardctrl(BOARDIOC_NXTERM). |
| Replace calls to (deleted) nxterm_unregister(). The correct way |
| to delete a driver is by unlink'ing it. From Gregory Nutt. |
| - apps/examples/nxterm: Most configuration options were not |
| available in the Kconfig file. From Gregory Nutt. |
| - apps/examples/nxterm: Replace illegal direct calls to |
| nxterm_redraw() and nxterm_kbdin() with new boardctl() calls. |
| From Gregory Nutt. |
| - apps/examples/nxterm: NxWM passed the size of the NxTK sub-window |
| but nxterm example passed the size of the complete NxTK window. |
| They must be made consistent. From Gregory Nutt. |
| |
| * Graphics Utilities: apps/graphics: |
| |
| - apps/graphics/NxWidgets/nxwm: Correct an error in the type of the |
| return value in CCalibration. From Gregory Nutt. |
| - apps/graphics/NxWidgets/nxwm: Replace direct calls to |
| nxtk_register() with legal, indirect calls via |
| boardctrl(BOARDIOC_NXTERM). Replace calls to (deleted) |
| nxterm_unregister(). The correct way to delete a driver is by |
| unlink'ing it. From Gregory Nutt. |
| - apps/graphics/NxWidgets: Replace illegal direct calls to |
| nxterm_redraw() and nxterm_kbdin() with new boardctl() calls. |
| From Gregory Nutt. |
| |
| * Modbus: apps/modbus: |
| |
| - apps/modbus/Kconfig: Fix modbus master Kconfig. Modbus Master |
| ASCII compiles correctly. From Alan Carvalho de Assis. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/dhcpc/dhcpc.c: Fix an error for DHCP REQUEST |
| receiving a NAK.In DHCP Request operation, no need to update |
| ciaddr to the client address and keep it as 0. From Kevin Liu. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/vi/vi.c: Fix an infinite loop bug that can show up in |
| some cases (plus a couple of other items). From Ken Pettit. |
| - apps/system/vi: Condition KEY_CMDMODE_REPEAT with |
| CONFIG_SYSTEM_VI_INCLUDE_COMMAND_REPEAT to avoid build error when |
| option is not selected. From Anthony Merlino. |
| - apps/system/nxplayer/nxplayer.c: Fix build error when only enable |
| CONFIG_AUDIO_EXCLUDE_VOLUME is enabled. From ZhongAn. |
| - apps/system/system/system.c: Correct a path name. From anchao. |
| - apps/system/taskset: Fix command arguments are not passed. From |
| Masayuki Ishikawa. |
| |
| * Testing: apps/testing: |
| |
| - apps/testing/ostest/timedmutex.c: pthread_mutex_timedlock() |
| returns EDTIMEDOUT on a timedout, not EAGAIN. From Gregory Nutt. |
| |
| * Tools: apps/tools: |
| |
| - apps/tools/mksymtab.sh: 'export LC_ALL=C' to get the traditional |
| sort order From anchao. |
| |
| NuttX-7.30 Release Notes |
| ------------------------ |
| |
| The 130th release of NuttX, Version 7.30, was made on May 19, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.30.tar.gz and |
| apps-7.30.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - pthreads: Added non-standard pthread_get_stackaddr_np() and |
| pthread_get_stacksize_np(). From Joao Matos. |
| - boardctl(): Add a command to start the VNC server. From Gregory |
| Nutt. |
| - Signals: Remove references to CONFIG_DISABLE_SIGNALS in many |
| files. Signals can no longer be disabled. From Gregory Nutt. |
| |
| * Wireless/Wireless Drivers: |
| |
| - NRF24L01: Add support for "multicast" TX mode - no waiting for ACK |
| (needs to be enabled with fcntl SETTXPAYLOADNOACK) From Leif Jakob. |
| |
| * Graphics/Display Drivers: |
| |
| - NX Graphics: Add new server->client callback to notify the window |
| client of server events. Remove the old 'blocked' callback and just |
| make it one case of an 'event' callback. From Gregory Nutt. |
| - NX Graphics: Implement new interfaces nx_synch() and nxtk_synch(). |
| This are used to synchronize the NX server with the window client. |
| Currently most of the logic is equivalent to nx_block() and |
| nxtk_block(), but with slightly different semantics. They are |
| separate now because they are likely to diverge in the future. |
| From Gregory Nutt. |
| - NX Graphics: Add support for modal windows. From Gregory Nutt. |
| - NX Graphics: Implement a software cursor. The cursor behaves |
| like a "sprite", always at the top of the display with a |
| transparent background. Includes new NX interfaces to show/hide |
| the cursor, set the cursor image, and to move the cursor position. |
| From Gregory Nutt. |
| - NX Graphics: Added support for hiding windows. This features is |
| needed by Twm4Nx: When a window is iconified, the icon should |
| appear on the background and the window should disappear (i.e., be |
| hidden). The windows needs to remain healthy and to be updated in |
| all ways, but it cannot affect the display content. Conversely, |
| when the icon is clicked, the icon needs to be hidden on the |
| background and the window needs to be restored in its current |
| state (which may be different than the state of the window at the |
| time it was iconified. From Gregory Nutt. |
| - NX Graphics: Windows can now be created in the hidden state. |
| This can be used to clean up initial window presentation which may |
| involve several steps. This makes those steps all invisible until |
| nx[tk]_setvisibility() is called to make the windows visible. |
| From Gregory Nutt. |
| - NX Graphics: Add new NX interfaces to query if a window is hidden |
| or not. From Gregory Nutt. |
| - NxTerm IOCTLs: Replace specific interfaces between boardctl and |
| nxterm with a generalized IOCTL interface. From Gregory Nutt. |
| - NxTerm: Add a new IOCTL that can be used to inform NxTerm that |
| the size of a window has changed. From Gregory Nutt. |
| |
| * Other Common Device Drivers: |
| |
| - CAN Upper Half: Support multiple readers of the same port From |
| Valmantas Paliksa. |
| - MAX7456: Adds a read-only (for now) /dev/osd0/CM interface for |
| obtaining the chip's onboard NVM character map data. Use seek() |
| to position the cursor over a desired subset of bytes, or request |
| a large read to obtain the entire EEPROM memory contents. Values |
| are returned in binary form. Use hexdump, etc. to format them for |
| viewing. From Bill Gatliff. |
| - Serial Upper Half: The upper half serial driver configuration |
| CONFIG_SERIAL_DMA used to enable DMA on both RX and TX streams. |
| This was replaced with CONFIG_SERIAL_RXDMA and CONFIG_SERIAKL_TXDMA |
| which will permit supporting DMA on only one or both streams. |
| From Gregory Nutt. |
| - FUSB303: Add FUSB303 driver From Juha Niskanen. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ GPIO: Adds support for edge detect mode. Slew Rate was |
| also added for completeness. From Abdelatif Guettouche. |
| |
| * Microchip/Atmel SAMv7 Boards |
| |
| - SAME70-xplained: Add a configuration for test Twm4Nx using VNC. |
| From Gregory Nutt. |
| |
| * Microchip LPCxx Drivers: |
| |
| - LPC17xx Ethernet: Added support for KSZ8081RNA PHY to LPC17xx |
| Ethernet driver. From jjlange. |
| - LPC17xx Ethernet: Added support for Ethernet PHY ioctl() on |
| LPC17xx. From jjlange. |
| |
| * NXP i.MX RT: |
| |
| - .i.MXRT1020: Gets imx1020 family support started. It is pretty |
| similar, but subtly different, to 1050/60 (less PLLs, less GPIO |
| banks, differently numbered ports etc. etc.). |
| |
| Moved each of the imxrt family-specific files into its own |
| subdirectory to tidy things up a bit, and remove the vast majority |
| of ifdefs from the mainline code. |
| |
| From Dave Marples. |
| |
| * NXP LPC54xx Drivers |
| |
| - LPC54xx USB FS Host: Bring in the USB FS OHCI driver from LPC17. |
| This is a quick'n'dirty port from LPC17 that I hope finish |
| sometime later. Currently, it is missing hardware clocking setup |
| and is not even hooked into the build system yet. From Gregory |
| Nutt. |
| |
| * NXP LPC54xx Boards |
| |
| - LPCXpresso-LPC54628: Add a Twm4Nx configuration. From Gregory Nutt. |
| |
| * Sony CXD56xx |
| |
| - CXD56xx: Add initial CXD56xx chip driver sources. From Nobuto |
| Kobayashi. |
| |
| * Sony CXD56xx Spresense Board |
| |
| - Spresense: Add Spresense board support. This is not the full |
| Spresense BSP from Sony, only the barebones logic to present an |
| NSH console. From Nobuto Kobayashi. |
| |
| * STMicro STM32: |
| |
| - STM32F7 Clocking: Add support for using the HSE in bypass mode, |
| configured by board.h From Anthony Merlino. |
| - STM32F7 Clocking: Added support for TICKLESS mode. From Valmantas |
| Paliksa. |
| - STM32H7 Backup Domain: Add backup domain control registers. From |
| Jukka Laitinen. |
| - STM32H7 Clocking: Set the STM32H7 default HSI pre-divider to 4. |
| The I2C driver currently assumes HSI clock to be 16MHz. From Jukka |
| Laitinen. |
| - STM32H7 Memorymap.: Add the STM32H7 SYSTEM_UID and DEBUGMCU_BASE |
| register definitions. From Jukka Laitinen. |
| - STM32L071x: Add support for STM32L071x. From Mateusz Szafoni. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 OTGHS Host: Allow VBUS monitoring for the OTG_HS host |
| driver. From Jason Harris. |
| - STM32F0/L0 ADC: Initial ADC support for the STM32 M0 From Mateusz |
| Szafoni. |
| - STM32F0/LO I2C: Port STM32F7 I2C to STM32F0/L0, From Mateusz Szafoni. |
| - STM32F1 FLASH: As noted by Matias N, the FLASH base address used |
| was incorrect. It was using the address of the FLASH data, not |
| the address of the FLASH registers. From Gregory Nutt. |
| - STM32F3 I2C: Port STM32F7 I2C to STM32F3. From Mateusz Szafoni. |
| - STM32F7 Ethernet.c: Auto-generate Ethernet MAC address from |
| device unique ID. From Valmantas Paliksa. |
| - STM32F7 FLASH: Add flash block mapping support for progmem. From |
| Valmantas Paliksa. |
| - STM32F7 FMC: Updated stm32_fmc.h with more FMC definitions. From |
| Joao Matos. |
| - STM32F7 GPIO: Adds additional pin alternate function for SPI2. |
| From Anthony Merlino. |
| - STM32F7 PWM: Ported the PWM from F4 to F7. From Eduard Niesner. |
| - STM32F7 SDMMC: Support bypassing the input clock divider on the |
| SDMMC interface. This enables using the full clock speed provided |
| to the SDMMC interface with no dividing. From Anthony Merlino. |
| - STM32F7 SPI: Add SPI DMA threshold configuration. From Valmantas |
| Paliksa. |
| - STM32F7 UID: Add UID access. From Valmantas Paliksa. |
| - STM32F7 USB: USB High speed for STM32F7 series From Ramtin Amin. |
| - STM32H7 Ethernet: Add stm32h7 Ethernet driver. This is the |
| initial push for the Ethernet driver. The driver has been tested |
| to be working on a nucleo board. This is still WIP, it doesn't |
| for example do MAC filtering on HW level, but just receives all |
| Ethernet packets. From Jukka Laitinen. |
| - STM32H7 GPIO: Add the GPIO_ETH_RMII_RXD1 pinmap definition for |
| STM32H7. From Jukka Laitinen. |
| - STM32H7 SDMMC: Add STM32H7 SDMMC driver. It is mostly copied |
| from STM32F7, with modified register addresses and bits, and IDMA |
| dded. This is still WIP; it only works with IDMA. From Jukka |
| Laitinen. |
| - STM32H7 Timers: Add timer devices driver for STM32H7. This i |
| mostly a forklift from stm32f7 with some h7 specific |
| modifications. From Jukka Laitinen. |
| - STM32L0 AES: Add support for AES for L0. From Mateusz Szafoni. |
| - STM32L0 RND: Add support for RND. From Mateusz Szafoni. |
| - STM32L0 HSI48: Add support for HS148 for L0. Move HSI48 enable |
| from stm32_usbdev.c to stm32xx_rcc.c From Mateusz Szafoni. |
| - STM32L4 USB FS Device: Add USB FS device support. From Juha |
| Niskanen. |
| - STM32L4 HSI48: Port HSI48 from STM32F0/L0 From Juha Niskanen. |
| - STM32L4 CRS: Port CRS from STM32F0/L0 From Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L072Z-LRWAN1: Add ADC example. From Mateusz Szafoni. |
| - B-L072Z-LRWAN1: Add nxlines_oled example (ssd1306). Add support |
| for the I2C tool From Mateusz Szafoni. |
| - Nucleo-144: Added STM32_RCC_DCKCFGR2_DSISRC definition to board.h. |
| From Joao Matos. |
| - Nucleo-144: Mount sysfs for ifconfig for f767-netnsh/defconfig. |
| Even if ifconfig is working to set IP, it will not work to display |
| NICs (without args) From Phil Coval. |
| - Nucleo-144: Add basic PWM support to nucleo-144 board. More PWMs |
| and multi channels support may be investigated and added later. |
| Tested on Nucleo-F767ZI. From Phil Coval. |
| - Nucleo-F303ZE: Add nxlines_oled example (ssd1306) From Mateusz |
| Szafoni. |
| - Nucleo-H743ZI: Enable the FPU. From Jason Harris. |
| - Nucleo-H743ZI: Add support for I2C devices: ssd1306, pca9635, |
| i2ctools From Mateusz Szafoni. |
| - Nucleo-H743ZI: Add default clock configuration for SDMMC for |
| Nucleo-H743ZI's board.h. From Jukka Laitinen. |
| - Nucleo-H743ZI: Add the input clock frequency definitions in |
| board.h for all the drivers. Assumes internal clock source for |
| all the timers. From Jukka Laitinen. |
| - STM32F4 Discovery: Keep c++ global constructor symbols From |
| Masayuki Ishikawa. |
| - Nucleo-L073RZ: Add MFRC522 support From Mateusz Szafoni. |
| - OmnibusF4: Add boardctl() reset logic. From Bill Gatliff. |
| - OmnibusF4: Add board_ioctl() which is needed only if |
| CONFIG_BOARDCTL_IOCTL=y is selected; Update NSH configuration |
| to enable board IOCTLs and DFU mode reset. From Bill Gatliff. |
| - STM32L Discovery: Add support for board_late_initialize(), Move |
| common initialization logic out of board_app_initialize() into new |
| file stm32_bringup.c From Gregory Nutt. |
| - STM32F103-Minimum: Add PROCFS automount support From Alan |
| Carvalho de Assis. |
| |
| * Libraries/Header Files: |
| |
| - include/alloca.h: Add alloca.h. Included limited implementation |
| of alloc() that is only available for GCC versions 3 and above. |
| From Joao Matos. |
| - include/cxx/cstdlib: Add std::random() From Gregory Nutt. |
| |
| * apps/ General: |
| |
| - Many locations: Remove references to CONFIG_DISABLE_SIGNALS. |
| Signals can no longer be disabled. From Gregory Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/fb: Add some awareness of overlays to |
| apps/examples/fb From Matthew Koch. |
| - apps/examples/lvgldemo. Update to Littlevgl 5.3. From Matthew |
| Koch. |
| - apps/examples/pwfb: Extend example to verify software cursors. |
| From Gregory Nutt. |
| - apps/examples/pwfb: Add options to reduce the number of windows. |
| This is helpful during debug to reduce the complexity. From |
| Gregory Nutt. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/cjson: Support for the current version of cJSON. |
| From Mateusz Szafoni. |
| - apps/netutils/libcurl4nx: This is an initial commit libcurl4nx. |
| It is not complete yet, but I still wish to commit the unfinished |
| bits to describe the roadmap, and because it is already usable. It |
| will be updated and fixed in the future weeks and months, certainly |
| including POST support and later, SSL. From Sebastien Lorquet. |
| - apps/netutils/netinit. This commit removes the private network |
| initialization logic from NSH and puts in a common location at |
| apps/netutils/netinit. Now that netork initialization logic can be |
| used by applications that do not include NSH. From Gregory Nutt. |
| - apps/netutils/netlib: Add a more flexible version of |
| netlib_parsehttpurl(). This one can parse any URL, and is |
| extensible so future improvements keep the same API. From Sebastien |
| Lorquet. |
| |
| * System Utilities: apps/system |
| |
| - apps/system/spi: I needed a small test tool for spi in the style of |
| the I2C tool, but I didn't see one so I've hacked one out of the I2C |
| tool source. From Dave Marples. |
| |
| * Graphics: apps/graphics: |
| |
| - apps/graphics/twm4nx. This release introduces Twm4Nx. Twm4Nx is a |
| "port" of TWM, Tab Window Manager (or Tom's Window Manager) version |
| 1.0.10 to NuttX NX windows server. No, a port is not the right |
| word. It is are-design of TWM from the inside out to work with the |
| NuttX NX server and NXWidgets. The name Twm4Nx reflects this |
| legacy. But Twm4Nx is more a homage to TWM than a port of TWM. |
| |
| The original TWM was based on X11 which provides a rich set of |
| features. TWM provided titlebars, shaped windows, several forms of |
| icon management, user-defined macro functions, click-to-type and |
| pointer-driven keyboard focus, graphic contexts, and user-specified |
| key and pointer button bindings, etc. |
| |
| Twm4Nx, on the other hand is based on the NuttX NX server which |
| provides comparatively minimal support. Additional drawing support |
| comes from the NuttX NxWidgets library (which necessitated a |
| conversion to C++). |
| |
| Twm4Nx is greatly stripped down and targeted on small embedded systems |
| with minimal resources. For example, no assumption is made about the |
| availability of a file system; no .twmrc file is used. |
| |
| The state of the "port" is available in |
| apps/graphics/twm4mx/README.txt. To summarize: The port is fully |
| functional but probably only at an alpha release level. The only |
| missing critical feature is built-in touchscreen calibration. |
| |
| - apps/graphics/littlevgl. Update to Littlevgl 5.3. From Matthew |
| Koch. |
| - apps/graphics/nxglyphs: Put all NxWidgets and NxWM glyphs into a |
| common directory where they can eventually be shared. Decouple |
| from nxwidgets and nxwm so that they can be used elsewhere. |
| Creates include/graphics/nxglyphs.h From Gregory Nutt. |
| - apps/graphics/nxglyphs: Add some new cursor bitmap images. From |
| Gregory Nutt. |
| - apps/graphics/nxglyphs: Add mkcursor.c. Will auto-generate |
| cursor image header file from Gimp C output. From Gregory Nutt. |
| - apps/graphics/nxglyphs: Add 16x16 cursor images. 30x30 are kind |
| of large on small displays. From Gregory Nutt. |
| - apps/graphics/nxglyphs: Add a new resize cursor image. From |
| Gregory Nutt. |
| - apps/graphics/nxwm: Separate NxWidgets and NxWM into separate |
| directories. Remove old, common NxWidgets directory. From |
| Gregory Nutt. |
| - apps/graphics/nxwm: Move the NxWM unit test main() to apps/nxwm. |
| It is no longer a unit test, but the main startup entry point for |
| NxWM. From Gregory Nutt. |
| - apps/graphics/nxwidgets: Update NX window clients so that they |
| use the new 'event' callback (vs. the obsoleted 'blocked' callback). |
| From Gregory Nutt. |
| - apps/graphics/nxwidgets: Add a synchronize method to every window. |
| This is a wrapper arounc nx[tk]_sync and permits C++ applications |
| to synchronize with the NX server. From Gregory Nutt. |
| - apps/graphics/nxwidgets: Add support for modal windows. From |
| Gregory Nutt. |
| - apps/graphics/nxwidgets: Add cursor control methods to the |
| CNxServer class. From Gregory Nutt. |
| - apps/graphics/nxwidgets: Add a method to CButtonArray that will |
| allow us to dynamically resize the array (at the cost of losing all |
| button labels). From Gregory Nutt. |
| - apps/graphics/nxwidgets: Fix a possible deadlock condition when |
| waiting for window geometry data that will never come. Fixed by |
| re-requesting geometry data if we don't already have it. From |
| Gregory Nutt. |
| - apps/graphics/nxwidgets: Add handshake to |
| CWidgetControl::getWindowHandle() to avoid returning a NULL |
| handle. From Gregory Nutt. |
| - apps/graphics/nxwidgets: CNxTkWindow, CNxWindow, CNxServer: Add |
| support to create RAM backed windows. From Gregory Nutt. |
| - apps/graphics/nxwidgets: Add methods to all windows to query if a |
| window is visible or hidden. From Gregory Nutt. |
| |
| 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: |
| |
| - Clock Initialization: A recent change broke Tickless mode for all |
| architectures. The original change was intended to handle the |
| case where up_timer_gettime may not start from zero case. The |
| side effect is that this changed to order of initialization of |
| clocking, breaking Tickless mode:: After this change the tickless |
| timer structures are used before they are initialized in |
| clock_inittime(). The commit has been reverted. |
| - pthread Stack Attribute: Fixed pthread_attr_get/setstacksize |
| param type to size_t. From Joao Matos. |
| - Signals: The abnormal termination signal handler was just calling |
| exit() conditionally when, for example, Ctrl-C is sent to a task. |
| The abnormal termination handler must obey the rules of cancellation |
| points: If cancellation is disabled, then the abnormal termination |
| logic must wait for cancellation to be re-enabled; If cancellation |
| is deferred then the abnormal termination logic may have to wait |
| for the victim task to enter or exit a cancellation point. From |
| Gregory Nutt. |
| - Syscall: Added support for munmap() syscall. From Joao Matos. |
| - Syscall: Fix a warning due to inconsistencies in return type in |
| syscall.csv. From Gregory Nutt. |
| - Syscall: Correct an error syscall.csv. Error occurred when |
| creating the munmap() proxy if CONFIG_FS_RAMMAP is not defined. |
| From Gregory Nutt. |
| |
| * File System/Block and MTD Drivers: |
| |
| - fs/littlefs/lfs.c: Fix lfs_format bug. In superblock disk root- |
| block assignment, the second must be root[1]. From YanLin Zhu. |
| |
| * Networking/Network Drivers: |
| |
| - getsockname(): Fix addrlen check in socket debug features. |
| Getsockname() checked erroneously a pointer against 0, where the |
| intention was to dereference the pointer and to check the length. |
| This causes also a compilation failure if the code is compiled |
| with CONFIG_DEBUG_FEATURES and with -Werror flag set. From Jukka |
| Laitinen. |
| - Network Locking: net_lock() and net_restorelock() now return a |
| value. That values is the standard zero on success; negated errn |
| value on failure. This return value is only needed for |
| -ECANCELED. That cancellation indication needs to ripple all the |
| way back to the highest levels where the cancellation can be acted |
| on. This commit only adds the return value; it does not add |
| checking for the return values of net_lock() and net_restorelock() |
| at higher levels. That is required too. From Gregory Nutt. |
| - PHY Notification Driver: Change sprintf to strncpy in phy_notify. |
| On some platforms, the sprintf doesn't accept a const char* as a |
| format argument. From Jukka Laitinen. |
| - 6LoWPAN HC06: Correct an endian-ness problem in HC06 decompression. |
| From Ivan Ucherdzhiev. |
| |
| * Wireless/Wireless Drivers: |
| |
| - NRF24L01: Don't block in read if file descriptor is O_NONBLOCK. |
| From Leif Jakob. |
| |
| * Graphics/Display Drivers: |
| |
| - NX Graphics: Fix an error in coordinate system usage. Expected |
| rectangle in device coordinate frame, but was passing the |
| rectangle in window-relative coordinate frame. From Gregory Nutt. |
| - NX Graphics: Fix an oversight in the implementation of per-window |
| framebuffers. It is true that redraw callbacks can be suppressed |
| for all cases ... EXCEPT ONE: When the window is resized to a |
| larger size, then the newly exposed territory must be drawn for |
| the first time. From Gregory Nutt. |
| - NxTK: Fix an error in handling mouse events for framed windows. |
| When drawing, NX may report mouse positions outside of the Window. |
| The is only for NX windows, but the outside-the-side positions were |
| being discarded by nxtk_events(). From Gregory Nutt. |
| - NxTK: Refuse to open a toolbar of height zero or less. From |
| Gregory Nutt. |
| - Nxglib: Correct bogus logic in nxgl_interesting(). From Gregory |
| Nutt. |
| - VNC Server: Fix an error in color conversion. From Gregory Nutt. |
| |
| * Common Drivers: |
| |
| - APDS9960: Initial state of allocated structure was not being set. |
| Noted by Leif Jacob. From Gregory Nutt. |
| - MFRC522: In mfrc522_read uid.sak must be different from 0x04 not |
| as before from 0x00. SAK == 0x00 is a valid PICC type. Add |
| interface to read MIFARE Ultralight data From Mateusz Szafoni. |
| - Power: Fix build for battery gauge From Tom Kopriva. |
| - Syslog: In syslog buffered mode, avoid IOB alloc lock-up with |
| heavy network activity. This change alters the buffered syslog |
| logic to use 'iob_tryalloc' instead of blocking 'iob_alloc' to |
| avoid syslog printing from getting stuck when all IOBs are |
| depleted by network activity. An issue was seen when large |
| incoming TCP transfer uses free IOB buffers and processing |
| threads try to use syslog which then block at iob_alloc. From |
| Jussi Kivilinna. |
| - USB CDC/ACM Device: This fixes a problem where the host sent a |
| "get descriptor" message of type "standard" with a recipient of |
| type "interface". Since the composite driver would only pass |
| messages to the child interfaces when a message was not |
| "standard", this message was not handled. I changed the condition |
| so that the composite driver checks not only if this is a |
| "standard" message but if it is also directed to the device. |
| Otherwise, the handling is delegated to the children of the |
| composite device. From Matias N. |
| - USB HID: The usbhid_descriptor_s struct defined in hid.h included |
| some optional fields that should not be hard-defined as part of |
| that structure. An arbitrary number of optional entries could be |
| included in the descriptor, but that is not properly represented. |
| No code on NuttX currently depends on the structure definition |
| with an optional descriptor so it is safe to remove. From Matias N. |
| - USB MSC Device: Correct typo "const const" to "const". |
| arch/arm/src/stm32/stm32_i2s.c: In debug assertions, it on a |
| sample rate of 0, but based on other code comments this value |
| implies disabling the i2s master clock. From Jason Harris. |
| - Zerocross Driver: Fix some errors when debug assertions are |
| enabled. From Matous Pokorny. |
| - User Leds: Fix ledset validity check in ULEDIOC_SETALL ioctl. |
| From Jussi Kivilinna. |
| |
| * Architecture Common: |
| |
| - All board interfaces (those starting with board_) must be defined |
| in board-specific logic. Otherwise, they cannot be customized for |
| specialized usage by different boards. The board_reset() |
| interface was defined in architecture-specific logic that only |
| called up_systemreset(). That is useless! This change removes |
| the board_reset() implementation from the architecture-specific |
| code and re-implements it in the src/ directory of each board that |
| has CONFIG_BOARDCTL_RESET enabled. That is the correct functional |
| partitioning. From Gregory Nutt. |
| - Start-up: Remove dependency on CONFIG_ARCH_FPU for inclusion of |
| nvic.h in all other *_start.c files. From Gregory Nutt. |
| - Architecture initialization: up_initialize() needs to know about |
| ramlog_consoleinit() From Jason Harris. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ GPIO: Corrects the gpioirq when mismatch mode is |
| selected. From Abdelatif Guettouche. |
| |
| * ARMv7-A: |
| |
| - ARMv7-A Build: Fix 'cc1: warning: switch -mcpu=cortex-a7 conflicts |
| with -march=armv7-a switch' From Xiang Xiao. |
| |
| * Nordic NRFxx |
| |
| - NRF52: Fix compiler error in nrf52832_errdata.c when following |
| C89. From Erik Englund. |
| |
| * STMicro STM32: |
| |
| - STM32 Configuration: It seems one option in the timer configuration |
| was lost at some point. From Matias N. |
| - STM32 start-up: Inclusion of nvic.h should not be conditioned on |
| CONFIG_ARCH_FPU. From Mateusz Szafoni. |
| - STM32H7 Clocking: Fixes for STM32H7 RCC definitions. From Jukka |
| Laitinen. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32F0/L USART: A few fixes for USART. From Mateusz Szafoni. |
| - STM32F1/F30 FLASH: RCC register access should not be offset by |
| FLASH register base. From Matias N. |
| - STM32F7 CAN: CAN fixes. From Valmantas Paliksa. |
| - STM32F7 I2C: I2C Interrupt storm fix. I2C track bad state. Now |
| we track bad state and so the SW reset only when it occurs. From |
| David Sidrane. |
| - STM32F7 OTG: Fixes some macros related to OTGFS/OTGHS preventing |
| OTGHS from working. From Anthony Merlino. |
| - STM32F7 OTG Device: Correct hard-coded FIFO size that is wrong |
| for OTG FS. From Ramtin Amin. |
| - STM32F7 QSPI: Fix QuadSPI interrupts. This commit essentially |
| replaces wrongly named configuration variable STM32F7_QSPI_INTERRUPTS |
| into CONFIG_STM32F7_QSPI_INTERRUPTS. Also fixes some getreg/ |
| putreg where register addresses were used instead of register |
| offsets From Pierre-Olivier Vauboin. |
| - STM32H7 I2C: Fix I2C4 compilation for STM32H7. From Jukka |
| Laitinen. |
| - STM32H7 UART: Fix compilation for UART7, UART8 and I2C4s. From |
| Jukka Laitinen. |
| - STM32L4 USB Device: Add missing PWR USBV enable, correct two USB |
| register bits From Juha Niskanen. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F103-Minimum: USB reset was not working appropriately since |
| the pin connected to D+ was incorrectly defined and the pullup/down |
| logic was reversed. From Matias N. |
| - Nucleo-l476RG: Fix some errors in GPIO logic when debug assertions |
| are enabled. From Matous Pokorny. |
| - Nucleo-L476RG: Add missing files of BMP180 example for Nucleo-L476RG. |
| From Fabian Justi. |
| - STM32F103-Minimum GPIO: Fix some errors when debug assertions are |
| enabled. From Matous Pokorny. |
| - STM32L4 PWM: Fix register addr, en_bit and resetbit for pwm timers. |
| From Fabian Justi. |
| - STM32F746G-DISCO: I2C1 config on stm32f746g-disco. Typo in |
| stm32f7/stm32_i2c.c From Matthew Koch. |
| |
| * C Library/Header Files: |
| |
| - include/limits.h: Remove the duplicate TMP_MAX definitions. The |
| standard requires that TMP_MAX defines be in stdio.h. From |
| Xiang Xiao. |
| - include/sys/select.h: Fix compiler error when |
| CONFIG_NSOCKET_DESCRIPTORS is undefined. From Xiang Xiao. |
| - include/signal.h: Add commented out definition of the si_addr |
| field. From Joao Matos. |
| - include/unistd.h: Fixed R_OK/X_OK definitions to match POSIX. |
| From Joao Matos. |
| |
| - libs/libc/locale: Improved error handling in setlocale(). From Joao |
| Matos. |
| - libs/libc: Fixed return code in uname(). From Joao Matos. |
| - libs/libc/stdio: Restore support for printing NULL string as |
| "(null)". Legacy printf supported printing "(null)" in place for |
| NULL string: printf("null: %s\n", NULL); => null: (null). This |
| commit restores this functionality for new printf library. From |
| Jussi Kivilinna. |
| |
| * Examples: apps/examples: |
| |
| - apps/examples/pca9635/pca9635_main.c: fix compilation error. From |
| Mateusz Szafoni. |
| |
| * Graphics Utilities: apps/graphics: |
| |
| - Various graphics apps (and apps/examples): If CONFIG_VNCSERVER=y, |
| don't call vnc_default_fbinitialize() directly. That is a violation |
| of the portable POSIX interface. Instead, call |
| boardctl(BOARDIOC_VNC_START);. From Gregory Nutt. |
| - apps/graphics/nxwidgets: CWidgetControl::handleLeftClick now |
| returns a value to indicate if the click was actually processed or |
| not. CWidgetControl::pollMouseEvents: Correct return value. From |
| Gregory Nutt. |
| - apps/graphics/nxwidgets/: NXWidgets::CNxWidgets: Fix some issues |
| with returned values. On setting the widget size or position, it was |
| returning false if there was no change in size or position. Many |
| places in the code were treating the false return value as an error. |
| From Gregory Nutt. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/nxplayer: Fix some logical errors from recent commits. |
| They broke the build of the nxplayer as a library vs. a task. |
| |
| NuttX-7.31 Release Notes |
| ------------------------ |
| |
| The 131st release of NuttX, Version 7.31, was made on July 21, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-7.31.tar.gz and |
| apps-7.31.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - poll(): Removed all references to CONFIG_DISABLE_POLL. The |
| standard POSIX poll() can no longer be disabled. From Gregory Nutt. |
| - LWL console: Add support for OpenOCD 'Lightweight Link' protocol |
| between a target and debugger for use when you need a console but |
| the target doesn't have a spare serial port or other available |
| resource. From Dave Marples. |
| |
| * Network/Network Drivers: |
| |
| - Socket Options: Previous change removed some incorrect SO_LINGER |
| socket option functionality. SO_LINGER was always enabled if |
| CONFIG_NET_SOLINGER was selected. This change implements a proper |
| version of SO_LINGER. It is based on new logic to drain the |
| buffered TX data, integrated with network event notification system. |
| Supports notification when UDP or TCP write buffer becomes empty. |
| From Gregory Nutt. |
| - Telnet Driver: Handle ctrl events (SIGINT, SIGSTP). From |
| Valmantas Paliksa. |
| - Telnet Driver: I/O thread now offloads reading from socket |
| from client thread to the I/O thread. From Valmantas Palikša. |
| |
| * Wireless/Wireless Drivers: |
| |
| - GS2200M: Add support for Telit GS2200M Wi-Fi module From Masayuki |
| Ishikawa. |
| - GS2200M: Introduce CONFIG_WL_GS2200M_SPI_FREQUENCY. Also, changed |
| usleep(100) to up_udelay(100) to avoid invalid response. From |
| Masayuki Ishikawa. |
| - GS2200M: Add channel parameter for AP mode in gs2200m.c From |
| Masayuki Ishikawa. |
| |
| * Graphics/Video/Display Drivers: |
| |
| - Video Streaming: Add basic Video Stream and Capture implementation |
| based on the SPresence SDK code release From Alin Jerpelea. |
| - video/: Create video/ directory to hold non-driver video-related |
| logic. From Gregory Nutt. |
| - EDID: Add some initial EDID logic ported from FreeBSD. From |
| Gregory Nutt. |
| - EDID: Add logic to sort video modes by how close they are to the |
| preferred mode. This is part of the logic to pick the best possible |
| video mode. From Gregory Nutt. |
| - EDID/Video Modes: Separate EDID and from videomode management. |
| They really are separate things. From Gregory Nutt. |
| - EDID/Video Modes: Add debug functions to dump the EDID and |
| videomode content. From Gregory Nutt. |
| - VESA GTF: Bring VESA Generalized Timing Formula (GTF) from FreeBSD. |
| From Gregory Nutt. |
| - Video Modes: At some additional lookups from FreeBSD. Not |
| currently used in NuttX so ifdef'ed out for now. From Gregory Nutt. |
| - tda19988: Now uses the new common videomode structure of |
| include/nuttx/video/videomode.h as do other video components. From |
| Gregory Nutt. |
| - ILI9340: Add ILI9340 LCD Single Chip Driver. Required LCD driver |
| settings: LCD_MAXCONTRAST should be 255, but any value >0 and <=255 |
| will be accepted. LCD_MAXPOWER should be 1: 0=off, 1=on. From |
| Alin Jerpelea. |
| - LPM013M091A: Add JDI LPM013M091A LCD Driver. From Alin Jerpelea. |
| - ISX012: Add support for ISX012 Image sensor. From Alin Jerpelea. |
| |
| * Other Common Device Drivers: |
| |
| - SPI Interface: Added standard definitions for ADC SPI device ID. |
| From Daniel P. Carvalho. |
| - AK09911/AK09912: Add Asahi AK09911/AK09912 compass sensor over I2C |
| bus From Alin Jerpelea. |
| - AS726X: Add support for AS726X spectral sensor From Fabian Justi. |
| - BMI160: Add driver support for the Bosch BMI160 Inertial Measurement |
| sensor. This driver can be used with the BMI160 sensor connected |
| over SPI or I2C bus. From Alin Jerpelea. |
| - BMP280: Add Bosch BMP280 Barometic pressure sensor connected over |
| I2C bus. From Alin Jerpelea. |
| - INA3221: Adds INA3221_I2C_ADDRx macro helpers. From Anthony |
| Merlino. |
| - VL53L1x: Added support for VL53L1x TOF sensor. From Juan Flores. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ DMA: Add DMA support. From Abdelatif Guettouche. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT EHCI: Add i.MXRT EHCI driver. From Dave Marples. |
| - i.MXRT USDHC: Implements SDIO and Multi-card support for i.MXRT. |
| From Dave Marples. |
| - i.MXRT USDHC: Implements USDHC1 & 2 selection on the imxrt. If |
| only one port is active (either 1 or 2) it will always be numbered |
| as 0, if both are active then USDHC1 will be number 0, USDHC2 will |
| be 1. From Dave Marples. |
| - i.MXRT Serial: Add TIOCSINVERT ioctls. From Beat Küng. |
| - i.MXRT Serial: Implemented RS485 RX/TX switching and RTS/CTS flow |
| control for the IMXRT family. It has been tested on 1020 but I |
| don't see any reason for issues on any other family member. From |
| Dave Marples. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis Serial: Add UART signal inversion support From Beat Küng. |
| |
| * NXP LPC11xx: |
| |
| - LPC11xx: Support for the LPCXpresso-LPC1115 and for the LPC1115 |
| architecture in general was removed after NuttX-7.30. The LPC11 |
| port was never really used (to my knowledge) and was no longer |
| supported. A snapshot of the port is still available in the |
| Obsoleted repository. It can be brought back into the main |
| repository at any time if anyone is willing to provide support |
| for the architecture. From Gregory Nutt. |
| |
| * NXP LPC17xx Boards: |
| |
| - PNEV5180B: Add support for NXP Semiconductors' PN5180 NFC Frontend |
| Development Kit. This board is based on the NXP LPC1769 MCU. At |
| the moment there is just support for a minimal nsh configuration via |
| UART0. From Michael Jung. |
| - PNEV5180B: Add usbnsh configuration. This is basically the same as |
| the 'nsh' defconfig, but uses CDC/ACM as the NuttShell console |
| device. From Michael Jung. |
| - PNEV5180B: Adds NSH configuration with UART0 and eth0 via CDC/ECM |
| on USB device. From Michael Jung. |
| - PNEV5180B: Add new configuration includes a USB Composite Device |
| with both CDC/ACM and CDC/ECM. NuttShell provides a terminal via |
| CDC/ACM. A network interface (eth0) is provided via CDC/ECM. From |
| Michael Jung. |
| - PNEV5180B ROMFS: Auto-mount baked-in ROMFS image. Includes support |
| for linking a binary ROMFS image into the nuttx executable and for |
| mounting it during board bring-up. From Michael Jung. |
| - PNEV5180B PROTECTED: Add PROTECTED mode configuration with |
| NuttShell. From Michael Jung. |
| |
| * NXP LPC40xx: |
| |
| - LPC40xx: Add support for LPC40xx family chips. Renamed LPC17XX to |
| LPC17XX_40XX in directory, configuration, file names, etc., as |
| appropriate. Corrected a few peripheral definitions and pin |
| functions for the LPC17xx family. Added configuration options, chip |
| definitions, and additional pin functions for the LPC40xx family. |
| From jjlange. |
| |
| * NXP LPC40xx Boards: |
| |
| - LPC4088-Devkit: Added board configuration for Embedded Artists |
| LPC4088 Developer's kit. From jjlange. |
| - LPC4088-Quickstart: Added board configurations for Embedded Artists |
| LPC4088 Quickstart board. From jjlange. |
| |
| * NXP LPC54xx Boards |
| |
| - LPCXpresso-LPC54628: Enable DATE command in twm4nx1 and twm4nx2 |
| configurations. From Gregory Nutt. |
| |
| * Sony CXD56xx |
| |
| - CXD56xx: Adds (1) the HW pin configuration, (2) GPIO support for |
| CXD56xx, (3) GPIO interrupts, (4) clock support, (5) PMIC (Power |
| management integrated circuit) support (6) add a simple FIFO |
| scheduler that minimizes overhead, (6) Inter Core Communication. |
| From Alin Jerpelea. |
| - CXD56xx: Add Package Configuration. The CXD56xx can come in FCBGA |
| 185 pin or WLCSP 100 pin package. For each package we have to pick |
| the right pin setup. The default configuration is set to FCBGA 185 |
| pin package From Alin Jerpelea. |
| - CXD56xx: Add Power Management support From Alin Jerpelea. |
| - CXD56xx: (1) Add syscontrol, (2) Add the function to change the |
| clock speed, (3) Add pinctrl and clock ctrl functionality. From |
| Alin Jerpelea. |
| |
| * Sony CXD56xx Drivers: |
| |
| - CXD56xx USB: Add basic support for USB connectivity. From Alin |
| Jerpelea. |
| - CXD56xx SDHC: Add SDHCI driver for the CXD56xx. From Alin |
| Jerpelea. |
| - CXD56xx SPI: Add SPI support. From Alin Jerpelea. |
| - CXD56xx DMA: Add DMA support. From Alin Jerpelea. |
| - CXD56xx RTC: Add RTC support. From Alin Jerpelea. |
| - CXD56xx PWM: Add support for PWM. From Alin Jerpelea. |
| - CXD56xx Power Management: Add Power Management PROCFS support. From |
| Alin Jerpelea. |
| - CXD56xx Timer: Add Timer driver. From Alin Jerpelea. |
| - CXD56xx Watchdog Timer: Add watchdog timer support. From Alin |
| Jerpelea. |
| - CXD56xx UID: Add support to be able to read the HW UID. From Alin |
| Jerpelea. |
| - CXD56xx I2C: Add I2C support. From Alin Jerpelea. |
| - CXD56xx I2C: Add I2C character driver support. For testing |
| purposes, we use the CXD56_I2C_DRIVER to register the /dev/i2c[] |
| character devices. Add battery gauge and battery charger drivers. |
| Add SPI-based SP card support. From Alin Jerpelea. |
| - CXD56xx SCU: Add Sensor Control Unit (SCU); Use DMAC for reading |
| sensing data from SCU on CXD56xx chip. From Alin Jerpelea. |
| - CXD56xx ADC: Add ADC interface support. From Alin Jerpelea. |
| - CXD56xx eMMC: Add eMMC support for CXD56xx chip From Alin Jerpelea. |
| - CXD56xx Camera: Add driver for hardware image processor device to |
| enable the hardware image processor set CXD56_GE2D=true. From Alin |
| Jerpelea. |
| - CXD56xx CISIF: Add CISIF support to be able to use cameras. From |
| Alin Jerpelea. |
| - CXD56xx GNSS: Add GNSS device, add Geofence Support, add UART0 |
| interface. UART0 is an interface with hardware flow control in the |
| application subsystem. From Alin Jerpelea. |
| |
| * Sony CXD56xx Spresense Board: |
| |
| - Default Configurations: (1) We are using the framework to |
| initialize the CPU, (2) Enable PowerManager on SPresence board, (3) |
| Initialize the UART interfaces, (4) Enable clock management using |
| the CXD56 framework, (5) Use timerisr on the SPresence board, (6) |
| Enable USBDEV on Spresense board, (7) Enable SD Card support on |
| SPresence board, (8) Enable Mass Storage on Spresense board From |
| Alin Jerpelea. |
| - Default Configurations: Add support for RNDIS configuration. From |
| Masayuki Ishikawa. |
| - RTC: Enable RTC functionality on SPresence board From Alin |
| Jerpelea. |
| - SPI FLASH: Enable SPI Flash arch/arm/src/cdx56xx: (1) Group all |
| CXD56xx Options in one menu, (2) Add Storage Options menu and |
| Peripheral Support comment, (3) Add SPI Flash support From Alin |
| Jerpelea. |
| - Add SPI configuration for SPresence board. Enable PWM support on |
| SPresence board; The powermanager procfs is disabled by default and |
| need to be enabled by the CONFIG_CXD56_PM_PROCFS option. Timers can |
| be used on the SPresence board. Watchdog timer support also added. |
| From Alin Jerpelea. |
| - Add USERLED for SPresence board. From Alin Jerpelea. |
| - Enable I2CDEV for SPresence board. Add useful diagnostic LEDs on |
| the SPresence board. From Alin Jerpelea. |
| - Add support for Tilt GS2200M Wi-Fi module. From Masayuki Ishikawa. |
| - Remove SPI MMC/SD support and enable ADC support for SPresence |
| board. From Alin Jerpelea. |
| - Enable BMI160_I2C sensor over I2C on SPresence board. From Alin |
| Jerpelea. |
| - Add I2CTOOL support and extend GPIO for future use. Add delay |
| support for CXD56xx chip. For development is useful to register |
| I2C buses when the I2CTOOL is built. Enable GPIO interface on |
| the Spresense board. From Alin Jerpelea. |
| - Add use o the CXD56_I2C_DRIVER to register the /dev/i2c character |
| devices. Enable battery gauge and battery charger support. From |
| Alin Jerpelea. |
| - Enable UID functionality. To enable the UID functionality for |
| SPresence board set BOARDCTL_UNIQUEID in menuconfig. From Alin |
| Jerpelea. |
| - Add USBDEV_SETNOTIFYSIG signal ID. Set signal ID for notify USB |
| device connection status and supply current value. From Alin |
| Jerpelea. |
| - Register the procfs in the NSH configuration. This is a |
| configuration change in sync with the other ones. Enable |
| READLINE_CMD_HISTORY, enable by default SPI 4 and 5, and enable |
| SPI to keep all configurations in sync. From Alin Jerpelea. |
| - Add support for MSC and USB Composite device. Adds usbmsc |
| configuration. Spresense board does not have buttons and but a |
| template for gpio buttons that can be connected on the external |
| header From Alin Jerpelea. |
| - LCD: Add support for LPM013M091A LCD, add support for ILI9340 |
| LCD, add a new configuration to support an LCD. From Alin |
| Jerpelea. |
| - WiFi: Improve performance for webserver: (1) Enable SPI DMA for |
| both TX and RX, (2) Increase SPI clock speed from 4MHz to 10MHz, |
| (3) Increase buffer size for sendfile() from 512B to 1KBm abd (4) |
| Enable sendfile() for webserver. From Masayuki Ishikawa. |
| - MPY: Add MPY defconfig. From Alin Jerpelea. |
| - Update defconfigs rndis and wifi: Enable RTC and webserver with |
| directory listing support. Also, changed start year/month/day for |
| NuttX 2019. From Masayuki Ishikawa. |
| - Build nuttx.spk images. Enable nuttx.spk binary image that can be |
| flashed on SPresence board. From Alin Jerpelea. |
| - configs/SPresence: Add entry point for MPY. The entry point is |
| needed for the downstream projects based on SPresence. From Alin |
| Jerpelea. |
| - Enable internal flash storage for SPresence boards. The SmartFS |
| flash is mounted under /mnt/spif folder. From Alin Jerpelea. |
| - For compatibility with SDK we need to change the USER_ENTRYPOINT |
| in all configurations to spresense_main(). From Alin Jerpelea. |
| |
| * STMicro STM32: |
| |
| - STM32 Kconfig: Add MEDIUM_DENSITY selection. From Dave Marples. |
| - STM32 Kconfig: Add the missing STM32 LCD Clock Source Selections. |
| From Alan Carvalho de Assis. |
| - STM32G0: Initial support for STM32G0 family. From Mateusz Szafoni. |
| - STM32F0L0G0: Renamed directories STM32F0L0 to STM32F0L0G0 since |
| they now also supports the STM32G0 thanks to Mateusz Szafoni's |
| contribution From Gregory Nutt. |
| - STM32H7x3: Added ADC pins to pin map. From David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 PWM: Add support for all PWM modes. Add an interface to |
| change PWM mode. Refactor pwm_mode_configure(). STM32_PWM_CHANx |
| corresponds to the timer channel and STM32_PWM_OUTx corresponds to |
| the timer channel output. Add CHAN5 and CHAN6 to |
| PWM_TIMx_NCHANNELS. Calculate thePWM_TIMx_NCHANNELS if |
| CONFIG_STM32_PWM_MULTICHAN is selected. From Mateusz Szafoni. |
| - STM32 FSM/FSCM: Split the STM32 FMC/FSMC functionality. Makes FMC |
| it's own thing rather than piggy backing on the FSMC code. The |
| peripherals have a few utility functions and this commits lets you |
| have a common architectural functions rather than having duplicate |
| functions in each board implementation. From Jason Harris. |
| - STM32F7 DTCM: Add procfs register From Daniel Agar. |
| - STM32F7 GPIO: Add GPIO driver. Code is inspired from STM32F3- |
| Discovery and Nucleo-L476RG platforms. Tested on Nucleo-F767ZI. |
| From Phil Coval. |
| - STM32F7 Serial: This adds the ability to invert and swap RX/TX on |
| STM32F7 UARTs. I added the TIOCGINVERT as well to reserve the IOCTL |
| number, but did not implement it. This is the same as for |
| TIOCGSINGLEWIRE. From Beat Küng. |
| - STM32L4 CRS: Make STM32L4 CRS synchronization source board |
| configurable. From Juha Niskanen. |
| - STM32L4 HSI48: Enable CRS_CR_CEN with CRS_CR_AUTOTRIMEN. From |
| Jussi Kivilinna. |
| - STM32L4 I2C: Add support for 16 and 120 MHz timings. Board can use |
| HSI16 clock for I2C From Juha Niskanen. |
| - STM32L4 PWR: Enable PWR peripheral for setting USV. From Jussi |
| Kivilinna. |
| - STM32L4 RCC: Use Range 1 Boost mode if SYSCLK is higher than 80 |
| MHz. From Juha Niskanen. |
| - STM32L4 Serial: Add TIOCSINVERT and TIOCSSWAP ioctls. From Beat |
| Küng. |
| - STM32H7 ADC: Added ADC Driver, ADC clocking. From David Sidrane. |
| - STM32H7 Ethernet: Fix typo in define. From Pierre-Olivier Vauboin. |
| - STM32H7 PWM: Port PWM from STM32 From Mateusz Szafoni. |
| - STM32H7 QEncoder: Ported the QEncoder from F7 to H7. From Eduard |
| Niesner. |
| - STM32H7 Serial: Add TIOCSINVERT and TIOCSSWAP ioctls. Ensure |
| TIOCSSINGLEWIRE is atomic and UE disabled. From Beat Küng. |
| |
| * STMicro STM32 Boards: |
| |
| - Olimex-STM32-E407: Added BMP180 initialization and a configuration |
| to test the BMP180. From Juan Flores. |
| - Olimex-STM32-E407: Add DAC support, add IN219 support, add timer |
| driver support. From Juan Flores. |
| - Olimex-STM32-E407: Add support for MRF24J40 radio. From Gregory |
| Nutt. |
| - Axoloti: Adds initial support for the Axoloti sound/music |
| synthesizer board. Board is based on STM32F427 SoC. See |
| http://www.axoloti.com/. From Jason Harris. |
| - Nucleo-G071RB: Initial support for nucleo-g071rb. From Mateusz |
| Szafoni. |
| - Nucleo-L432KC: Add new configuration settings for CRS |
| synchronization to board.h. From Juha Niskanen. |
| - Nucleo-L432KC: Add support for testing the ina219 current sensor. |
| From Sebastien Lorquet. |
| - Nucleo-L452RE: Add new configuration settings for CRS |
| synchronization to board.h. From Juha Niskanen. |
| - Nucleo-144: Add ROMFS support. Image was generated using genromfs |
| tool. Tested on Nucleo-F767ZI. From Phil Coval. |
| - Nucleo-144: Add reset feature. Code is derives from STM32F4- |
| Discovery. It can be enabled using CONFIG_BOARDCTL_RESET From Phil |
| Coval. |
| - Nucleo-L476RG: (1) Add I2C tool to board init, (2) Add support for |
| AS726X spectral sensor From Fabian Justi. |
| - Nucleo-L496ZG: Add new configuration settings for CRS |
| synchronization to board.h. From Juha Niskanen. |
| - STM32L476VG-Disco: Add new configuration settings for CRS |
| synchronization to board.h. From Juha Niskanen. |
| - STM32L4R9AI-Disco: Add ksh config, some updates for I2C, SPI and |
| DFSDM support. From Juha Niskanen. |
| - Nucleo-H743ZI: Add ADC support. From David Sidrane. |
| - STM32F769I-Disco PWM: Enable PWM support for stm32f769i-disco |
| board. |
| - STM32L-Discovery: Add button support for stm32Ldiscovery. Add |
| chronometer board config. From Alan Carvalho de Assis. |
| |
| * TI AM335x: |
| |
| - AM335x Clock Module: Add clock module registers definition. Switch |
| to DMTIMER1 for systick. From Petro Karashchenko. |
| |
| * TI AM335x Drivers: |
| |
| - AM335x CAN, LCD: Add register description files for DCAN and LCD. |
| From Petro Karashchenko. |
| - AM355x I2C: Add register description files for I2C (plus various |
| improvements to the WDOG register definitions) From Petro Karashchenko. |
| - AM355x MCSPI: Add register description files for MCSPI. From Petro |
| Karashchenko. |
| - AM355x LCDC: This change brings in an initial LCD driver into the |
| AM335x architecture. Ported from FreeBSD. From Gregory Nutt. |
| - AM335x Framebuffers: Add logic to map the framebuffer to a non-cached, |
| non-buffered memory region. From Gregory Nutt. |
| - AM335x LCDC: Add logic to get/set the module reference clock. From |
| Gregory Nutt. |
| |
| * TI AM335x Boards: |
| |
| - Beaglebone-Black LCD: Add a configuration for bringing up the LCDC |
| driver. From Gregory Nutt. |
| - Beaglebone-Black LCD: Framework (only) for TDA19988 and LCD support |
| for Beaglebone Black. Can't use TDA19988 yet because there is no I2C |
| driver. In the mean time, support LCD initialization using a fixed, |
| configurable video mode. From Gregory Nutt. |
| |
| * ZiLOG z16f ZNeo: |
| |
| - z16f ZNeo: Add support for the latest 5.2.1 version of the ZDS-II |
| toolchain. From Gregory Nutt. |
| |
| * ZiLOG eZ80Acclaim!: |
| |
| - Integrate support for the newest eZ80 ZDSII 5.3.0 toolchain. From |
| Gregory Nutt. |
| |
| * ZiLOG eZ80Acclaim! Drivers: |
| |
| - eZ80 RTC: Integrate and verify the RTC driver From Gregory Nutt. |
| - eZ80 RTC: Add an RTC lower half driver. From Gregory Nutt. |
| |
| * ZiLOG eZ80Acclaim! Boards: |
| |
| - MakerLisp: Add initial support for the MakerLisp eZ80 board. Ref: |
| https://makerlisp.com/ From Gregory Nutt. |
| - MakerLisp: Add hooks needed by SPI driver. Move SPI MMC/SD chip |
| selected configuration from ez80_lowinit.c to here as is done in |
| other NuttX architectures. This enables support for multiple |
| devices on the SPI bus. From Gregory Nutt. |
| - MakerLisp: Add Smart Flash Programmer project. From Gregory Nutt. |
| - MakerLisp: Enable Procfs, RTC, SPI-based SD support, task name, NSH |
| data command in NSH configuration.. From Gregory Nutt. |
| - MakerLisp: Use .ztgt files from MakerLisp SDK. From Gregory Nutt. |
| - MakerLisp: Add a tiny FLASH-resident loader that will load and |
| start applications in Intel HEX format from an SD card. From |
| Gregory Nutt. |
| - MakerLisp: Bring in a new configuration to support execution |
| entirely out of external SRAM. From Gregory Nutt. |
| - MakerLisp: Add an sdboot configuration that will load .hex files |
| from the SD card. From Gregory Nutt. |
| - MakerLisp: Add a linker script to support copying the NuttX image |
| from FLASH into external SRAM. From Gregory Nutt. |
| - MakerLisp: The VGA display controller and keyboard controller come |
| up by default emulating a terminal with 'newline mode' on. That is |
| newlines expance to carriage-return, newline. This change turns that |
| mode off. From Gregory Nutt. |
| |
| * Libraries/Header Files: |
| |
| - include/cxx/cstddef: Add C11++ std::nullptr_t From junmin-kim. |
| - libc netdb: Implemented the netdb functions getnameinfo(), |
| getservbyport(), and getservbyport_r(). From Michael Jung. |
| |
| * Documentation |
| |
| - Applied a style sheet to static HTML files. Put the TOC of each |
| document to the side, where it made sense (in some documents the |
| TOC was actually inside a section so it wasn't possible). In some |
| cases the TOC is built with a table, in others with a <ul> element, |
| so I had to accommodate for this. I also didn't go into collapsing, |
| although this could really help for some long TOCs. From Matias N. |
| - Coding Standard: Add a brief section summarizing the major |
| differences between the NuttX C and C++ coding standards. This is a |
| stop-gap measure in lieu of having a real C++ coding standard. From |
| Gregory Nutt. |
| - Coding Standard: Update requirements for indenting C pre-processor |
| statements. From Gregory Nutt. |
| - Coding Standard: Small change discouraging the practice of |
| enclosing the value argument of 'return' statements in parentheses. |
| From Gregory Nutt. |
| - COPYING. Tools in the tools/ directory are not intended for binary |
| redistribution and may not all conform to BSD licensing. From |
| Gregory Nutt. |
| |
| * Tools: |
| |
| - tools/ocdconsole.py: OCD TCL interface changed after version 0.10 |
| of OpenOCD. This change allows the script to work with both the |
| older and newer TCL interface. From Dave Marples. |
| - tools/nxstyle.c: Tool depends on the file under test containing |
| "Private Functions" or "Public Functions" block comments. Emit an |
| error if neither are present in a C source. From Gregory Nutt. |
| - tools/nxstyle.c: Bandaid-up logic that detects left brackets on the |
| same line in global structure/enumeration types and initializers. |
| From Gregory Nutt. |
| - tools/nxstyle.c: No warning for declarations that begin in column 1 |
| within 'extern "C"'. This is because the 'extern "C"' is conditioned |
| on __cplusplus so the declarations are not normally indented. From |
| Gregory Nutt. |
| - tools/: Add spk binary format. The .spk binary format is used on |
| SPresence and other boards based on the CXD56 arch. To enable this |
| binary format set in your config CONFIG_CXD56_BINARY=y. From Alin |
| Jerpelea. |
| - tools/: Add flash_writer for CXD56 boards. This flash writter is |
| using the xmodem for firmware transfer for flashing please use: |
| 'tools/flash_writer.py -s -c /dev/ttyUSB0 -d -b 115200 -n nuttx.spk'. |
| From Alin Jerpelea. |
| |
| * apps/ General: |
| |
| - Removed all references to CONFIG_DISABLE_POLL. The standard POSIX |
| poll() can no longer be disabled. From Gregory Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/abntcodi: Adds test/demo program for ABNT CODI |
| library. From Alan Carvalho de Assis. |
| - apps/examples/webserver: Update to compile with |
| CONFIG_NETUTILS_HTTPD_SENDFILE=y. Also some configs such as |
| CONFIG_NETUTILS_HTTPDFILESTATS can be selected by menuconfig. |
| From Masayuki Ishikawa. |
| - apps/examples/chrono: Add chronometer apps example. From Alan |
| Carvalho de Assis. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/webserver: Add mp3 mime type to httpd.c. From |
| Masayuki Ishikawa. |
| - apps/netutils/webserver: Add directory listing to httpd. From |
| Masayuki Ishikawa. |
| - apps/netutils/webserver: Add web server info based on uname(). |
| From Masayuki Ishikawa. |
| |
| * Network Utilities: apps/wireless |
| |
| - apps/wireless/gs2200m: Add usrsock daemon for Tilt GS2200M Wi-Fi |
| module. From Masayuki Ishikawa. |
| - apps/wireless/gs2200m: Add channel parameter for AP mode. From |
| Masayuki Ishikawa. |
| |
| * Graphics: apps/graphics: |
| |
| - apps/graphics/nxglyphs: Add more modern looking button images for |
| the Twm4Nx CONTEMPORARY theme. From Gregory Nutt. |
| - apps/graphics/slcd: Adds a CSLcd class that will generate graphic |
| simulated segments of an SLCD display. From Gregory Nutt. |
| - apps/graphics/twm4nx: This change adds a calibration screen to |
| Twm4Nx. In addition to the Calibration screen port from NxWM, this |
| required extensions to the event handling logic to support (1) |
| receiving raw, uncalibrated touchscreen inputs, (2) shutting down |
| of externally controlled windows. From Gregory Nutt. |
| - apps/graphics/twm4nx: Move application-related files into different |
| directories to separate them from the core Twm4Nx files. From |
| Gregory Nutt. |
| - apps/graphics/twm4ndx: Compile out cursor support if we are using a |
| mouse. From Gregory Nutt. |
| - apps/graphics/twm4nx: Add an alternative COMPONTEMPORARY theme. |
| Still has some artifacts on the display. From Gregory Nutt. |
| - apps/graphics/twm4nx: Use custom CWidgetStyle to force Icon |
| background to match selected desktop background. From Gregory Nutt. |
| - apps/graphics/twm4nx: Add some definitions to support Themes. |
| Background image is now optional. From Gregory Nutt. |
| - apps/graphics/twm4nx: Add a configuration option to control the |
| number of buttons in one column of the Icon Manager. The Icon |
| anager no longer relies the default window width; now it |
| determines a preferred window width based primarily on the font |
| size. From Gregory Nutt. |
| - apps/graphics/tmw4nx: Add a CClock class that implements the |
| Twm4Nx digital clock based on the CSLcd simulated SLCD segments. |
| From Gregory Nutt. |
| - apps/graphics/twm4nx/README.txt: Add an overview of how to create |
| Twm4Nx applications. From Gregory Nutt. |
| |
| * Industry: apps/industry: |
| |
| - apps/industry/abnt_codi: Adds support for ABNT CODI library. This |
| is an energy meter protocol used in Brazil. From Alan Carvalho de |
| Assis. |
| |
| 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: |
| |
| - Semaphores: Fix a bad assertion in priority inheritance logic. |
| The comments state correctly that we cannot make any assumptions |
| about the number of holders of the semaphore, yet the code |
| asserts if there are any holders. This makes the code behave |
| closer to what the comments say. From Gregory Nutt. |
| - Memory Manager: Fix error that occurs when CONFIG_CPP_HAVE_VARARGS |
| is not defined. In that case, the arguments to the debug macro will |
| all be evaluated even though they are not used any variables that |
| are references must at least be defined. From Gregory Nutt. |
| - System Calls: Adapt the conditional compile logic on when to |
| include the vfork() syscall proxy and stub to the logic used for |
| vfork() itself. From Michael Jung. |
| - System Calls: Fixed SYS_mount syscall define when CONFIG_FS_READABLE |
| is undefined. From Joao Matos. |
| - waitpid(): In waitpid, remember to grab the exited child ptr. After |
| being unblocked in waitpid, the child pointer might be NULL. Modify |
| to use group_exitchild to get the pointer of recent exited child. |
| From Yang ChungFan. |
| |
| * File System/Block and MTD Drivers: |
| |
| - MMC/SD: Fixes bug where thread gets deadlocked due to recursive call |
| and addresses comment regarding events. When initializing the |
| MMCSD, if we are being told there is a card, but we fail to |
| initialize it, we should not re-register for an insertion event as |
| this will immediately cause us to call in again. Instead, we should |
| register for a removal event and wait for the card to be removed and |
| re-inserted. From Anthony Merlino. |
| |
| * Networking/Network Drivers: |
| |
| - UsrSock: Fix debug logs and remove DEBUGASSERT from |
| usrsockdev_do_request(). In a client mode, socket() will be the |
| first request for usrsockdev_do_request(). However, in a server |
| mode, the first request to accepted sockets will be recv() or other |
| which depend on applications. So I think we should remove thi |
| DEBUGASSERT from usrsockdev_do_request(). From Masayuki Ishikawa. |
| - ICMPV6 Autoconfig: Use ntohs() to convert IPv6 address from |
| network to host order int network debug output. From Bernd Walter. |
| - TCP Buffering: Fix TCP buffer send deadlock in iob_copyin() when |
| IOB buffers are exhausted and network lock is taken. From |
| Valmantas Paliksa. |
| - TCP Close: Fix TCP active close in inet_close.c. In previous |
| implementation, FIN packet was not sent when a socket is actively |
| closed (e.g. telnetd or webserver) without SO_LINGER. This issue |
| happens because the socket closing sequence waits for the |
| status.cl_sem only if lingering timeout is set. However, in many |
| server use-cases, SO_LINGER is not usually set and even in these |
| cases, FIN packet must be sent correctly. This changes the logic |
| in inet_close.c so that it can wait for status.cl_sem regardless |
| of SO_LINGER. Instead, if SO_LINGERis set, it waits for the |
| semaphore with timeout option. From Masayuki Ishikawa. |
| - UDP: Fix C89 compatibility problem. Empty initializers are not |
| permitted. Caused eZ80 build failure. From Gregory Nutt. |
| - Telnet: Fix a C89 non-compliance that was breaking the eZ80 build. |
| From Gregory Nutt. |
| |
| * Wireless/Wireless Drivers: |
| |
| - NRF24L01: Fix NRF24L01_NCMDS in ioctl.h. The last one in |
| nrf24l01.h is _WLCIOC(NRF24L01_FIRST + 15) From Masayuki Ishikawa. |
| - NRF24L01: Fix PIPENO/PKTLEN bitmask in RX FIFO header. In RX FIFO |
| header, the first byte should use 5 lsb to store PKTLEN and 3 msb |
| to store PIPENO. However, FIFO_PIPENO_SHIFT was set to 4 which |
| causes the lsb of pipe number to interfere with the received packet |
| size stored in the FIFO. This fix RX corruption when using pipe |
| number > 0. From Federico Braghiroli. |
| |
| * Graphics/Display Drivers: |
| |
| - Raising Windows: Fix a critical list handling bug in the graphics |
| system. When a lower-level window was raised while a model window |
| was in place, then list corruption could occur. From Gregory Nutt. |
| |
| * Common Drivers: |
| |
| - Serial: Limit the number of times that the poll semaphore is |
| incremented. From Dave Marples. |
| - USB Host: Remove duplicate const in USB Host files. From Adam |
| Porter. |
| - USB Host Composite: Class-specific descriptors were not available |
| if the interface is part of a composite device, since only interface |
| and endpoint descriptors are copied by usbhost_copyinterface(). |
| This change will copy any class-specific interface descriptors for |
| use in downstream class drivers. The loop was aborting due to |
| finding two interface descriptors back-to-back. From Adam Porter. |
| - USB Host Composite: The cfgdesc pointer was initialized after the |
| buffer had been advanced, so it was not pointing where it should. |
| The totallen operations at the end of the function ended up |
| overwriting memory belonging to the first copied interface |
| descriptor. From Adam Porter. |
| - USB MSC: Fix usbmsc_exportluns declaration. Fixes the following |
| error "...undefined reference to `usbmsc_exportluns'". From Alin |
| Jerpelea. |
| |
| * Architecture Common: |
| |
| - Rename all arch/<family>/src/<chip>/chip directories to |
| arch/<family>/src/<chip>/hardware. This eliminates a name collision |
| that is usually harmless but does cause problems at the time. The |
| problem is because the include path includes '.' and 'chip/.', |
| therefore an inclusion like '#include <chip/mcu_header.h' can be |
| ambiguous if a file named mcu_header.h exists in both at both |
| arch/<family>/src/<chip>/chip and at arch/<family>/src/chip/chip. |
| From Gregory Nutt. |
| |
| * Board Common: |
| |
| - Default Configurations: Update configurations for changes to |
| apps/netutils/netinit configuration. MAC address configuration |
| was represented by type long long. That is a problem for |
| architectures that do not support type long long. Replaces by |
| two long configuration items. From |
| Gregory Nutt. |
| - Default Configurations: Change CONFIG_NSH_MACADDR to |
| CONFIG_NETINIT_MACADDR From Masayuki Ishikawa. |
| - Default Configurations: Fix mac address settings for RNDIS. |
| Recently CONFIG_NETINIT_MACADDR_2 and CONFIG_NETINIT_MACADDR_1 were |
| newly introduced instead of CONFIG_NETINIT_MACADDR. This change |
| conforms to this change. From Masayuki Ishikawa. |
| - Default Configurations: Kconfig files should not select |
| SCHED_WORKQUEUE since that is really only is only the logical OR if |
| SCHED_LPWORK and SCHED_HPWORK. Selecting it has no effect other |
| than to produce an erroneous configuration. From Gregory Nutt. |
| - Linker Scripts: Make sure sections are aligned to 32-bits in all LD |
| linker scripts. This fixes and issues noted specifically for the |
| SAMD21 by Bernd Walter, but should be applicable to all other LD |
| scripts as well. |
| - Linker Scripts: Add . = ALIGN(4); before every .data section, |
| add . = ALIGN(4); before every ARM.extab section, add . = ALIGN(4); |
| before every definition of __exidx_start, add . = ALIGN(4); before |
| every .init_section. Convert TABs to spaces in all ld linker |
| scripts. This just makes things easier to modify with scripts |
| because the files are more consistent. From Gregory Nutt. |
| - configs/Board.mk: Cannot call $(AR) directly. That works only with |
| GCC. It must, instead use the ARCHIVE command from Config.mk as do |
| other Makefiles. From Gregory Nutt. |
| |
| * MIPS32: |
| |
| - Fix a copy-paste error. On vfork, the GP register was being set to |
| the new SP value vs. the context GP value. NOTED in Bitbucket issue |
| 155. From Gregory Nutt. |
| - An older commit used CP0 register definitions that were not defined |
| in the NuttX cp0.h header file. Probably these were from the |
| Microchip hacked up GCC toolchain but are not generally available |
| outside that toolchain. Fix: Add definitions to NuttX cp0.h header |
| file. From Gregory Nutt. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ GPIO: Use LAT instead of PORT when writing. From Ouss4. |
| |
| * Microchip/Atmal SAM3/SAM4 Drivers: |
| |
| - SAMD2/L2: Correct TC register bit field definitions used with |
| TC_CTRLBCLR and TC_CTRLSET registers. From Bernd Walter. |
| |
| * NXP LPC17xx Boards: |
| |
| - LPC17xx PROTECTED: On the LPC1769 there are two 16 KiB AHB SRAM |
| blocks, which are mapped back to back at physical address 0x2007C000 |
| and 0x20080000 (i.e. right below and right above a 512 KiB boundary). |
| Memory from those two blocks is considered continuous when assigned |
| to a heap. In the protected build mode, when the memory protection |
| unit is used, though, it must be split into two MPU regions. This |
| is because MPU regions must be naturally aligned, and the 32KiB |
| continuous address space of the two 16KiB AHB SRAM blocks does not |
| start at an address divisible by 32KiB. The only other |
| configurations that use protected build mode on lpc17xx are |
| currently open1788/knsh and open1788/knxterm. The LPC1788 has the |
| AHB SRAM blocks mapped more sanely (from an MPU region point of |
| view), which is probably why no problems emerged here. Both still |
| compile with my change and other than wasting an MPU region (which |
| would otherwise remain unused) should work fine. That said, I |
| have no hardware to confirm. From Michael Jung. |
| |
| * NXP LPC54xx Boards: |
| |
| - LPCXpresso-LPC54628: Modify the TWM configurations to properly |
| inject keyboard data. This way, in the case of multiple NxTERMs, |
| only the NxTerm at the top of the hierarchy gets the keyboard input. |
| Otherwise, it is not possible to use multiple NxTerms with each the |
| keyboard input going to a different NxTerm window. From Gregory |
| Nutt. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT Serial: Fix serial TIOCSINVERT From David Sidrane. |
| - i.MXRT USDHC: USDHC Stopgap Fix for build breakage From David |
| Sidrane. |
| - i.MXRT USDHC: Fix compiler error for CONFIG_IMXRT_USDHC1 && |
| !CONFIG_IMXRT_USDHC2 From David Sidrane. |
| |
| * On Semiconductor LC823450: |
| |
| - LC823450-XGEVK: Remove CPU assignment for LPWORK. This change will |
| reduce audio under-run when running dvfs auto mode. From Masayuki |
| Ishikawa. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - EFM32 USB Host: Apply Adam Porter's STM32 fix to EFM32 which has |
| the same IP. From Gregory Nutt. |
| |
| * STMicro STM32: |
| |
| - STM32F1 Pinmap: Fix names for complementary PWM outputs From |
| Mateusz Szafoni. |
| - STM32L4: If SRAM3 is used as heap, do not power it off in stop 2 |
| mode. From Juha Niskanen. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 ADC: Fix a compilation error when verbose analog debugging is |
| enabled for the STM32 ADC. not all STM32s have an SQR4 register. |
| From rajan gill. |
| - STM32 PWM: Fix pulse count for the number of counts greater than 128. |
| From Mateusz Szafoni. |
| - STM32 USB OTG FS/HS Host: In stm32_ctrlout() in the HS and FS host |
| drivers, the data buffer isn't sent. This patch passes the buffer |
| and buflen to the stm32_ctrl_senddata() function. With this change, |
| I am able to send MBIM control messages to my USB modem, and read the |
| response. From Adam Porter. |
| - STM32L4 USB: Fix USB device PMA accesses. USB PMA accesses are |
| done as 16-bit words on STM32L4 instead of 32-bit words on STM32L1. |
| From Jussi Kivilinna. |
| - STM32L4 OTG FS/HS: Fix constant using in comparison to determine |
| endpoint is interrupt type. From Adam Porter. |
| - STM32F7 OTG FS/HS: Fix constant using in comparison to determine |
| endpoint is interrupt type. From Adam Porter. |
| - STM32H7 PWM: Fix pulse count for the number of counts greater than 128. |
| From Mateusz Szafoni. |
| - STM32H7 Serial: Fix error when SINGLEWIRE or |
| CONFIG_STM32H7_SERIALBRK_BSDCOMPAT defined. From David Sidrane. |
| - STM32H7 SPI: Correct a typo in condition compilation. From |
| Jonathan Richner. |
| - STM32H7 Timer: Fixed compile errors with TIM13, TIM14, TIM7. From |
| David Sidrane. |
| - STM32H7 USB OTG FS/HS: Fix constant using in comparison to determine |
| endpoint is interrupt type. From Adam Porter. |
| - STM32G0 Serial: Fix STM32G0 error when SINGLEWIRE or SERIALBRK_BSDCOMPAT |
| defined (it reflects previous changes in STM32H7). From Mateusz Szafoni. |
| |
| * STMicro STM32 Boards: |
| |
| - Nucleo-L432KC: Shorten some long lines, fix i2c pinout. From |
| Sebastien Lorquet. |
| - STM32L476VG-Disco: Fix an error in defconfig files because a line |
| in the rcS file was longer than the configured NSH command line. |
| From Juha Niskanen. |
| - STM32L4R9AI-Disco: Fix an error in defconfig files because a line |
| in the rcS file was longer than the configured NSH command line. |
| From Juha Niskanen. |
| - OmnibusF4: Correct naming of a configuration variable for ROMFS. |
| From Phil Coval. |
| - Olimex-STM32-E407: Change initialization to match the way it is |
| done with other boards. From Gregory Nutt. |
| - Olimex-STM32-E407 SPI: Add SPI initialization logic. From Juan |
| Flores. |
| - STM32F4-Discovery ROMFS: Missing colon in declaration of local |
| variable. From Phil Coval. |
| - STM32F4-Discovery ROMFS: Correct naming of a configuration variable |
| for ROMFS. From Phil Coval. |
| - STM32F4-Discovery Build: Fix .ARM.exidx section overlap Source: |
| https://stackoverflow.com/questions/30778614/arm-none-eabi-ld-section-arm-exidx-overlaps-section-data. |
| From Alan Carvalho de Assis. |
| - STM32F4-Discovery PROTECTED: Fix a problem with undefined symbol |
| 'abort' from GCC library in PROTECTED build. Fix by moving libgcc |
| into recursive archive group between --start-group and --end-group. |
| Other kernel/Makefiles suffer from this same issue From Gregory |
| Nutt. |
| - Nucleo-H743ZI SPI: Correct typos in function naming. From Jonathan |
| Richner. |
| |
| * TI AM335x: |
| |
| - AM335x SYSCLK: Add a function to return a frequency of the system |
| clock. From Gregory Nutt. |
| - AM355x CM: Fix a typo in a macro name. From Gregory Nutt. |
| - AM355x LCD: Fix a few typos. Add things needed by the LCDC driver. |
| From Gregory Nutt. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva Ethernet: Add a workaround for tiva with qemu. With qemu, |
| tiva_ifup() hangs because Ethernet link status can not be set |
| correctly. This change is a workaround to avoid this issue. From |
| Masayuki Ishikawa. |
| |
| * TI Tiva Boards: |
| |
| - TM4C1294-Launchpad: Fix syntax error in oocd.sh script. From |
| Nathan Hartman. |
| |
| * ZiLOG Common: |
| |
| - z80: up_addregion() must be prototyped in nuttx/mm/mm.h, not |
| up_internal.h. Various name changes to better conform to the coding |
| standard, naming conventions, and use by other architectures. From |
| Gregory Nutt. |
| |
| * ZiLOG Z80 Boards: |
| |
| - z80sim: Remove unused function up_earlyserialinit() from serial |
| driver. From Gregory Nutt. |
| |
| * ZiLOG z16f ZNeo: |
| |
| - z16f ZNeo: Replicate build changes make for eZ80 and z8 for ZNeo. |
| From Gregory Nutt. |
| - ZNeo compile fixes: Fix misuse of FAR which makes a difference on |
| this platform. Be consistent in use of WDOG_ID type. ZDS-II doesn't |
| like auto-conversions of struct wdog_s * to WDOG_ID (which is type |
| struct wdog_s *). From Gregory Nutt. |
| |
| * ZiLOG eZ80Acclaim!: |
| |
| - eZ80: Fix eZ80 compile problems due to New ZDS-II toolchain and |
| ongoing bit rot due to non-C89 code creeping into the core OS. From |
| Gregory Nutt. |
| - eZ80: Fix some backward conditional logic in Make.defs. From |
| Gregory Nutt. |
| - eZ80: Fix a logic error in vector initialization. From Gregory Nutt. |
| |
| * C Library/Header Files: |
| |
| - signal.h: Fix a C89 compliance problem that cause the eZ80 build to |
| fail. Empty structure and unions are not accepted by the compiler. |
| From Gregory Nutt. |
| - wqueue.h: Allow definitions even if work queues are not enabled. |
| This solves build failures when work queues are not enabled. From |
| Gregory Nutt. |
| - fixedmath.h: Regarding the single precision float to/from fixed |
| point conversions in fixedmath.h, I believe the floating point |
| literals should be appended with the letter 'f' to avoid (expensive) |
| conversions from single to double precision, and thereby also avoid |
| (expensive if done in SW) double point arithmetic (which is what is |
| happening upon inspection of my disassembly). From rajan gill. |
| |
| - stdio: Fix long long usage in all of the newer printf-related |
| logic: The selection CONFIG_LIBC_LONG_LONG must be ignored if the |
| architecture does not support long long types. From Gregory Nutt. |
| - gm_time_r(): Spurious reorganization of a loop in gm_time_r() to |
| work around and ZDD-II internal compiler error. Might be a little |
| bigger now, but is also probably a more structured use of C. From |
| Gregory Nutt. |
| - Debug: For platforms whose CPP tool does not support a variable |
| number arguments to pre-processor macros, we may still need to build |
| the debug functions even when CONFIG_DEBUG_FEATURES is not selected. |
| For example, __alert() may be needed if CONFIG_ARCH_STACKDUMP is |
| set. From Gregory Nutt. |
| |
| * Tools: |
| |
| - tools/nxstyle.c: Fix error in conditional logic that was preventing |
| detection bad brace alignment. Add logic to handle alignment of |
| braces in data initializers which following slightly different |
| indentation rules. From Gregory Nutt. |
| - tools/mkexport.sh: The mcu sub-directory chip/ was renamed to |
| hardware/ in late May of 2019. The mkexport.sh script that copies |
| these files was not updated, however, until now. Noted by Alin |
| Jerpelea. From Gregory Nutt. |
| |
| * NSH Library: apps/nshlib: |
| |
| - apps/nshlib: Fix all places where cle() and readline() are used. |
| readline() returns EOF on a failure. cle() returns a negated errno |
| value. Checking only for EOF causes failures to be missed (and |
| infinite loops ensuing). From Valmantas Paliksa. |
| - nshlib/nsh_parse.c: Fix a warning about an uninitialized variable |
| from the ZDS-II compiler. From Gregory Nutt. |
| - apps/nshlib/nsh_ddcmd.c: Seemingly nonsense change but somehow |
| works around a compilation error using the ZDS-II toolchain. It |
| was claiming that vtbl was undefined indd_outfopen(). From Gregory |
| Nutt. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/netinit: MAC address configuration was represented |
| by type long long. That is a problem for architectures that do not |
| support type long long. Replaces by two long configuration items. |
| From Gregory Nutt. |
| - apps/netutils/telnetd/telnetd_daemon.c: Fix a C89 violation that |
| caused the eZ80 build to fail. From Gregory Nutt. |
| - apps/netutils/json: Removed. Replaced with apps/netutils/cjson. |
| From Gregory Nutt. |
| |
| * Graphics Utilities: apps/graphics: |
| |
| - apps/graphics/twm4nx: Fix an uninitialized variable that was |
| causing toolbar buttons to randomly come up enabled or disabled. |
| Remove some unused event definitions. From Gregory Nutt. |
| - apps/graphics/twm4nx: Fix a calibration screen startup issue. |
| Make an initial calibration screen optional. From Gregory Nutt. |
| - apps/graphics/twm4nx: Revise logic to detect clicks on the |
| background image. The original implementation had some side |
| effects. From Gregory Nutt. |
| - apps/graphics/twm4nx: Remove some remaining stuff from TWM that |
| was never used. Menus need to close after the 'terminal' selection |
| is made. Otherwise, the menu can become buried under a newly open |
| menu and not easily recovered. From Gregory Nutt. |
| - apps/graphics/twm4ndx: Add a 'critical' bit to the eventID. While |
| resizing, all events will be ignore except those marked critical. |
| From Gregory Nutt |
| - apps/graphics/twm4nx: CBackground now brings up the main menu if |
| the background image is clicked. This makes the behavior the same |
| across all of the background except when an icon is clicked. From |
| Gregory Nutt. |
| - apps/graphics/twm4nx: Fix a bug in placement of icons on the |
| desktop. When many windows are displayed, a bug in the looping logic |
| could cause an infinite loop. From Gregory Nutt. |
| - apps/graphics/twm4nx: Fix some errors found when enabling NX |
| keyboard support. The most important being that the mouse and |
| keyboard drivers need to be opened non-blocking. From Gregory Nutt. |
| |
| NuttX-8.1 Release Notes |
| ------------------------ |
| |
| The 132nd release of NuttX, Version 8.1, was made on September 14, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-8.1.tar.gz and |
| apps-8.1.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/nuttx/downloads |
| https://bitbucket.org/nuttx/apps/downloads |
| |
| Both may be needed (see the top-level nuttx/README.txt file for build |
| information). |
| |
| The major release version number is only incremented when there is a major |
| change to the OS that makes it more-or-less incompatible with preceding |
| versions. This release bumps the major version number from 7 to 8 due |
| primarily to a major reorganization in the what was the configs/ directory |
| in nuttx-7.31. That directory has been renamed boards/ and now has a |
| directory structure that mirrors the organization of the arch/ directory |
| for the most part: |
| |
| board/ - Holds all board-related information |
| board/<arch> - Holds board-related information for all boards that use |
| the same CPU architecture. For example, all ARM-based boards will be |
| found under board/arm |
| board/<arch>/<chip> - Holds board-related information for all boards |
| that use the same MCU chip family. For example, all STM32-based |
| boards will be found under board/arm/stm32 |
| board/<arch>/<chip>/<board> - Holds board-related information for a |
| specific board. This is analogous to the configs/<board> directory in |
| nuttx-7.31. So, for example, the STM32F4-Discovery board support that |
| was at configs/stm32f4disovery can now be found under |
| boards/arm/stm32/stm32f4discovery. |
| boards/<arch>/<chip>/<board>/<configs> - All configurations for a |
| specific board can now be found together in this configs/ |
| subdirectory. So, continuing the example, the STM32F4-Discovery NSH |
| configuration can now be found at |
| boards/arm/stm32/stm32f4discovery/configs/nsh. |
| |
| In additional, common MCU logic can be found at board/<arch>/<chip>/common |
| and MCU common drivers can be found at board/<arch>/<chip>/common. Related |
| changes include changes to tools/, comments, and documentation that depend |
| on the board directory structure. |
| |
| This re-organization is the work of Alin Jerpelea. Not only did Alin do |
| this major directory re-organization, but he ran the code standard |
| compliance tool and corrected every .c and .h file under boards/ so that |
| they all correctly follow the NuttX coding style. These changes were very |
| extensive and, hence, will not be addressed individually in the ReleaseNotes. |
| |
| You have to give Alin credit for his effort to take on really big jobs and |
| stick with it until it is finished. Kudos! |
| |
| A more constrained re-organization of the drivers/ directory was also |
| contributed by Augusto Fraga Giachero. Augusto reorganized some driver |
| directories to make better functional associations and also to make space |
| for a new set of RF-related drivers. |
| |
| Additional new features and extended functionality: |
| --------------------------------------------------- |
| |
| * Core OS: |
| |
| - POSIX Message Queues: Add a test to verify that message queue is |
| closed by the same task group that opened it. If not, then list |
| corruption would result. This test is only performed if |
| CONFIG_DEBUG_FEATURES is enabled since it should not normally be an |
| issue: It would be a strange programming practice to open a |
| message queue in open task group, then close it in another. From |
| ???. |
| - Signal Notifications: Add configuration option to select either the |
| high-priority or low-priority work queue for SIG_EVTHREA |
| notifications. From ligd. |
| - System Calls: In order to support built-in in function in protected |
| mode, a task_spawn() system call must be supported. task_spawn() |
| and posix_spawn() are NuttX OS interfaces. In PROTECTED and KERNEL |
| build modes, then can be reached from applications only via a system |
| call. Unfortunately this is overly complex because there is a (soft) |
| limit of 6 parameters in a system call; task_spawn has seven |
| parameters. This is a soft limit but still difficult to extend |
| because it involves assembly language changes to numerous |
| architectures. Better to get more creative. Rather than extend the |
| maximum number of parameters across all architectures, I opted |
| instead to marshal the seven parameters into a structure and pass |
| only a single parameter: A pointer to the structure containing the |
| seven marshaled parameters. From Gregory Nutt. |
| - /etc/passwd and /etc/group: Improve the format of the /etc/passwd |
| file as used in the sim:nsh configuration. It is now a little |
| more similar to other systems and includes user and group IDs. Add |
| also an /etc/group file to support future testing. From Gregory |
| Nutt. |
| - User/Group IDs: Implement 'real' setuid, getuid, setgid, and getgid |
| interfaces is so configured (otherwise fall back to stubs that |
| support only the 'root' user ID and group. Once set, these IDs will |
| be inherited by all child task groups. From Gregory Nutt. |
| - Debug Output: Add debug macros for contactless. The various |
| contactless device drivers currently define device specific debug |
| macros within their local header files. This patch adds generic |
| ctls[info|warn|err] macros for the overall contactless subsystem to |
| be used in future drivers. Ported the existing contactless device |
| drivers to use these generic logging macros and fixed some logging |
| bugs along the way. From Michael Jung. |
| - IOB instrumentation. Introduces producer/consumer id to every IOB |
| call. This is so that the calls can be instrumented to monitor the |
| IOB resources and to collect usage statistics. From Anthony |
| Merlino. |
| - IOB ProcFS: Adding ProcFS support at /proc/iobinfo to show the data |
| collected from the IOB instrumentation. From Anthony Merlino. |
| - Versioning: Report GIT information via ProcFS. GIT info reported: |
| branch, version, GIT hash, hostname, user, build date. Integrates |
| into existing .version and ProcFS. From David Alessio. |
| |
| * File System/Block and MTD Drivers: |
| |
| - BinFS: The BinFS file system uses the same built-in library and |
| built-in arrays as does NSH. The built-in arrays are simple name- |
| value pairs that map built-in function names with the user-space |
| entry point. In the FLAT build, the built-in arrays are available |
| everywhere via the backdoor left open by the FLAT address space. |
| In the PROTECTED build, however, the kernel must maintain its own |
| reference to the user-space built-in array. This commit adds those |
| kernel globals and a new boardctl(BOARDIOC_BUILTINS) that can be |
| used by applications to the provide the built-in list reference to |
| the kernel. From Gregory Nutt. |
| - MMC/SD: Added support for MMC (eMMC) bigger than 2 GB (Tested with |
| IMXRT1050EVKB and samsung eMMC 16GB). |
| - AT24CSxx: Register a character driver for UUID of AT24CSxx chips. |
| Allows the UUID to read as a file or displayed from an nsh prompt with: |
| nsh> hexdump /dev/eeprom.uuid From David Alessio. |
| - Macronix FLASH: Add support for 4-byte addressing on >128Mb |
| Macronix flash parts From jjlange. |
| - MX25Rxx: Add support for 512B sectors. From Simon Piriou. |
| - SST26: Accept the 16MBit Flash when reading the JEDEC-ID at |
| initialization time. From Ouss4. |
| |
| * Network/Network Drivers: |
| |
| - IPv4 Options: Now handles reception of IPv4 packets with larger |
| IPv4 headers containing options. From Gregory Nutt. |
| - Sockets: Re-order the content of all address-family socket |
| 'connection' structures so that they begin with a common prologue. |
| This permits better use of logic for different address family |
| types. From Gregory Nutt. |
| - TCP: Make RTO and WAIT_TIME configurable. This fix is not really |
| correct: TCP RTO really should be calculated dynamically for each |
| TCP connection: http://sgros.blogspot.com/2012/02/calculating-tcp-rto.html. |
| From zhangyuan7. |
| - IP Forwarding: Check if interface is up early on when forwarding to |
| avoid extra work. As noticed in a previous wireless commit, when |
| forwarding is enabled and a packet comes in, the packet is attempted |
| to be sent on each other netdev without regard for whether it is in |
| the UP state. Of course this is eventually caught, but it can be |
| caught earlier to avoid unnecessary work, especially in the 6LoWPAN |
| case where a useless packet conversion will occur. From Anthony |
| Merlino. |
| - RNDIS: Expose option to change the number of write requests that |
| can be in flight. From Anthony Merlino. |
| - GS2200M: Add UDP support. From Masayuki Ishakawa |
| - GS2200M: Implement GS2200M_IOC_IFREQ IOCTL command. From Masayuki |
| Ishikawa. |
| - GS2200M: Enable NuttX's DHCP client instead of GS2200M's DHCP |
| client. From Masayuki Ishikawa. |
| - GS2200M: GS2200M now supports SIOCGIFHWADDR From Masayuki |
| Ishikawa. |
| |
| * Wireless/Wireless Drivers: |
| |
| - IEEE802.15.4 Network Driver: Allow 64-bit prefix to be configurable |
| when auto-configuring the IPv6 address during bring-up. Previously, |
| only the link-local prefix fe80::/64 was used. Also, put the |
| network in the DOWN state at the end of initialization. From |
| Anthony Merlino. |
| - IEEE 802.15.4 MAC: Adds support for energy detect. Adds support |
| for energy detect by introducing a new radio call/callback, as the |
| PHY layer is required to perform the energy detect. From Anthony |
| Merlino. |
| - IEEE 802.15.4 MAC: Adds support for getting/setting |
| macMaxFrameRetries via IOCTL. Add get support for rxonidle |
| attribute From Anthony Merlino. |
| - IEEE 802.15.4 MAC: Move the global iobuffer into the macnet struct |
| so that more than one macnet device can exist. From Anthony |
| Merlino. |
| - IEEE 802.15.4 MAC: Defer handling of extracting association |
| response to LPWORK queue. From Anthony Merlino. |
| - IEEE 802.15.4 Radios: Support dynamic FCS length. Adds |
| IEEE802154_ATTR_PHY_FCSLEN. This change introduces |
| IEEE802154_ATTR_PHY_FCSLEN which the radio layer can support to |
| set/get the FCS length that's added to the end of the frame. One |
| use case, in promiscuous mode, is to add back in the FCS of the |
| received frame by increasing the iob->io_len by the FCS length. |
| From Anthony Merlino. |
| - Xbee: Support "WR" AT command for writing parameters to non- |
| volatile memory. From Anthony Merlino. |
| - Xbee: Add configuration option for setting the default prefix |
| to use when bringing up the network and setting the IP address. |
| From Anthony Merlino. |
| |
| * Other Common Device Drivers: |
| |
| - RTC: If the RTC time is successfully set, then update the current |
| system time to match. From ligd. |
| - ADT7320: Add support for the ADT7320 temperature sensor. From |
| Augusto Fraga Giachero. |
| - DAC7554: Add support to the DAC7554 digital-to-analog converter. |
| From Augusto Fraga Giachero. |
| - DAT-31R5-SP+: Add support to the DAT-31R5-SP+ digital attenuator. |
| Creates a the new device driver directory drivers/rf/ to support |
| drivers related to RF peripherals. It also adds support for the |
| DAT-31R5-SP+ digital attenuator. From Augusto Fraga Giachero. |
| - ISL29023: Add basic driver of ISL29023 ambient light sensor. The |
| basic driver can set operational mode, range, and resolution. It |
| can also read lux value in continuous mode. Interrupt and the alarm |
| is not implemented. From Matous Pokorny. |
| - SHT3x: Add Sensirion SHT3x driver. From Markus Bernet. |
| |
| * Simulator: |
| |
| - Simulator Build: Even though the simulation has no "chips", it |
| needs to have CONFIG_ARCH_CHIP and chip sub-directories. Otherwise, |
| we would have to treat it as a special case in the build system |
| after the changes to the boards/ directory. From Gregory Nutt. |
| |
| * Microchip PIC32MZ: |
| |
| - PIC32MZ. Make the PLL input clock configurable. From Ouss4. |
| |
| * ARMv7-M |
| |
| - Add ARMv7-M setjmp/longjump functions. From David S. Alessio. |
| |
| * NXP i.MXRT: |
| |
| - i.MXRT Clocking: Enable TRACE clocks if the divider has been |
| defined in the board's board.h file. From Dave Marples. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT QEncoder: Adds quadrature encoder driver for IMXRT. From |
| Nicholas Chin. |
| - i.MXRT uSDHC: This change completes SDIO support for IMXRT, and |
| also adds support for WiFi using the AP6212A module based on Simon |
| Piriou's rather excellent work. The patch should also address |
| DavidS's concern about width setting for USDHC1 and 2. Testing of |
| the WiFi is minimal so far but functionality is proven. I'm |
| specifically not happy that the driver doesn't recover elegantly |
| from a DMA data checksum failure, but that is an issue that can be |
| dealt with in due course ... I'm trying to get the rest of the |
| interfaces fleshed out and the hardware proven so it can go for pre- |
| production build. I _think_ there's only Bluetooth and USB-device |
| left to implement now. From Dave Marples. |
| - i.MXRT uSDHC: IMXRT uSDHC driver cmd line reset logic modified. |
| From Ivan Ucherdzhiev. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis Serial: Add possibility to specify pull-up instead of |
| open drain for serial single-wire mode. From Beat Küng. |
| |
| * NXP LPC17xx/40xx: |
| |
| - LPC17xx/40xx Build: Cortex-M system reset is applicable to |
| LPC17xx/40xx too. From Pavel Pisa. |
| |
| * NXP LPC17xx/40xx Drivers: |
| |
| - LPC17xx/40xx Ethernet: Follow the procedure listed in the |
| LPC176x/5x User Manual when reading from and writing to the PHY's |
| registers (section 10.11.14). I couldn't see any behavioral change |
| after this commit, but nonetheless is a good practice to follow the |
| manufacturer's recommended procedure. From Augusto Fraga Giachero. |
| |
| * NXP S31K1xx: |
| |
| - Added architecture support for the NXP S32K1xx family. Basic |
| support includes the boot up logic, clock configuration, LPUART |
| console, Systick timer, GPIO controls, and eDMA (unverified). |
| |
| * NXP S31K1xx Drivers: |
| |
| - S32K1xx eDMA Leverage eDMA logic from i.MXRT to S32K1XX. Appears |
| to be the same IP but with fewer channels and features than the |
| i.MXRT implementation. From Gregory Nutt. |
| - S32K1xx LPUART: Bring in the LPUART from i.MXRT. It is the same |
| IP. From Gregory Nutt. |
| - S32K1xx SysTick: Bring in Cortex-M0+ SysTick and interrupt handling |
| from samd2l2; bring in Cortex-M4F Systick and interrupt handling |
| from LPC54xx. From Gregory Nutt. |
| - S32K1xx GPIO: Bring in GPIO logic from Kinetis. Looks like similar |
| IP. From Gregory Nutt. |
| - S32K1xx Ethernet: Unverified port of the i.MXRT Ethernet driver to |
| the S32K1xx. The i.MXRT uses the same IP. From Gregory Nutt. |
| - S32K1xx LPSPI and LPI2C: Brings in the LPSPI and LPI2C peripheral |
| drivers from the i.MXRT which used the identical IP. From Gregory |
| Nutt. |
| |
| * NXP S31K1xx Boards: |
| |
| - S32K118EVB. This commit adds initial board support for the NXP |
| S32K118EVB development board. Currently supports only a minimal |
| NSH configuration. From Gregory Nutt. |
| - S32K118EVB: Implement board support for on-board LEDs and buttons. |
| This is taken from the Freedom-K66f with has the same LED and |
| button configuration as the S32K116EVB and uses the same GPIO IP. |
| LEDs, but not buttons, have have been verified. From Gregory Nutt. |
| - S32K146EVB: Adds initial board support for the S32K146EVB |
| development board. Currently supports a NSH configuration with a |
| richer feature set than the minimal configuration of the S32K118EVB. |
| From Gregory Nutt. |
| - S32K146EVB: Add support for execution out of SRAM. This is helpful |
| for bring-up when you want to avoid putting a lethal image in FLASH. |
| From Gregory Nutt. |
| - S32K148EVB: Add support for the NXP S32K148EVB development board. |
| Very similar to the S32K146EVB but with more on-chip memory and |
| hardware features. |
| |
| * Sony CXD56xx |
| |
| - CXD56xx: Migrate CXD56xx common code to the common/ directory: |
| Boot code, FLASH code, I2C driver, UID. From Alin Jerpelea. |
| - CXD56xx: Add SPH. The SPH is used by the ASMP implementation from |
| the SDK. From Alin Jerpelea. |
| |
| * Sony CXD56xx Drivers: |
| |
| - CXD56xx: Add sensors connected to the SCU on Spresense board: |
| o Avago APDS9930 Proximity and Ambient light Sensor. |
| o Rohm BH1721FVC Ambient Light Sensor. |
| o Rohm BH1745NUC Color Sensor. |
| o Rohm BM1383GLV/BM1383AGLV Pressure Sensor. |
| o Rohm BM1422GMV/BM1422AGMV Magnetic Sensor. |
| o Bosch BMI160 Sensor support. |
| o Bosch BMP280 Barometic Pressure Sensor. |
| o Kionix KX022/KX122 Acceleration Sensor. |
| o Murata LT1PA01 Proximity and Ambient light Sensor. |
| o Rohm RPR0521RS Proximity and Ambient light Sensor. |
| o BMI160: Add optional I2C address. |
| From Alin Jerpelea. |
| - CXD56xx: Add the sensor initialization for CXD56xx boards in the |
| common board folder: |
| o APDS9930: typo fix |
| o cxd56_ak09912 initialization. |
| o cxd56_bmi160 initialization. |
| o cxd56_apds9960 initialization. |
| o cxd56_bh1721fvc initialization. |
| o cxd56_bh1745nuc initialization. |
| o cxd56_bm1383glv initialization. |
| o cxd56_bm1422gmv initialization. |
| o cxd56_bmi160 initialization. |
| o cxd56_bmp280 initialization. |
| o cxd56_kx022 initialization. |
| o cxd56_lt1pa01 initialization. |
| o cxd56_rpr0521rs initialization. |
| o cxd56_sensors initialization. |
| o Backup Log driver. |
| o crashlog driver. |
| o Move gs2200m initialization. |
| o Move ili9340 initialization. |
| o Move lpm013m091a initialization. |
| From Alin Jerpelea. |
| |
| * Sony CXD56xx Spresense Board: |
| |
| - Spresense: Enable SmartFS and UDP support From Masayuki Ishikawa. |
| |
| * STMicro STM32: |
| |
| - STM32F4 PLLI2S: Add support to enable the I2S Phase Locked Loop on |
| STM32F427 and STM32F437 MCUs. From Michael Jung. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 ADC: Add ADC calibration procedure for IP_ADC_V1. Tested on |
| STM32F100, and it magically increased result accuracy. STM32F103 |
| has the same calibration procedure. I am not sure about others. |
| From Matous Pokorny. |
| - STM32 SPI: TI Synchronous Serial Frame Format. The SPI macros on |
| STM32 MCUs now support the Texas Instruments Synchronous Serial |
| Frame Format protocol (TI protocol). Defined a new SPIDEV_MODETI |
| and add support for it in stm32_spi.c. From Michael Jung. |
| - STM32 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. |
| - STM32 PWM: Configure multi-channel duty only if channel specified. |
| This allows you to update duty cycle for a single channel. From |
| Mateusz Szafoni. |
| - STM32F7 Ethernet: Add a timeout on MAC reset From David Sidrane. |
| - STM32F7 FLASH: Exposes stm32_flash_xxx functions. From Anthony |
| Merlino. |
| - STM32F7 PWM: Configure multi-channel duty only if channel specified. |
| This allows you to update duty cycle for a single channel. From |
| Mateusz Szafoni. |
| - STM32F7 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. |
| - STM32H7 ADC: Fix internal channel numbers. From Markus Bernet. |
| - STM32H7 BBSRAM: Add BBSRAM support. From David Sidrane. |
| - STM32H7 DTCM: Port DTCM from F7 From David Sidrane. |
| - STM32H7 I2C: Select ARCH_HAVE_I2CRESET in configuration. From |
| David Sidrane. |
| - STM32H7 PWM: Configure multi-channel duty only if channel |
| specified. This allows you to update duty cycle for a single |
| channel. From Mateusz Szafoni. |
| - STM32H7 RCC: Fix RCC register definitions and typos for ADC/UART. |
| From Markus Bernet. |
| - STM32H7 RTC: Ported over F7 RTC. From David Sidrane. |
| - STM32H7 SPI: Allow more clock sources. From David Sidrane. |
| - STM32H7 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. |
| - STM32H7 UART: Fix typo in UART8 configuration. From Markus Bernet. |
| - STM32H7 UID: Ported UID from F7 From David Sidrane. |
| - STM32L4 PWM: Configure multi-channel duty only if channel specified. |
| This allows you to update duty cycle for a single channel. From |
| Mateusz Szafoni. |
| - STM32L4 UART: Serial add HW HS on UART 4 & 5. From David Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - B-L475E-IOT01A: Add mx25rxx memory chip and smartfs support in NSH |
| configuration. From Simon Piriou. |
| - LX_CPU: Add support for the PIKRON LX_CPU board. From Pavel Pisa. |
| - Nucleo-F303RE: Add basic NSH configuration. From Mateusz Szafoni. |
| - Nucleo-F303RE: Enable console on UART2 and set entry point to |
| nsh_main() in the PWM configuration. From Mateusz Szafoni. |
| - Nucleo-H743ZI: Add RTC support. From David Sidrane. |
| - Nucleo-L432KC: Added GPIO drivers for use with /apps/examples/gpio. |
| From Daniel P. Carvalho. |
| - Nucleo-L432KC: Added Zero Cross sensor to nucleo-l432kc. From |
| Daniel P. Carvalho. |
| |
| * TI Tiva: |
| |
| - Tiva: Add support for Tiva TM4C123AH6PM. From Nathan Hartman. |
| - Tiva Configuration: Modify preprocessor logic to support |
| configurations with no UART. Now similar to logic for other |
| architectures. From Nathan Hartman. |
| - Tiva Interrupts: Add handling for IRQs 128 through 159. From Nathan |
| Hartman. |
| |
| * TI Tiva Drivers: |
| |
| - TM4C QEncoder: Reinstate TM4C qencoder driver and expand its |
| ioctls. Add TIVA_HAVE_QEI0, TIVA_HAVE_QEI1 as applicable to each |
| ARCH_CHIP_TM4C12*. Rewrite tiva_qe_setup(). Replace tiva_qe_ppr() |
| with tiva_qe_resetatppr(). Add tiva_qe_resetatmaxpos() and |
| tiva_qe_resetatindex(). Add missing definitions: |
| SIGMODE_QUADRATURE, SIGMODE_CLK_AND_DIR, SWAP_NO_SWAP, SWAP_PHA_PHB. |
| Rename TIVA QEI ioctl QEIOC_PPR to QEIOC_RESETATPPR; add TIVA QEI |
| ioctl identifiers QEIOC_RESETATMAXPOS, QEIOC_RESETATINDEX. From |
| Nathan Hartman. |
| |
| * TI Tiva Boards: |
| |
| - TM4C1294-Launchpad: Enables /dev/userleds in board bring-up for |
| tm4c1294-launchpad by calling userled_lower_initialize() in |
| tm4c_bringup(). From Nathan Hartman. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva GPTM timers: Implement 16-bit PWM mode. Add |
| tiva_pwm16_sel_event() to choose GPTMCTL.TnEVENT value. Implement |
| tiva_pwm_mode16(). This also involved numerous corrections to the |
| 16-bit timer logic. Add tiva_timer16pwm_setperiodduty() to set |
| initial period, duty cycle, and enable interrupts if requested in |
| GPTM peripheral. Interrupts are not enabled in NVIC until |
| tiva_timer16_start() is called. Add tiva_timer16pwm_setduty() to |
| update duty cycle at any time. Add new TIMER_FLAG_* configuration |
| flags to enable configuring the 16-bit PWM feature. Extend type of |
| "flags" in tiva_timer32config_s and tiva_timer16config_s from 8- to |
| 32-bits to allow more flags. From Nathan Hartman. |
| |
| * Build System: |
| |
| - Export Build: Export all variables/files to support architecture |
| independent build against NSH. From Pavel Pisa. |
| - Application Export: This change too build tools allows to export |
| built-in applications registry into temporarily created directory |
| where export archive content is prepared. If the Makefile in apps/ |
| directory does not define export: target then error is print but |
| export continues without interruption. It would be more logical to |
| print warning but there is no way instruct apps make to not print |
| error. From Pavel Pisa. |
| - boards/Board.mk: Add support to pass dependency paths. From |
| Gregory Nutt. |
| |
| * Libraries/Header Files: |
| |
| - libs/libc/libc.csv: Add some missing C library functions. From |
| Pavel Pisa. |
| - libs/libc/libc.csv: Add ioctl() to fs_ioctl() wrapper for varidic |
| case. From Pavel Pisa. |
| - libs/libc/builtin/: Moves shared built-in information out of |
| binfmt/libbuiltin and into libs/libc/builtin where it can be shared |
| with applications. This should permit built-in application in the |
| PROTECTED build where binfmt/libbuiltin was not available in user |
| space. From Gregory Nutt. |
| - libs/libc/dirent/: Added alphasort() implementation, scandir() |
| implementation and DT_* definitions to include/dirent.h. Apparently |
| those definitions are not required by POSIX, but are part of |
| 4.3BSD and available in glibc as well. From Michael Jung. |
| - libs/libc/grp/: Added stubbed implementations of getgrgid, |
| getgrgid_r, getgrnam, getgrnam_r, and initgroups. These functions |
| are essentially stubs pretending that NuttX supported groups and |
| that the only configured group in the system was 'root' with gid 0. |
| The intend is not to provide meaningful new features, but to ease |
| porting of foreign source code to NuttX. From Michael Jung. |
| - libs/libc/machine/arm/armv7-m/: Add Cortex M4F machine optimized |
| fabsf and sqrtf. From David S. Alessio. |
| - libs/libc/pwd/: Added stubbed implementations. Added stubbed |
| implementations of getpwuid, getpwuid_r, getpwnam, and getpwnam_r. |
| These functions are essentially stubs pretending that NuttX |
| supported users and that the only configured user in the system |
| was 'root' with uid 0. The intend is not to provide meaningful |
| new features, but to ease porting of foreign source code to NuttX. |
| From Michael Jung. |
| - libs/libc/pwd and libs/libc/grp/: Modify to get user/group data |
| from /etc/passwd and /etc/group if so configured. From Gregory |
| Nutt. |
| - libs/libc/stdio/: Add support for the size_t integer qualifier 'z' |
| to the printf family. This is kind of tricky due the variety of |
| sizeof(size_t) on different platforms. From David Sidrane. |
| - libs/libc/unistd.h: Added stubbed implementations of setuid() and |
| setgid(). These functions are essentially stubs pretending that |
| NuttX supported users and groups and that the only configured user |
| and group in the system were both 'root' with a uid and a gid of 0, |
| respectively. The intent is not to provide meaningful new features, |
| but to ease porting of foreign source code to NuttX. From Michael |
| Jung. |
| - libs/libc/unistd/: Add getuid() and getgid() stubs to match |
| MichaelJung's setuid() and setgid(). From Gregory Nutt. |
| - libc/libc/unistd/: Add stubs for geteuid(), getegid(), seteuid(), |
| setegid(), setreuid(), and setregid(). NuttX does not currently |
| support effective user/group IDs, but these stubs will support |
| linkage of applications that expect these POSIX standard interfaces. |
| From Gregory Nutt. |
| |
| * Symbol Tables: |
| |
| - NuttX provides lists of available syscalls and library functions and |
| tools to process them. The lists can be used to build symbol table |
| which allows runtime program loading which can reuse functions |
| already compiled into NuttX system image. List processing, |
| compilation and linking to the final system image has been possible |
| only under manual control until now. Provided changes add option |
| (CONFIG_EXECFUNCS_GENERATE_SYSTEM_SYMTAB) to build complete list of |
| available functions and syscalls automatically. The symbolic table |
| is generated in form libsymtab.a which can be reused by application |
| or directly pull in when "g_symtab" and "g_nsymbols" variables are |
| requested by EXECFUNCS configuration. I have tried to follow |
| mechanisms for library compilation in different kernel protection |
| modes but tested only flat no-MMU build. The basic assumption is |
| that this library and libraries providing syscall stubs and C- |
| library functions are available in user-space context and initial |
| application (usually NSH) registers the symbol table through IOCTL. |
| The table can be reused then by another applications in their |
| address space as kernel allows. Simple for flat or protected mode, |
| I am not sure if really support in MMU mode. It is highly probable |
| that I have made some mistake, overlooked something, but the |
| functionality is optional (should not cause troubles in any mode if |
| disabled) and main purpose is to lower memory overhead when more |
| applications are loaded on memory constrained system which usually |
| use direct kernel calling without protection or address space |
| separation. If the table should be provided by kernel to |
| applications then makefiles has to be adjusted. From Pavel Pisa. |
| |
| * Tools: |
| |
| - tools/: Change preferred argument of configurations tools to use |
| ':' as the delimiter between <board-name> and <config-name>. This |
| is to emphasize that this is not a path; it is configuration |
| specification. The legacy '/' delimiter is still supported but |
| not recommend and not advertised. Updated configurations |
| instructions in README.txt files to show ':' delimiter vs '/' |
| delimiter. Update all configuration-related tools to accept ':' |
| separator between board and configuration name. From Gregory Nutt. |
| |
| * apps/ General: |
| |
| - Makefile: Added support for application-specific export target. |
| Used by nuttx/tools/mkexport.sh. From Pavel Pisa. |
| - apps/builtins: Move apps/builtins/builtin_forindex.c to |
| nuttx/libs/libc/builtin since it is required by kernel logic as |
| well. Other changes account for movement of builtin.h from |
| nuttx/include/nuttx/binfmt/built.h to nuttx/include/lib/builtin.h. |
| From Gregory Nutt. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/uid: Demo used to verify PASSWD and GROUP interfaces. |
| From Gregory Nutt. |
| - apps/examples/webserver/: Initialilze network and run forever only |
| if not built-in app. Infer from CONFIG_NSH_BUILTIN_APPS if we are a |
| NSH built-in app or not. If built-in app (CONFIG_NSH_BUILTIN_APPS |
| defined) then we assume network is initialized prior to webserver |
| starting and we exit on webserver failure. If running standalone |
| (CONFIG_NSH_BUILTIN_APPS is undefined) then behavior is unchanged: |
| webserver initializes network and runs forever. From Nathan Hartman. |
| |
| * Network Utilities: apps/fsutils: |
| |
| - apps/fsutils/passwd: Handle the improved the format of the |
| /etc/passwd file. It is now a little more similar to other systems. |
| From Gregory Nutt. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/dhcpc: Add host name support to DHCP client. From |
| Masayuki Ishikawa. |
| |
| * Network Utilities: apps/wireless |
| |
| - apps/wireless/ieee802154/i8sak: I8sak improvements: (1) Adds |
| support for getting/setting maxretries and promsicuous mode from |
| i8sak, (2) Fixes a build warning and handles a few cases where a |
| fault can occur due to not catching missing arguments. From |
| Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Allow setting the endpoint PAN ID. |
| From Anthony Merlino. |
| - apps/wireless/ieee802154/i8sak: Adds support for energy scan result |
| printout. From Anthony Merlino. |
| - apps/wireless/ieee802154/i8shark: Adds support for intentionally |
| suppressing passing the FCS so that Wireshark doesn't try to |
| validate it. From Anthony Merlino. |
| - apps/wireless/ieee802154/libmac: Adds support for getting/setting |
| the FCS length From Anthony Merlino. |
| - apps/wireless/gs2200m: Add UDP support to the GS2200M driver. From |
| Masayuki Ishikawa. |
| - apps/wireless/gs2200m: Add DHCP client handling in ioctl_request(). |
| From Masayuki Ishikawa. |
| - apps/wireless/gs2200m: ioctl_request() supports SIOCGIFHWADDR. |
| From Masayuki Ishikawa. |
| |
| Bugfixes: |
| --------- |
| Only the most critical bugfixes are listed here (see the ChangeLog for a |
| more complete list of bugfixes and for additional, more detailed bugfix |
| information): |
| |
| * Core OS: |
| |
| - Priority Inheritance: Fix a race in telnet with PRIORITY_INHERITANCE |
| and SCHED_HPWORK. Sometimes causes an assertion to fire incorrectly. |
| From David S. Alessio. |
| - Task Groups: Correct some naming. The NuttX task groups have been |
| using the acronym 'gid' and also the type 'gid_t' for the the task |
| group ID. That is incorrect. Than naming is reserved for use with |
| group permissions. So these were all named to grpid and grpid_t so |
| that it is clearer that these refer to NuttX task group IDs, and not |
| to group permissions. From Gregory Nutt. |
| - Task Termination: nxtask_signalparent() in task_exithook.c may |
| invalidate the group's parent task ID (tg_ppid) too soon. The |
| tg_ppid field is use only to remember the parent tasks ID so that it |
| can send the SIGCHLD signal to it. So it must stay valid until |
| SIGCHLD has been sent. In nxtask_signalparent(), it calls |
| nxtask_sigchild() to send SIGCHLD to the parent, then invalidates |
| tg_ppid. That would be okay, except that the SIGCHLD is only sent |
| when the last member of the group terminates. That is incorrect; |
| tg_ppid can be invalidated too soon and, as a consequence, SIGCHLD |
| would never be sent. Noted by Jeongchan Kim in the Google group: |
| https://groups.google.com/forum/#!topic/nuttx/SXd8fVwVKBk From |
| Gregory Nutt. |
| - sched_get_rr_interval(): sched_get_rr_interval() should return |
| {0,0} if round-robin scheduling is not selected for the task. From |
| Gregory Nutt. |
| - SMP Type Collision: The non-standard, non-portable type cpu_set_t |
| was created specifically to support the NuttX internal, SMP |
| implementation. Any resemblance to any other cpu_set_t would be |
| purely coincidental. However it appears that that coincidence has |
| occurred. cpu_set_t has an equivalent, non-standard, non-portable |
| type in the GNU C library. Compilation of libgnat expects this |
| non-standard type to be defined. Who am I to stand in the way of |
| progress? This commit removes the conditioning on CONFIG_SMP so |
| that cpu_set_t is typed (as a uint8_t) even if CONFIG_SMP is not |
| defined. Reference: Bitbucket issue 164. From Gregory Nutt. |
| - Binary Loader: Change some debug macros from berr() to binfo() |
| when dumping module data. The report of problems is important |
| during development but when it enables complete informative output |
| about load binaries then the important information can be easily |
| overlooked. The huge output sent to serial terminal slows loading |
| significantly as well. From Pavel Pisa. |
| - Power Management: Fix g_pmcount 16-bits overflow when |
| CONFIG_PM_XXENTER_COUNT set big value. From ligd. |
| - Timekeeping: Fix cases in time conversion that must be >= |
| NSEC_PER_SEC, not > NSEC_PER_SEC. From Gregory Nutt. |
| |
| * File System/Block and MTD Drivers: |
| |
| - opendir(): opendir() set errno to a negative value in one error |
| case. From Michael Jung. |
| - SmartFS: Update smartfs smart_scan() function. From Simon Piriou. |
| - ProcFS: Add missing LF to cpuload procfs output From David Alessio. |
| - MMC/SD: Copy/paste error fix in the SDIO-based block driver for |
| MMC. From Ivan Ucherdzhiev. |
| - MMC/SD: Correct a misplaced #endif in the SDIO-based driver. From |
| Gregory Nutt. |
| |
| * Networking/Network Drivers: |
| |
| - Ethernet Configuration: Ethernet packet buffer size cannot be |
| permitted to go below 1294 if IPv6 is selected. From Gregory Nutt. |
| - TCP RST: Fix outgoing RST packet with wrong ack number. From |
| biantao. |
| - TCP Close: Fix TCP close flow; free the connection after all TCP |
| close process finished. From zhangyuan7. |
| - UDP Broadcast: Remove net stack dependency from CONFIG_NET_BROADCAST. |
| This change allows us to use CONFIG_NET_BROADCAST without network |
| stack (i.e. usrsock application can use broadcast) From Masayuki |
| Ishikawa. |
| - UDP: Fixes a UDP send copy-paste error in the new SO_LINGER code: |
| CONFIG_TCP_NOTIFIER to CONFIG_UDP_NOTIFIER. From Juha Niskanen. |
| - TCP and UDP: Fix errors in the new implementation of SO_LINGER. |
| The tcp_drain() and udp_drain() functions were casting the working |
| argument to the wrong type, resulting in hangs and abnormal |
| behavior. There is a complexity in the TCP drain logic when the |
| remote peer closes the socket before all Tx data has been flushed. |
| Sometimes we are not notified of this case and wait the entire |
| timeout unnecessarily. There is a workaround in place in |
| tcp_txdrain(), but this really should be revisited. From Gregory |
| Nutt. |
| - 6LoWPAN: Removes unnecessary conversions that were happening due to |
| a misunderstanding of byte ordering with EUI-64. From Anthony |
| Merlino. |
| - RNDIS: Fix issue with DEBUGASSERT when using composite device and |
| endpoint numbers not being the default. From Anthony Merlino. |
| |
| * Wireless/Wireless Drivers: |
| |
| - wireless network devices: Attach radio to d_buf before registering |
| device to handle forwarding case. When CONFIG_NET_IPFORWARD is |
| enabled, and CONFIG_NET_6LOWPAN is being used, a packet that |
| attempts to get forwarded on the 6LoWPAN interface will require |
| that the radio's buffer be attached to d_buf. Otherwise an assertion |
| will fire. The underlying "radio" in this case is the |
| mac802154_netdev. This behavior has probably not been observed |
| because the buffer is normally attached in the periodic txpoll |
| worker. However, in my case, the 6LoWPAN interface was not UP yet, |
| and therefore the worker hadn't run yet. From Anthony Merlino. |
| - IEEE 802.15.4 MAC: Fixes issues with extended address. 1) Extended |
| address should be read-only. 2) Extended address should be placed |
| in frame in "reverse-canonical" order. The extended address is a |
| read-only attribute and thus an attempt to write the extended |
| address should be denied. Instead, the extended address should |
| really be either set by the PHY/radio itself, or provided at board |
| bring-up time to the radio layer. The MAC layer now pulls in the |
| extended address from the radio any time the MAC is reset. The |
| extended address is also supposed to be sent in the frame in |
| reverse-canonical order. This is very confusing in the standard and |
| it wasn't until I realized it was backwards in Wireshark that I |
| researched this further. Searching online I find documents from the |
| committee for suggestions/feedback on the future standard. It isn't |
| in the 2015 standard but a newer version of the standard will |
| presumably clarify this. It says that the extended address should be |
| written in reverse-canonical form, meaning the OUI comes last, not |
| first inside the frame. From Anthony Merlino. |
| - IEEE 802.15.4 MAC: Frame Version should have been 1, but was being |
| set to 3 when payload exceeds version 0 capabilities. Adds warning |
| to build to indicate what is noted in the menu for |
| CONFIG_MAC802154_NTXDESC From Anthony Merlino. |
| - IEEE 802.15.4 MAC: Fixes issue where the txdesc's ackreq flag was |
| not being set, despite the frame containing a Frame Control field |
| with ACKREQ bit set. From Anthony Merlino. |
| - Xbee: Fix logic to prevent deadlock scenario when there are no |
| available IOBs From Anthony Merlino (2018-12-21). |
| - Xbee: Change assumption about destination address mode for incoming |
| frames. If a short address has been assigned to our radio, then |
| assume we were addressed using that. Otherwise we were addressed |
| using our extended address. From Anthony Merlino. |
| - Xbee: Initialize the short address to the unspecified address and |
| query for the extended address on initialization. From Anthony |
| Merlino. |
| - Xbee: Adds CONFIG_XBEE_LOCKUP_WORKAROUND option and corresponding |
| logic to workaround an issue where the XBee locks up and stops |
| responding. This typically happens when there is a lot of data |
| being received over the link. When the XBee stops responding, many |
| times, querying the XBee kicks it out of this state. However, |
| occasionally the XBee is completely locked up and the XBee has to |
| be reset. This change handles these conditions by periodically |
| (if not naturally occurring) querying the XBee. If during any |
| query, the XBee does not respond within a certain number of |
| attempts, the XBee is reset. From Anthony Merlino. |
| - Xbee: Cancel query timeout upon receiving the expected response. |
| Add protection for race condition that can cause association |
| timeout to continue firing repeatedly From Anthony Merlino. |
| - Xbee: Detect lockup and reset XBee in xbee_req_data From Anthony |
| Merlino. |
| - Xbee: Fixes one instance of the use of IOBUSER_WIRELESS_MAC802154 |
| which isn't available without the software MAC layer. Instead we |
| use IOBUSER_WIRELESS_RAD802154 throughout the whole driver since it |
| is always available when IEEE 802.15.4 support is enable. From |
| Anthony Merlino. |
| |
| * Common Drivers: |
| |
| - pipes: Use inode reference counter instead of device reference |
| counter to handle dup(). I found that if I dup() a pipe, the |
| reference counter d_refs is not increased. If I close any of the |
| fd, backed by the same pipe, the pipe will be freed. This causes |
| any further usage on the fd referencing a non existent pipe. This |
| change uses the inode reference counter, which is properly |
| maintained during dup(). From Yang ChungFan. |
| - SPI Bitbang: Fix build error when the SPI bitbang variable width |
| support is enabled. From Augusto Fraga Giachero. |
| - GPIO Lower Half: Remove limitation when pintype > |
| GPIO_INTERRUPT_PIN. From ligd. |
| |
| * ARMv4/ARMv5 |
| |
| - Classic ARM7/ARM9: When performing stability test, the application |
| would cause kernel crash. When I trace the stack, I find that |
| register R1 has been changed, and its value is the same as register |
| CPSR. In up_fullcontextrestore.S, the restoration of R0 and R1 is |
| not atomic: 'msr cpsr r1 will enable interrupts and the recovery of |
| r0 and r1 may be interrupted and the value or R1 may be changed. |
| Fix is to use a single ldmia to restore R0, R1, and return via R15. |
| From Loyen Wang. |
| |
| * ARMv7-A |
| |
| - ARMv7-A: Fix typo and missing quotation for ARMv7-A. From Oki |
| Minabe. |
| - ARMv7-A: Fix double increment in armv7-a's |
| arm_addrenv_destroy_region(). From Oki Minabe. |
| - ARMv7-A: Fix L2 page table mask for ARMv7-A page allocator. From |
| Oki Minabe. |
| |
| * ARMv7-M |
| |
| - Interrupts. Removes the architecture-common |
| CONFIG_ARCH_INT_DISABLEALL configuration option (but which was |
| supported only by ARMv7-M). In the normal course of things, |
| interrupts must occasionally be disabled using the up_irq_save() |
| inline function to prevent contention in use of resources that may |
| be shared between interrupt level and non-interrupt level logic. |
| Now the question arises, if we are using BASEPRI to disable |
| interrupts and have high priority interrupts enabled |
| (CONFIG_ARCH_HIPRI_INTERRUPT=y), do we disable all interrupts except |
| SVCall (we cannot disable SVCall interrupts). Or do we only disable |
| the "normal" interrupts? If we are using the BASEPRI register to |
| disable interrupts, then the answer is that we must disable ONLY the |
| "normal interrupts". That is because we cannot disable SVCALL |
| interrupts and we cannot permit SVCAll interrupts running at a |
| higher priority than the high priority interrupts (otherwise, they |
| will introduce jitter in the high priority interrupt response time.) |
| Hence, if you need to disable the high priority interrupt, you will |
| have to disable the interrupt either at the peripheral that |
| generates the interrupt or at the NVIC. Disabling global interrupts |
| via the BASEPRI register cannot effect high priority interrupts. |
| From Gregory Nutt. |
| - ARMv7-M Priorities: In the 'normal' case, the priority of the |
| SVCALL interrupt was the same as the priority of the high priority |
| interrupt. This means that SVCALL interrupt processing can defer |
| the high priority interrupt and result in the jitter in that |
| interrupt response. Fix is to raise the priority of the high |
| priority interrupt above the priority of the SVCALL interrupt. |
| Suggested by Nathan Hartman. From Gregory Nutt. |
| |
| * Microchip i.MXRT Drivers: |
| |
| - i.MXRT ENC: Fix some errors in register bit definitions. Noted by |
| Arie de Muijnck. From Gregory Nutt. |
| - i.MXRT LPI2C: Slave addresses are now correctly shifted when |
| sending START. TX/RX FIFOs now discarded on error to prevent FIFO |
| underflow errors. Fixes error checking to use priv structure and |
| removes checking of BBF flag as it is not an error. From Nicholas |
| Chin. |
| |
| * Microchip PIC32MZ Drivers: |
| |
| - PIC32MZ SPI: Fix SPI Mode selection. CKE is the inversion of the |
| CPHA. From Ouss4. |
| |
| * Microchip/Atmel SAMD2x/SAML2x Drivers: |
| |
| - SAMD2/L2 I2C: Correct time calculation. From Bernd Walter. |
| |
| * Microchip/Atmel SAM3/SAM4: |
| |
| - SAM3/4: Add missing DMA configuration Kconfig setting. From Bernd |
| Walter. |
| |
| * NXP LPC17xx/40xx Drivers: |
| |
| - LPC17xx/40xx ADC: Only use PCLKSEL0 for ADC on LPC176x family. |
| From jjlange. |
| - LPC17xx/40xx Ethernet: Set speed back to 10Mbps if 10Mmbps link |
| negotiated. From Augusto Fraga Giachero. |
| - LPC17xx/40xx I2C: Abort I2C transfers if a timeout has occurred. |
| If a timeout has occurred in the middle of a I2C transfer, the next |
| I2C interrupt should abort any transfers and send a stop condition |
| to the corresponding I2C bus. Failure to do so will result in |
| memory corruption / undefined behavior as priv->msgs points to a |
| region of memory it doesn't owns anymore after lpc17_40_i2c_start |
| returns. From Augusto Fraga Giachero. |
| - LPC17xx/40xx I2C: Calculate the appropriate timeout for I2C |
| transfers. Depending on the bus frequency and transfer size, I2C |
| transactions can take quite a bit, so a fixed timeout is not a |
| good solution. Calculating the timeout at run time poses some |
| overhead but still better than aborting long transactions. From |
| Augusto Fraga Giachero. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis I2C: i2c transfer ensure correct result returned. |
| kinetis_i2c_transfer released the mutex then fetched the state, |
| this resulted in returning the correct results. From David |
| Sidrane. |
| |
| * NXP LPC17xx/40xx Drivers: |
| |
| - LPC17xx/40xx CAN: If BOARD_CCLKSEL_DIVIDER is not equal to 1 on |
| LPC178x or LPC40xx then base clock rate is calculated incorrectly |
| because CCLK frequency does not correspond to PLL0 clock which is |
| used for PCLK. This is partially workaround solution. It would |
| be probably better to define BOARD_PCLK_FREQUENCY even for LPC176x |
| targets and use that to replace divisor by base_clock in up_dev_s. |
| From Pavel Pisa. |
| |
| * NXP LPC17xx/40xx Boards: |
| |
| - LPC17xx/40xx Ethernet: Add missing LPC17_40_PHY_CEMENT_DISABLE |
| variable to the lpc17xx/40xx Kconfig file. For some reason this |
| setting was not referenced anywhere except in the Ethernet driver. |
| From Augusto Fraga Giachero. |
| - LPC17xx/40xx Ethernet: Fix the initialization for DP83848x PHYs. |
| The DP83848x requires the RMII mode to be manually enabled through |
| the MII_DP83848C_RBR register. Before querying the speed and mode |
| it should wait for the link to be established. From Augusto Fraga |
| Giachero. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT LPUART: Fix some errors in the LPUART register definition |
| files. Correct naming of a function: up_earlyserialinit() should |
| be imxrt_earlyserialinit(). Remove prototypes for non-existent |
| serial initialization functions. From Gregory Nutt. |
| - i.MXRT USDHC: uSDHC typo fixes and command transfer error handling |
| modified. From Ivan Ucherdzhiev. |
| |
| * SiLabs EFM32 Drivers: |
| |
| - EFM32 OTG host: Adam Porter's various fixex for STM32 FS/HS |
| probably should be applied to EFM32 host which which has very |
| similar IP. From Gregory Nutt. |
| |
| * STMicro STM32: |
| |
| - STM327F Configuration: Kconfig add depends on BBSRAM. From David |
| Sidrane. |
| - STM32F7 Interrupts: Fix overwritten IRQ enable. System boot order |
| calls clock_initialize() then up_initialize(). clock_initialize() |
| was setting up the alarm IRQ up_initialize is initializing the NVIC. |
| This most likely worked in the past due to a bug in the NVIC |
| initialization code that failed to clear the Interrupt enables. |
| - STM32H7: Rix BBSRAM name in memory map. From David Sidrane. |
| - STM32H7: Removed f7 in file path. From David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32H7 BBSRAM: Fix issues causing no writes and hardfaults. From |
| David Sidrane. |
| - STM32H7 BBSRAM: Convince compiler to perform 32 bit write. From |
| David Sidrane. |
| - STM32F7 OTGHS: Fixes bad preprocessor logic preventing USB OTG HS |
| to work when used without external ULPI. From Anthony Merlino. |
| - STM32 OTGH[FS|HS] Host STM32 host only initiates transfer if |
| buflenl > 0. From Adam Porter. |
| - STM32F7/H7/L4 OTG host: Adam Porter's fix for STM32 FS/HS probably |
| should be applied to STM32 F7, H7, and L4 OTG host which are very |
| similar. From Gregory Nutt. |
| - STM32/F7/H7/L4: This change was required to get my devices |
| (CDC-MBIM) to enumerate. Initially the system timed out retrieving |
| the USB configuration descriptor. Ctrl IN requests got nothing but |
| NAKs. I found that the initial SETUP packet and corresponding IN |
| transfer were fine; it was the Status OUT phase that was getting the |
| NAK. After receiving a NAK on the Status OUT, the code would loop |
| back and issue another ctrl IN, which will always fail because the |
| data was already transferred before. Thus the entire transfer would |
| 'timeout'. The fix I implemented moves the DATANAK timeout loop to |
| only apply to the Status OUT. Both the ctrl IN and the Status OUT |
| need their own retry loops. From Adam Porter. |
| - STM32F7 SDMMC: If there is only one SDMMC it is slot 0 From David |
| Sidrane. |
| - STM32F7 USART1: USART1_RXDMA is dependent on STM32F7_DMA2 not |
| STM32F7_DMA1 From Anthony Merlino. |
| - STM32H7 DBGMCU: Memory Map DBGMCU is @ 0x5c001000 From David |
| Sidrane. |
| - STM32F7 SDMMC: Fix warning when DMA is not enabled. From David |
| Sidrane. |
| - STM32H7 Ethernet: Fix some errors in Ethernet MAC configuration. |
| From Markus Bernet. |
| - STM32H7 Ethernet: Correct stm32h7 mac address filtering. Correct |
| the MAC address 0 register definition and remove the 'receive all' |
| flag. Now the Ethernet driver only receives packets addressed to |
| correct MAC. From Jukka Laitinen. |
| - STM32H7 Ethernet: Correct memory corruption error. The Ethernet |
| driver initialization incorrectly wrote to DMACRXCR instead of |
| DMACSR when trying to clear the stopped flags. This caused |
| invalid buffer length in the DMACRXCR, causing DMA to overflow the |
| RX buffers when large packets are sent to the device. From Jukka |
| Laitinen. |
| - STM32H7 PWR: Ensure data is flushed on backup domain access |
| changes. From David Sidrane. |
| - STM32H7 Serial: Serial fix undefined with TERMIOS From David |
| Sidrane. |
| - STM32H7 UARTs: Fix UART7/8 typos. Fix bug in ETH_MACQTXFCR |
| configuration. From Markus Bernet. |
| |
| * STMicro STM32 Boards: |
| |
| - Multiple STM32 Boards: If CONFIG_SCHED_CRITMONITOR is selected, |
| then make sure that ITM and DWT resources are enabled before |
| accessing ITM and DWT registers. By default, these registers are |
| disabled. Suggested by Juha Niskanen. From Gregory Nutt. |
| - Nucleo-H743ZI: Correct logic that determines if the RTC driver is |
| available. Find in build testing. From Gregory Nutt. |
| - Nucleo-G071RB: Fix linker script to avoid .ARM.exidx section |
| overlap with .data From Daniel Pereira Volpato. |
| - Modify all linker scripts (all boards, all architectures) to use |
| solution from Daniel P. Volpato. From Alan Carvalho de Assis. |
| - Nucleo-L432KC ADC: Change analog pins definitions and correct DMA |
| related issue. From Daniel P. Carvalho. |
| |
| * TI Tiva: |
| |
| - Tiva Configuration: Rename TM4C123GH6PMI identifiers to |
| TM4C123GH6PM. Rationale: In terms of firmware programming, there |
| is no functional difference between these parts: TM4C123GH6PMI7, |
| TM4C123GH6PMI7R, TM4C123GH6PMT7, and TM4C123GH6PMT7R. From a |
| programming standpoint, all of the above parts are TM4C123GH6PM, |
| which means it doesn't make sense to differentiate between PM and |
| PMI. (The PM means 64-LQFP. The I means temperature range -40C to |
| +85C. It could be T meaning -40C to +105C. The R means it ships in |
| Tape and Reel packaging as opposed to Tray.) From Nathan Hartman. |
| - Tiva Configuration: Rename TM4C1294NC identifiers to TM4C1294NCPDT. |
| Rationale: TM4C1294NC is ambiguous: TM4C1294NCPDT is a 128-TQFP, |
| TM4C1294NCZAD is a 212-NFBGA. The TM4C1294NC part currently |
| supported by NuttX is the TM4C1294NCPDT used on the TI EK-TM4C1294XL |
| "Connected LaunchPad" (see configs/tm4c1294-launchpad). To ensure |
| the correct part is fully specified, this commit updates all |
| TM4C1294NC identifiers to TM4C1294NCPDT. From Nathan Hartman. |
| - Tiva Configuration: Fix TM4C129XNCZAD part number in Kconfig and |
| identifiers. Rationale: Fully specify that this is the 212-pin BGA |
| package (ZAD ending) and for consistency with earlier changes to |
| other Tiva TM4C12x part numbers in Kconfig names and identifiers. |
| From Nathan Hartman. |
| |
| * TI Tiva Drivers: |
| |
| - Tiva TM4C 1-Wire: Fix wrong description on define TIVA_1WIRE_BASE: |
| Was "EEPROM and Key Locker" (same as the item above). Now "1-Wire |
| Master Module." Make DMACTL symbols visible for TM4C123: Remove |
| "#ifdef CONFIG_ARCH_CHIP_TM4C129" guard around UART DMA Control |
| (DMACTL) symbols. These bits are valid on TM4C123 devices, as well |
| as on TM4C129. Also, improve the comment on UART_DMACTL_DMAERR. |
| From Nathan Hartman. |
| - Tiva GPIO Interrupts: LM3S, LM4F, TM4C: Fix GPIO IRQ error, ports |
| R, S, T. Preprocessor logic for CONFIG_TIVA_GPIOx_IRQS was setting/ |
| clearing port Q defines when it should act on ports R, S, T. |
| gpioport2irq() was missing handling for port T. From Nathan |
| Hartman. |
| - Tiva Timers: Fix minor errors in tiva_timerlib.c. Fix incorrect |
| preprocessor conditionals related to Kconfig defines: |
| CONFIG_TIVA_TIMER32_EDGECOUNT -> CONFIG_TIVA_TIMER16_EDGECOUNT, |
| CONFIG_TIVA_TIMER32_TIMECAP -> CONFIG_TIVA_TIMER16_TIMECAP, |
| CONFIG_TIVA_TIMER32_PWM -> CONFIG_TIVA_TIMER16_PWM. From Nathan |
| Hartman. |
| - Tiva Timers: Fix errors in low-level timer support. |
| tiva_gptm_configure() and tiva_gptm_release() were calling |
| tiva_emac_periphrdy() instead of tiva_gptm_periphrdy(). Fix |
| error in "abcde" description of bit flag defines. From Nathan |
| Hartman. |
| - Tiva Timers: Fix one code error and some comment errors. |
| tiva_timer16_setinterval(): Was DEBUGASSERTing on mode != |
| TIMER16_MODE. Fixed to DEBUGASSERT on mode == TIMER16_MODE. |
| From Nathan Hartman. |
| |
| * ZiLOG Z80 Boards: |
| |
| - z80sim Serial: Fix uart_dev_t initializer: pollfds[] is a array of |
| pointers and, hence, the NULL initializer must be included in braces. |
| Noted by Paul Osmialowski in Issue #160. From Gregory Nutt. |
| - z80sim Interrupts: Missed a name change up_irqinitialize to |
| z80_irq_initialize. From Gregory Nutt. |
| |
| * C Library/Header Files: |
| |
| - include/netinet/in.h: Rename __pad member to sin_zero in struct |
| sockaddr_in. Libwebsockets initializes the 'sin_zero' member of |
| sockaddr_in objects to zeros. Apparently, judging from mailing list |
| entries, there are platforms on which not doing this causes |
| undefined behavior. On NuttX compiling respective code is broken, |
| as the corresponding member variable is called '__pad'. Neither in |
| the 'nuttx' nor in the 'apps' repository did I find any reference to |
| this identifier. Thus, I believe its a safe bet to just rename it. |
| UNIX Network Programming states in this regard: "The POSIX |
| specification requires only three members in the structure: |
| sin_family, sin_addr, and sin_port. It is acceptable for a POSIX- |
| compliant implementation to define additional structure members, and |
| this is normal for an Internet socket address structure. Almost all |
| implementations add the sin_zero member so that all socket address |
| structures are at least 16 bytes in size." From Michael Jung. |
| |
| - libs/libc/libc.csv: Correct dependency of setlocale on |
| CONFIG_LIBC_LOCALE. From Pavel Pisa. |
| - libs/libc/machine/arm/armv7-m: Fix build error for ELF. From |
| Masayuki Ishikawa. |
| - libs/libc/math.csv: Correct format of some function entries. From |
| Pavel Pisa. |
| |
| * Tools: |
| |
| - tools/: Change all occurrences of /bin/(ba)sh in shell scripts to |
| /usr/bin/env bash which appears more portable From Manuel Stühn. |
| |
| * NSH Library: apps/nshlib: |
| |
| - apps/nshlib/: As noted by David S. Alessio, 'cat' should not output |
| any additional newline at the end of the cat'ed file content. This |
| additional newline was added to assure that the NSH prompt was |
| presented on a new line. However, that is not the correct behavior |
| of 'cat' per the IEEE std: "The standard output shall contain the |
| sequence of bytes read from the input files. Nothing else shall be |
| written to the standard output." Reference: |
| https://pubs.opengroup.org/onlinepubs/009695399/utilities/cat.html. |
| This commit changes the function nsh_catfile() which underlies the |
| 'cat' command and well as other NSH commands. Although this is the |
| correct behavior for 'cat' it may not be the correct behavior for |
| other commands implemented via nsh_catfile(). That remains to be |
| determined. From Gregory Nutt. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/cle/: ASCII DEL should be treated by Delete-Left. From |
| Dave Marples. |
| - apps/system/i2ctool: (1) Friendlier I2C "knock-knock" uses only |
| read request. While many I2C slave devices have multiple indexed |
| registers, some have only one register and it's not indexed. For |
| example, the I2C bus switch TCA9548A has only a Control Register, |
| attempting to index to "Reg[0]" alters its contents to 0x00 |
| disabling all subordinate buses. This patch fixes that problem by |
| simply trying to read something/anything from the slave. This also |
| helps coax out slaves with register files that start from a higher |
| index, i.e. the AT24CS0x, FLASH chips with a UUID that appears as a |
| 2nd I2C slave at (address+8), report their serial number at |
| Reg[80]-Reg[8F] and will NAK a read of Reg[0]. (2) Modify get/set |
| to prevent write of reg index if not specified From David Alessio. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/dhcpd: Fixes bug where hwaddr was being used instead |
| of ipaddr in the ARP update. This bug seems to have been introduced |
| three years ago during a rewrite to remove a direct OS call to arp. |
| I'm not sure how others have not run into issues with this. The |
| behavior I was observing was that the DHCPD would go to offer an IP |
| address, but then send a ARP request for the IP instead because it |
| didn't know where to send the data. From Anthony Merlino. |
| - apps/netutils/netinit/: Remove warnings. Unhook PHY notification |
| signal handler when cleaning up, if an error occurs after the signal |
| handler is put into place. From Nathan Hartman. |
| |
| * Wireless Utilities: apps/wireless: |
| |
| - apps/wireless/ieee802154/i8sak: Fixes conversion from extended |
| address to IPv6 address. From Anthony Merlino. |
| |
| NuttX-8.2 Release Notes |
| ------------------------ |
| |
| The 133rd release of NuttX, Version 8.2, was made on November 16, 2019, |
| and is available for download from the Bitbucket.org website. Note |
| that release consists of two tarballs: nuttx-8.2.tar.gz and |
| apps-8.2.tar.gz. These are available from: |
| |
| https://bitbucket.org/nuttx/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: |
| |
| - Signals: Add support for SIGPIPE default action. SIGPIPE uses |
| SIG_SIGPIPE_ACTION which terminates process by default. It also |
| could be ignored. From liuhaitao. |
| - Spinlocks: Remove support for re-entrant spinlocks. They seemed |
| like a good idea, but they are never used. From Xiang Xiao. |
| - Memory Manager: Remove the assumption that one character equals |
| eight bits. From Xiang Xiao. |
| - Power Management: Historically, the NuttX PM subsystem has |
| consisted of two functional components: (1) an "Upper" part that |
| detects state changes based on a random walk driven by activity |
| levels, and (2) and "lower" part that implementst the state changes. |
| This change decouples that upper activity-based logic from the lower |
| random walk logic and allows use of other upper state detection |
| logic (such as a custom, application-specific state machine). From |
| Matias Nitsche. |
| - boardctl(): Expose power manager function through boardctl() |
| interface. From Xiang Xiao. |
| |
| * File System/Block and MTD Drivers: |
| |
| - GD25: Add support for a new FLASH vendor. From zhangbo_a. |
| - GD25: Add support for GD25 device with 256-Mbit capacity. From |
| YanLin Zhu. |
| - GD25: Add 4-byte address operation for capacity larger than |
| 128-Mbit. From YanLin Zhu. |
| - GD25: Add gd25_lock/unlock to case: enable 4-bytes address From |
| ligd. |
| - GD5F: Add gigadevice SPI NAND FLASH driver. From YanLin Zhu. |
| |
| * Networking/Network Drivers: |
| |
| - Networking: Use ntoh() when printing IPv6 addresses so that the |
| addresses appear in friendlier host order vs. network order. From |
| Bernd Walter. |
| - Netlink: Implement minimal NETLINK_ROUTE socket functionality that |
| can (for now) be use used to obtain a list of network devices, IPv4 |
| ARP and IPv6 Neighbor tables, and IPv4 and IPv6 routing tables. |
| From Gregory Nutt. |
| |
| * Wireless/Wireless Drivers: |
| |
| - BCM43438A1 Bluetooth: Add support for the BCM43438A1 Bluetooth |
| capability. From Dave Marples. |
| - HCIUART Shim: Add a serial 'shim' to allow any regular serial port |
| to support a Bluetooth H4 interface and to be used to drive a |
| Bluetooth device. From Dave Marples. |
| - BCM4343x HCIUART: BCM4343x HCIUART support. From Dave Marples. |
| - BCM43xxx: Move drivers/wireless/ieee80211/ to |
| drivers/wireless/ieee80211/bcm43xxx/ since the directory only |
| contains only BCM43362 and BCM43438 related code. From Xiang Xiao. |
| - GS2200M: Add reset handler to interface. Add reset and un-reset |
| sequence in driver. From Masayuki Ishikawa. |
| |
| * Audio/Audio Drivers: |
| |
| - Audio: Add message type to support audio trigger. From anchao. |
| |
| * Other Common Device Drivers: |
| |
| - Altair: Add support for the altair LTE modem driver. From Alin |
| Jerpelea. |
| - MCP2515: MCP2525 SPI STD-EXT ID fixes. From DisruptiveNL. |
| - OpenAMP: Brings in the drivers needed to support OpenAMP. These |
| changes were ported from https://github.com/FishsemiCode/nuttx. |
| This port was effort of a number of people, I rather arbitrarily |
| gave authorship to Guiding Li because he has the largest number of |
| fundamental quashed commits from the Xiamoi repository. From |
| Guiding Li. |
| |
| * Simulator: |
| |
| - Simulator: Add stack coloration feature. From ligd. |
| - Simulator: Report PM activity on simulated UART. From Matias |
| Nitsche. |
| - Simulator: Add host ftruncate() support. From chao.an. |
| - Simulator: Replace all CONFIG_DEV_CONSOLE with USE_DEVCONSOLE for |
| arch/sim and compile up_devconsole.c conditionally. From Xiang |
| Xiao. |
| - Simulator OpenAMP: Support OpenAMP between two simulator |
| instances. Please read rpserver/rpproxy section in |
| boards/sim/sim/sim/README.txt for more information. From chao.an. |
| |
| * ARMv7-M |
| |
| - ARMv7-M: Add BPIALL register address. From Dave Marples. |
| - ARMv7-M MPU: Add user peripheral helper |
| |
| * Atmel SAMD2/L2 Boards: |
| |
| - Arduino-M0: Add initial board support for the Arduino M0 which is |
| based on the SAMD21 chip. Include nsh and usbnsh configurations. |
| From Alan Carvalho de Assis. |
| |
| * NXP i.MXRT Drivers: |
| |
| - i.MXRT LCD: Add support for LCD. Clean up some LCD-related |
| interfaces. From Fabio Balzano. |
| - i.MXRT Serial: This change improves the performance of UART serial |
| ports on the IMXRT by enabling the RX & TX FIFOS and transmission on |
| the holding register being empty (TDRE) rather than transmission |
| being complete (TC). From Dave Marples. |
| - i.MXRT Pin Mux: This change separates out the pinmux and iomux |
| functions cleanly. For ease of conversion default IOMUX definitions |
| have been added into imxrt_iomux.h. The change effectively does two |
| things: (1) unifies the iomux definitions - previously some pins |
| had them, and some didn't. This effectively made it impossible to |
| use the pinmuxes without editing the header file in the standard |
| distribution tree. And (2) unifies the pin definitions so that every |
| pin now has a suffix. This makes it *much* easier to see when a pin |
| is in use in your code, because it will always have a definition in |
| your board.h file. From Dave Marples. |
| - IMXRT1020-EVK: Add support for the MIMXRT1021-EVK board. It |
| features nsh, netnsh and usdhc sample configurations. From Dave |
| Marples. |
| |
| * NXP i.MXRT Boards: |
| |
| - IMXRT1060-EVK: Add basic LCD support for the board IMXRT1060-EVK. |
| From Fabio Balzano. |
| - IMXRT1060-EVK: Added Littlevgl demo configuration into the |
| IMXRT1060-EVK board directory. From Fabio Balzano. |
| |
| * NXP/Freescale Kinetis Drivers: |
| |
| - Kinetis Ethernet: Add support for TJA1100 PHY. From David Sidrane. |
| |
| * NXP S31K1xx: |
| |
| - S32K1xx: Support configuration and initialization of the flash |
| configuration bytes. From Gregory |
| |
| * NXP S31K1xx Boards: |
| |
| - S32K1**EVB: Create a special FLASH section to hold the FLASH |
| configuration bytes. From Gregory Nutt. |
| - S32K146EVB: Added configuration script and instructions for using |
| Thread-Aware OpenOCD for the S32K146 with Eclipse. From Han |
| Raaijmakers. |
| |
| * Renesas RX65N: |
| |
| - RX65N: Adds a port of to the Renesas RX65N Micro-controller. This |
| port includes Serial (UART) driver (13 ports) and Ethernet |
| driver. From Anjana. |
| |
| * Renesas RX65N Boards: |
| |
| - RSK RX65N-2MB: Add support for the RSK RX65N-2MB board. From |
| Anjana. |
| - GR-Rose: Add support for the GR-Rose board. From Anjana. |
| |
| * Sony CXD56xx |
| |
| - CXD56xx CPU FIFO: Add configurations for CPU FIFO elements. From |
| Alin Jerpelea. |
| - CXD56xx Loader: Update loader and gnssfw ver. 17660. From Alin |
| Jerpelea. |
| - CXD56xx SMP: Add support for SMP. To run cxd56xx in SMP mode, new |
| boot loader which will be released later must be used. From |
| Masayuki Ishikawa. |
| - CXD56xx SMP: Add IRQ routing for SMP in cxd56_irq.c. In CXD56xx, |
| each external interrupt controller can be accessed from a local |
| APP_DSP (Cortex-M4F) only. This change supports IRQ routing for SMP |
| by calling up_send_irqreq() in both up_enable_irq() and |
| up_disable_irq(). From Masayuki Ishikawa. |
| |
| * Sony CXD56xx Drivers: |
| |
| - CXD56xx I2C: Add ability to set the i2c frequency to other than just |
| 100 or 400 Hz. From Alin Jerpelea. |
| - CXD56xx SDHCI: Reduce power consumption by stopping SD clock. Re- |
| enable SD clock during access to SD card. Improve GNSS low |
| sensitivity with SD card inserted. From Alin Jerpelea. |
| |
| * Sony CXD56xx Spresense Board: |
| |
| - CXD56xx Board Common: Add the Altair LTE modem support on the |
| Spresense board. From Alin Jerpelea. |
| - CXD56xx Board Common: Add Spresense Image Processor. Enable support |
| for accelerated format converter, rotation and so on. using the CXD5602 |
| image processing accelerator. |
| - Spresense: Add board specific pin configurations of CXD5602 pins to |
| fit Spresense board. From Takayoshi Koizumi. |
| - Spresense: Add a configuration option to select if an extension |
| board is attached to the SPresence. If there is no extension board |
| attached, the SPresense may run in a low-power mode by default (as |
| determined by the CONFIG_CXD56_CUSTOM_PINCONFIG option). If an |
| extension board is present, then the SPresense will need to run at a |
| higher power mode, selected by the new CONFIG_SPRESENSE_EXTENSION |
| option. From Gregory Nutt. |
| - Spresense Camera: Add ISX012 camera initialization and |
| configuration. From Alin Jerpelea. |
| - Spresense OS test: Enable ostest in rndis/defconfig and |
| wifi/defconfig. From Masayuki Ishikawa. |
| - Spresense: Add --gc-sections to LDFLAGS and add -ffunction-sections |
| and -fdata-sections to ARCHCFLAGS in scripts/Make.defs. From |
| Masayuki Ishikawa. |
| - Spresense SMP: Add smp configuration. From Masayuki Ishikawa. |
| - Spresense SCU: The SCU has to be initialized at bootup on Spresense |
| board because several functions depend on it. Add audio control |
| definitions. Add configuration for the audio implementation. From |
| Alin Jerpelea. |
| - Spresense: Add audio and board audio control implementation. From |
| Alin Jerpelea. |
| - Spresense: Sdd power_control and audio_tone_generator. Add a simple |
| way to control the audio buzzer with defined frequency for user-space |
| apps. From Alin Jerpelea. |
| - Spresense: Add the optional initialization of GNSS and GEOFENCE at |
| boot if the drivers are enabled From Alin Jerpelea. |
| - Spresense: Add LTE configuration. From Alin Jerpelea. |
| - Spresense: Enable high current mode for the Spresense Extension |
| board on all examples that have SDCARD support. From Alin Jerpelea. |
| - Spresense: Add lcd examples configuration. This is a configuration |
| for the basic nx examples From Alin Jerpelea. |
| |
| * STMicro STM32: |
| |
| - STM32F0/L0/G0: Add support for STM32G070xx family. From Daniel |
| Pereira Volpato. |
| - STM32F0/L0/G0 Power: Scale dynamic voltage and flash wait states |
| properly on STM32G0 chips. Included preliminary implementation of |
| PWR module VOS support. From Daniel Pereira Volpato. |
| - STM32L4R5ZI: Add support for the STM32L4R5ZI chip type. From Jussi |
| Kivilinna. |
| - STM32 L4+ DMA: Add DMA support for STM32L4+ series. From Jussi |
| Kivilinna. |
| - STM32 L4 Clocking: Enable "Range 1 boost" mode if any PLL freq |
| above 80 MHz. From Jussi Kivilinna. |
| - STM32 L4 LPTIM: Add support for LPTIM timers on the STM32L4 as PWM |
| outputs. From Matias N. |
| - STM32 H7 Progmem: Add FLASH progmem support. From David Sidrane. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 Serial: Single Wire add pull{up|down|none} via new IOCTL |
| command. From David Sidrane. |
| - STM32 F0/L0/G0 Serial: Single Wire add pull{up|down|none} via |
| new IOCTL command. From David Sidrane. |
| - STM32 F0/L0/G0 PWM: Add PWM support. From Daniel Pereira Volpato. |
| - STM32 G0 TIM: Support timers available on STM32G070. Includes TIM1 |
| PIOs, TIM driver lower-half. From Daniel Pereira Volpato. |
| - STM32 F7 Serial: Single Wire add pull{up|down|none} via new IOCTL |
| command. From David Sidrane. |
| - STM32 H7 BBSRAM: Exclude BBSRAM from cacheable when |
| CONFIG_ARMV7M_DCACHE. ST placed the STM32H7 BBSRAM in the SRAM |
| default memory region which is cacheable. This change sets the |
| BBSRAM memory range to non-cacheable. From David Sidrane. |
| - STM32 H7 SDMMC: Add SDMMC support and IDMA as well as interrupt |
| driven transmission. Support pull-ups and SDIO. From David Sidrane. |
| - STM32 H7 Serial: Single Wire add pull{up|down|none} via new IOCTL |
| command. From David Sidrane. |
| - STM32 L4 OTGFS: Enable OTGFS for STM32L4+ series. The OTGFS |
| peripheral on stm32l4x6 and stm32l4rxxx reference manual is exactly |
| the same. From Jussi Kivilinna. |
| - STM32L4 IDLE Loop: (1) Added BEGIN_IDLE()/END_IDLE() to stop call |
| so that we also get notification via LED of the STOP mode, (2) Added |
| the stm32l4_clockenable call as previously discussed, and (3) Added |
| call to pm_changestate() to inform drivers we're back to running |
| after the call to stm32l4_stop() returns. From Matias N. |
| - STM32 L4 Serial: Single Wire add pull{up|down|none} via new IOCTL |
| command. From David Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - Nucleo-G070RB: Initial support for board STM32 NUCLEO-G070RB, |
| including NSH config. Enables PWR peripheral and set SYSCLK to |
| maximum frequency. From Daniel Pereira Volpato. |
| - Nucleo-G070RB: Enable basic timers. Add TIMx clock frequencies to |
| board.h. From Daniel Pereira Volpato. |
| - Nucleo-G070RB: Add PWM support and GPIO_TIM3_* mappings. Add a PWM |
| configuration. From Daniel Pereira Volpato. |
| - Nucleo-G070RB: Add button driver support, Add driver support. Add |
| GPIO configuration. From Daniel Pereira Volpato. |
| - Nucleo-L476RG: Add required definitions if libcxx is enabled. From |
| Matias N. |
| - Nucleo-L476RG: Add support for LPTIM timers as PWM outputs. From |
| Matias N. |
| - Nucleo-H743ZI: Added GPIO device driver for user-space apps. From |
| Heiko Demlang. |
| - olimex-stm32-e407: Newer Olimex E407 boards are populated with |
| STM32407ZE chips. From David Alessio. |
| - STM32F4-Discovery: Add support for external DS1307 module. From |
| Alan Carvalho de Assis. |
| - STM32F4-Discovery: Add support for MMCSD_SPI. This change works |
| with STM32F4 Discovery Shield plus microSD click From Masayuki |
| Ishikawa. |
| - STM32F4-Discovery: Add support for gs2200m. Works with mikroe |
| STM32F4 Discovery Shield (slot3) From Masayuki Ishikawa. |
| |
| * TI Tiva: |
| |
| - TM4C129ENCPDT: Add support for Tiva TM4C129ENCPDT. From Nathan |
| Hartman. |
| |
| * TI Tiva Boards: |
| |
| - TM4C123G-Launchpad: SPI CAN functionality on TM4C123GXL. From |
| DisruptiveNL. |
| |
| * Build System: |
| |
| - tools/Config.mk: Eliminate use of the built-in implicit rules. |
| From anchao. |
| - tools/Config.mk and Makefile.unix: Support the incremental build |
| for configuration change. From Xiang Xiao. |
| - tools/Config.mk: Support the ability to change the CFLAGS for |
| the compilation of a single file. Set special compiler options as |
| follows the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS". |
| For example in apps/examples/hello/Makefile: |
| $(SRCDIR)/hello_main.c_CFLAGS = -DTEST. From Xiang Xiao. |
| - Configuration: Auto-select CONFIG_BUILD_LOADABLE when either |
| CONFIG_BUILD_KERNEL or CONFIG_BINFMT_LOADABLE is selected. From |
| Xiang Xiao. |
| |
| * Libraries/Header Files: |
| |
| - libs/libc: Add CONFIG_MODLIB_SYSTEM_SYMTAB to generate the symbol |
| table for dlopen/insmod. From Xiang Xiao. |
| - getdelim() and getline(): Add implementations of the POSIX |
| functions getdelim() and getline(). Because of how the function is |
| defined, getline() cannot be used on platforms that use CR-LF lin |
| terminations. From Gregory Nutt. |
| - alarm(), setitimer(), and getitimer(): Implement alarm(), |
| setitimer() and getitimer() APIs. From liuhaitao. |
| |
| * Tools: |
| |
| - tools/mkexport.sh: Copy the essential build script files too and |
| move Make.defs/gnu-elf.ld into scripts like board folder layout. |
| From Xiang Xiao. |
| - tools/mkexport.sh: Should export full content for FLAT build even |
| with CONFIG_BUILD_LOADABLE. From Xiang Xiao. |
| - tools/testbuild.sh: Add an option to select the number of CPUs to |
| use with 'make' From Gregory Nutt. |
| - tools/indent.sh: Add a command line option to suppress reformatting |
| of comments. This is useful when comments are already correct |
| and/or contain formatted data such as tables or lists. From Gregory |
| Nutt. |
| - tools/nxstyle.c: Add detection of carriage returns. Improve |
| reporting of TABs. From Gregory Nutt. |
| - tools/nxstyle.c: Add logic to detect if there is a blank line |
| following the final right brace. From Gregory Nutt. |
| - tools/nxstyle.c: Eliminate false alarm errors on comments that are |
| to the right of code when the comment terminator is on the same |
| line as the last of the comment. From Gregory Nutt. |
| - tools/nxstyle.c: Eliminate false alarms when checking for |
| alignment of comments to the right of code. Fix check for C++ style |
| comments so that strings like http:// and https:// do not generate |
| false alarms. From Gregory Nutt. |
| - tools/nxstyle.c: Eliminate false positive 'Invalid character after |
| asterisk in comment block'. From Gregory Nutt. |
| |
| * apps/ Build System: |
| |
| - apps/ Build System: Numerous changes for improvements and general |
| clean-up of the apps/ build system. Too many small and individual |
| changes to list here. Includes many improvements related to loadable |
| modules and symbol table generation, removal of duplicated logic, |
| renaming of binary directories, use of cygpath, etc. From Xiang Xiao. |
| - apps/Application.mk: Support the ability to change the CFLAGS for |
| the compilation of a single file. Set special compiler options as |
| follows the rule: sourcefile + fixed suffix "_[A|C|CPP|CXX]FLAGS" |
| As an example in apps/examples/hello/Makefile: |
| $(SRCDIR)/hello_main.c_CFLAGS = -DTEST |
| From Xiang Xiao. |
| - apps/Application.mk and main.c files: Change builtin's entry point |
| from main to xxx_main by macro expansion. This change make the |
| entry point fully compliant with POSIX/ANSI standard. From Xiang |
| Xiao. |
| |
| * Examples/Tests: apps/examples: |
| |
| - apps/examples/audio_rttl: Add a simple RTTL player demo that is |
| able to play tunes according to an RTTL song. From Alin Jerpelea. |
| - apps/examples/bmi160: Add bmi160 example app. This app will read |
| the BM160 data and list it on the NSH console. From Alin Jerpelea. |
| - apps/examples/charger: Simple charger example that will display on |
| the console voltage and current values. From Alin Jerpelea. |
| - apps/examples/netlink_route: Add test/example of NETLINK_ROUTE |
| 'get' operations. From Gregory Nutt. |
| |
| * NuttShell: apps/nshlib: |
| |
| - apps/nshlib/: Add rptun cmd for boot remote core. From ligd. |
| - apps.nshlib/: Add a -t option to the arp command which will enable |
| printing the entire ARP table. From Gregory Nutt. |
| - apps/nshlib/: Add new NSH command, 'pmconfig'. From ligd. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/cle: Add basic color support to the CLE editor. |
| From Dave Marples. |
| - apps/system/i2c: While many I2C slave devices have multiple |
| indexed registers, some have only one register and it's not indexed. |
| For example, the I2C bus switch TCA9548A has only a Control |
| Register, attempting to index to "Reg[0]" alters its contents to |
| 0x00 disabling all subordinate buses. This change fixes that |
| problem by simply trying to read something/anything from the slave. |
| This also helps coax out slaves with register files that start from |
| a higher index, i.e. the AT24CS0x, FLASH chips with a UUID that |
| appears as a 2nd I2C slave at (address+8), report their serial |
| number at Reg[80]-Reg[8F] and will NAK a read of Reg[0]. Modified |
| get/set to prevent write of reg index if not specified. |
| - apps/system/i2c: Added a 'dump' command to issue a single |
| transaction to retrieve multiple bytes from an I2C slave and |
| register/offset. From David Alessio. |
| - apps/system/spi: Add options to specify devtype, id for chip |
| select. From David S. Alessio. |
| - apps/system/symtab: Remove system/symtab since the same |
| functionality exist in nuttx now. From Gregory Nutt. |
| - apps/system/usrsock_rpmsg: Add rpmsg based usrsock implementation. |
| From Jianli Dong. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/cjson/: Update default version to 1.7.12. Previous |
| releases raise compilation warnings about redefined true/false. |
| From raiden00pl. |
| - apps/netutils/netlib/: Add a function to read the entire ARP table |
| using NETLINK_ROUTE protocol. From Gregory Nutt. |
| - apps/netutils/netlib/: Add support for retrieving a snapshot of the |
| IPv6 neighbor table using Netlink sockets. From Gregory Nutt. |
| - apps/netutils/netlib/: Add a utility function that will return a |
| list of all network devices in the UP state. From Gregory Nutt. |
| - apps/netutils/netlib/: Add function to retrieve routing tables |
| using Netlink. From Gregory Nutt. |
| |
| Bugfixes: |
| --------- |
| Only the most critical bugfixes are listed here (see the ChangeLog for a |
| more complete list of bugfixes and for additional, more detailed bugfix |
| information): |
| |
| * Core OS: |
| |
| - Signals: Fix undefined reference from sig_default.c to |
| sched_suspend() if CONFIG_SIG_SIGSTOP_ACTION is not defined. From |
| raiden00pl. |
| - waitpid(): Fix a NULL pointer dereference on race without |
| DEBUG_ASSERT. From David Alessio. |
| - WD Timers: Back out a kludge-workaround in wd_start for an SDCC |
| compiler problem fix back in Feb 2017. That workaround now appears |
| to conflict with newer GCC versions using (unsupported) warning |
| options and SDCC no longer needs the work-around. From Gregory |
| Nutt. |
| - clock_systimespec(): Fix early timespec overflow if using 32 bit |
| system timer. From Jens Gräf. |
| - Spinlocks: spin_trylock handle memory barrier and instrumentation |
| correctly. From Xiang Xiao. |
| - Power Management: Fix a problem where a timer cannot start when it |
| encounters a very small pmtick. From ligd. |
| - boardctl(BOARDIOC_MKRD): This change corrects a problem with NSH: |
| NSH was calling the OS internal function ramdisk_register() in |
| violation of the portable POSIX interface. This change solves the |
| problem by introducing a new boardctl() function BOARDIOC_MKRD |
| which moves the RAM disk creation into the OS. From Gregory Nutt. |
| - boardctl(BOARDIOC_ROMDISK): Add support for the new |
| BOARDIOC_ROMDISK command. This allows applications to create ROMFS |
| block drivers without illegal direct calls to romdisk_register. |
| |
| * File System/Block and MTD Drivers: |
| |
| - SmartFS: Fix O_CREAT without O_TRUNC truncating existing file. |
| Also nothing in POSIX says that O_APPEND should prevent O_TRUNC. |
| From Juha Niskanen. |
| - SmartFS: Honor O_APPEND on writes. Also document pwrite() bug/ |
| limitation. From Juha Niskanen. |
| - GD25: spi_devid argument was not used in initialization. GD25 |
| driver was always using priv->spi_devid initialized to zero by |
| kmm_zalloc(). This change initializes it from the supplied function |
| argument. From Juha Niskanen. |
| - MMC/SD: Set wrbusy after success of all the operations. Any |
| failure could leave wrbusy set when it should not be if the |
| operation failed. From David Sidrane. |
| - MMC/SD: Enter a removed card state On a failure. If we fail to |
| read cardstatus in mmcsd_transferready consider this a hard error |
| and set the card to removed. From David Sidrane. |
| - MMC/SD (SDIO): Align DMA buffer for MBURST size. From David S. |
| Alessio. |
| |
| * Networking/Network Drivers: |
| |
| - Socket close(): Fixed problems noted by Bernd Walter: Eliminate an |
| incomplete test when a disconnection event happens. When a |
| disconnection event occurs, the close logic MUST always terminate |
| the wait. The conditional test was not incorrect, however, it |
| lacked 'else' logic and would simply ignore that disconnection event |
| in some cases. That is bad because there may not be another |
| disconnection event and that can lead to hangs (or at least very, |
| very long delays). From Gregory Nutt. |
| - ICMPv6: Dispatch ICMP_POLL to device's callback list too since |
| icmpv6_neighbor stills append the callback into this list. From |
| Gregory Nutt. |
| - ICMPv6: Decouple autoconfig and ICMPv6 socket to avoid an invalid |
| Kconfig combination. From Xiang Xiao. |
| - ICMPv6: cmpv6_autoconfig() error handling must not overwrite |
| overwrite the error code. From Xiang Xiao. |
| - TCP/UDP: Fix a chicken and egg problem by eliminating the check of |
| the arp/neighbor tables before packet transmission: |
| 1. For buffered TCP/UDP case, if CONFIG_NET_ARP_SEND / |
| CONFIG_NET_ARP_IPIN / CONFIG_NET_ICMPv6_NEIGHBOR isn't enabled |
| and the table doesn't contain the Ethernet address for the |
| destination IP address yet, then the logic will skip the real |
| transmission and then ARP/neighbor logic can't steal the final |
| buffer to generate the ARP/ICMPV6 packet. |
| 2. For all other case, the TCP layer or user program should already |
| contain the retransmit logic, the check is redundant and may |
| generate many duplicated packets if ARP/ICMPV6 response is too |
| slow because the cursor stop forward. If user is still concerned |
| about the very first packet lost, he could fix the issue by |
| enabling CONFIG_NET_ARP_SEND / CONFIG_NET_ICMPv6_NEIGHBOR. |
| From Xiang Xiao. |
| - UDP sendto(): Add a check for the device that is polling. In the |
| multiple network device case, this check is necessary to prevent |
| sending the UDP packet to the wrong device. From Gregory Nutt. |
| |
| * Wireless/Wireless Drivers: |
| |
| - MRF24J40: Correct erroneous isolation of address mode field and |
| subsequent bad comparison. From Gregory Nutt. |
| - GS2200M: Add SPI_SELECT() to _read/write_data() in gs2200m.c |
| - BCM43xx Wireless: In the SDIO interface, the behavior of the DMA |
| setup differs, depending on the hardware capability |
| SDIO_CAPS_DMABEFOREWRITE. If this capability is set, then the DMA |
| setup much be done before the transfer setup. Dave Marples |
| modified this file for the i.MXRT USDHC which does have the |
| SDIO_CAPS_DMABEFOREWRITE. Xiao Xiang reports that this change |
| breaks the Wifi on the Photon which does not report the |
| SDIO_CAPS_DMABEFOREWRITE and suggests reverting the change. In |
| reality both changes are correct but must be conditioned on the |
| DMA capability of the underlying SDIO device. From Gregory Nutt. |
| |
| * Common Drivers: |
| |
| - Various drivers (Cloned logic): On error, memory was freed, but |
| the error was not returned. It just continued as though no error |
| happened. From Petro Karashchenko. |
| - Serial: Fix data corruption when outputting data in SMP mode From |
| Masayuki Ishikawa. |
| - Serial: serial_io.c used signal numbers, but did not include |
| signal.h. This has no problems but missing signal definitions have |
| been seen in certain cases. From David Sidrane. |
| - Serial DMA: Avoid uart_xmitchars_done() move the tail bigger then |
| head. If ioctl(TCOFLUSH) occurs between uart_xmitchars_dma() and |
| uart_xmitchars_done(), TCOFLUSH will reset xmit buffer, then |
| uart_xmitchars_done() will move the 'tail' ahead of 'head', then |
| sends lots of wrong data. From ligd. |
| - mkfifo(): mkfifo() should return -1 and set errno on failure From |
| raiden00pl. |
| - RAMLog: Fix ramlog readers never awakened up when using ramlog as |
| syslog or console. We also make an attempt to avoid the thundering |
| herd problem if there are multiple readers/pollers. This change also |
| removes forcing CONFIG_RAMLOG_CRLF in nuttx/syslog/ramlog.h as there |
| is no point of wasting precious RAM for useless characters. From |
| Juha Niskanen. |
| - USB CDC/ACM: Fix memory leak of RX failsafe timer. From Juha |
| Niskanen. |
| - USB HID Keyboard device: Fix keyboard debounce algorithm used when |
| CONFIG_HIDKBD_NODEBOUNCE is undefined. From Jeff Theusch. |
| - USB HID Keyboard: Change default for CONFIG_HIDKBD_POLLUSEC per |
| recommendation of Jeff Theusch. From Gregory Nutt. |
| - VL53L1X IOCTLs: IOCTL commands for the VL53L1X did not follow the |
| sequence. Noted by Daniel Pereira de Carvalho. From Gregory Nutt. |
| - syslog: syslog_force does not set errno so do not test against it. |
| From Juha Niskanen. |
| - syslog: Fix assertion that assumes re-opened syslog file is the |
| same. Logic in syslog_file_channel() is calling syslog_initialize() |
| for the default syslog device as a recovery action after failed |
| syslog_dev_initialize(). From Juha Niskanen. |
| |
| * Simulator: |
| |
| - Simulator HostFS: Skip '.' and '..' in readdir' From Xiang Xiao. |
| - Simulator HostFS: Fix warning: 'mapflags' may be used uninitialized |
| in this function. From Xiang Xiao. |
| - Simulator Tickless: Correct the calculation of the Tickless timer |
| period. Fix some missing initialization of globals and missing |
| return values. From Matias N. |
| - Simulator: Add -m32 to HOSTLDFLAGS if enable CONFIG_SIM_M32. From |
| Xiang Xiao. |
| - Simulator PM: Fixes compilation for sim target when enabling power |
| management. From Matias N. |
| - Simulator Build: Fixes missing recursion into sim board directory |
| for dependency generation. From Matias N. |
| - Simulator SIMUART: Remove CONFIG_SIM_UART_DATAPOST for arch/sim. |
| It's very dangerous to call NuttX API from simuart_thread. From |
| Xiang Xiao. |
| |
| * ARMv7-A |
| |
| - ARMv7-A: Apply Masayuki Ishakawa's change for ARMv7-M to this SMP |
| architecture as well. From Gregory Nutt. |
| |
| * ARMv7-M |
| |
| - ARMv7-M: Fix a deadlock in up_sigdeliver() in SMP mode. In |
| previous implementation, up_disable_irq() was called before |
| recovering local context. However, I noticed a deadlock happens in |
| the following situation. For example, if up_sigdevliver() is in |
| progress on CPU0 and CPU1 has called up_cpu_paused to CPU0, hence |
| g_cpu_irqlock has been locked by CPU1, in this case, we would see a |
| deadlock in later call of enter_critical_section() to restore |
| irqcount. To avoid this situation, we need to call |
| enter_critical_section() to break the deadlock. From Masayuki |
| Ishikawa. |
| |
| * Atmel SAM3/4 Boards: |
| |
| - SAM4CM: Fix cpustart() implementation. In Cortex-M, offset 0 in |
| vector table stores initial stack pointer and offset 4 stores reset |
| vector. From Masayuki Ishikawa. |
| |
| * Atmel SAMA5Dx Boards: |
| |
| - SAMA5D4-EK: Fix bad conditional compilation for |
| board_app_initialize(). Should depend only on CONFIG_LIB_BOARDCTL, |
| CONFIG_BUILD_KERNEL is irrelevant. From Gregory Nutt. |
| |
| * Microchip i.MXRT: |
| |
| - i.MXRT WFI: WFI needs to be disabled on i.MXRT. We found the |
| reason: The imxrt1050 is configured to use SYSTICK for the kernel |
| timer, but SYSTICK cannot wake up the MCU from low-power modes. |
| Disable low-power modes on this MCU until we have support for an |
| alternative timer. Earlier versions of the board (EVK, not EVKB), |
| had A0 silicon which by default did not enter low-power mode on a |
| WFI. With this change in place together with the previous one my |
| system is stable, just using more power than it should. From Dave |
| Marples. |
| |
| * Microchip i.MXRT Drivers: |
| |
| - i.MXRT Serial: TC (Transmission complete) and TDRE (TX Buffer |
| Empty) were transposed in imxrt_serial.c. The end result was that |
| for unoptimized code everything worked fine, but optimized code got |
| itself into a real mess and continually fired interrupts. From Dave |
| Marples. |
| |
| * Microchip i.MXRT Boards: |
| |
| - IMXRT1020-EVK: Make naming of the LED consistent. In most places |
| it is referred to as LED1. In board.h it is referred to as |
| USERLED1. The i.MXRT1020-EVK hardware user guide (HUG) uses the |
| name USERLED. This command makes all names internally consistent |
| and consistent with the HUG. Noted by Alin Jerpelea. From Gregory |
| Nutt. |
| |
| * NXP/Freescale Kinetis Boards: |
| |
| - TWR-K60N512: Suppress errors related to card detect GPIO |
| configuration if SDHC support is not enabled. From Gregory Nutt. |
| |
| * NXP LPC17xx/40xx Drivers: |
| |
| - lpc17xx/40xx I2C: Respect the I2C_M_NOSTART flag. Sending a |
| restart condition when not requested will break other drivers that |
| depend on this behavior. From Augusto Fraga Giachero. |
| - LPC17xx/40xx Ethernet: Use usleep() instead of up_delay() for large |
| wait times. From Augusto Fraga Giachero. |
| |
| * NXP LPC54xx: |
| |
| - LPC54 Clocking: Fix PLL settings. For the lpc54628 Rev. E board |
| the PLL was not configured properly and the board would not boot |
| correctly. I checked the startup files from the official IDE and |
| inspected the assembly instructions for the libraries used. From |
| Andrei Stefanescu. |
| |
| * NXP i.MXRT Boards: |
| |
| - IMXRT1060-EVK: Fix FT5X06 CTRSTn pin configuration, increased |
| number of pollwaiters for the FT5X06, tuned resolution during |
| pointer dragging. From Fabio Balzano. |
| |
| * On Semiconductor Boards: |
| |
| - LC823450: Fix cpustart() implementation. In Cortex-M, offset 0 in |
| vector table stores initial stack pointer and offset 4 stores reset |
| vector. From Masayuki Ishikawa. |
| - LC823450-XGEVK: Fix build error for posix_spawn. From Masayuki |
| Ishikawa. |
| |
| * Sony CXD56xx: |
| |
| - CXD56xx Assertions: Replace some assertions with error return |
| values. From Alin Jerpelea. |
| - CXD56xx Interrupts: Fix hang-up when error interrupt occurs. From |
| Alin Jerpelea. |
| - CXD56xx Pin Configuration: PIN_AP_CLK is used as a port selector of |
| SDIO expander on the extension board, and is set output low in |
| initialization. Therefore, this pin cannot be used by the other |
| board. To avoid this restriction, remove this initial operation |
| because this pin is pulled down by default on the extension board. |
| From Alin Jerpelea. |
| - CXD56xx: Remove duplicate NVIC_SYSH redefinitions. The NVIC_SYSH |
| is already defined in nvicpri.h From Alin Jerpelea. |
| |
| * Sony CXD56xx Drivers: |
| |
| - CXD56xx SDHCI: Fix initial value of semaphore in sdhci driver. |
| From Alin Jerpelea. |
| |
| * Sony CXD56xx Boards: |
| |
| - Spresense: The SD Card TXS02612 port expander is hosted on the |
| Extension board and should not be enabled if the extension board is |
| not present. From Alin Jerpelea. |
| |
| * STMicro STM32: |
| |
| - STM32 F4 Pin Multiplex: Ethernet pin ETH_RMII_REF_CLK is an input. |
| From Gregory Nutt. |
| - STM32 H7 ADC: Fix typos in ADC register definitions. From Markus |
| Bernet. |
| - STM32 H7: Heap allocation, SRAM and SRAM1 are not continuous From |
| David Sidrane. |
| - STM32 H7 CRC: Add the CRC option in KConfig. From Eduard Niesner. |
| - STM32 H7 RCC: Add PLL3 Support and only enable PLLs if used. From |
| David Sidrane. |
| - STM32 L4x6xx RCC: This fix is needed if HSI clock is selected. |
| Otherwise when waking up from STOP mode, the MSI clock is selected |
| instead of the HSI clock. From Matias N. |
| |
| * STMicro STM32 Drivers: |
| |
| - STM32 USB Host: There was no relationship between |
| CONFIG_STM32_USBHOST and CONFIG_USBHOST, yet they they were used |
| interchangeably. This means that can (and did) get out of synch |
| causing link time failures. This change adds logic to select |
| CONFIG_USBHOST when CONFIG_STM32_USBHOST is selected, keeping the |
| two settings synchronized. Furthermore, since CONFIG_STM32_USBHOST |
| is the authoritative setting, all occurrences of CONFIG_USBHOST were |
| replaced with CONFIG_STM32_USBHOST. From Gregory Nutt. |
| - STM32 SDIO: SDIO Fix system hang on card eject. From David Sidrane. |
| - STM32 F7 Ethernet: Large Ethernet packet can leads network halt. |
| From Bazooka Joe. |
| - STM32F7 OTGHOST: OTGFS_EPTYPE_INTR should be OTG_EPTYPE_INTR. From |
| Gregory Nutt. |
| - STM32 F7 SDMMC: SDMMC Fix system hang on card eject. From David |
| Sidrane. |
| - STM32 L4 Firewall: Correct a test to determine if an address lies |
| in FLASH or not. Improper mask caused test to always fail. From |
| Gregory Nutt. |
| - STM32 H7 Ethernet: Bazooka Joe's fix to the STM32 F7 Ethernet |
| driver should be applied to the H7 as well. The other STM32 |
| Ethernet drivers already have the change. From Gregory Nutt. |
| - STM32 H7 Ethernet: Fix ETH_MACMDIOAR_CR_MASK bit mask. From Markus |
| Bernet. |
| - STM32 H7 SDMMC: SDMMC Fix system hang on card eject. From Gregory |
| Nutt. |
| - STM32 H7 FLASH: Flash driver BUG fixes. From David Sidrane. |
| - STM32 H7 TIM: Correct register bit definitions and alternate |
| functions. Fix other copy-paste definitions. From Daniel Pereira |
| Volpato. |
| - STM32 L4 SDMMC: SDMMC Fix system hang on card eject. From David |
| Sidrane. |
| |
| * STMicro STM32 Boards: |
| |
| - STM32F4-Discovery: Fix build error for posix_spawn. From Masayuki |
| Ishikawa. |
| |
| * TI Tiva: |
| |
| - TIVA IRQs: Fix wrong IRQ vector number. From Nathan Hartman. |
| - Tiva FLASH: Fix several mistakes in tiva_write(). (1) Fix wrong |
| use of && when & was intended. (2) Add compile- time warning |
| directive because according to this function's interface, it is |
| supposed to support unaligned writes and/or writes of arbitrary |
| numbers of bytes to FLASH. However, this function does NOT support |
| that at this time. This needs to be fixed. (3) Fix wrong |
| preprocessor conditional. Was written to use the 32-word write |
| buffer only for TM4C1294NCPDT. This buffer is available on all |
| M4C123 and TM4C129 parts. Now conditioned upon |
| CONFIG_ARCH_CHIP_TM4C123 or CONFIG_ARCH_CHIP_TM4C129. (4) Add |
| comments to document the intent of the above preprocessor logic. |
| From Nathan Hartman. |
| |
| * Xtensa |
| |
| - Xtensa: Apply Masayuki Ishakawa's change for ARMv7-M to this SMP |
| architecture as well. From Gregory Nutt. |
| |
| * Build System: |
| |
| - Makefiles: Change ${shell pwd} to $(CURDIR) since pwd doesn't exist |
| on Windows From Xiang Xiao. |
| - tools/Makefile.unix: Fix build error when issue 'make -B': "mkdir: |
| cannot create directory 'staging': File exists: |
| tools/Makefile.unix:269: recipe for target 'staging' failed". From |
| Xiang Xiao. |
| - All ARM linker scripts: Preface all _ebss definitions with '. = |
| ALIGN(4)'. Otherwise, the following .bss section may not be aligned |
| properly. From Gregory Nutt. |
| - MIPS Linker Scripts: The PIC32M* start-up code initializes .bss by |
| writing 16 bytes at a time in a loop. The start (_sbss) alignment |
| is only required to be 4 bytes since the write is done with 4 store |
| instructions. From Gregory Nutt. |
| - Top-level Kconfig: Add some protection so that you cannot select an |
| architecture-specific header file if the architecture does not |
| provide the header file. From Gregory Nutt. |
| - libc Kconfig: Should select the NuttX float.h file automatically |
| if the NuttX math library is selected. From Gregory Nutt. |
| - tools/Makefile.unix: Make COMMON_DIR work with |
| CONFIG_ARCH_BOARD_CUSTOM. From Xiang Xiao. |
| - tools/ Make fragments: Fix the various minor issue for NUTTXLIBS / |
| USERLIBS: (1) Remove libcxx duplication in FlatLibs.mk and from |
| kernel space, (2) Remove libpass1 from KernelLibs.mk since kernel |
| build doesn't support the two pass mode, and (3) Remove FSDIR |
| related comment since file system cannot be disabled now From Xiang |
| Xiao. |
| |
| * C Library/Header Files: |
| |
| - getcwd(): Remove stray sched_unlock(). Also fixes several typos. |
| From Juha Niskanen. |
| - date(), hostname(): Fix portability issue with date, hostname From |
| David Alessio. |
| - libs/libxx/Kconfig: Automatically select CONFIG_CLOCK_MONOTONIC when |
| CONFIG_LIBCXX is selected. Removed hardcoded -DCLOCK_MONOTONIC from |
| CFLAGS in Make.defs of several configurations. That definition is |
| now automatically adding this define when CONFIG_LIBCXX=y. From |
| Daniel Pereira Volpato. |
| - libs/libxx/Kconfig: CONFIG_LIBC_LOCALE is needed to build libcxx. |
| A math library is also needed, however, there are various ways to |
| provide a math library so CONFIG_LIBM is not now set. From Matias |
| N. |
| - libs/libc/symtab: Move symbol table generation into libc since the |
| address in symbol table should come from userspace binary for |
| PROTECTED build, not kernel binary. From Xiang Xiao. |
| - libs/libc/ Kconfig files: Disable EXECFUNCS_HAVE_SYMTAB for kernel |
| build. The symbol table doesn't have any meaning for kernel build |
| since all executable binary should be self contained. From Xiang |
| Xiao. |
| |
| - include/sys/time.h: According to earlier standards, usage of |
| select(), FD_CLR, FD_ISSET, FD_SET and FD_ZERO just need include |
| headers: sys/time.h, sys/types.h and unistd.h. So include |
| sys/select.h in time.h to compatible with it. Or mbedtls library |
| would build break in calling select() and FD_* related functions. |
| From liuhaitao. |
| |
| * Tools: |
| |
| - tools/configure.sh and configure.c: Do not remove CONFIG_SIM_M32 if |
| host is specified. From anchao. |
| - tools/Directories.mk: Remove FSDIRS/NOFSDIRS related logic/comments |
| since the file system can no longer be disabled now. From Xiang |
| Xiao. |
| - tools/Makefile.host: Add missing binaries from clean target. From |
| Gregory Nutt. |
| - tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so |
| that they lie in FLASH not RAM. From Bernd Walter. |
| - tools/nxstyle.c: Correct detection of missing blank line following |
| a block comment. From Gregory Nutt. |
| |
| * apps/ Build System: |
| |
| - Makefiles: Change ${shell pwd} to $(CURDIR) since pwd doesn't exist |
| on Windows From Xiang Xiao. |
| - Makefile: Fix warning: jobserver unavailable: using -j1. Add '+' to |
| parent make rule. From Xiang Xiao. |
| - apps/Application.mk: Correct an error in PATH usage. Use of |
| toolchain path causes make errors. From Gregory Nutt. |
| |
| * apps/tools: |
| |
| - tools/mkromfsimg.sh: Use sed to add const to ROMFS declarations so |
| that they like in FLASH not RAM. From Bernd Walter. |
| |
| * Examples: apps/examples: |
| |
| - apps/examples/mount: Replace illegal call to ramdisk_register() |
| with a call to boardctl(BOARDIOC_MKRD). From Gregory Nutt. |
| - apps/examples/nxlines/: Correct nxlines example program name. From |
| Gregory Nutt. |
| - apps/examples/nxterm/: PROGNAME, PRIORITY, STACKSIZE variable |
| names did not match declarations in Kconfig file. From Gregory |
| Nutt. |
| - apps/examples/romfs: Remove romfs_testdir.h. That file is |
| regenerated whenever the example is built and so should not be in |
| the repository. From Gregory Nutt. |
| |
| * Testing: apps/testing: |
| |
| - apps/testing/cxxtest/: Fix typo error in testing/cxxtest. From |
| Xiang Xiao. |
| - apps/testing/unity/: Fix the error when creating Make.dep. From |
| raiden00pl. |
| |
| * NSH Library: apps/nshlib: |
| |
| - apps/nshlib: Remove the inappropriate NSH_BUILTIN_APPS coupling. |
| From Xiang Xiao. |
| - apps/nshlib/: The NSH mkrd command was in violation of the NuttX |
| portable POSIX interface. It was calling the internal OS function |
| ramdisk_register() directly. Not only is this a violation of the |
| interface specification, but also prevents use of mkrd in PROTECTED |
| or KERNEL builds. With this change, the NSH mkrd command now uses |
| the BOARDIOC_MKRD boardctl() command. This command is available in |
| all build modes. The effect of this change is to move the heart of |
| the NSH mkrd command into to OS and provide user-space access via |
| boardctl(). From Gregory Nutt. |
| - apps/nshlib/: Replace direct calls to romdisk_register() with |
| indirect calls via boardioctl(BOARDIOC_ROMDISK). This not only |
| fixes the violation of the portable POSIX OS interface, but also |
| permits use of ROM disks in PROTECTED and KERNEL modes. From |
| Gregory Nutt. |
| - apps/nshlib/: Add missing NSH_DISABLE_DMESG from Kconfig. From |
| Juha Niskanen. |
| |
| * System Utilities: apps/system: |
| |
| - apps/system/cle/: This change modifies the cle to use the streams |
| file interface more consistently and has removed the observed race |
| conditions. It was previously a mix of streams and fileio. It |
| also simplifies the VT100 cursor position handling. From Dave |
| Marples. |
| - apps/system/composite: Remove usb serial loopback test code we can |
| achieve the same effect by cat or dd command. From Xiang Xiao. |
| - apps/system/cu/: (1) Fix early exit. getc(stdin) can return 0 the |
| first time around. (2) Set optind to zero. getopt() was being |
| left in a bad state, causing parsing errors on second use. (3) Fix |
| priority of cu_listen(). (4) Add support for -h. From David |
| Alessio. |
| - apps/system/lzf/: Check the protection by CONFIG_SYSTEM_LZF != |
| CONFIG_m (not elf binary) instead of CONFIG_KERNEL_BUILD. From |
| Xiang Xiao. |
| - apps/system/spi: Correctly parse exch txdata args, if any. Should |
| always call the board's deselect From David Alessio. |
| |
| * File System Utilities: apps/fsutils: |
| |
| - apps/fsutils/passwd/: Use named semaphore by checking |
| CONFIG_FS_NAMED_SEMAPHORES instead of CONFIG_KERNEL_BUILD. From |
| Xiang Xiao. |
| |
| * Network Utilities: apps/netutils: |
| |
| - apps/netutils/cjson/Makefile: Fix the error when creating |
| Make.dep. From raiden00pl. |
| |
| * Graphics: apps/graphics: |
| |
| - apps/graphics/twm4nx/: Fix a recently introduced error that broke |
| all Twm4Nx configurations. From Gregory Nutt. |
| - apps/graphics/traveler/: Replace direct calls to romdisk_register() |
| with indirect calls via boardioctl(BOARDIOC_ROMDISK). This not only |
| fixes the violation of the portable POSIX OS interface, but also |
| permits use of ROM disks in PROTECTED and KERNEL modes. From |
| Gregory Nutt. |
| |
| NuttX-9.0.0 Release Notes |
| ------------------------- |
| |
| This is the first release of NuttX as Apache NuttX (Incubating) and represents our first major milestone as a Podling of the Apache Software Foundation's Incubator. This release is the culmination of nearly 6 months of hard work and includes several new architectures and drivers, and numerous improvements and bug fixes to the core RTOS, drivers, and networking subsystems. |
| |
| * Major Changes to Core OS |
| * Bugfixes |
| - nxsem_wait_uninterruptible() now returns if the task is canceled. |
| - Fix a bug in pthread_condwait() that was improperly re-initializing the mutex. |
| - In sched_setpriority(), fix functions called inside a DEBUGASSERT that were eliminated when assertions are disable |
| |
| * Compatibility Concerns |
| |
| - The configuration option CONFIG_CAN_PASS_STRUCT is now removed. Previously, it was used (at the cost of breaking standards support) to support older versions of the SDCC compiler that couldn't pass structs/unions as functions' parameters. A newer version of the compiler has resolved the issue. |
| |
| * Major Changes to Build System |
| - Add a post-build function that allows extending the build with CPU/board-specific logic. |
| - Add build tools to simplify ZDS-II tool usage. |
| - mkexport.sh: Deal with ARCHSCRIPT containing multiple files. |
| - Various nxstyle improvements. |
| |
| * Architectural Support |
| * New architecture support |
| - Add support for RISCV-64 |
| - Add support for x86_64 (tested on QEMU) |
| - Add support for ELF64 |
| - Add a port to the NUCLEO-F429ZI board |
| - Add support for the STM32H747I-DISCO board |
| - Add Z20X board support and bootloader to upload code from the W25 flash to SRAM |
| - Add initial support for Litex with softcore CPU VexRiscV SoC |
| - Add support for the Digilent ARTY_A7 board to test the Litex port |
| - Added initial support for Sipeed Maix Bit board with Kendryte K210 processor |
| - New architectural support: ez80f92 |
| - Flat address x86_64 port of Nuttx |
| - Support to run NuttX on ESP32 QEMU |
| - Initial support for Sipeed Maix Bit board with Kendryte K210 processor |
| - Add initial support for Kendryte K210 processor in SMP mode |
| - NXP S32K11x (Cortex-M0+) and S32K14x (Cortext-M4F): Add support for NXP automotive boards. |
| - XMC 4700 (Cortex-M4F) |
| * Architectures with significant improvements |
| - ESP32 loadable modules support |
| - i.MX RT: FLEXIO clock config logic. |
| - Fix the clock configuration for the i.MX RT family |
| - i.MX RT: Add ability to run from OCRAM |
| - SAMA5D27 peripheral support - USB Host working |
| - z20x: Add W25 bootloader |
| - i.MX RT: Add USB Device support |
| - STM32, STM32F7, STM32H7 add SPI DMATHRESHOLD |
| - Improve the simulator timer |
| - 64-bit modules on macOS simulator |
| - z20x: Add XTP2046 SPI support; add timer support |
| - RX65N RTC Driver added |
| - NXP Freedom K28F Board SD-Card support |
| - STM32H7: support SDRAM via FMC peripheral |
| - LM3S6965-ek: Add PROTECTED build support |
| - STM32H7: Added IWDG and WWDG, power management (sleep/stop/standby), WKUP pin configuration |
| - SAMV71: Add read UID implementation and move flash functions to RAM |
| - i.MX RT: Fix interrupts storm (serial & I2C) |
| - Various fixes and cosmetic changes to the CxD56xx architecture |
| - Fix SiFive FE310 related code (comments, improve serial irq handling, initial int status) |
| - Implement QSPI for STM32H7 |
| - Improvements for the nRF52 port: I2C, SPI, GPIO support |
| - Updates for LPC17xx/40xx serial |
| - Adds basic support for Microchip SAM E54 Xplained Pro board |
| - Adds an Ethernet driver for the SAME5x family (based on the SAMA5 GMAC driver) |
| - Add CDC ECM Ethernet over USB 2.0 High Speed (tested on SAMA5D36-Xplained board) |
| - Simulator: Reimplement simulator uart on top of serial driver framework |
| - NXP S32K1XX peripheral clock fixes |
| - Fix syscall stack alignment on armv7-m |
| - Fix flash_erase(page) when page >= 256 for STM32L4 family |
| - Add partial support for the NETLINK poll() operation. |
| - Add serial DMA support for STM32F7 |
| - Add AM335x Clock Configuration |
| - Add I2C support for AM335x |
| - Add configuration to fine tune LPI2C Timeout for iMXRT |
| - Add CAN support to AM335x |
| - Add I2C support to STM32F0/L0/G0 |
| - Kinetis LPC SDCard improvements |
| - Replace the busy polling with work_queue in the ethernet driver of simulator |
| - Fix Xtensa's SMP support to follow same logic from other SMP archs |
| - PIC32MZ: SPI transfers can be configured to use DMA. |
| - PIC32MZ: Implement cache operations. |
| * Driver Support |
| * New drivers |
| - New driver for the ADS7828 I2C analog to digital converter |
| - driver/ioexpander: New driver for PCA9538 I2C I/O expander |
| - New driver type for battery monitor ICs. |
| - Driver for the BQ769x0 battery monitor IC. |
| - Add Support for Quectel EC20 4G LTE Module USB CDC/ACM |
| - Add QSPI-based Winbond NOR FLASH driver |
| * Drivers with significant improvements |
| - Update all the drivers to check return value of nxsem_wait_uninterruptible(). |
| - MCP9844 shutdown mode support |
| - fcntl: add O_CLOEXEC flag, add O_CLOEXEC/FD_CLOEXEC support |
| - CDC-ECM Ethernet over USB 2.0 HS |
| - smartfs improvements: Handling of duplicate sectors, support fsck to check and repair the smartfs file system, and recover SPI Flash from initial error state. |
| - Various fixes for USBDEV driver: Remove unnecessary reset logic, fix descriptor type mismatch when dual speed is enabled, fix invalid/unsupported command processing, and fix string ID calculation. |
| - Handle size zero in umm_malloc.c and umm_realloc.c, which causes a system freeze in kernel mode. |
| - Fixed compilation issue with poll fds notification. |
| - Report POLLHUP and POLLERR in 'revents' regardless the requested 'events' set. |
| * Networking |
| - Telnet: Fix/Refine CTRL+C to work on telnet |
| - TCP: Fix of faulty TCP sequence increments |
| - netdb: Fix netdb to query IPv4 and IPv6 addresses regardless the server address type |
| - Netlink sockets may be set to non-blocking |
| - Improve TUN and SLIP, refine Control+C Handling in Telnet |
| - Sockets: Add socket MSG_DONTWAIT support |
| - Network Loopback Driver: Add a configuration option to control packet size |
| - Network IOCTLs: Add FIONBIO network IOCTL support |
| - NFS: Support IPv4 and TCP |
| - Sockets: Add IP and TCP socket options needed by iperf3 |
| - Netlink: Add support for asynchronous Netlink responses |
| - TCP: Monitor TCP_POLL/TCP_NEWDATA/TCP_BACKLOG per the request like UDP counterpart |
| - TCP: Minor design improvement to TCP delayed ACKs |
| - DNS IPv4/IPv6 Dual Host Support: When IPv4/IPv6 Dual Stack is enabled, queries both types of addresses regardless of whether the DNS server is accessed via IPv4 or IPv6. As a result, getaddrinfo() may return a mixed (IPv4/IPv6) address list. |
| |
| * Applications |
| * Improvements |
| - Extend netutils and netinit to work with only Netlink sockets enabled |
| - Add getprime program to check multi-thread performance |
| - Improve zmodem send performance |
| - Add simple HTS221, LSM303 and LSM6DSL examples |
| - Improve to gs2200m wiki performance |
| - Improve telnet server and enable it to listen on both IPv4 and IPv6 |
| - Improve ntpclient logic |
| - Improve wapi to save configuration to file system |
| - Improve wapi to skip associate if ssid is invalid |
| - Improve cmd_nfsmount to use IPv4 and IPv6 |
| - Improve ostest for SMP and non-SMP configurations |
| - Improve UDP to avoid using standard symbols |
| - Improve dhcpd to include configurable timeout and retry count |
| * Bugfixes |
| - Correct format when printing ARP tablet entries |
| - Ensure /bin/ping and ping work at the same time |
| - Correct backward conditional logic in dhcpd_leaseexpired() |
| - Fix several problems on ftpd |
| - Fix dhcpd issue reported on Issue #17 |
| - Fix sendmail example to run on a local SMTP server |
| - Fix buffer overflow on netlib |
| - Fix compile errors in loopback mode of the tcpblaster |
| - Fix stack corruption in ELF task test |
| - Fix errors in NoBlockRecv and BlockRecv tests of usrsocktest |
| - Fix ipforward IP Header issue for IPv4 |
| - Fix wrongly swapped parity options of CU program |
| - Fix slcd to avoid using priv->fd before initializing it |
| - Fix (tcp, udp)blaster to build on macOS |
| - Correct the buffer type of base64 program |
| |
| NuttX-9.1.0 Release Notes ------------------------- |
| |
| * Major Changes to Core OS: |
| * New Features: |
| - PR-977 PR-987 PR-998 PR-995 PR-997 PR-1007 Thread Local Storage (TLS) |
| is now a required feature and used by all architectures |
| There is detailed information on the implementation and how this |
| impacts errno specifically in the Wiki article: Userspace errno and |
| TLS |
| - PR-957 PR-947 PR-963 PR-969 Provide nx_ versions of many functions |
| that are used internally to avoid disrupting errno in userspace |
| - PR-965 PR-980 PR-984 ioctl is now always in the variadic form. |
| Syscalls in KERNEL builds are also more efficient with this as well now. |
| Previously the ioctl prototype was normally defined as: |
| |
| int ioctl(int fd, int cmd, unsigned long arg); |
| |
| unless the CONFIG_LIBC_IOCTL_VARIADIC was enabled in which case it was |
| |
| int ioctl(int fd, int cmd, ...); This form is now the form defined by |
| opengroup and is also inline with Linux. Prior to this change there |
| were issues with making ioctl calls on 64-bit arch since the |
| implementation assumed that (void *) would be of size long. There is |
| more discussion of this issue in the GitHub issue ticket here: |
| |
| https://github.com/apache/incubator-nuttx/issues/959 |
| |
| - PR-962 PR-964 Add new interface sched_get_stackinfo that simplifies |
| interfaces for things like TLS |
| There are some security imposed rules for using this interface |
| Any thread may query its own stack, A kernel thread may query the |
| stack of any other thread Application threads, however, may query |
| only the stacks of threads within the same task group, i.e., the |
| main thread and any of the child pthreads created with the main |
| thread as a parent or grandparent or great-grandparent. |
| |
| - PR-1104 Internal function fs_fsopen() no longer affects errno - |
| - PR-1123 Move task_init() and task_activate() to be internal functions - |
| - PR-1140 Add nxtask_uninit() interface |
| This function will undo all operations on a TCB performed by |
| task_init() and release the TCB by calling kmm_free(). This is |
| intended primarily to support error recovery operations after a |
| successful call to task_init() such was when a subsequent call to |
| task_activate fails. |
| - PR-1134 Add typedef for max_align_t |
| - PR-1141 Handle custom stack allocations |
| sched_releasetcb() will normally free the stack allocated for a task. |
| However, a task with a custom, user-managed stack may be created using |
| nxtask_init() followed by nxtask_activate(). If such a custom stack is |
| used then it must not be freed in this manner or a crash will most |
| likely result. |
| |
| This change adds a flag call TCB_FLAG_CUSTOM_STACK that may be passed |
| in the the pre-allocated TCB to nxtask_init(). This flag is not used |
| internally anywhere in the OS except that if set, it will prevent |
| sched_releasetcb() from attempting to free that custom stack. |
| |
| * Bug Fixes: |
| - Many private architecture interfaces were using 'up_' instead of the |
| arch name 'arm_' |
| This fix is carried over many PRs such as PR-924. Many files also |
| carried this same error in naming convention and were converted as |
| well. |
| |
| - PR-1018 PR-1017 PR-1021 PR-1022 PR-1057 PR-1060 PR-1194 Clean up |
| internal APIs that were not using the properly naming conventions - |
| - PR-857 Wrong value for it_interval field in timespec returned by |
| timer_gettime - PR-902 SMP: On task creation do not clone |
| uninitialized descriptors |
| In SMP mode, there is a possibility that a pthread executing one CPU |
| may create a new task while a pthread on another CPU has allocated |
| the socket but not yet initialized it. This commit updates the |
| socket clone test to assure that the socket is both allocated and |
| initialized before it is cloned. |
| - PR-911 Use OS signal functions internally to not reset errno that |
| applications are using |
| - PR-925 sys/stat.h Change the xtime fields to align with POSIX |
| standard. Starting from Issue 7 of the POSIX standard the fields |
| st_atime, st_mtime and st_ctime have a type of strcut timespec instead |
| of time_t. |
| - PR-939 openamp: Update to 2020.04.0 - PR-953 lib_vsprintf: Fix issue |
| where stack would become corrupt on x86_64 |
| This function requires traversing the VA_LIST twice. For some |
| architectures like x86 and x86_64 this needs to be cloned first. |
| |
| * Major Changes to the Build System: |
| Parts of the build system have been refactored to reduce duplication and |
| simplify Makefile and Make.defs files across many directories. These changes |
| are particularly beneficial for boards. |
| |
| Please note that if you develop your own custom boards, you may need to make |
| some modifications to keep your board's build scripts up-to-date with the |
| rest of NuttX and avoid a broken or defective build. For details, see |
| Compatibility Concerns, Changes to Build System, in these release notes. |
| |
| * New Features: |
| - PR-894 openamp and libmetal can now be downloaded and configured by |
| build system - PR-941 Remove 'u' prefix from userspace library in FLAT |
| Build so it is the same for all build types - PR-1044 ARM: Remove |
| support for old redundant gcc toolchains |
| |
| This removes support for the Codesourcery, Atollic, DevKitArm, |
| Raisonance, and CodeRed toolchains. Not only are these tools old and |
| no longer used but they are all equivalent to the standard ARM EABI |
| toolchains. Retaining specific support was not meaningful (and they |
| are still supported, but now just as generic EABI toolchains). |
| - PR-1148 PR-1149 Improve build time especially on non-Linux platforms |
| by providing a C version of incdir.sh |
| |
| * Bug Fixes: |
| Many small changes to resolve dependency resolution issues that would |
| sometimes appear during parallel builds. Parallel builds should be much |
| more reliable now and bugs filed against any issues found. |
| |
| - PR-1000 Fix broken support of ZDS-II Toolchain with MSYS |
| |
| * Architectural Support: |
| * New Architecture Support: |
| - PR-879 ARMv8-M support - PR-1051 STM32G474 support |
| |
| - Initial architectural support for the STM32G474 family of |
| microcontrollers. In terms of peripherals, currently there is basic |
| support for the RCC and UART, allowing NuttX to boot to a functional |
| NSH prompt on this family. Other peripherals on the SoC are not yet |
| supported and/or not tested yet. Contributions to enable other |
| peripherals are welcome. This adds support for these variants: |
| |
| STM32G474C STM32G474M STM32G474R STM32G474Q STM32G474V |
| |
| * Architectures With Significant Improvements: |
| - PR-745 The full line of STM32H7 chips are now defined |
| This adds support for these variants: |
| |
| STM32H743AG STM32H743AI STM32H743BG STM32H743BI STM32H743IG |
| STM32H743II STM32H743VG STM32H743VI STM32H743XG STM32H743XI |
| STM32H743ZG STM32H753AI STM32H753BI STM32H753VI STM32H753XI |
| STM32H753ZI |
| |
| - PR-811 i486: Fix corruption of esp register on full context restore |
| This resolves a long standing issue with running the x86 port under |
| QEMU where it would crash shortly after boot. |
| |
| - PR-837 rx65n: Add crashdump support using standby RAM - PR-862 |
| STM32L4: Expose LPTIM timers - PR-868 STM32L4: Extend clock options and |
| power regulation for based on clock settings |
| Interface to select the core regulator voltage according to clock |
| frequency range Usage of this interface during clock configuration |
| according to chosen clock frequency Option to choose a different |
| system clock than the main PLL (there is HSI, MSI, HSE and LSE |
| available to use) Option to not enable the main PLL which allows for |
| reduced power usage when setting one of the above options as system |
| clock, to do this you should define STM32L4_BOARD_NOPLL on your |
| board header. |
| - PR-960 STM32: Add support for ADC features EXTSEL and JEXTSEL |
| - PR-1041 STM32H7: Improve IDMA transfer and cache handling |
| This resolves an issue where the sdmmc driver crashes at boot when |
| using writeback cache. |
| |
| This also simplifies the sdmmc driver when the IDMA is in use. There |
| is no need to mix IDMA and interrupt based transfers; instead, when |
| making unaligned data tranfers, just make IDMA into an internal |
| aligned buffer and then copy the data. This method also enables |
| multiblock transfers, and transfers from/to data buffers which are not |
| aligned on cache boundary. |
| - PR-1042 STM32H7: Resolve multiple limitations and bugs with progmem |
| especailly for partial memory writes |
| - PR-1045 STM32H7: This gives possibility to send arbitrary number of |
| bytes from memory to peripheral using DMA also when using write-back |
| cache |
| It was not possible to DMA to/from AXI sram if |
| CONFIG_STM32H7_DMACAPABLE=y When doing TX DMA (e.g. in SPI driver in |
| simplex-tx mode), it should not be necessary to align the data |
| buffers to the cache line. |
| - PR-1103 STM32H7: Resolve clocking and pin configurations bugs that |
| could cause SDMMC and ETH to fail in some configurations |
| - PR-1104 STM32H7: Use UUID for Ethernet MAC. This is inline with the |
| behaviour of STM32F7 |
| - PR-1110 STM32H7: Use FDCANSEL to determin FDCAN clock source if |
| possible - PR-1165 STM32H7: SPI transaction appears to be completed |
| before the data has actually been flushed |
| TX DMA completes before the data has been actually sent out from the |
| SPI fifo. This is expected, but the exchange should actually wait for |
| spi tx to finish instead of dma to the fifo to finish. This replaces |
| the dma completion event with the SPI TXC event for detecting end of |
| transmission. |
| |
| - PR-1203 PR-1204 STM32H7: Enable support for BDMA and enable it for |
| SPI6 |
| - PR-905 x86_64: Resolve linking issue when building with gcc 7 and 9. |
| - PR-904 x86_64: Resolve compiler aliasing warnings and RNG |
| pointer cast bug - PR-944 x86_64: Change entrypoint to standard |
| location 1M |
| - PR-971 x86_64: Fix bug in rng implementation using intrinsics |
| - PR-973 x86_64: Fix crash on boot when XSAVE and SSE/AVX is enabled |
| - PR-974 x86_64: Add support booting NuttX as a Jailhouse Cell |
| - PR-919 sim: Add host mmap and perror to allow use of LIBC_MODLIB |
| and BINFMT_LOADABLE |
| - PR-1198 sim: Use correct errno sign with hostfs interface |
| - PR-932 z16: Updated toolchain to ZDS-II 5.2.2 |
| - PR-970 K210: Add PLL support |
| - PR-988 K210: Resolve occasional lock in early boot caused by waiting |
| forserial driver to initialize |
| - PR-1205 K210: Add basic GPIOHS support - PR-1112 tiva: Add up_idle |
| support - PR-1116 NRF52832: Work around chip eratta for SPI Master 1 |
| Byte transfer anomaly - PR-1130 imxrt: Resolve WFI issue by setting |
| the low power mode to remain in run mode |
| - PR-1197 cxd56: Fix locking issue in Spresense audio driver causes by |
| using semaphore in DMA buffer handling code |
| - PR-1221 Add INTx_C macro defintion |
| |
| * Driver Support: |
| * Bug Fixes: |
| - PR-1206 PR-1207 PR-1210 ioctl function should retun ENOTTY when the |
| command is not recognized. |
| |
| * New Driver Support: |
| - PR-795 PR-1001 Initial NuttX audio driver supporting the Spresense |
| CXD56 |
| - PR-975 Support for HDC1008 temperature and humidity sensor |
| - PR-1201 Support for the CS4344 stereo audio DAC |
| - PR-1145 Support for the FTDI FT232R USB to Serial converter |
| - PR-1052 gs2200m: Add max payload size to prevent crashing when |
| sending large packets |
| - PR-1090 gs2200m: Fix possible packet queue count overflow seen during |
| streaming - PR-1127 gs2200m: Resolve possible buffer overrun in packet |
| parsing - PR-1167 pty: Return correct number of bytes when |
| CONFIG_SERIAL_TERMIOS and OPOST|ONLCR are enabled |
| |
| * Drivers With Significant Improvements: |
| - PR-887 PR-888 rptun: Add control for independent control of rx and tx |
| buffer size |
| - PR-917 gs2200m: Receive performance improvement for TCP/UDP |
| - PR-1032 gs2200m: Add SPI-DMA support to spresense |
| - PR-1046 gs2200m: Add getsockname() support |
| - PR-1094 PR-1163 gs2200m: Add flow control support to prevent memory |
| starvation in changing network environments |
| - PR-1101 gs2200m: Add WPA2-PSK AP mode support, this is now the default |
| instead of WEP |
| - PR-1115 SPI slave: Improve interface |
| Enable enqueue and receive full buffers of data with single call, to |
| avoid call overhead when sending / receiving large amounts of data. |
| Enable the slave device to leave received data in the controller |
| receive buffers and retrieve it from there by polling |
| - PR-1196 Audio: Add support for using ap_buffer_info without |
| CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS and return ENOTTY if provided ioctl |
| is not supported |
| - PR-1222 audio/cxd56: Add audio buffering feature. |
| |
| * Board Support: |
| * Significant Improvements: |
| |
| - PR-1200 The boards_button_initialize and boards_userled_initialize |
| functions now return the number of buttons and leds, thus their |
| prototypes have changed from: |
| void board_button_initialize(void) |
| void board_userled_initialize(void) |
| |
| to |
| |
| uint32_t board_button_initialize(void) |
| uint32_t board_userled_initialize(void). |
| |
| * New Board Support: |
| - PR-1051 ST Micro B-G474E-DPOW1 Discovery Kit |
| Initial support for the ST Micro B-G474E-DPOW1 Discovery Kit with |
| STM32G474RE MCU. Currently there is basic support for booting NuttX to |
| a functional NSH prompt. Other peripherals on the board are not yet |
| supported or not tested yet. Contributions to enable other peripherals |
| are welcome. The NSH prompt can be accessed from a host computer via a |
| Virtual COM Port over the same Micro-USB Type B connection used for |
| programming/debugging. |
| - PR-1211 STM32F411-Minimum board (a.k.a. BlackPill) |
| Initial support for the BlackPill board which is a low cost STM32F411 |
| board. The current support boots NuttX to a functional NSH prompt. |
| |
| * Boards With Significant Improvements: |
| - PR-949 qemu-intel64: Add nsh configuration for testing QEMU |
| virtualization |
| - PR-966 qemu-i486: Fix issue where console would not accept input |
| because of wrong IRQ number |
| - PR-993 stm32h747i-disco: Add support for FMC SDRAM - PR-1029 maix-bit: |
| Add knsh configuration for testing Kernel mode under QEMU virtualization |
| - PR-1056 stm32h747i-disco: Add support for FAT and SD Card via SDMMC |
| - PR-1070 PR-1086 spresense: Add ftpd/ftpc and nxplayer to wifi and rndis |
| configurations |
| - PR-1084 imxrt1060-evk: Add dns client and renew command to netnsh |
| configuration |
| - PR-1113 lm3s6965ek: Use proper sysclock for QEMU |
| configuration |
| - PR-1229 Add support for the inboard joystick |
| - PR-1232 Architectural re-organization to the initialization of the |
| video stream driver to comply with other NuttX drivers |
| |
| * File System: |
| * Bug Fixes: |
| - PR-918 tmpfs: Calling statfs could cause files to be removed |
| recursively - PR-1142 NFS: Use of uint64_t causes issues with gaps in |
| data since it must be on a 8 byte boundary |
| - PR-1143 Report correct stats for proxied block and MTD drivers |
| |
| * Significant Improvements: |
| - PR-793 Allow use of genromfs to geneate ROMFS |
| - PR-851 Upgrade littlefs to v2.2.1 |
| - PR-1154 FATFS: Do not rewrite the root directory if it has not been |
| changed. |
| - PR-1120 PR-1118 Fill in file size for mtd and block inode |
| |
| * Networking: |
| - PR-807 Netlink: Broadcast link status changes to userspace via |
| RTNLGRP_LINK |
| - PR-892 Netdb: Multiple DNS Servers |
| Adds capability to add multiple nameservers on run-time even when not |
| using resolv.conf and reset the list of nameservers back to default |
| setting (no nameserver at all or single predefined nameserver in Kconfig). |
| This is useful for applications that change their cellular network |
| frequently. |
| - PR-1015 tcp/conn: Request ARP before 3-way handshake |
| |
| * Applications: |
| * Improvements: |
| - PR-185 PR-828 nshlib |
| Add the source command. Avoid use of sh where it is not needed since |
| it pollutes the parent environment including the working directory and |
| variables. |
| |
| - PR-236 littlevgl: Add additional config mappings to the library |
| - PR-264 nxplayer: Add max host and filename for http url |
| - PR-260 nshlib: Add wget buffer size control with |
| CONFIG_NSH_WGET_BUFF_SIZE |
| - PR-243 dhcpd: Add ability for daemon to be cancelled |
| - PR-238 Remove use the set_errno this is now properly handled by the |
| libc and OS |
| - PR-233 hdc1008: Add example application for this driver |
| |
| * Bug Fixes: |
| - PR-282 netlib: Fix pathlen computation for netlib_parseurl and |
| netlib_parsehttpurl |
| - PR-281 webclient: Check return value of netlib_parseurl correctly |
| - PR-278 webclient: Handle http/https redirection correctly |
| - PR-277 webclient: Limit the number of http redirects |
| - PR-198 webclient: Use getaddrinfo() to get IPv4 address on |
| dual stack systems |
| - PR-268 ftpd: Fix EPSV mode for IPv4 |
| - PR-258 nsh: Always try FILE_APPS even if the command is builtin, |
| this is a regression introduced in 9.0.0 |
| - PR-257 gs2200m: Handle packets over 1500 Bytes, previously would |
| overflow buffer |
| - PR-221 gs2200m: Server sockets were not properly being released by |
| the daemon when close was called |
| - PR-248 dhcpd: Correct option header check length |
| - PR-176 cu: Handle NULL character correctly |
| - PR-287 PR-290 examples: Update nxflat and thttpd Makefile's to fix |
| a build breakage. |
| |
| NuttX-10.0.0 Release Notes |
| ------------------------ |
| |
| ## Major Changes to Core OS |
| |
| ### New Features |
| |
| Major changes to the internal, OS timer (wdog) interfaces. The change includes: |
| |
| * The wdog timer call backs used to support a variable number of arguments. |
| Now they support only a single argument ([PR |
| #1565](https://github.com/apache/incubator-nuttx/pull/1565)). This eliminates |
| (1) the configuration option `CONFIG_MAX_WDOGPARMS` and the OS interfaces |
| `wd_create()` and `wd_delete()` * wdog timer data structures are no longer |
| pre-allocated. Now they are allocated by the caller of `wd_start()`. This (1) |
| eliminates the configuration options `CONFIG_PREALLOC_WDOGS` and |
| `CONFIG_WDOG_INTRESERVE`, (2) eliminates the type `WDOG_ID` which was a pointer |
| type to `struct wdog_s`, and (3) change the type of the first argument of all |
| remaining wdog interfaces functions from `WDOG_ID` to `FAR struct wdog_s *`. |
| |
| Because of these changes, all proprietary drivers maintained by all NuttX users |
| will require modification. The following summaries the required modifications: |
| |
| * Most drivers have a field in structure like `WDOG_ID wdog`; That must be |
| changed to `struct wdog_s wdog`; That changes the field from a pointer to a |
| `struct wdog_s` to the `struct wdog_s` storage itself. * Eliminate all calls |
| to `wd_create()`. The `WDOG_ID` is not longer managed by the timing subsystem |
| and the `wd_create()` interface has been removed. * The `wd_delete()` |
| interface has also been removed, but more care will need to be exercised: |
| `wd_delete()` also cancels any running timer so, in many case, calls to |
| `wd_delete()` should be replaced with calls to `wd_cancel()`. If you are certain |
| that the timer has never been started, then you must remove the call to |
| `wd_delete()` altogether. Calling `wd_cancel()` with an un-initialized s`truct |
| wdog_s` instance may well cause a fatal crash. * Replace the first parameter |
| of all remaining wdog function calls from. For example, replace a call like `ret |
| = wd_cancel(priv->wdog)` where `priv->wdog` was type `WDOG_ID` with the call |
| `ret = wd_cancel(&priv->wdog)`where `priv->wdog` is now type `struct wdog_s`. |
| |
| * [PR-1877](https://github.com/apache/incubator-nuttx/pull/1877) libc: |
| Implement "j" modifier for scanf |
| |
| * [PR-1864](https://github.com/apache/incubator-nuttx/pull/1864) libc: fs: Add |
| relative path support |
| |
| * [PR-1863](https://github.com/apache/incubator-nuttx/pull/1863) libc: |
| Implement `access()` |
| |
| * [PR-1866](https://github.com/apache/incubator-nuttx/pull/1866) libc: uio: |
| enable `writev()` for sockets |
| |
| * [PR-1853](https://github.com/apache/incubator-nuttx/pull/1853) libc: |
| Implement `popcount/popcountl/popcountll` |
| |
| * [PR-1850](https://github.com/apache/incubator-nuttx/pull/1850) Add tool for |
| parsing the callstack for Trace32 |
| |
| * [PR-1840](https://github.com/apache/incubator-nuttx/pull/1840) Add POLLPRI |
| for exception condition on the file descriptor |
| |
| * [PR-1828](https://github.com/apache/incubator-nuttx/pull/1828) Implement |
| mkdtemp syscall |
| |
| * [PR-1826](https://github.com/apache/incubator-nuttx/pull/1826) libc: Add |
| "tm\_zone" member to tm |
| |
| * [PR-1824](https://github.com/apache/incubator-nuttx/pull/1824) Implement |
| etpriority syscall |
| |
| * [PR-1821](https://github.com/apache/incubator-nuttx/pull/1821) Implement |
| gettid syscall |
| |
| * [PR-1818](https://github.com/apache/incubator-nuttx/pull/1818) Implement |
| pipe2 syscall |
| |
| * [PR-1779](https://github.com/apache/incubator-nuttx/pull/1779) libc: Minimal |
| umask implementation |
| |
| * [PR-1758](https://github.com/apache/incubator-nuttx/pull/1758) mm: Add lock |
| to protect call to mm\_addregion |
| |
| * [PR-1756](https://github.com/apache/incubator-nuttx/pull/1756) libc: |
| Implement gethrtime, getrlimit, setrlimit |
| |
| * [PR-1658](https://github.com/apache/incubator-nuttx/pull/1658) libc: Add |
| stubs for utimes |
| |
| * [PR-1615](https://github.com/apache/incubator-nuttx/pull/1615) libc: |
| Implement tm::tm\_gmtoff field |
| |
| * [PR-1611](https://github.com/apache/incubator-nuttx/pull/1611) libc: Allocate |
| file\_struct dynamically |
| |
| * [PR-1684](https://github.com/apache/incubator-nuttx/pull/1684) Add gdb script |
| for NuttX thread debugging |
| |
| * [PR-1607](https://github.com/apache/incubator-nuttx/pull/1607) mm: Implement |
| malloc\_usable\_size |
| |
| * [PR-1606](https://github.com/apache/incubator-nuttx/pull/1606) sched/pthread: |
| Implement pthread\_attr\_detachstate |
| |
| * [PR-1600](https://github.com/apache/incubator-nuttx/pull/1600) Implement |
| epol\_pwait and EPOLLONESHOT flag |
| |
| * [PR-1597](https://github.com/apache/incubator-nuttx/pull/1597) sched: Support |
| passing non empty argument to init task |
| |
| * [PR-1596](https://github.com/apache/incubator-nuttx/pull/1596) libc: Replace |
| all sem\_xxx with \_SEM\_XXX. This insures the correct semaphore interface is |
| used by userspace and the kernel. |
| |
| * [PR-1517](https://github.com/apache/incubator-nuttx/pull/1517) sched/wdog: |
| Change the default value of MAX\_WDOGPARMS from 4 to 2 as wd\_start is two every |
| where in the code base. Also bump CONFIG\_MAX\_WDOGPARAMS from 1 to 2 in |
| defconfigs to support pthread\_condclockwait() |
| |
| * [PR-1486](https://github.com/apache/incubator-nuttx/pull/1486) libc: |
| Implement ftw and nftw functions |
| |
| * [PR-1567](https://github.com/apache/incubator-nuttx/pull/1567) libc: |
| Implement proposed POSIX \_clockwait variants of \_timedwait functions |
| |
| * [PR-1411](https://github.com/apache/incubator-nuttx/pull/1411) libxx: |
| Integrate latest uclibcxx 0.2.5 |
| |
| * [PR-1586](https://github.com/apache/incubator-nuttx/pull/1586) libc: Add open |
| for text (translated) access support |
| |
| * [PR-1584](https://github.com/apache/incubator-nuttx/pull/1584) libc: |
| Implement strlcpy function |
| |
| * [PR-1580](https://github.com/apache/incubator-nuttx/pull/1580) libc: |
| Implement pthread\_conattr\_etclock |
| |
| * [PR-1545](https://github.com/apache/incubator-nuttx/pull/1545) sched/wdog: Do |
| not dynamically allocate wdog\_s. Reduces overhead and brings it inline with |
| work\_s |
| |
| * [PR-1534](https://github.com/apache/incubator-nuttx/pull/1534) sched/wdog: |
| Replace all callback arguments from uint32\_t to wdparm\_t |
| |
| * [PR-1420](https://github.com/apache/incubator-nuttx/pull/1420) libc: Do not |
| define localtime\[\_r\] to macro with CONFIG\_LIBC\_LOCALTIME is not defined. |
| |
| * [PR-1375](https://github.com/apache/incubator-nuttx/pull/1375) libc: Always |
| declare getenv, link/symlink and atexist/on\_exit. Many C++ libraries reference |
| these but dont use them |
| |
| * [PR-1371](https://github.com/apache/incubator-nuttx/pull/1371) libc: Improve |
| stat/readdir to be more POSIX compliant with S\_xxx macro definition as with |
| Linux |
| |
| * [PR-1369](https://github.com/apache/incubator-nuttx/pull/1369) Initialize the |
| idle stack at the arch layer to better support stack coloring and also make it |
| compatible with new TLS implementation |
| |
| * [PR-1292](https://github.com/apache/incubator-nuttx/pull/1292) pthread/mutex: |
| Add PTHREAD\_RECURSIVE\_MUTEX\_INITIALIZER\_NP support |
| |
| * [PR-1280](https://github.com/apache/incubator-nuttx/pull/1280) libc: |
| Implement fseeko and ftello |
| |
| * [PR-1279](https://github.com/apache/incubator-nuttx/pull/1279) libc: |
| Implement lstat and realpath |
| |
| * [PR-1278](https://github.com/apache/incubator-nuttx/pull/1278) libc: |
| Implement pathconf and fpathconf |
| |
| * [PR-1269](https://github.com/apache/incubator-nuttx/pull/1269) cstdlib: Add |
| missing atox to std namespace |
| |
| * [PR-1264](https://github.com/apache/incubator-nuttx/pull/1264) sched/pthread: |
| Prohibit the use of pthread\_cleanup API's by kernel threads |
| |
| * [PR-1440](https://github.com/apache/incubator-nuttx/pull/1440) libc: Add the |
| UUID libc functions |
| |
| * [PR-1308](https://github.com/apache/incubator-nuttx/pull/1308) libc: Add |
| support for \_SC\_NPROCESSORS\_CONF/\_SC\_NPROCESSORS\_ONLN to sysconf |
| |
| * [PR-1305](https://github.com/apache/incubator-nuttx/pull/1305) libc: |
| Implement WNOHANG for waitpid and waitid |
| |
| * [PR-1237](https://github.com/apache/incubator-nuttx/pull/1237) libc: Add |
| minimal support for locale\_t operation: suplocale, freelocale, newlocale, |
| userlocale |
| |
| * [PR-1317](https://github.com/apache/incubator-nuttx/pull/1317) sched/task: |
| Unify task initialization |
| |
| * [PR-1187](https://github.com/apache/incubator-nuttx/pull/1187) sched: Unify |
| main thread and pthread behavior |
| |
| * [PR-2263](https://github.com/apache/incubator-nuttx/pull/2263) libc/stdio: |
| Preallocate stdin, stdout, stderr |
| |
| * [PR-2053](https://github.com/apache/incubator-nuttx/pull/2053) * |
| [PR-2040](https://github.com/apache/incubator-nuttx/pull/2040) serial/termios: |
| Support custom baudrate setting |
| |
| ### Bug Fixes |
| |
| * [PR-1911](https://github.com/apache/incubator-nuttx/pull/1911) init\_section |
| was not being emitted resulting in C++ static constructors not being called. |
| |
| * [PR-1889](https://github.com/apache/incubator-nuttx/pull/1889) Fix build |
| error for ::setbuf if CONFIG\_STDIO\_DISABLE\_BUFFERING is set |
| |
| * [PR-1619](https://github.com/apache/incubator-nuttx/pull/1619) Fix inverted |
| errno in mq\_open |
| |
| * [PR-1595](https://github.com/apache/incubator-nuttx/pull/1595) epoll\_wait() |
| must loop until "maxevents" to fille output evs array |
| |
| * [PR-1519](https://github.com/apache/incubator-nuttx/pull/1519) libc: Replace |
| index/rindex from macro to function to protect against side effects with |
| conflicting local variables |
| |
| * [PR-1514](https://github.com/apache/incubator-nuttx/pull/1514) Remove usage |
| for user-space memalign() from kernel/driver code. Instead use the proper |
| kernel memory interface. |
| |
| * [PR-1512](https://github.com/apache/incubator-nuttx/pull/1512) / * |
| [PR-1510](https://github.com/apache/incubator-nuttx/pull/1510) / * |
| [PR-1507](https://github.com/apache/incubator-nuttx/pull/1507) Remove usage for |
| user-space malloc()/zalloc()/free() from kernel/driver code. Instead use the |
| proper kernel memory interface. |
| |
| * [PR-1496](https://github.com/apache/incubator-nuttx/pull/1496) libc: Change |
| ctype macro to normal function to resolve macro evaluation side effects |
| |
| * [PR-1463](https://github.com/apache/incubator-nuttx/pull/146) libc: Replace |
| all malloc/free with lib\_malloc/lib\_free inside libc |
| |
| * [PR-1365](https://github.com/apache/incubator-nuttx/pull/1365) up\_assert |
| should not call exit() directly because it is only callable from userspace |
| |
| * [PR-1336](https://github.com/apache/incubator-nuttx/pull/1336) syscall: Fix |
| prctl PR\_SET\_NAME failure if called without pid argument |
| |
| * [PR-1289](https://github.com/apache/incubator-nuttx/pull/1289) Clear the |
| error indicator with rewind() |
| |
| * [PR-1254](https://github.com/apache/incubator-nuttx/pull/1254) libc: mkstemp |
| only look at the trailing X's instead of the first X |
| |
| * [PR-1311](https://github.com/apache/incubator-nuttx/pull/1311) libc: Move |
| double\_t typedef from sys/types.h to math.h |
| |
| * [PR-1328](https://github.com/apache/incubator-nuttx/pull/1328) Make sure that |
| pthread\_cleanup functions are only called from userspace |
| |
| * [PR-1318](https://github.com/apache/incubator-nuttx/pull/1318) |
| nxsched\_release\_tcb should release stack in kernel build, fixes memory leak |
| |
| * [PR-2951](https://github.com/apache/incubator-nuttx/pull/2951) sched: Fix |
| deadlock in nxtask\_exit() for SMP |
| |
| * [PR-2229](https://github.com/apache/incubator-nuttx/pulls/2229) * |
| [PR-2298](https://github.com/apache/incubator-nuttx/pulls/2298) * |
| [PR-2279](https://github.com/apache/incubator-nuttx/pulls/2279) * |
| [PR-2272](https://github.com/apache/incubator-nuttx/pulls/2272) * |
| [PR-2264](https://github.com/apache/incubator-nuttx/pulls/2264) * |
| [PR-1992](https://github.com/apache/incubator-nuttx/pulls/1992) * |
| [PR-2022](https://github.com/apache/incubator-nuttx/pulls/2022) sched: SMP |
| fixups that caused locking and removal of some no longer required workarounds |
| |
| * [PR-1993](https://github.com/apache/incubator-nuttx/pull/1993) libc: Skip |
| close stdin/stdout/stderr in fclose |
| |
| * [PR-1997](https://github.com/apache/incubator-nuttx/pull/1997) libc: Remove |
| all calls to fclose with stdin/stdout/stderr with fclose |
| |
| |
| |
| ## Major Changes to Documentation |
| |
| * [PR-1763](https://github.com/apache/incubator-nuttx/pulls/1763) Add |
| quickstart documentation |
| |
| * [PR-1677](https://github.com/apache/incubator-nuttx/pull/1677) Add simulator, |
| drivers, and contributing instructions for new users |
| |
| * [PR-1675](https://github.com/apache/incubator-nuttx/pull/1675) Add quickstart |
| documentation from NuttX Companion |
| |
| * [PR-1673](https://github.com/apache/incubator-nuttx/pull/1673) Update all the |
| links in the documentation to point to nuttx.apache.org or the Apache NuttX |
| wiki instead of old nuttx.org resources |
| |
| * [PR-1501](https://github.com/apache/incubator-nuttx/pull/1501) Port all the |
| existing documentation from HTML files to Sphinx based documentation along with |
| a bunch of updates and improvments |
| |
| * [PR-1433](https://github.com/apache/incubator-nuttx/pull/1433) Convert README |
| documentation to Markdown |
| |
| ## Major Changes to the Build System |
| |
| ### New Features |
| |
| * [PR-1786](https://github.com/apache/incubator-nuttx/pull/1786) Support |
| building external code into the OS |
| |
| * [PR-1396](https://github.com/apache/incubator-nuttx/pull/1396) Make C/C++ |
| search path common so all boards support uClibc++/libc++ automatically |
| |
| * [PR-1682](https://github.com/apache/incubator-nuttx/pull/1682) configure.sh |
| can now list configurations with "-L" option |
| |
| * [PR-2023](https://github.com/apache/incubator-nuttx/pull/2023) tools: Remove |
| WSL configuration. This is just Linux now. |
| |
| ### Bug Fixes |
| |
| * [PR-1713](https://github.com/apache/incubator-nuttx/pull/1713) Fix export |
| target: libboard was missing KERNEL flag. |
| |
| * [PR-1470](https://github.com/apache/incubator-nuttx/pull/1470) Fix Make.dep |
| not updated by .config changes |
| |
| * [PR-1345](https://github.com/apache/incubator-nuttx/pull/1786) Enhance export |
| target: make BIN directory configurable, export post build script, use LDNAME |
| instead of LDSCRIPT |
| |
| * [PR-1332](https://github.com/apache/incubator-nuttx/pull/1332) Include |
| incdir.c in the export target |
| |
| * [PR-1995](https://github.com/apache/incubator-nuttx/pull/1995) Fix issue |
| where wrong extension was generated for mkconfig in WSL builds |
| |
| * [PR-1949](https://github.com/apache/incubator-nuttx/pull/1949) Fix issue in |
| make export where nuttx-names.dat was not being generated |
| |
| * [PR-1682](https://github.com/apache/incubator-nuttx/pull/1682): Fix issue |
| where windows style paths might not be handled correctly breaking Cygwin builds |
| |
| ## Architectural Support |
| |
| ### New Architecture Support |
| |
| * [PR-1847](https://github.com/apache/incubator-nuttx/pull/1847) ARM: Initial |
| support for ARMV6M to support CortexM0+ |
| |
| * [PR-1397](https://github.com/apache/incubator-nuttx/pull/1379): EOSS3: |
| Initial support for the QuickLogic EOS S3 SoC |
| |
| ### Architectures With Significant Improvements |
| |
| #### cxd56xx |
| |
| * [PR-1753](https://github.com/apache/incubator-nuttx/pull/1753) cxd56xx: Use |
| spinlock in gpioint to improve SMP performance |
| |
| * [PR-1650](https://github.com/apache/incubator-nuttx/pull/1650) cxd56xx: Use |
| spinlock in rtc to improve SMP performance |
| |
| * [PR-1621](https://github.com/apache/incubator-nuttx/pull/1621) cxd56xx: Use |
| spinlock in serial to improve SMP performance |
| |
| * [PR-1569](https://github.com/apache/incubator-nuttx/pull/1569) cxd56xx: Add |
| SMP support to cxd56\_farapi.c |
| |
| * [PR-1689](https://github.com/apache/incubator-nuttx/pull/1689) cxd56xx: Use |
| spinlock in uart to improve SMP performance |
| |
| #### ESP32 |
| |
| * [PR-1422](https://github.com/apache/incubator-nuttx/pull/1422) ESP32: Add SPI |
| driver (Master & Slave) |
| |
| * [PR-1435](https://github.com/apache/incubator-nuttx/pull/1435) ESP32: Add I2C |
| driver |
| |
| * [PR-1491](https://github.com/apache/incubator-nuttx/pull/1491) ESP32: Add SPI |
| Flash driver |
| |
| * [PR-1525](https://github.com/apache/incubator-nuttx/pull/1525) ESP32: Add |
| Ethernet driver |
| |
| * [PR-1610](https://github.com/apache/incubator-nuttx/pull/1610) ESP32: Improve |
| SPI transmision (DMA, IOMUX, software CS) |
| |
| * [PR-1630](https://github.com/apache/incubator-nuttx/pull/1630) ESP32: Add |
| support for HW RNG |
| |
| * [PR-1830](https://github.com/apache/incubator-nuttx/pull/1830) ESP32: Add |
| Power Management of Force-Sleep |
| |
| * [PR-1754](https://github.com/apache/incubator-nuttx/pull/1754) ESP32: Add |
| support for external SPIFLASH |
| |
| * [PR-1613](https://github.com/apache/incubator-nuttx/pull/1613) ESP32: Add |
| function for switching CPU from 80MHz to 240MHz |
| |
| PR-1712 ESP32: Add support for external MMCSD card over SPI |
| |
| #### IMXRT |
| |
| * [PR-1868](https://github.com/apache/incubator-nuttx/pull/1868) IMXRT: Add ADC |
| driver |
| |
| #### Kinetis |
| |
| * [PR-1624](https://github.com/apache/incubator-nuttx/pull/1624) Kinetis: |
| USBHOST improvements to avoid race condition durring freeing for queue head |
| structure by using Async Advance Doorbell. |
| |
| PR-1516 Kinetis K28: Add support for USB High Speed Host |
| |
| PR-1531 Kinetis K28: Add USB state change notifiers in notifier work queue |
| |
| PR-1456 Kinetis K28: Reworked USB driver for setup out data phase |
| |
| |
| |
| #### NRF52 |
| |
| * [PR-1418](https://github.com/apache/incubator-nuttx/pull/1418) NRF52: Add |
| Timer and RTC drivers |
| |
| * [PR-1432](https://github.com/apache/incubator-nuttx/pull/1422) NRF52: Add |
| timer lowerhalf |
| |
| * [PR-1635](https://github.com/apache/incubator-nuttx/pull/1635) NRF52: Add |
| support for RTC event handling |
| |
| * [PR-1636](https://github.com/apache/incubator-nuttx/pull/1636) NRF52: Add |
| support for PPI peripheral |
| |
| * [PR-1681](https://github.com/apache/incubator-nuttx/pull/1681) NRF52: Add |
| support for GPIOTE task mode |
| |
| * [PR-1726](https://github.com/apache/incubator-nuttx/pull/1726) NRF52: Extend |
| systimer support |
| |
| * [PR-1773](https://github.com/apache/incubator-nuttx/pull/1773) NRF52: Add ADC |
| and PWM support |
| |
| * [PR-1915](https://github.com/apache/incubator-nuttx/pull/1915) NRF52: Add |
| serial termios support (no flow control) |
| |
| * [PR-1907](https://github.com/apache/incubator-nuttx/pull/1907) NRF52: Add |
| basic error handing for i2c in polling mode to support i2ctool. Still not |
| handled in DMA mode. |
| |
| * [PR-1839](https://github.com/apache/incubator-nuttx/pull/1839) NRF52: Add |
| missing SPI callback register hooks to support drivers like mmcsd |
| |
| * [PR-1646](https://github.com/apache/incubator-nuttx/pull/1646) NRF52: Better |
| differentiation between NRF52840 and NRF52832 |
| |
| PR-1685 NRF52: Add ARM system reset support. Add UID support. |
| |
| PR-1674 NRF52: Add LFCLK/HFCLK support for selecting oscillator sources. |
| |
| #### RISCV |
| |
| * [PR-1858](https://github.com/apache/incubator-nuttx/pull/1858) RISCV: Add |
| missing CSR macros listed in RISC-V spec V1.10. |
| |
| PR-1314 rv32im: Add schedulesigaction.c, SYS\_save\_context handling, skip ECALL |
| instruction when calling up\_swint() |
| |
| #### RX65N |
| |
| * [PR-1622](https://github.com/apache/incubator-nuttx/pull/1622) RX65N: Add |
| I2C(RIIC) support |
| |
| * [PR-1894](https://github.com/apache/incubator-nuttx/pull/1894) RX65N: Add USB |
| device support |
| |
| * [PR-1899](https://github.com/apache/incubator-nuttx/pull/1899) RX65N: Add DTC |
| driver |
| |
| PR-1910 RX65N: Add SPI driver support |
| |
| #### SAMD5E5 |
| |
| * [PR-1515](https://github.com/apache/incubator-nuttx/pull/1515) SAMD5E5: Add |
| Watchdog timer support |
| |
| * [PR-1574](https://github.com/apache/incubator-nuttx/pull/1574) SAMD5E5: Add |
| USB host support |
| |
| * [PR-1594](https://github.com/apache/incubator-nuttx/pull/1594) SAMD5E5: |
| Freerun timer, oneshot timer and tickless support |
| |
| * [PR-1816](https://github.com/apache/incubator-nuttx/pull/1816) SAMD5E5: Add |
| MTD progmem support and NVM USER PAGE IOTCLs |
| |
| #### SAMA5D2 |
| |
| PR-1412 SAMA5D27: Implement system reset to support nsh reboot command |
| |
| PR-1393 SAMA5D2x: Implement SDMMC peripheral support |
| |
| #### S32K |
| |
| PR-1339 S32K: Extend FlexTimer support and add support for PWM |
| |
| PR-1337 S32K: Allow FlexCAN to use to NETDEV\_LATEINIT to handle the case where |
| both FlexCAN and ENET are used |
| |
| #### SIM |
| * [PR-1914](https://github.com/apache/incubator-nuttx/pull/1914) SIM: SIGUSR1 |
| handling now uses NuttX interrupt logic |
| |
| * [PR-1859](https://github.com/apache/incubator-nuttx/pull/1859) ESIM: Add |
| host timer and improve the oneshot timer logic |
| |
| * [PR-1767](https://github.com/apache/incubator-nuttx/pull/1767) SIM: Allow |
| access to tty interfaces for better termios support |
| |
| * [PR-1655](https://github.com/apache/incubator-nuttx/pull/1655) SIM: Add |
| support for Linux HCI Socket as a NuttX BLE adapter. Full NuttX BLE stack can |
| be run against any Linux Bluetooth adapter in sim. |
| |
| * [PR-1558](https://github.com/apache/incubator-nuttx/pull/1558) SIM: Add |
| support for Stack Smashing Protector. |
| |
| * [PR-1392](https://github.com/apache/incubator-nuttx/pull/1392) SIM: Make |
| uClibc++ and libcxx work on sim platform |
| |
| * [PR-1460](https://github.com/apache/incubator-nuttx/pull/1460) SIM: Call |
| sched\_note\_cpu\_\* when scheduler instrumentation is enabled |
| |
| #### STM32 |
| |
| * [PR-1865](https://github.com/apache/incubator-nuttx/pull/1865) STM32F4: Add |
| support for STM32F412CE fixing I2C2/I2C3 and USART1 alt |
| |
| * [PR-1506](https://github.com/apache/incubator-nuttx/pull/1506) STM32: Add |
| support for single wire UART push/pull mode |
| |
| * [PR-1572](https://github.com/apache/incubator-nuttx/pull/1572) STM32F2/F4: |
| Add options for I-Cache and D-Cache to be enabled/disable. Previously they were |
| always enabled. |
| |
| * [PR-1287](https://github.com/apache/incubator-nuttx/pull/1286) STM32F7: |
| Refactor the FMC driver to support STM32F7 family and add support to the |
| STM32F46G-DISCO board |
| |
| * [PR-1275](https://github.com/apache/incubator-nuttx/pull/1275) STM32: Allow |
| SysTick to be a tickless clock source option |
| |
| * [PR-1268](https://github.com/apache/incubator-nuttx/pull/1268) STM32: Add |
| support for STM32F412 with UART / SPI / CAN / I2C / DMA |
| |
| * [PR-1250](https://github.com/apache/incubator-nuttx/pull/1250) STM32L4: Add |
| support for booting into DFU mode |
| |
| ### Bug Fixes |
| |
| #### ARM |
| |
| * [PR-1562](https://github.com/apache/incubator-nuttx/pull/1562) ARM: Save |
| tcb-adj\_stack\_size should be saved without tls overhead |
| |
| * [PR-1900](https://github.com/apache/incubator-nuttx/pull/1900) ARM: Fix false |
| reporting for stack usage for unaligned stacks |
| |
| #### AVR |
| |
| * [PR-1410](https://github.com/apache/incubator-nuttx/pull/1410) avr: Implement |
| missing double\_t type, CONFIG\_STACK\_ALIGNMENT, linker emulation flags |
| |
| #### CXD56xx |
| |
| * [PR-1930](https://github.com/apache/incubator-nuttx/pull/1930) cxd56xx: Fix |
| handle\_irqreq() in cxd56\_cpupause.c |
| |
| * [PR-1789](https://github.com/apache/incubator-nuttx/pull/1789) cxd56xx: Fix |
| deadlock issue in up\_txinit() in SMP mode. |
| |
| * [PR-1620](https://github.com/apache/incubator-nuttx/pull/1620) cxd56xx: Fix |
| IRQ control in cxd56\_dmac.c |
| |
| * [PR-1253](https://github.com/apache/incubator-nuttx/pull/1253) cxd56xx: Fix |
| audio cxd56\_stop where a deadlock could be hit if the worker thread took too |
| long to turn on AMP |
| |
| * [PR-1950](https://github.com/apache/incubator-nuttx/pull/1950) cxd56xx: Fix |
| deadlock and tcb corruption in SMP mode |
| |
| #### ESP32 |
| |
| * [PR-1908](https://github.com/apache/incubator-nuttx/pull/1908) ESP32: Fix |
| task signal process preemption |
| |
| * [PR-1941](https://github.com/apache/incubator-nuttx/pull/1941) ESP32: Fix |
| interrupt clearing of edge interrupt due to issuing in masking interrupt state |
| |
| #### IMXRT |
| |
| * [PR-1527](https://github.com/apache/incubator-nuttx/pull/1527) IMXRT: Fix |
| kconfig so that IMXRT\_ENET\_NRXBUFFERS can be set |
| |
| * [PR-1455](https://github.com/apache/incubator-nuttx/pull/1455) IMXRT: Fix |
| auto-negotiation for KSZ8081 PHY |
| |
| #### Kinetis |
| |
| * [PR-1273](https://github.com/apache/incubator-nuttx/pull/1273) Kinetis: Fix |
| issue in ethernet driver where buffers were blindly initialized and could cause |
| the TX of the MAC to be in a bad state. Also resolves an issue with interrupts |
| being throttled in the NVIC. |
| |
| #### NRF52 |
| |
| * [PR-1928](https://github.com/apache/incubator-nuttx/pull/1928) NRF52: Fix PPI |
| group disable and add group clear |
| |
| * [PR-1885](https://github.com/apache/incubator-nuttx/pull/1885) NRF52: Fix SPI |
| driver structures when SPI\_EXCHANGE is not set |
| |
| * [PR-1799](https://github.com/apache/incubator-nuttx/pull/1799) NRF52: Fix |
| SPI\_MASTER entry in kconfig |
| |
| * [PR-1787](https://github.com/apache/incubator-nuttx/pull/1787) NRF52: Fix |
| base address for SPIM{1,2,3} |
| |
| * [PR-1777](https://github.com/apache/incubator-nuttx/pull/1777) NRF52: Handle |
| case where rx or tx buffer could be 0 but data would still be transferred. Also |
| error if more than max data is requested. |
| |
| * [PR-1770](https://github.com/apache/incubator-nuttx/pull/1770) NRF52: Fix bug |
| where SPI cmddata was not properly mapped for SPIM 0,2,3 |
| |
| #### RISC-V |
| |
| * [PR-1909](https://github.com/apache/incubator-nuttx/pull/1909) RISC-V: MIE |
| instead of MPIE register was being used in up\_schedule\_sigaction for storing |
| interrupt state |
| |
| #### SIM |
| |
| * [PR-1903](https://github.com/apache/incubator-nuttx/pull/1903) SIM: Fix |
| complication issue for WPCAP in Cygwin build |
| |
| * [PR-1888](https://github.com/apache/incubator-nuttx/pull/1888) SIM: Fix |
| EOVERFLOW returned when CONFIG\_SIM\_M32 is set |
| |
| * [PR-1709](https://github.com/apache/incubator-nuttx/pull/1709) SIM: Fix |
| up\_cpu\_start initialization for macOS with SMP enabled |
| |
| #### STM32 |
| |
| * [PR-1898](https://github.com/apache/incubator-nuttx/pull/1898) STM32F7: Fixes |
| data loss bug in UART5 with TX DMA |
| |
| * [PR-1841](https://github.com/apache/incubator-nuttx/pull/1841) STM32: Remove |
| broken overdriver support |
| |
| * [PR-1719](https://github.com/apache/incubator-nuttx/pull/1719) STM32: |
| Lowputc: Ensure USART is disabled before attempting to configuring it |
| |
| * [PR-1714](https://github.com/apache/incubator-nuttx/pull/1714) STM32H7: Fix |
| I2C driver interrupt storm |
| |
| * [PR-1556](https://github.com/apache/incubator-nuttx/pull/1556) STM32: Fix IO |
| compentation support in STM32F7 and remove incorrect reference in STM32F0/L0/G0 |
| |
| * [PR-1529](https://github.com/apache/incubator-nuttx/pull/1529) STM32: Fix |
| initialization bug in ADC that prevented adc\_reset() from working correctly |
| |
| * [PR-1561](https://github.com/apache/incubator-nuttx/pull/1561) STM32: Make |
| sure that core over-drive is enabled for all chips that support it and operating |
| at 180MHz. Some were enabled at 180MHz but may have not been stable without |
| over-drive not configured. |
| |
| * [PR-1553](https://github.com/apache/incubator-nuttx/pull/1553) STM32F7: Fix |
| possible interrupt blocking in serial TXDMA ISR |
| |
| * [PR-1544](https://github.com/apache/incubator-nuttx/pull/1544) STM32: Make |
| sure IO compensation cell is configured prior to call to |
| rcc\_enableperipherals() causing syscfg is accessed before it is enabled |
| |
| * [PR-1380](https://github.com/apache/incubator-nuttx/pull/1380) STM32F7: Fix |
| tickless driver where th compare register could be set to a value that has |
| just passed preventing expiration |
| |
| * [PR-1252](https://github.com/apache/incubator-nuttx/pull/1252) STM32L4: Fix |
| 48MHz MSI clock selection that could cause boot to hang |
| |
| * [PR-1310](https://github.com/apache/incubator-nuttx/pull/1310) STM32L4: |
| Configure flash wait states earlier to prevent corruption of execution state |
| |
| * [PR-1248](https://github.com/apache/incubator-nuttx/pull/1248) STM32L4: Fix |
| oneshot timer so that a minimum period is set otherwise it will never be |
| triggered. |
| |
| * [PR-1247](https://github.com/apache/incubator-nuttx/pull/1247) STM32L47x/8x: |
| Set additional registers required to place a pin in analog mode |
| |
| * [PR-1246](https://github.com/apache/incubator-nuttx/pull/1246) STM32L4: Fix |
| issue where clock divider for serial baud rate was not set correctly |
| |
| #### Miscellaneous |
| |
| * [PR-1912](https://github.com/apache/incubator-nuttx/pull/1912) Fix |
| up\_interrupt\_contex() in case of SMP - Make sure the operation is atomic in |
| case of SMP |
| |
| ## Driver Support |
| |
| ### Bug Fixes |
| |
| * [PR-1896](https://github.com/apache/incubator-nuttx/pull/1896) spi\_xx25xx |
| EEPROM: return the number of bytes written instead of 0 or error |
| |
| * [PR-1891](https://github.com/apache/incubator-nuttx/pull/1891) serial: Don't |
| mangle PID when ISIG is changed |
| |
| * [PR-1856](https://github.com/apache/incubator-nuttx/pull/1856) pipe: In case |
| of empty pipe with no writers, return EOF instead of EAGAIN |
| |
| * [PR-1836](https://github.com/apache/incubator-nuttx/pull/1836) stmpe811: Fix |
| incorrect GPIO interrupt register logic |
| |
| * [PR-1741](https://github.com/apache/incubator-nuttx/pull/1741) mmcsd\_sdio: |
| Properly arm the write completion detection |
| |
| * [PR-1370](https://github.com/apache/incubator-nuttx/pull/1370) can: Fix |
| incorrect usage of nxsem\_getvalue which caused fifo->rx\_sem to increase with |
| teach received msg |
| |
| * [PR-1452](https://github.com/apache/incubator-nuttx/pull/1452) lcd: Fix |
| memory leak when board\_graphics\_setup fail |
| |
| |
| |
| ### New Driver Support |
| |
| * [PR-1797](https://github.com/apache/incubator-nuttx/pull/1797) leds: WS2812 |
| LED controller (aka Adafruit NeoPixel) |
| |
| * [PR-1851](https://github.com/apache/incubator-nuttx/pull/1851) kbd: Add |
| support for SolderParty BlackBerry Q10 Keyboard |
| |
| * [PR-1618](https://github.com/apache/incubator-nuttx/pull/1618) BQ27426 fuel |
| gauge |
| |
| * [PR-1276](https://github.com/apache/incubator-nuttx/pull/1276) Add support |
| for the ST7735 TFT Controller |
| |
| * [PR-1233](https://github.com/apache/incubator-nuttx/pull/1233) usbhost: Add |
| support for CDC-MBIM USB host driver |
| |
| ### Drivers With Significant Improvements |
| |
| * [PR-1816](https://github.com/apache/incubator-nuttx/pull/1816) stmpe811: Add |
| SPI support for touch screen controller |
| |
| * [PR-1800](https://github.com/apache/incubator-nuttx/pull/1800) vfs: Add |
| `FIOCLEX/FIONCLEX` ioctl support |
| |
| * [PR-1798](https://github.com/apache/incubator-nuttx/pull/1798) mmcsd: Allow |
| setting `IDMODE_CLOCK` via kconfig |
| |
| * [PR-1587](https://github.com/apache/incubator-nuttx/pull/1587) BCH: Delay the |
| sector flush to avoid multiple erase/write operations in sequence write |
| |
| * [PR-1577](https://github.com/apache/incubator-nuttx/pull/1577) rwbuffer: |
| Avoid allocating memory for the temporary erase buffer by the FTL driver |
| |
| * [PR-1466](https://github.com/apache/incubator-nuttx/pull/1466) Altair Modem: |
| Add board specific logic, Fix issue that SPI4 RX frequency violated AC Spec, |
| Fix priority of SPI transfer task is too low, Modify timeout value for RX ready |
| |
| * [PR-1471](https://github.com/apache/incubator-nuttx/pull/1471) ramlog: Add |
| option to overwrite buffer |
| |
| * [PR-1547](https://github.com/apache/incubator-nuttx/pull/1547) usbhub: Make |
| sure to enumerate hubs that report protocol = 1 (High Speed Hub) |
| |
| * [PR-1374](https://github.com/apache/incubator-nuttx/pull/1374) gpio: Extend |
| gpio\_pintype\_e for pulldown/up and opendrain |
| |
| * [PR-1249](https://github.com/apache/incubator-nuttx/pull/1249) bmp280: Add |
| support for reading temperature |
| |
| * [PR-1299](https://github.com/apache/incubator-nuttx/pull/1299) mpu60x0: Add |
| I2C support for the MPU60x0 sensor driver |
| |
| * [PR-1325](https://github.com/apache/incubator-nuttx/pull/1325) can: expose |
| NART/ABOM and RTR settings via ioctls |
| |
| * [PR-1520](https://github.com/apache/incubator-nuttx/pull/1520) note: Move |
| note driver from syslog to drivers/note |
| |
| * [PR-1288](https://github.com/apache/incubator-nuttx/pull/1288) / PR-1449 |
| note: Add sched\_note\_syscall\_enter/leave hooks for syscall instrumentation |
| |
| * [PR-1259](https://github.com/apache/incubator-nuttx/pull/1259) note: Add |
| buffering support for syscall instrumentation |
| |
| * [PR-1256](https://github.com/apache/incubator-nuttx/pull/1256) note: Add |
| hooks for note driver for interrupt instrumentation |
| |
| Board Support ------------- |
| |
| ### **Significant Improvements** |
| |
| * [PR-1618](https://github.com/apache/incubator-nuttx/pull/1618) metro-m4: Add |
| support for: SmartFS initialization, AT24 EEPROM, GPIO dev, BQ27426 gauge |
| initialization |
| |
| * [PR-1727](https://github.com/apache/incubator-nuttx/pull/1729) b-g474e-dpow1: |
| Add support for FLASH bootloader |
| |
| * [PR-1683](https://github.com/apache/incubator-nuttx/pull/1683) cxd56xx: Add |
| wifi\_smp configuration |
| |
| * [PR-1668](https://github.com/apache/incubator-nuttx/pull/1668) sim: Add new |
| configuration for SMP |
| |
| * [PR-1644](https://github.com/apache/incubator-nuttx/pull/1644) |
| stm32f746g-disco: Move serial console from USART6 to USART1 which is attached |
| to the USB virtual COM port. |
| |
| * [PR-1464](https://github.com/apache/incubator-nuttx/pull/1464) cxd56xx: Add |
| new GNSS functions, support for lower PWM frequency, |
| CONFIG\_CPUFREQ\_RELEASE\_LOCK, high speed ADC, HPADC input gain configuration, |
| eMMC device, frame buffer support |
| |
| * [PR-1405](https://github.com/apache/incubator-nuttx/pull/1405) |
| stm32f4discovery: Add ELF support to wifi configuration |
| |
| * [PR-1402](https://github.com/apache/incubator-nuttx/pull/1402) imxrt1060: Add |
| buttons support to iMXRT1060 |
| |
| * [PR-1590](https://github.com/apache/incubator-nuttx/pull/1590) sim: Add |
| duktape configuration |
| |
| * [PR-1532](https://github.com/apache/incubator-nuttx/pull/1532) sim: Add |
| cromfs configuration |
| |
| * [PR-1335](https://github.com/apache/incubator-nuttx/pull/1335) cxd56xx: |
| Enable basic snapshop camera example |
| |
| ### New Board Support |
| |
| * [PR-1664](https://github.com/apache/incubator-nuttx/pull/1664) NRF52: Add |
| support for NRF52832 MakerDiary MDK board |
| |
| * [PR-1633](https://github.com/apache/incubator-nuttx/pull/1633) NRF52: Add |
| support for Sparkfun NRF52832 Breakout Board |
| |
| * [PR-1728](https://github.com/apache/incubator-nuttx/pull/1728) SAMA5D27: Add |
| support for Giant Board |
| |
| * [PR-1397](https://github.com/apache/incubator-nuttx/pull/1397) EOSS3: Initial |
| support for the QuickLogic EOS S3 SoC QuickFeather board |
| |
| * [PR-1268](https://github.com/apache/incubator-nuttx/pull/1268) STM32: Add |
| support for nucleo-f412zg board |
| |
| File System ----------- |
| |
| ### **Bug Fixes** |
| |
| * [PR-1796](https://github.com/apache/incubator-nuttx/pull/1796) vfs: Fix |
| memory leak calling `pseudorename` |
| |
| * [PR-1794](https://github.com/apache/incubator-nuttx/pull/1794) vfs: Fix issue |
| where opendir would remove the trailing whitespace or / |
| |
| * [PR-1793](https://github.com/apache/incubator-nuttx/pull/1793) vfs: Make sure |
| that rename of mount point uses pseudorename. Previously mv on a mountpoint |
| would return err 88. |
| |
| * [PR-1737](https://github.com/apache/incubator-nuttx/pull/1737) vfs: reuse |
| file\_dup2 direction in file\_dup to prevent segfault issue |
| |
| * [PR-1490](https://github.com/apache/incubator-nuttx/pull/1490) Ensure that |
| filesystems can all support paths that end with '/' |
| |
| * [PR-1546](https://github.com/apache/incubator-nuttx/pull/1546) ROMFS: Fix |
| issue with how hard links are followed for ROMFS |
| |
| * [PR-1442](https://github.com/apache/incubator-nuttx/pull/1442) SmartFS: Fix |
| file size corruption when opening with overwriting mode |
| |
| * [PR-1431](https://github.com/apache/incubator-nuttx/pull/1431) nxffs: Fix |
| scan good block slowly and scan an invalid block |
| |
| PR-1295 fs: for setfd correct the return value |
| |
| ### **Significant Improvements** |
| |
| * [PR-1554](https://github.com/apache/incubator-nuttx/pull/1554) CROMFS: Add |
| support for hard links |
| |
| * [PR-1499](https://github.com/apache/incubator-nuttx/pull/1499) FAT: Add |
| support for UTF8 long filename |
| |
| * [PR-1479](https://github.com/apache/incubator-nuttx/pull/1479) vfs: Add file |
| descriptor based events support eventfd() |
| |
| * [PR-1582](https://github.com/apache/incubator-nuttx/pull/1482) vfs: Add |
| epoll\_create1() support |
| |
| * [PR-1579](https://github.com/apache/incubator-nuttx/pull/1579) vfs: Do not |
| check CONFIG\_NFILE\_STREAMS for mkdir/rename/rmdir/fs\_unlink |
| |
| * [PR-1355](https://github.com/apache/incubator-nuttx/pull/1355) vfs: Implement |
| statvfs and fstatvfs |
| |
| * [PR-1323](https://github.com/apache/incubator-nuttx/pull/1323) vfs: Add |
| chmod/fchmod/utimes function prototypes |
| |
| Networking ---------- |
| |
| ### **Bug Fixes** |
| |
| * [PR-1267](https://github.com/apache/incubator-nuttx/pull/1267) SocketCAN: |
| When timestamped frame was received while in CAN2.0B mode the frame got dropped. |
| |
| * [PR-1446](https://github.com/apache/incubator-nuttx/pull/1446) usrsock: Fix |
| recv() cannot peek data |
| |
| ### **Significant Improvements** |
| |
| * [PR-1666](https://github.com/apache/incubator-nuttx/pull/1666) Bluetooth: |
| Bluetooth sockets now use Linux sockaddr types of sockaddr\_l2 sockaddr\_hci |
| sockaddr\_rc. There are slight breaking changes here that may require |
| applications to be updated, but this brings the interface inline with Linux. |
| |
| * [PR-1581](https://github.com/apache/incubator-nuttx/pull/1581) Socket: Add |
| SOCK\_CLOEXEC/SOCK\_NONBLOCK support |
| |
| * [PR-1443](https://github.com/apache/incubator-nuttx/pull/1443) usrsock: Add |
| flag argument to sendto/recvfrom interface in usrsock |
| |
| * [PR-1238](https://github.com/apache/incubator-nuttx/pull/1238) SocketCAN: Add |
| support for SocketCAN interface API |
| |
| Applications ------------ |
| |
| ### **Significant Improvements** |
| |
| * [PR-409](https://github.com/apache/incubator-nuttx-apps/pull/409) wamr: |
| Update version to 09-29-2020 that supports NuttX directly and remove patches |
| |
| * [PR-407](https://github.com/apache/incubator-nuttx-apps/pull/407) ipcfg: Add |
| IPv4 configuration file access helper |
| |
| * [PR-406](https://github.com/apache/incubator-nuttx-apps/pull/406) wamr: Add |
| configs for heap pool and custom name sections |
| |
| * [PR-404](https://github.com/apache/incubator-nuttx-apps/pull/404) timer: Add |
| supplying timer dev path to example |
| |
| * [PR-403](https://github.com/apache/incubator-nuttx-apps/pull/402) |
| nxplayer/nxrecorder: Add channel map support |
| |
| * [PR-396](https://github.com/apache/incubator-nuttx-apps/pull/396) wamr: Add |
| missing options to kconfig |
| |
| * [PR-395](https://github.com/apache/incubator-nuttx-apps/pull/395) dhcpc: Try |
| to get hostname via syscall first |
| |
| * [PR-391](https://github.com/apache/incubator-nuttx-apps/pull/391) wapi: Add |
| option to assocated directly via bssid |
| |
| * [PR-390](https://github.com/apache/incubator-nuttx-apps/pull/390) wapi: App |
| option to scan partial channel |
| |
| * [PR-387](https://github.com/apache/incubator-nuttx-apps/pull/387) wamr: Add |
| support for WAMR web assembly interpreter |
| |
| * [PR-337](https://github.com/apache/incubator-nuttx-apps/pull/337) docs: |
| Convert all README files to markdown |
| |
| * [PR-333](https://github.com/apache/incubator-nuttx-apps/pull/333) webclient: |
| Add hooks for TLS, extra request headers, PUT method, report status code, |
| improved error handling |
| |
| * [PR-329](https://github.com/apache/incubator-nuttx-apps/pull/329) gpio: Add |
| support for new GPIO pin types |
| |
| * [PR-317](https://github.com/apache/incubator-nuttx-apps/pull/317) nshlib: |
| Call symlink if user pass -s for ln command |
| |
| * [PR-315](https://github.com/apache/incubator-nuttx-apps/pull/315) c++: |
| Support uClibc++ and libcxx in examples/testing |
| |
| * [PR-314](https://github.com/apache/incubator-nuttx-apps/pull/314) camera: Add |
| a simple camera snapshot example |
| |
| * [PR-378](https://github.com/apache/incubator-nuttx-apps/pull/378) wasm3: |
| Initial WebAssembly runtime support |
| |
| * [PR-374](https://github.com/apache/incubator-nuttx-apps/pull/374) bluetooth: |
| Use the new l2cap socket address type |
| |
| * [PR-373](https://github.com/apache/incubator-nuttx-apps/pull/373) duktape: |
| Add duktape to global search path so it can be used as a library |
| |
| * [PR-372](https://github.com/apache/incubator-nuttx-apps/pull/372) quickjs: |
| Add support for QuickJS interpreter |
| |
| * [PR-367](https://github.com/apache/incubator-nuttx-apps/pull/367) nsh: Accept |
| the command line arguments like sh |
| |
| * [PR-365](https://github.com/apache/incubator-nuttx-apps/pull/365) duktape: |
| Add console, print, alert support |
| |
| * [PR-364](https://github.com/apache/incubator-nuttx-apps/pull/364) cu: |
| Refactor cu and add support for "-c" to disable \\n to \\r\\n conversion |
| |
| * [PR-362](https://github.com/apache/incubator-nuttx-apps/pull/362) libuv: Add |
| support for libuv library |
| |
| * [PR-352](https://github.com/apache/incubator-nuttx-apps/pull/352) duktape: |
| Add initial support for duktape |
| |
| * [PR-346](https://github.com/apache/incubator-nuttx-apps/pull/364) wget: |
| Enable URL from command line, can be used with ifup, hooks for HTTPS |
| |
| * [PR-302](https://github.com/apache/incubator-nuttx-apps/pull/302) lvgl: Use |
| the latest version 7.0.2 |
| |
| * [PR-300](https://github.com/apache/incubator-nuttx-apps/pull/300) note: Add |
| support for decoding interrupt and syscall instrumentation |
| |
| * [PR-299](https://github.com/apache/incubator-nuttx-apps/pull/299) nxrecorder: |
| Add O\_TRUNC when creating a file |
| |
| * [PR-296](https://github.com/apache/incubator-nuttx-apps/pull/296) bmp280: Add |
| support for BMP180 to BMP280 application |
| |
| * [PR-294](https://github.com/apache/incubator-nuttx-apps/pull/294) can: Add |
| cansend and candump utilities for interacting with SocketCAN |
| |
| ### Bug Fixes |
| |
| * [PR-411](https://github.com/apache/incubator-nuttx-apps/pull/411) wgetjson: |
| Fix build breakage |
| |
| * [PR-405](https://github.com/apache/incubator-nuttx-apps/pull/405) nxplayer: |
| Fix missing "%d" in a sscanf call |
| |
| * [PR-400](https://github.com/apache/incubator-nuttx-apps/pull/400) dhcpc: |
| Handle case where gethostname() might be empty |
| |
| * [PR-399](https://github.com/apache/incubator-nuttx-apps/pull/399) build: Fix |
| build system issue where compiler would only compile first assembly file |
| |
| * [PR-393](https://github.com/apache/incubator-nuttx-apps/pull/393) build: Fix |
| build system issue where ARCHCPUFLAGS in cxx command was lost |
| |
| * [PR-392](https://github.com/apache/incubator-nuttx-apps/pull/392) wapi: Make |
| wapi more robust in failure cases |
| |
| * [PR-383](https://github.com/apache/incubator-nuttx-apps/pull/383) ntpclient: |
| Fix NTP daemon state in case of DNS failure |
| |
| * [PR-344](https://github.com/apache/incubator-nuttx-apps/pull/344) gs2200m: |
| Fix freeing of uninitialized memory |
| |
| * [PR-335](https://github.com/apache/incubator-nuttx-apps/pull/335) ntp: Fix |
| malformated authentication headers in NTP packet |
| |
| * [PR-331](https://github.com/apache/incubator-nuttx-apps/pull/331) telnetd: |
| Fix buffer overflow issue clearing socket address |
| |
| * [PR-312](https://github.com/apache/incubator-nuttx-apps/pull/312) build: Make |
| sure to include incdir when running make export |
| |
| * [PR-377](https://github.com/apache/incubator-nuttx-apps/pull/377) readline: |
| Fix stack overflow when application name is too long |
| |
| * [PR-359](https://github.com/apache/incubator-nuttx-apps/pull/259) nshlib: Fix |
| memory corrupt in nsh\_parse if pthread\_create() failed |
| |
| * [PR-354](https://github.com/apache/incubator-nuttx-apps/pull/354) dhcpd: Fix |
| member name for "ds\_pid" |
| |
| ## Security Issues Fixed In This Release |
| |
| ## Compatibility Concerns |
| |
| ## Changes to Build System |
| |
| ### In Apps, Change `$(TOPDIR)` to `$(APPDIR)` |
| |
| In the 'apps' repo, Makefiles are now using `$(APPDIR)` instead of `$(TOPDIR)`. |
| |
| In your custom app's Makefile, it is recommended to change `$(TOPDIR)` to |
| `$(APPDIR)`. |
| |
| Replace this line: |
| |
| include $(TOPDIR)/Make.defs |
| |
| With this: |
| |
| include $(APPDIR)/Make.defs |
| |
| See * [PR-326](https://github.com/apache/incubator-nuttx-apps/pull/326), git |
| commit # |
| `[deaa6c5b7bf8445b4a300691525f60aa506be0d7](https://github.com/apache/incubator-nuttx-apps/commit/deaa6c5b7bf8445b4a300691525f60aa506be0d7)` |
| in the NuttX 'apps' repository. |
| |
| ### Custom Boards Don't Need `ARCHINCLUDES` and `ARCHXXINCLUDES` Definitions |
| |
| As part of an effort to unify support for uClibc++ and libc++, the C/C++ include |
| search path definitions `ARCHINCLUDES` and `ARCHXXINCLUDES` are now defined in |
| one central place in `tools/Config.mk`. It is no longer necessary to define |
| these in every board's `scripts/Make.defs`. Boards included in the NuttX |
| repository have been updated, but if you are building NuttX for a custom board |
| and are using C++, you may want to make the following changes: |
| |
| In your board's configuration, ensure that you have enabled either |
| `CONFIG_UCLIBCXX` or `CONFIG_LIBCXX` as appropriate. |
| |
| In your custom board's `scripts/Make.defs` file, remove lines like these: |
| |
| CINCPATH := ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} CXXINCPATH := |
| ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} ARCHINCLUDES |
| += $(CINCPATH) ARCHXXINCLUDES += $(CINCPATH) $(CXXINCPATH) |
| |
| In case your `scripts/Make.defs` uses different names, such as `ARCHINCLUDESXX` |
| instead of `ARCHXXINCLUDES`, you'll need to find all uses of that variable and |
| update them to use `ARCHXXINCLUDES`. |
| |
| See * [PR-1396](https://github.com/apache/incubator-nuttx/pull/1396), git |
| commit |
| #[d32e9c38dfb0659a7f3c0cf586ba1584cd7eb3d6](https://github.com/apache/incubator-nuttx/commit/d32e9c38dfb0659a7f3c0cf586ba1584cd7eb3d6) |
| in the main NuttX repository. |
| |
| See also * [PR-1399](https://github.com/apache/incubator-nuttx/pull/1399), git |
| commit |
| #[6abd03d53ff9164fb17ea4aca701a49fbbf751c0](https://github.com/apache/incubator-nuttx/commit/6abd03d53ff9164fb17ea4aca701a49fbbf751c0). |
| |
| ### Custom Boards Don't Need `HOSTCC` and `HOSTCFLAGS` Definitions |
| |
| The NuttX build system uses several binary utilities that it compiles and runs |
| on the host computer. To build these binaries, it needs to know the host C |
| compiler and C flags. Previously, every board's `scripts/Make.defs` file had to |
| provide this information via `HOSTCC` and `HOSTCFLAGS` Definitions. As part of |
| an effort to simplify the build system, these definitions are now automatically |
| provided by logic in `tools/Config.mk`. Boards included in the NuttX repository |
| have been updated, but if you are building NuttX for a custom board, you may |
| want to make the following changes: |
| |
| In your custom board's `scripts/Make.defs` file, remove lines like these: |
| |
| HOSTCC = gcc HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe |
| |
| Sometimes they may look like this: |
| |
| ifeq ($(CONFIG\_WINDOWS\_NATIVE),y) |
| HOSTCC = mingw32-gcc.exe |
| else |
| HOSTCC = gcc |
| endif |
| |
| Note: These changes are OPTIONAL. |
| |
| You may still set these definitions in your board's scripts/Make.defs, and your |
| definitions will override the ones in tools/Config.mk. |
| |
| Also, you may override these definitions for a single run by providing them on |
| the make command line. This is useful if, for example, you wish to build debug |
| versions of these host binaries: define HOSTCFLAGS with -g on the command line. |
| |
| See * [PR-1398](https://github.com/apache/incubator-nuttx/pull/1398), git |
| commit |
| #[ee875b2a260cb4cc532b8ca303c2515e24c39b4e](https://github.com/apache/incubator-nuttx/commit/ee875b2a260cb4cc532b8ca303c2515e24c39b4e) |
| in the main NuttX repository. |
| |
| ### Removal of Unused `ARCHCCVERSION` and `ARCHCCMAJOR` |
| |
| The ARCHCCVERSION and ARCHCCMAJOR variables are unused. Historically they were |
| defined in many boards' scripts/Make.defs. These were removed from all boards in |
| the NuttX repository, but if you are building NuttX for a custom board, you may |
| want to remove this unnecessary boilerplate. |
| |
| In your custom board's `scripts/Make.defs` file, remove lines like these: |
| |
| |
| |
| ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e |
| 's/^gcc version \\(\[0-9\\.\]\\)/\\1/g' -e 's/\[-\\ \].\*//g' -e '1q'} |
| ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} |
| |
| See * [PR-1344](https://github.com/apache/incubator-nuttx/pull/1344), git |
| commit |
| #[f5311de6b42466ab5c6ef299dab0ecc417131bbe](https://github.com/apache/incubator-nuttx/commit/f5311de6b42466ab5c6ef299dab0ecc417131bbe) |
| in the main NuttX repository. |
| |
| ### Custom Boards May Not Need `EXTRA_LIBS` and `EXTRA_LIBPATHS` Definitions |
| |
| The `EXTRA_LIBS` and `EXTRA_LIBPATHS` make variables were previously defined in |
| many boards' `scripts/Make.defs` files. These are now defined in a more central |
| location: `arch/*/src/*/Toolchain.defs`. Your board's `scripts/Make.defs` |
| usually includes this file. Boards included in NuttX have been updated, but if |
| you are building NuttX for a custom board, you may need to update your board's |
| `scripts/Make.defs` file to ensure you build with the correct definitions. |
| |
| If you have lines like these: |
| |
| EXTRA\_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}" EXTRA\_LIBS = -lsupc++ |
| |
| You may want to do one of the following: |
| |
| * If they are redundant to the definitions provided in the included |
| `arch/*/src/*/Toolchain.defs`, remove these lines, or * If they contain |
| additional needed libraries and paths not present in |
| `arch/*/src/*/Toolchain.defs`, remove any redundant definitions and change the |
| assignment '`=`' to '`+=`'. |
| |
| See * [PR-1404](https://github.com/apache/incubator-nuttx/pull/1404), git |
| commit |
| #[4910d43ab0fc360dbddb1f8a31db2a3ee383b46d](https://github.com/apache/incubator-nuttx/commit/4910d43ab0fc360dbddb1f8a31db2a3ee383b46d) |
| in the main NuttX repository. |
| |
| ### Custom Boards May Not Need CC, CXX, CPP, LD, STRIP, AR, NM, OBJCOPY, and |
| OBJDUMP Definitions |
| |
| These `make` variables were previously defined in many boards' scripts/Make.defs |
| files with copy-paste duplication spanning many hundreds of files. These are now |
| defined in a more central location: `arch/*/src/*/Toolchain.defs`. Your board's |
| `scripts/Make.defs` usually includes this file. Boards included in NuttX have |
| been updated, but if you are building NuttX for a custom board, you may need to |
| update your board's `scripts/Make.defs` file to ensure you build with the |
| correct definitions. |
| |
| If you have lines that define `CC`, `CXX`, `CPP`, `LD`, `STRIP`, `AR`, `NM`, |
| `OBJCOPY`, and `OBJDUMP`, such as these: |
| |
| CC = $(CROSSDEV)gcc CXX = $(CROSSDEV)g++ CPP = $(CROSSDEV)gcc -E -P -x c LD = |
| $(CROSSDEV)ld STRIP = $(CROSSDEV)strip --strip-unneeded AR = $(ARCROSSDEV)ar rcs |
| NM = $(ARCROSSDEV)nm OBJCOPY = $(CROSSDEV)objcopy OBJDUMP = $(CROSSDEV)objdump |
| |
| |
| |
| You may want to do one of the following: |
| |
| * If they are redundant to the definitions provided in the included |
| `arch/*/src/*/Toolchain.defs`, remove these lines, or * If they are different |
| from the definitions in `arch/*/src/*/Toolchain.defs`, leave them as-is and they |
| will take precedence. |
| |
| See * [PR-1426](https://github.com/apache/incubator-nuttx/pull/1426), git |
| commit |
| #[b329e2377dd8816f37ad0408279926829efdf85d](https://github.com/apache/incubator-nuttx/commit/b329e2377dd8816f37ad0408279926829efdf85d) |
| in the main NuttX repository. |
| |
| ### Consolidated ARCROSSDEV and CROSSDEV |
| |
| The `ARCROSSDEV` and `CROSSDEV` variables always had identical values. Therefore |
| `ARCROSSDEV` has been removed and `CROSSDEV` is used instead. Boards included in |
| NuttX have been updated, but if you are building NuttX for a custom board, you |
| may need to update your board's build scripts to use the `CROSSDEV` variable. |
| |
| See * [PR-1439](https://github.com/apache/incubator-nuttx/pull/1439), git |
| commit |
| #[5efa93ec26fd8a3fd85b24a2008bb743f96027fb](https://github.com/apache/incubator-nuttx/commit/5efa93ec26fd8a3fd85b24a2008bb743f96027fb) |
| in the main NuttX repository. |