1
0
Fork 0
forked from nuttx/nuttx-update

Prep for 7.9 release

This commit is contained in:
Gregory Nutt 2015-04-14 14:17:55 -06:00
parent f087e35676
commit 6b283c303c
3 changed files with 450 additions and 35 deletions

View file

@ -660,7 +660,7 @@
* examples/dchpd: Added a tiny DHCP server example
* net/uip: Correct UDP bind behavior. It should select a valid port number
if it receives a port number of zero.
* netutils/dhcpd: Corrrect for ZDS compiler. Fix issue with re-use of a
* netutils/dhcpd: correct for ZDS compiler. Fix issue with re-use of a
port number. Fixed a number of broadcast-related problems.
* eZ80Acclaim!: Add a tiny webserver configuration
* eZ80Acclaim!: Fixed an important bug in the EMAC Tx timeout logic. It was
@ -9187,7 +9187,7 @@
untested (2014-12-10).
* configs/tm4c123g-launchpad/src/tm4c_at24.c, tm4c_bringup.c, and other
files: Add initialization logic for an external AT24 EEPROM. This
is intended only to suppport testing of the Tiva I2C driver
is intended only to support testing of the Tiva I2C driver
(2014-12-10).
* libnx/Makefile, libnx/nxfonts/nxfonts_x11-misc-fixed-*.h, Make.defs,
Makefile.sources, nxfonts_bitmaps.c, graphics/Kconfig, and
@ -9752,7 +9752,7 @@
* configs/freedom-kl26z: Add board support for the Freedom KL26Z board.
From Derek B. Noonburg (2015-02-11).
7.9 2015-xx-xx Gregory Nutt <gnutt@nuttx.org>
7.9 2015-04-14 Gregory Nutt <gnutt@nuttx.org>
* arch/arm/src/tiva: Add support for the TM4C1294. Contributed by
Frank Sautter (2015-02-11).
@ -9828,7 +9828,7 @@
* arch/arm/src/tiva/: Updated files to allow for ADC triggering by the
timer. Ive cleaned up some parts of the ADC code, too, and fleshed
out the PWM triggering ioctl. From Calvin Maguranis (2015-02-17).
* configs/tm4c123g-launchpad: Add ADC suppport. From Calvin Maguranis
* configs/tm4c123g-launchpad: Add ADC support. From Calvin Maguranis
(2015-02-17).
* fs/fat/fs_mkfatfs.c: Use DMA memory for mkfatfs when needed. This makes
mkfatfs use fat_dma_alloc() when CONFIG_FAT_DMAMEMORY is set. This is
@ -9842,7 +9842,7 @@
value of nanoseconds in struct tm. From Juha Niskanen (2015-02-20).
* tm4c123g-launchpad: Add board button interrupt logic. From Calvin
Maguranis (2015-02-20).
* "Tiva: Move GPIIO prototypes out of arch/arm/include/tiva/irq.h to
* "Tiva: Move GPIO prototypes out of arch/arm/include/tiva/irq.h to
arch/arm/tiva/tiva_gpio.h where they belong (2015-02-20).
* arch/arm/src/tiva: Tiva GPIO clean-up by Calvin Maguranis (2015-02-20).
* arch/arm/src/stm32/stm32_pwr.c, stm32_pwr.h, and stm32_rtcc.c: Changes
@ -9857,7 +9857,7 @@
context to one of the files. From David Sidrane (2015-02-21).
* configs/pic32mx-starterkit: Rename from pic32-starterkit to make
room on the namespace for a pic3mz-starterkit. Update src/ directory
file naming to match currnet standard. Refresh configurations. Move
file naming to match current standard. Refresh configurations. Move
linker scripts to a new scripts/directory. Make sure that it builds
using the Pinquino toolchain (2015-02-21).
* arch/mips/src/mips32/Toolchain.mk: Current Pinguino toolchain uses
@ -9878,7 +9878,7 @@
problems when trying to open the can bus from two different tasks.
SourceForge Patch #46 from Anonymous (2015-02-23).
* Tiva TM4c1294: Updates from Frank Sautter (2015-02-24).
* fs/aio: Corrrect some backward tests in aio_read() and aio_write():
* fs/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 (2015-02-24).
@ -9983,7 +9983,7 @@
* drivers/mmcsd/mmcsd_spi.c: Debugging and manuals (this one
https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf
and this one https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf)
shows that ACMD23 must be preceeded with CMD55 command as any other
shows that 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 (2015-03-13).
@ -10148,7 +10148,7 @@
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 obiously has not significant impact to
has been there forever but obviously has not significant impact to
behavior in systems where time is not visible (2015-04-12).
* fs/fat/fs_fat32utils.c: Fix misthink when CONFIG_ENDIAN_BIG=y. From
Lwazi Dube (2015-04-12).
@ -10166,3 +10166,5 @@
by Juha Niskanen (2015-04-14).
* atexit(): Fix reference to undefined variable in certain
configurations. From Juha Niskanen (2015-04-14).
7.10 2015-xx-xx Gregory Nutt <gnutt@nuttx.org>

