Merge remote-tracking branch 'origin/master' into composite
This commit is contained in:
commit
bb6a13f30a
4 changed files with 2533 additions and 50 deletions
|
@ -8,7 +8,7 @@
|
|||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
||||
<p>Last Updated: March 8, 2017</p>
|
||||
<p>Last Updated: June 5, 2017</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -317,7 +317,7 @@
|
|||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, cancellation points, environment variables, filesystem.</li>
|
||||
<li>POSIX/ANSI-like task controls, named message queues, counting semaphores, clocks/timers, signals, pthreads, robust mutexes, cancellation points, environment variables, filesystem.</li>
|
||||
</p>
|
||||
</tr>
|
||||
|
||||
|
@ -772,6 +772,14 @@
|
|||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>User space stacks.</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
|
@ -792,7 +800,23 @@
|
|||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>DNS name resolution.</li>
|
||||
<li>DNS name resolution / NetDB</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>IEEE 802.11 FullMac</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<li>IEEE 802.15.4 MAC + 6loWPAN</li>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -1339,11 +1363,11 @@
|
|||
<h2>Released Versions</h2>
|
||||
<p>
|
||||
In addition to the ever-changing GIT repository, there are frozen released versions of NuttX available.
|
||||
The current release is NuttX 7.20.
|
||||
NuttX 7.20 is the 120<sup>th</sup> release of NuttX.
|
||||
It was released on March 8, 2016, and is available for download from the
|
||||
The current release is NuttX 7.21.
|
||||
NuttX 7.21 is the 121<sup>st</sup> release of NuttX.
|
||||
It was released on June 5, 2016, and is available for download from the
|
||||
<a href="https://bitbucket.org/nuttx/nuttx/downloads/">Bitbucket.org</a> website.
|
||||
Note that the release consists of two tarballs: <code>nuttx-7.20.tar.gz</code> and <code>apps-7.20.tar.gz</code>.
|
||||
Note that the release consists of two tarballs: <code>nuttx-7.21.tar.gz</code> and <code>apps-7.21.tar.gz</code>.
|
||||
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information).
|
||||
</p>
|
||||
|
||||
|
@ -1352,7 +1376,7 @@
|
|||
<ul>
|
||||
<li><b>nuttx</b>.
|
||||
<ul><p>
|
||||
Release notes for NuttX 7.20 are available <a href="https://bitbucket.org/nuttx/nuttx/downloads/">here</a>.
|
||||
Release notes for NuttX 7.21 are available <a href="https://bitbucket.org/nuttx/nuttx/downloads/">here</a>.
|
||||
Release notes for all released versions on NuttX are available in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>.
|
||||
The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ChangeLog" target="_blank">Bitbucket GIT</a>.
|
||||
The ChangeLog for the current release is at the bottom of that file.
|
||||
|
@ -1360,7 +1384,7 @@
|
|||
</li></ul>
|
||||
<li><b>apps</b>.
|
||||
<ul><p>
|
||||
Release notes for NuttX 7.20 are available <a href="https://bitbucket.org/nuttx/apps/downloads/">here</a>.
|
||||
Release notes for NuttX 7.21 are available <a href="https://bitbucket.org/nuttx/apps/downloads/">here</a>.
|
||||
Release notes for all released versions on NuttX are available in the <a href="https://bitbucket.org/nuttx/nuttx/src/master/ReleaseNotes" target="_blank">Bitbucket GIT</a>
|
||||
The ChangeLog for the all releases of <code>apps/</code> is available in the ChangeLog file that can viewed in the <a href="https://bitbucket.org/nuttx/apps/src/master/ChangeLog.txt" target="_blank">Bitbucket GIT</a>.
|
||||
The ChangeLog for the current release is at the bottom of that file.
|
||||
|
@ -1416,9 +1440,9 @@
|
|||
<li><a href="#armcortexa8">ARM Cortex-A8</a> (1)</li>
|
||||
<li><a href="#armcortexa9">ARM Cortex-A9</a> (1)</li>
|
||||
<li><a href="#armcortexr4">ARM Cortex-R4</a> (1)</li>
|
||||
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (7)</li>
|
||||
<li><a href="#armcortexm3">ARM Cortex-M3</a> (35)</li>
|
||||
<li><a href="#armcortexm4">ARM Cortex-M4</a> (34)</li>
|
||||
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (10)</li>
|
||||
<li><a href="#armcortexm3">ARM Cortex-M3</a> (36)</li>
|
||||
<li><a href="#armcortexm4">ARM Cortex-M4</a> (40)</li>
|
||||
<li><a href="#armcortexm7">ARM Cortex-M7</a> (7)</li>
|
||||
</ul>
|
||||
<li>Atmel AVR
|
||||
|
@ -1525,6 +1549,11 @@
|
|||
<li><a href="#linuxusermode">Linux/Cygwin user mode simulation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Infineon
|
||||
<ul>
|
||||
<li><a href="#xmd45xx">Infineon XMC45xx</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Intel
|
||||
<ul>
|
||||
<li><a href="#80x86">Intel 80x86</a></li>
|
||||
|
@ -1597,6 +1626,7 @@
|
|||
<li><a href="#str71x">STMicro STR71x</a> <small>(ARM7TDMI)</small></li>
|
||||
<li><a href="#stm32l152">STMicro STM32L152</a> <small>(STM32 L "EnergyLite" Line, ARM Cortex-M3)</small></li>
|
||||
<li><a href="#stm32l162">STMicro STM32L162</a> <small>(STM32 L "EnergyLite" Medium+ Density, ARM Cortex-M3)</small></li>
|
||||
<li><a href="#stm32f0xx">STMicro STM32F0xx</a> <small>(STM32 F0, ARM Cortex-M0)</small></li>
|
||||
<li><a href="#stm32f100x">STMicro STM32F100x</a> <small>(STM32 F1 "Value Line"Family, ARM Cortex-M3)</small></li>
|
||||
<li><a href="#stm32f102x">STMicro STM32F102x</a> <small>(STM32 F1 Family, ARM Cortex-M3)</small></li>
|
||||
<li><a href="#stm32f103cx">STMicro STM32F103C4/C8</a> <small>(STM32 F1 "Low- and Medium-Density Line" Family, ARM Cortex-M3)</small></li>
|
||||
|
@ -1608,19 +1638,22 @@
|
|||
<li><a href="#stm32302x">STMicro STM32F302x</a> <small>(STM32 F3 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32303x">STMicro STM32F303x</a> <small>(STM32 F3 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f372x">STMicro STM32 F372/F373</a> <small>(ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f401x">STMicro STM32F401x</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
</ul>
|
||||
</li>
|
||||
</td>
|
||||
<td bgcolor="#e4e4e4" valign="top" width="33%">
|
||||
<li>STMicroelectronics (Continued)
|
||||
<ul>
|
||||
<li><a href="#stm32f4x1">STMicro STM32F4x1</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f410">STMicro STM32F410</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f407x">STMicro STM32F407x</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f427x">STMicro STM32 F427/F437</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f429x">STMicro STM32 F429</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f446x">STMicro STM32 F446</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f46xxx">STMicro STM32 F46xx</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32l4x2">STMicro STM32 L4x2</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32l476">STMicro STM32 L476</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32l496">STMicro STM32 L496</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
|
||||
<li><a href="#stm32f74x">STMicro STM32 F745/F746</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
|
||||
<li><a href="#stm32f75x">STMicro STM32 F756</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
|
||||
<li><a href="#stm32f76xx77xx">STMicro STM32 F76xx/F77xx</a> <small>(STM32 F7 family, ARM Cortex-M7)</small></li>
|
||||
|
@ -2792,7 +2825,7 @@ nsh>
|
|||
</p>
|
||||
<ul>
|
||||
<p>
|
||||
The STM32L-Discovery and 32L152CDISCOVERY kits are functionally equivalent.
|
||||
The STM32L-Discovery and STM32L152C DISCOVERY kits are functionally equivalent.
|
||||
The difference is the internal Flash memory size (STM32L152RBT6 with 128 Kbytes or STM32L152RCT6 with 256 Kbytes).
|
||||
Both boards feature:
|
||||
</p>
|
||||
|
@ -2807,6 +2840,7 @@ nsh>
|
|||
<p>
|
||||
<b>STATUS</b>.
|
||||
Initial support for the STM32L-Discovery was released in NuttX-6.28.
|
||||
Addition (architecture-only) support for the STM32L152xC family was added in NuttX-7.21.
|
||||
This initial support includes a configuration using the NuttShell (<a href="NuttShell.html">NSH</a>) that might be the basis for an application development.
|
||||
A driver for the on-board segment LCD is included as well as an option to drive the segment LCD from an NSH "built-in" command.
|
||||
As of this writing, a few more things are needed to make this a more complete port: 1) Verfication of more device drivers (timers, quadrature encoders, PWM, etc.), and 2) logic that actually uses the low-power consumption modes of the EnergyLite part.
|
||||
|
@ -2855,6 +2889,44 @@ nsh>
|
|||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<a name="stm32f0xx"><b>STMicro STM32F0xx (STM32 F0, ARM Cortex-M0)</b>.</a>
|
||||
Support for the STM32 F0 family was contributed by Alan Carvalho de Assis in NuttX-7.21.
|
||||
There are ports to three different boards in this respository:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<b>STM32F0-Discovery</b>
|
||||
This board features the STM32 2F051R8 and was used by Alan to produce the initial STM32 F0 port.
|
||||
However, its very limited 8KB SRAM makes this port unsuitable for for usages.
|
||||
Contributed by Alan Carvalho de Assis in NuttX-7.21.
|
||||
</li>
|
||||
<li>
|
||||
<b>Nucleo-F072RB</b>
|
||||
With 16KB of SRAM the STM32 F072RB makes a much more usable platform.
|
||||
</li>
|
||||
<li>
|
||||
<b>Nucleo-F091RC</b>
|
||||
With 32KB of SRAM the STM32 F091RC this board is a great match for NuttX.
|
||||
Contributed by Juha Niskanen in NuttX-7.21.
|
||||
</li>
|
||||
</ul>
|
||||
<p><b>STATUS:</b>
|
||||
In this initial release, the level of support for the STM32 F0 family is minimal.
|
||||
Certainly enough is in place to support a robust NSH configuration.
|
||||
There are also unverified I2C and USB device drivers available in NuttX-7.21.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
|
@ -3176,11 +3248,18 @@ nsh>
|
|||
<td>
|
||||
<p>
|
||||
<a name="stm32f205x"><b>STMicro STM32F205 (STM32 F2 family)</b>.</a>
|
||||
Architecture only support for the STM32F205RG was contributed as an anonymous contribution in NuttX-7.10
|
||||
Architecture only support for the STM32F205RG was contributed as an anonymous contribution in NuttX-7.10.
|
||||
</p>
|
||||
<p>
|
||||
<b>Particle.io Phone</b>.
|
||||
Support for the Particle.io Photon board was contributed by Simon Pirious in NuttX-7.21.
|
||||
The Photon board features the STM32F205RG MCU.
|
||||
The STM32F205RG is a 120 MHz Cortex-M3 operation with 1Mbit Flash memory and 128kbytes.
|
||||
The board port includes support for the on-board Broadcom BCM43362 WiFi and fully usable FullMac network support.
|
||||
</p>
|
||||
<ul>
|
||||
<b>STATUS:</b>
|
||||
There are currently on board configurations for any board using the STM32F205.
|
||||
In addition to the above-mention WiFI support, the Photon board support includes buttons, LEDS, IWDG, USB OTG HS, and procfs support. Configurations available for nsh, usbnsh, and wlan configurations. See the Photon https://bitbucket.org/nuttx/nuttx/src/master/configs/photon/README.txt" target="_blank">README</a> file for additional information.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -3481,6 +3560,26 @@ nsh>
|
|||
<a name="armcortexm4"><b>ARM Cortex-M4</b>.</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<a name="xmd45xx"><b>Infineon XMC45xx</b>.</a>
|
||||
An initial but still incomplete port to the XMC4500 Relax board was released with NuttX-7.21 (although it is not really ready for prime time).
|
||||
Much is functional but there are still some issues with the output to the NSH serial console.
|
||||
</p>
|
||||
<p>
|
||||
This initial porting effort uses the Infineon XMC4500 Relax v1 board as described on the manufacturer's <a href="http://www.infineon.com/cms/en/product/evaluation-boards/KIT_XMC45_RELAX_V1/productType.html?productType=db3a304437849205013813b23ac17763">website</a>.
|
||||
The current status of the board is available in the board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/xmc4500-relax/README.txt" target="_blank">README</a> file
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
|
@ -3499,6 +3598,7 @@ nsh>
|
|||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
|
@ -3711,6 +3811,7 @@ nsh>
|
|||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
|
@ -3719,26 +3820,53 @@ nsh>
|
|||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<a name="stm32f401x"><b>STMicro STM32401x (STM32 F4 family)</b>.</a>
|
||||
<a name="stm32f4x1"><b>STMicro STM324x1 (STM32 F4 family)</b>.</a>
|
||||
<p>
|
||||
<ul>
|
||||
<p>
|
||||
<b>Nucleo F401RE</b>.
|
||||
This port uses the STMicro Nucleo F401RE board featuring the STM32F104RE MCU.
|
||||
Refer to the <a href="http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260000">STMicro web site</a> for further information about this board.
|
||||
This port uses the STMicro Nucleo F401RE board featuring the STM32F401RE MCU.
|
||||
Refer to the <a href="http://www.st.com/en/evaluation-tools/nucleo-f401re.html">STMicro web site</a> for further information about this board.
|
||||
</p>
|
||||
<p>
|
||||
<b>Nucleo F411RE</b>.
|
||||
This port uses the STMicro Nucleo F411RE board featuring the STM32F411RE MCU.
|
||||
Refer to the <a href="http://www.st.com/en/evaluation-tools/nucleo-f411re.html">STMicro web site</a> for further information about this board.
|
||||
</p>
|
||||
<p>
|
||||
<b>STATUS:</b>
|
||||
<ul>
|
||||
<li><b>NuttX-7.2</b>
|
||||
The basic port for STMicro Nucleo F401RE board was contributed by Frank Bennett.
|
||||
</li>
|
||||
<li><b>NuttX-7.6</b>
|
||||
The basic port for STMicro Nucleo F401RE board was added by Serg Podtynnyi.
|
||||
</li>
|
||||
<li>
|
||||
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-f401re/README.txt" target="_blank">README</a> file for further information.
|
||||
Refer to the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-f4x1re/README.txt" target="_blank">README</a> file for further information.
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<a name="stm32f410"><b>STMicro STM32410 (STM32 F4 family)</b>.</a>
|
||||
<p>
|
||||
<ul>
|
||||
<p>
|
||||
Architecture-only support was contributed to NuttX-7.21 by Gwenhael Goavec-Merou.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
|
@ -3867,6 +3995,20 @@ nsh>
|
|||
Support for the Olimex STM32 P407 development board appeared in NuttX-7.19.
|
||||
See the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/olimex-stm32-p407/README.txt" target="_blank">README</a> file for further information about the NuttX port.
|
||||
</p>
|
||||
<p>
|
||||
<b>MikroElektronika Clicker2 for STM32</b>.
|
||||
This is yet another board supported by NuttX that uses the same STM32F407VGT6 MCU as does the STM32F4-Discovery board.
|
||||
This board has been used primarily with the MRF24J40 Click board for the development of IEEE 802.15.4 MAC and 6loWPAN support.
|
||||
<p>
|
||||
See the <a href="https://shop.mikroe.com/development-boards/starter/clicker-2/stm32f4">Mikroelektronika</a> website for more information about this board and the NuttX board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/clicker2-stm32/README.txt" target="_blank">README</a> file for further information about the NuttX port.
|
||||
</p>
|
||||
<ul>
|
||||
<p>
|
||||
<b>STATUS:</b>
|
||||
The basic port for the Clicker2 STM32 was contributed by Anthony Merlino and was first released in NuttX-7.21.
|
||||
All compatible drivers for the STM32 F4 family may be used with this board as well.
|
||||
</p>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -4041,6 +4183,61 @@ nsh>
|
|||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<a name="stm32l4x2"><b>STMicro STM32 L4x2</b>.</a>
|
||||
Architecture support for STM32 L4x2 family was contributed by Juha Niskanen in NuttX-7.21.
|
||||
Two boards are currently supported.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<b>Nucleo-L432KC</b>.
|
||||
Board support for the STMicro Nucleo-L432KC board from ST Micro was contributed by JSebastien Lorquet in NuttX-7.21. See the <a href="http://www.st.com/en/evaluation-tools/nucleo-l432kc.html" target="_blank">STMicro website</a> and the board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-l432kc/README.txt" target="_blank">README</a> file for further information.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<b>Nucleo-L452RE</b>.
|
||||
Board support for the STMicro Nucleo-L452RE board from ST Micro was contributed by Juha Niskanen in NuttX-7.21. See the <a href="http://www.st.com/en/evaluation-tools/nucleo-l452re.html" target="_blank">STMicro website</a> and the board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-l452re/README.txt" target="_blank">README</a> file for further information.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
See also the status above for the STM32 L476 most of which also applies to these parts.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td>
|
||||
<p>
|
||||
<a name="stm32l496"><b>STMicro STM32 L496</b>.</a>
|
||||
Architecture support for STM32 L496 was contributed by Juha Niskanen along with board support for the Nucleo-L496ZG in NuttX-7.21:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>
|
||||
<b>Nucleo-L496ZG</b>.
|
||||
Board support for the STMicro Nucleo-L496ZG board from ST Micro was contributed by Juha Niskanen in NuttX-7.21. See the <a href="http://www.st.com/en/evaluation-tools/nucleo-l496zg.html" target="_blank">STMicro website</a> and the board <a href="https://bitbucket.org/nuttx/nuttx/src/master/configs/nucleo-l496zg/README.txt" target="_blank">README</a> file for further information.
|
||||
See also the status above for the STM32 L476 most of which also applies to this part.
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><br></td>
|
||||
<td><hr></td>
|
||||
|
|
990
ReleaseNotes
990
ReleaseNotes
|
@ -2025,7 +2025,7 @@ 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 6, 2011
|
||||
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:
|
||||
|
||||
|
@ -13546,3 +13546,991 @@ detailed bugfix information):
|
|||
- 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 transmittion 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 rg.
|
||||
- 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
|
||||
intialization 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 settinngs are in effect from the point
|
||||
of exection, 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 Utilies: apps/netuils:
|
||||
|
||||
- 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 Utilies: 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 Unitilities (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 overlow. 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 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 applicaiton '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 dependant 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. Sugested 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 unsed, so trying to erase a sector from the first
|
||||
bank was acually 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 syncronize 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 partions 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_EXAMPLE_CAN_READ is defined. From Alan Carvalho de Assis.
|
||||
|
||||
* Network Utilies: apps/netuils:
|
||||
|
||||
- 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 Utilies: 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 Unitilities (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.
|
||||
|
|
|
@ -137,7 +137,7 @@ ssize_t lib_fflush(FAR FILE *stream, bool bforce)
|
|||
*/
|
||||
|
||||
stream->fs_flags |= __FS_FLAG_ERROR;
|
||||
ret = -get_errno();;
|
||||
ret = -get_errno();
|
||||
goto errout_with_sem;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue