Preparing for NuttX-7.6 Release

This commit is contained in:
Gregory Nutt 2014-11-26 10:06:43 -06:00
parent d1cdf9b497
commit 7a9d8f9040
2 changed files with 395 additions and 19 deletions

View File

@ -28,7 +28,7 @@
* Added strtok() and strtok_r()
* Added a simple shell called nsh (see examples/nsh).
* Platform support for 8052 is complete but not stable
when the timer interrupt is enabled. Seems to be an
when the timer interrupt is enabled. Seems to be an
issue when SP enters indirect address space.
* Documentation updates
@ -8684,7 +8684,7 @@
* fs/fs_poll.c: Re-implemented poll() delay using sem_timedwait()
(2014-9-26).
7.6 2014-xx-xx Gregory Nutt <gnutt@nuttx.org>
7.6 2014-11-26 Gregory Nutt <gnutt@nuttx.org>
* fs/fs.h and other files: Rename fs/fs_internal.h to fs/fs.h (2014-9-28).
* include/nuttx/semaphore.h and fs/fs.h: Add data structures that will
@ -8699,7 +8699,7 @@
* fs/semaphore: Create a build structure that will (eventually) support
using the VFS to manage named semaphores (2014-9-23).
* configs/stm32f4discovery/include/board.h: STM32F4-Discovery: Fix some
backward conditional compilation"(2104-9-29).
backward conditional compilation (2104-9-29).
* nuttx/sched/init/os_start.c, semaphore/Make.defs, sem_initialize.c,
and semaphore.h: Semaphore initialization is now only required if
priority inheritance is enabled (2014-9-29).
@ -8726,7 +8726,7 @@
NuttX via standard NuttX domain IPCs (2014-9-30).
* arch/sim/src/up_setjmp32.S, up_setjmp64.S, Kconfig, Makefile,
up_initialstate.c, up_internal.h, up_stackframe.c, and include/irq.h:
Add support for 64-bit lonjmp/setjmp in simulator platform. This
Add support for 64-bit longjmp/setjmp in simulator platform. This
will permit operation of the simulation natively on a 64-bit platform
(2014-10-2).
* include/fcntl.h: Implement create() as a macro (2014-10-4).
@ -8766,12 +8766,12 @@
Modify FS initialization logic to handle AIO container
initialization (2014-10-6).
* Too many files to list: Major structuring of file system functions
to better support asynchronous I/O. Respository should not be
to better support asynchronous I/O. Repository should not be
trusted until I have a chance to verify everything (2014-10-6).
* include/nuttx/mm/mm.h: Fix a place in the memory manager where it
explicitly assumed that the size of a point is 4 bytes. That is OK
if the actually size is smaller but makes the heap unstable when
used with the x86_64 host simulation (2014-10-6).
explicitly assumed that the size of a pointer is 4 bytes. That is OK
if the actual size is smaller but makes the heap unstable when used
with the x86_64 host simulation (2014-10-6).
* sched/wqueue, include/nuttx/wqueue.h, and libc/Kconfig sched/Makefile:
Add support for priority inheritance on the low priority worker queue
(2014-10-7).
@ -8833,7 +8833,7 @@
Fix watchdog stop bit usage. From Lazlo (2014-10-10).
* sched/wqueue/, libc/wqueue, and include/nuttx/wqueue.h: Add support
for multiple low-priority worker threads. This is a necessary
piece of the support for asynchonous I/O (2014-10-10).
piece of the support for asynchronous I/O (2014-10-10).
* sched/wqueue/work_inherit.c: Add logic for priority inheritance with
multiple worker threads. How should this work? Tentatively, the all
get reprioritized together. It would be best to just reprioritize the
@ -8847,7 +8847,7 @@
* configs/Kconfig, README.txt, and nucleo-f401re: Extend this board
configuration to also support the Nucleo-F411RE. From Serg Podtynnyi
(2014-10-14).
* tools/Config.mk: "Add a PRELINK macro to Config.mk. From Kriegleder
* tools/Config.mk: Add a PRELINK macro to Config.mk. From Kriegleder
(2014-10-17).
* arch/arm/src/efm32 and arch/arm/include/efm32: Add a basic port for
the SiLabs EFM32 family. Includes many files contributed by Pierre-noel
@ -8862,7 +8862,7 @@
STM32F429i Discovery's LCD. From Marco Krahl (2014-10-20).
* arch/arm/src/lpc43xx/lpc43_gpioint.c, .h, lpc43_irq.c, and
chip/lpc43_gpio.h: Fixes to allow compile of lpc43_gpioint.c. It
likely doesn't work. From Brandon warhurst_002 (2014-10-21).
likely doesn't work. From Brandon Warhurst (2014-10-21).
* arch/arm/src/stm32/chip/stm32f103r_pinmap.h: Add ADC pinmap
definitions for the STM32 F103R from Martin Lederhilger (2014-10-21).
* arch/arm/src/armv7-m/up_itm.c and itm.h: Add CMSIS ITM header file and
@ -8888,16 +8888,16 @@
compilation errors in up_itm_syslog.c. From Pierre-Noel Bouteville
(2014-10-23).
* configs/sam4e-ek/src/sam_ethernet.c (and other files):SAM4E-EK: Add
support for PHY insterrupt (2014-10-24).
support for PHY interrupt (2014-10-24).
* include/wchar.h: Add a mostly bogus wchar.h header file. This file
is mostly bogus because noneo of the wide character operations are
is mostly bogus because none of the wide character operations are
currently supported in the Nuttx C library (2014-10-27).
* include/termios.h, libc/termios/lib_isatty.c, and Make.defs: Add
isatty() function. From Alan Carvalho de Assis (2014-10-27).
* arch/arm/include/efm32, src/efm32, and configs/efm32-gxxx-stk:
The EFM32 Gecko Starter Kit port is now functional. At least
NSH is running over LEUART0 on the board (2014-10-29).
* arch/arm/src/sm34/sam_serial.c and Kconfig: Add support for SAM3/4
* arch/arm/src/sam34/sam_serial.c and Kconfig: Add support for SAM3/4
basic TERMIOS and flow control. There are issues with IFLOW control:
PDC or DMAC support is required (2014-10-29).
* configs/sam4e-ek/src/sam4e-ek.h: Fix an error in a USART1 pin number
@ -8978,7 +8978,7 @@
include/nuttx/net/net.h, netdev.h and several network drivers in arch/
and drivers/: Add a parameter to netdev_register() to indicate the
link protocol supported by the driver. Use this value to replace some
logic commited yesterday (2014-11-15).
logic committed yesterday (2014-11-15).
* configs/stm32f4discovery/netnsh/defconfig: Needs to set MAC address
(2014-11-15).
* arch/ and drivers/: Remove use of NET_LL_HDRLEN from Ethernet drivers.
@ -8989,9 +8989,8 @@
variable length link layer protocol headers within incoming packets.
This permits use of multiple network interfaces with differing data
links. For example, ETHERNET + SLIP (2014-11-15).
* arch/arm/src/sam34/sam4s_periphclks.h: Add missing SPI0 clock
configuration macro for the SAM4S" sam4s_periphclks.h. From
spasbyspas (2014-11-16).
* arch/arm/src/sam34/sam4s_periphclks.h: Add missing SPI0 clock
configuration macro for the SAM4S. From spasbyspas (2014-11-16).
* arch/arm/src/efm32/efm32_lowputc.c: EFM32 USART setup: Computation of
BAUD includes shift; Eliminate additional shift. From Pierre-noel
Bouteville (2014-11-16).
@ -9034,7 +9033,7 @@
From Jussi Kivilinna (2014-11-21).
* net/udp/udp_conn.c and udp.h: Extensions to UDP "connection" structure
for the case of multiple networks. In this case, assigned port numbers
only have to be unique with response to the IP address. So, for
only have to be unique with respect to the IP address. So, for
example, you could have multiple port 80's, one on each network
(2014-11-21).
* net/tcp/tcp_conn.c and tcp.h: Make tcp_listener static scope; it is
@ -9056,3 +9055,5 @@
family. From Alan Carvalho de Assis (2014-11-23).
* include/nuttx/fs/fs.h: Fix typo in conditional compilation. From
Alan Carvalho de Assis (2014-11-23).
7.7 2015-xx-xx Gregory Nutt <gnutt@nuttx.org>