View file

@ -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: April 3, 2014</p>
<p>Last Updated: April 14, 2015</p>
</td>
</tr>
</table>
@ -1249,29 +1249,20 @@
<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.8.
NuttX 7.8 is the 108<sup>th</sup> release of NuttX.
It was released on February 11, 2015, and is available for download from the
The current release is NuttX 7.9.
NuttX 7.9 is the 109<sup>th</sup> release of NuttX.
It was released on April 14, 2015, and is available for download from the
<a href="http://sourceforge.net/projects/nuttx/files/">SourceForge</a> website.
Note that the release consists of two tarballs: <code>nuttx-7.8.tar.gz</code> and <code>apps-7.8.tar.gz</code>.
Note that the release consists of two tarballs: <code>nuttx-7.9.tar.gz</code> and <code>apps-7.9.tar.gz</code>.
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information).
</p>
<p>
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.
</p>
<h2><a name="changelogs"><b>Release Notes and Change Logs</b>:</a></h2>
<ul>
<li><b>nuttx</b>.
<ul><p>
Release notes for NuttX 7.8 are available <a href="http://sourceforge.net/projects/nuttx/files/nuttx/nuttx-7.8/">here</a>;
Release notes for NuttX 7.9 are available <a href="http://sourceforge.net/projects/nuttx/files/nuttx/nuttx-7.9/">here</a>;
release notes for all released versions on NuttX are available in the <a href="http://sourceforge.net/p/nuttx/git/ci/master/tree/nuttx/ReleaseNotes">SourceForge GIT</a>
The ChangeLog for all releases of NuttX is available in the ChangeLog file that can viewed in the <a href="http://sourceforge.net/p/nuttx/git/ci/master/tree/nuttx/ChangeLog">SourceForge GIT</a>.
The ChangeLog for the current release is at the bottom of that file.
@ -1279,7 +1270,7 @@
</li></ul>
<li><b>apps</b>.
<ul><p>
Release notes for NuttX 7.8 are available <a href="http://sourceforge.net/projects/nuttx/files/nuttx/nuttx-7.8/">here</a>;
Release notes for NuttX 7.9 are available <a href="http://sourceforge.net/projects/nuttx/files/nuttx/nuttx-7.9/">here</a>;
release notes for all released versions on NuttX are available in the <a href="http://sourceforge.net/p/nuttx/git/ci/master/tree/nuttx/ReleaseNotes">SourceForge GIT</a>
The ChangeLog for the all releases of apps is available in the ChangeLog file that can viewed in the <a href="http://sourceforge.net/p/nuttx/git/ci/master/tree/apps/ChangeLog.txt">SourceForge GIT</a>.
The ChangeLog for the current release is at the bottom of that file.
@ -1334,7 +1325,7 @@
<li><a href="#armcortexa8">ARM Cortex-A8</a> (1)</li>
<li><a href="#armcortexm0">ARM Cortex-M0/M0+</a> (4)</li>
<li><a href="#armcortexm3">ARM Cortex-M3</a> (32)</li>
<li><a href="#armcortexm4">ARM Cortex-M4</a> (19)</li>
<li><a href="#armcortexm4">ARM Cortex-M4</a> (20)</li>
<li><a href="#armcortexm7">ARM Cortex-M7</a> (1)</li>
</ul>
<li>Atmel AVR
@ -1491,9 +1482,10 @@
<td bgcolor="#e4e4e4" valign="top" width="33%">
<ul>
<li><a href="#stm32303x">STMicro STM32F303x <small>(STM32 F3 family, ARM Cortex-M4)</small></b>.</a></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>
<li><a href="#stm32f407x">STMicro STM32F407x</a> <small>(STM32 F4 family, ARM Cortex-M4)</small></li>
<li><a href="#stm32f427x">STMicro STM32 F427/437</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>
</ul>
<li>Texas Instruments (some formerly Luminary)
@ -3241,6 +3233,22 @@ nsh>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
<p>
<a name="stm32f372x"><b>STMicro STM32 F372/F373 (Cortex-M4)</b>.</a>
<p>
<p>
Basic architecture support for the STM32F372/F373 was contributed by Marten Svanfeldt in NuttX 7.9.
There are no STM32F*72 boards currently supported, however.
</p>
</td>
</tr>
<tr>
<td><br></td>
<td><hr></td>
</tr>
<tr>
<td><br></td>
<td>
@ -3390,7 +3398,7 @@ nsh>
This support was contributed by Mike Smith.
</p>
<p>
The F427/f37 port adds (1) additional SPI ports, (2) additional UART ports, (3) analog and digital noise filters on the I2C ports, (4) up to 2MB of flash, (5) an additional lower-power mode for the internal voltage regulator, (6) a new prescaling option for timer clock, (7) a larger FSMSC write FIFO, and (8) additional crypto modes (F437 only).
The F427/437 port adds (1) additional SPI ports, (2) additional UART ports, (3) analog and digital noise filters on the I2C ports, (4) up to 2MB of flash, (5) an additional lower-power mode for the internal voltage regulator, (6) a new prescaling option for timer clock, (7) a larger FSMSC write FIFO, and (8) additional crypto modes (F437 only).
</p>
</td>
</tr>
@ -3945,7 +3953,7 @@ Mem: 29232 5920 23312 23312
<ul>
<p>
<b>STATUS:</b>
The basic function port support the NuttShell (NSH) was contribute by Jedi Tek'Enum and first appeard in the NuttX 7.8 release.
The basic function port support the NuttShell (NSH) was contribute by Jedi Tek'Enum and first appeared in the NuttX 7.8 release.
</p>
</ul>
</ul>