View File

@ -7360,3 +7360,378 @@ Bugfixes. Only the most critical bugfixes are listed here (see the ChangeLog fo
- Null Example: Need to include config.h it order know if this is or
is not a kernel build. This problem still exists in several other
file that may need to define main().
NuttX-7.6
---------
The 106th release of NuttX, Version 7.6, was made on November 26, 2014,
and is available for download from the SourceForge website. Note
that release consists of two tarballs: nuttx-7.5.tar.gz and
apps-7.5.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
Additional new features and extended functionality:
* Core OS:
- Moved name semaphore and message queue support out of the OS and
into the VFS. These improves the architecture by unifying the
management of named resources, removes redundant resource management
logic, and makes named semaphores and message queues visible in the
file system. By default, these are visible at /var/lock and
/var/mqueue.
- Add SIGPOLL for use as part of the AIO implementation.
- Remove CONFIG_MAX_TASK_ARGS configuration. There is now no
predetermined limit on the number of arguments that may be passed
to a new task on start-up.
* Work queues
- Add support for priority inheritance on the low priority worker
queue. That is, if a higher priority thread has scheduled work, the
priority of the low priority worker thread(s) will be boost to the
priority of the queuing thread. At work is performed at at least
thread priority of the scheduling thread. If there are multiple
worker threads, then all threads get reprioritized. Currently
only implemented for AIO.
- Add support for multiple low-priority work queue threads. This
allows individual worker threads to block indefinitely for I/O as
necessary without halting the entire work queue.
* VFS/General Drivers:
- Implement create() (as a macro).
- Add pread() and pwrite(). Also added pread() and pwrite()
system calls.
- AIO: Add aio_read(), aio_write(), aio_return(), aio_error(),
aio_suspend(), aio_canel(), lio_listio(), and aio_fsync(). This
logic minimizes the creation of new threads by using the new
features also added to the low priority work queue with this
release. It uses the new low priority worker thread interface
to adjust the priority of the worker thread according to the
priority of the AIO client thread
- Implement standard syslogmask() to control logging (also removing
the non-standard syslog_enable()).
* File Systems/Block Drivers/MTD:
- Extend MTD support to the M25P16. From Sébastien Lorquet.
* Drivers:
- BCH (Block-to-Charchter): Add support for seeking in BCH. From
Sébastien Lorquet.
* Graphics Support/Graphics-Related Drivers:
- Add support for a generic ILI9341 LCD driver. From Marco Krahl.
- Add ANSI/VT100 foreground and background color commands.
- Add driver for ST7565 LCD that works with NHD-C12864KGZ display. From Pierre-noel Bouteville.
* Networking:
- Verify that multiple networks can be supported.
- Add support for the case where there are multiple networks: One
being Ethernet and the other not (SLIP, PPP, ...). The primary
difference from the standpoint of the stack is that (1) ARP may or
may not be necessary, (2) the size of the link layer header will
vary, and (3) different MTUs and TCP receive windows may be used
with each link. Suggested by Brennan Ashton.
- Extensions to UDP and TCP connection structures for the case of
multiple networks. In this case, assigned port numbers only have to
be unique with respect to the IP address. So, for example, you
could have multiple port 80's, one on each network.
* Host Simulation:
- Removed the old, strange up_stdio.c and implemented a simulated UART
driver to provide the console input. The new logic starts a
separate, Linux domain pthread to read the console input in raw mode
and provides the incoming data to NuttX via standard NuttX domain
IPCs.
- Add support for 64-bit longjmp/setjmp in simulator platform. This
will permit operation of the simulation natively on a 64-bit
platform.
* ARMv7-M:
- Add ARMv7-M CMSIS ITM header file and library. From Pierre-noel
Bouteville.
- Add ARMv7-M CMSIS DWT and TPI header files. From Pierre-noel
Bouteville.
- Add ARMv7.M support to use ITM for SYSLOG debug output. Includes
logic from Pierre-noel Bouteville.
* Atmel SAM3/4 Drivers:
- Add support for SAM3/4 basic serial TERMIOS and flow control.
There are issues with IFLOW control: PDC or DMAC support is
required.
* Atmel SAM3/4 Boards:
- SAM4E-EK: Add support for PHY interrupt.
* Atmel SAMA5D Boards:
- SAMA5D3-Xplained: Add a configuration that provides a simple test
for the EMAC and GMAC on the SAMA5D3 working together.
- SAMA5D4-EK: Add a configuration that provides a simple test for th
EMAC0 and EMAC1 on the SAMA5D4 working together.
* Freescale KL:
- Add an I2C header file for the Freescale KL family. From Alan
Carvalho de Assis.
* NXP LPC32xx.
- Add support for tickless operation using the NXP LPC43xx. From
Brandon Warhurst.
* SiLabs EFM32:
- Add a basic port for the SiLabs EFM32 family. Includes many files
contributed by Pierre-noel Bouteville .
* SiLabs EFM32 Boards:
- Add board support for the EFM32 Gecko Starter Kit.
- Add board support for the Olimex EFM32G8809128 STK. NOTE: I am
unable to test this configuration due to tool-related issues.
- Add board support for the SiLbas EFM32GG Giant Gecko Starter kit.
* STMicro STM32:
- Add support for the STM32 F411RE from Serg Podtynnyi.
- Add support for the STM32F103RG. From Murilo Ponte.
* STMicro STM32 Drivers:
- STM32 F4: Add logic that implement true high speed support for the
STM32 OTGHS peripheral and concurrent support for both LS and HS
OTG. New OTGHS drivers provided for both device and host. From
Brennan Ashton.
* STMicro STM32 Boards:
- STM32 Nucleo-F411RE: Extend this board configuration to also support
the Nucleo-F411RE. From Serg Podtynnyi.
- Add support for the STM32F429i Discovery's LCD (SPI based). From
Marco Krahl.
- configs/stm32f100rc_generic: Removed this generic board configuration.
I have decided to stop support of generic board configurations. Generic
board configurations do not provide support for any specific hardware
but can be useful only if there are not other examples for the setup
for a particular architecture. Not the case here.
* C Library:
- Add a mostly bogus wchar.h header file. This file is mostly bogus
because none of the wide character operations are currently
supported in the Nuttx C library. The file does provide the wchar_t
types needed by some software, however.
- Add isatty() function. From Alan Carvalho de Assis.
- Add mktemp(), mkstemp(), tmpnam() and tempnam().
* Configuration/Build System:
- Add a PRELINK macro to Config.mk. From Kriegleder.
- compiler.h: Defines inline functions as not instrumented - this is
relevant for anyone using instrumentation. From Lorenz Meier.
* Applications:
- apps/interpreter/bas: Added in the Michael Haardt's BAS 2.4 adapted
for use by NuttX by Alan Carvalho de Assis. Includes support for
VT100 terminals and color commands.
- Examples: Added bastest/ which holds a special version of Michael
Haardt's BAS 2.4 test files adapted for use by NuttX on a ROMFS file
system.
- Examples: Add a simple UDP relay bridge for testing configurations
with multiple networks. Includes a host-side test driver for
testing the bridge.
- Netutils: Add implementation of timeouts for the netutils webclient.
From Brennan Ashton
- NSH: Add support for a custom NSH ROMFS startup image header file
location. From Martin Lederhilger.
- OS test: Add a simple test of named semaphores.
- OS test: Add AIO test case in OS test.
Efforts In Progress. The following are features that are partially
implemented but present in this release. They are not likely to be
completed soon.
* Processes. Much of the work in this release is focused on the
realization of Unix-style user processes in NuttX. There is more to
be done, however. The full roadmap and status is available at:
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.
* Galileo: Similarly, there are fragments in place for an Intel Galileo
port. The port not been started in earnest either.
Bugfixes. Only the most critical bugfixes are listed here (see the
ChangeLog for the complete list of bugfixes and for additional, more
detailed bugfix information):
I ran cppcheck against the entire code base and correct many latent bugs
including things as serious as memory leaks, two locations where interrupts
were be disabled but never re-enabled, and errors in the Tickless mode of
operation. My thanks to the developers of cppcheck! I am impressed!
* Core OS:
- vfork(): Now that arguments are kept on the stack, the way that
arguments are passed from parent to child in vfork() must change.
This bug has always been present, but was not visible with the
old strdup() way of passing arguments.
- vfork() problem: If we get to vfork() via system call, then we
eed to clone some system call information so that the return form
the cloned system call works correctly.
- Fixes to tickless operation code, especially in alarm mode. From
Brandon Warhurst.
- Fix an important bug in the watchdog timer creation logic.
- Calling mq_timedreceived() with immediate timeout was getting stuck
and not timing out. Immediate timeout is achieved by setting absolute
timeout value to past time, for example abstime={ .tv_sec=0,
.tv_nsec=0 }. However absolute time was converted to relative time
using unsigned integer arithmetic and resulted large ticks count by
clock_abstime2ticks, instead of expected negative ticks value.
Change corrects clock_abstime2ticks() to return negative ticks, if
absolute time is in the past. From Jussi Kivilinna.
* Memory Management:
- Fix a place in the memory manager where it explicitly assumed that
the size of a pointer is 4 bytes. That assumption was OK if the
actual size is smaller but made the heap unstable when used with
the x86_64 host simulation.
- Granule Allocator: If the INTR granule allocator mode is enabled,
there is no semaphore to destroy. From Lorenz Meier.
* Networking:
- Network routing: I don't think that the net_route() function has
ever worked correctly. The source IP was updated in the match
struct instead of the route IP. From Brennan Ashton.
- Move and rename IP header flag definitions. The problem fixed here
is that there IP header flag definitions were not available when TCP
was disabled. The IP flags are used in ICMP and IGMP.
- Network routing: Refuse to perform routing table lookups for the
Broadcast IP address. From Brennan Ashton.
- Network routing: Add logic to netdev_findbyaddr() to return the
correct network device for the case where a broadcast
address is used. This change caused trivial ripples through other
files because additional parameters are required for
netdev_findbyaddr() when CONFIG_NET_MULTINIC.
* File Systems/Block Drivers/MTD:
- NXFFS Dump: Fix problems with redefinitions of fdbg macro. With the
fix to the syslog prototype, a LOG priority must now be the first
parameter. Fixed by replacing all occurrences of fdbg with
syslog(LOG_DEBUG, and eliminating the macro redefinitions. Noted
by Sebastien Lorquet.
- poll() was not waking up from signals (for example mq_notify()
events). From Jussi Kivilinna.
- poll(): Add proper handling for sem_timedwait errnos. From Jussi
Kivilinna.
- include/nuttx/fs/fs.h: Fix typo in conditional compilation. From
Alan Carvalho de Assis.
* Graphics/Graphic-Related Drivers:
- Remove warnings when CONFIG_NXTK_BORDERWIDTH is set to zero. From
Pierre-Noel Bouteville.
* Common Drivers:
- Make standard syslog and vsyslog POSIX compliant (also modify
non-standard syslog functions for compatibility).
- R/W buffering: Fix typo that can cause compilation error.
* Atmel SAM3/4:
- SAM4S: Add missing SPI0 clock configuration macro for the SAM4S. From spasbyspas.
* Atmel SAM3/4 Drivers:
- SAM4E-EK: Fix an error in a USART1 pin number.
* Atmel SAMA5D3/4 Drivers:
- SAMA5DF4: Fix several typos that will prevented EMAC1 from
initializing properly.
* NXP LPC43xx:
- Fixes to allow compile of lpc43_gpioint.c. From Brandon Warhurst.
* STMicro STM32:
- Add missing ADC pinmap definitions for the STM32 F103R from Martin
Lederhilger.
* STMicro STM32 Drivers:
- STM32 EXTI: Correct STM32 RTC EXTI bit definition. From Lazlo.
- STM32 IWDG, WWDG, DBGMCU: Fix watchdog stop bit usage. From Lazlo.
- STM32 OTGFS: Correct a typo in the STM32 OTGFS register bit definitions.
* ARM:
- ARM up_internal.h: Add protection from C++ name mangling in the
ARM up_internal.h. From Lorenz Meier.
* MicroChip PIC32MX
- PIC32MX7: DEVCFG0 bit 2 must be set. Writing bit 2 as zero can
brick the CPU on some versions. From Cris Kvist.
* C Library:
- The implementation of access() as vararg macro has the issue that
any function call with the same name (even in a C++ class) will
match with it and result in a compile error. Replaced with a small
function. This resolves the compile issue, and shouldnt have
negative side effects for users of the function. From Lorenz Meier.
- The definition of strncpy() is that empty space should be zero-
filled, the change adds the zero filling (See the POSIX spec here:
http://pubs.opengroup.org/onlinepubs/7908799/xsh/strncpy.html). From
Lorenz Meier.
- limits.h: Remove the definition of INT_FAST32_MIN which is already
defined in stdint.h (the correct location). From Lorenz Meier.
* Applications:
- apps/: Correct everything under apps to use the corrected syslog
interfaces. Remove any non-portable uses of syslog.
- NSH: Fix ls -l output for regular files.
- NSH: Fix reversed in/out file closing in DD command when an error
occurs. From Ken Pettit.
- NSH: Add logic to restart the console wait if an error occurs
while reading from the console. In USB console startup, the logi
must be able to open the USB serial and receive 3 newlines.
However, it the USB driver is disconnected or otherwise fails before
the 3 newlines are received, the receive loop becomes a killer,
infinite loop, CPU hog. Noted by spasbyspas.
- Netutils: Fix memcpy of host address in netlib_gethostaddr(). From
Brennan Ashton.
- Netutils: If you make a DNS request before the DNS address it would
cause an assertion. The state of the IP setting is not something the
application should be aware of, it should only be concerned with
whether or not the name was resolved. From Brennan Ashton.
- Netutils: Fix md5 hashing when digest[$i] islower that 16. From
Sergey.
- Stack Monitor: Fix compile problems introduced when the syslog()
prototype changed; Also update Makefile for kernel build From
Radoslaw Adamczyk.
- Examples: Update NxTerm makefile for kernel-build issues. From
Radoslaw Adamczyk.
- Examples: Fixes to keypadtest from Pierre-Noel Bouteville.
- Examples: These examples all set the IP address of eth1 but the
netmask and gateway of eth0 if DHCP is enabled: discover, tcpecho,
webserver, xmlrpc. That can't be right.