View file

@ -7408,7 +7408,7 @@ Additional new features and extended functionality:
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
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()).
@ -7588,7 +7588,7 @@ operation. My thanks to the developers of cppcheck! I am impressed!
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
- 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
@ -8017,7 +8017,7 @@ detailed bugfix information):
* Common Drivers:
- Loop device should return -EINTR is interrupted by a signal.
- M25P serial flash driver: Add subsector size of the M24P16 part.
- 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
@ -8175,7 +8175,7 @@ Additional new features and extended functionality:
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.
the all-routers multicast address.
* Atmel AVR:
@ -8368,7 +8368,7 @@ detailed bugfix information):
CONFIG_RAMTRON_FRAM_NON_JEDEC is not defined. Noted by David
Sidrane.
* All Archtectures:
* All Architectures:
- Removed all occurrences of up_maskack_irq() that disables interrupts
with up_ack_irq() that only acknowledges the interrupts. This is only
@ -8403,7 +8403,7 @@ detailed bugfix information):
* C Library/Header Files:
- execl(): Fix bad logic in counting the number of arguments.
- execl(): Fix bad logic in counting the number of arguments.
execl() parameter passing could never have worked. Noted by
Pierre-noel Bouteville.
@ -8417,3 +8417,408 @@ detailed bugfix information):
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-My 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 Atmeal 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 decrecated 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/: Serveral tess 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:
http://www.nuttx.org/doku.php?id=wiki:nxinternal:memconfigs#the_roadmap_toward_processes
* 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 not 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_rtcinitialize()
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 initialisation 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 verifed 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.