Prep for 6.25 release

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5594 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2013-02-01 22:37:52 +00:00
parent 4587760eee
commit d51e81d34f
3 changed files with 1188 additions and 464 deletions

View File

@ -3800,7 +3800,7 @@
* configs/stm32f4discovery/elf: Enable support/test of the PATH
to find executables using a relative path.
6.25 2013-xx-xx Gregory Nutt <gnutt@nuttx.org>
6.25 2013-02-01 Gregory Nutt <gnutt@nuttx.org>
* graphics/: Adds 5x8 monospace font. This tiny font is useful for graph
labels and for small bitmapped display. Contributed by Petteri
@ -3833,7 +3833,7 @@
* drivers/usbhost/usbhost_hidkbd.c: Correct a logic error in how
tasks waiting for read data are awakened.
* libc/misc/lib_kbdencode.c and lib_kbddecode.c: Now handles keypress
events too. However, the USB HID keyboard drier has not yet been
events too. However, the USB HID keyboard driver has not yet been
updated to detect key release events. That is kind of tricky in
the USB HID keyboard report data.
* configs/mcu123-214x/nsh: Converted to use the kconfig-frontends
@ -3857,7 +3857,7 @@
buildroot toolchains: They may be EABI or OABI.
* include/nuttx/progmem and arch/arm/src/stm32/stm32_flash.c:
Fix a counting bug plus change interface to use either relative
or absolut FLASH addressing (from Freddie Chopin).
or absolute FLASH addressing (from Freddie Chopin).
* libc/misc/Make.defs: Fix error in conditional for KBD CODEC.
* libc/Kconfig and configs/*/defconfig (several): The default
setting should be CONFIG_LIB_KBDCODEC=n
@ -3868,7 +3868,7 @@
* tools/configure.bat: configure.bat is a small Windows batch
file that can be used as a replacement for configure.sh in a
Windows native environment. configure.bat is actually just a
thin layer that execuates configure.exe if it is available. If
thin layer that executes configure.exe if it is available. If
configure.exe is not available, then configure.bat will attempt
to build it first.
* arch/arm/src/lpc17xx/lpc17_syscon.h: Correct some typos in bit
@ -3918,12 +3918,12 @@
the scenario: (1) sched_lock() is called increments the lockcount
on the current TCB (i.e., the one at the head of the ready to run
list), (2) sched_mergepending is called which may change the task
at the head of the readytorun list, then (2) sched_unlock() is called
at the head of the ready-to-run list, then (3) sched_unlock() is called
which decrements the lockcount on the wrong TCB. The failure case
that I saw was that pre-emption got disabled in the IDLE thread,
locking up the whole system.
* sched/sched_waitpid.c: Use SIGCHLD instead of a semaphore. This
is a much more spec-compliant implemenation. However, there are
is a much more spec-compliant implementation. However, there are
some issues with overruning signals because NuttX does not support
queueing of signals (POSIX does not require it). I think it may
need to.
@ -3959,7 +3959,7 @@
CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
* include/nuttx/binfmt/builtin.h: Some of the content of
apps/include/apps.h moved to include/nuttx/binfmt/builtin.h
* binfmt/libbuiltin/libbuiltin_utils.c: Move utility builtin
* binfmt/libbuiltin/libbuiltin_utils.c: Move builtin
utility functions from apps/builtin/exec_builtins.c to
binfmt/libbuiltin/libbuiltin_utils.c
* binfmt/builtin.c and binfmt/libbuiltin: Add a binary "loader"
@ -3985,7 +3985,7 @@
* arch/arm/src/[many]: More LPC1788 definitions from Rommel
Marcelo incorporated.
* configs/open1788: Board configuration for the Wave Share
Open1788 board. Still fragmentary (contribnuted by Rommel
Open1788 board. Still fragmentary (contributed by Rommel
Marcelo, adapted to use kconfig-frontends.
* net/send(): Add logic to work around delayed ACKs by splitting
packets (contributed by Yan T.).
@ -4011,7 +4011,7 @@
* arch/armv7-m/up_hardfault.c: Fail if a hardfault occurs
while CONFIG_ARM7VM_USEBASEPRI=y.
* arch/arm/src/stm32/stm32_serial.c: Add support for USART
single wire more (Contributed by the PX4 team).
single wire mode (Contributed by the PX4 team).
* sched/: Implement support for retaining child task status after
the child task exists. This is behavior required by POSIX.
But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and
@ -4022,7 +4022,7 @@
use the kconfig-frontends tools.
* net/net_poll.c: Split net_poll() to create psock_poll() too.
* net/net_poll.c: Fix poll/select issure reported by Qiang:
poll_interrupt() must cat call net_lostconnection() when a
poll_interrupt() must call net_lostconnection() when a
loss of connection is reported. Otherwise, the system will
not know that the connection has been lost.
* sched/group_create.c, group_join.c, and group_leave.c: Add
@ -4051,7 +4051,7 @@
* configs/stm32f4discovery/nsh: Converted to use the kconfig-frontends
tools.
* configs/*/src/up_userleds.c: Fix a error that was cloned into
all STM32 user LED code. The wrong defintions were being used
all STM32 user LED code. The wrong definitions were being used
to set LEDs on or off.
* arch/*/common/up_internal.h and arch/*/common/up_initialize.c:
Serial was driver was not being built if there is no console
@ -4072,8 +4072,7 @@
* drivers/serial/serial.c, include/nuttx/serial/serial.h,
drivers/usbdev/cdcacm.c, and drivers/pl2303.c: Add support for
removable serial devices (like USB serial). This support is enabled
by CONFIG_SERIAL_REMOVABLE and requires VBUS sensing support from
the board-specific logic.
by CONFIG_SERIAL_REMOVABLE.
* arch/*/src/*/Toolchain.defs: Change assignment so that we can
override CROSSDEV with a make command line argument.
* include/assert.h: Mark assertion functions as non-returning.
@ -4096,3 +4095,5 @@
* arch/arm/src/stm32/stm32_spi.c: Fixes for SPI DMA work on the
STM32F4. Includes untested additions for the F1 implementation as
well. From Petteri Aimonen.
6.26 2013-xx-xx Gregory Nutt <gnutt@nuttx.org>

File diff suppressed because it is too large Load Diff

View File

@ -3440,3 +3440,323 @@ Bugfixes (see the change log for details). Some of these are very important
* Applications: Modbus fixes from Freddie Chopin.
As well as other, less critical bugs (see the ChangeLog for details)
NuttX-6.25
^^^^^^^^^^
The 92nd release of NuttX, Version 6.25, was made on February 1, 2013,
and is available for download from the SourceForge website. Note
that release consists of two tarballs: nuttx-6.25.tar.gz and
apps-6.25.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
This release corresponds with SVN release number: r5594
Note that all SVN information has been stripped from the tarballs. If you
need the SVN configuration information, you should check out directly from
SVN. Revision r5594 should equivalent to release 6.25 of NuttX:
svn checkout -r5594 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
Or (HTTP):
svn checkout -r5594 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
Additional new features and extended functionality:
* OS Initialization
- Removed support for CONFIG_BUILTIN_APP_START. This is not really a
useful feature and creates a violation of the OS layered
architecture.
* Task Creation:
- Implement a simple vfork(). In NuttX-6.25, this interface is
available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32
(PIC32MX) platforms.
- exec() now sets the priority of the new task to the same priority as
the parent task (instead of the arbirtrary value of 50).
- New, partially complient implementations of execv() and execl().
These are only partially compliant because they do not overlay any
existing "process space" but rather create the new task and exit().
- Add a complete implementation of posix_spawn(). This standard
interface is a better match for an MMU-less architecture than are
vfork() plus execv() or execl().
- Add a task start hook that will be called before the task main
is started. This can be used, for example, to schedule C++
static constructors to run automatically in the context of the
new task.
* Task Parentage
- Repartitioned tasking data structures. All shared resources are now
collected together in a "task group". A task group includes the
original task plus all of the pthreads created by the task.
- Added support for remember the parent "task group" when a new task is
started.
- Added optional support to record the membership of each thread in
the "task group".
- Implement support for retaining child task status in the "task group"
after the child task exists. This is behavior required by POSIX.
But in NuttX is only enabled with CONFIG_SCHED_HAVE_PARENT and
CONFIG_SCHED_CHILD_STATUS
- Add internal logic to "reparent" a task. This is useful,
for example, where the child task is created through a trampoline
task that redirects I/O. Reparenting allows the caller of posix_spawn()
to be reparented for the eventual child thread.
- Added support for SIGCHLD. Sent to all members of the parent task
group when the file member of the child task group exits.
- If SIGCHLD and retention of child task exist status are enabled, then
a more spec-compliant version of waitpid() is enabled.
- New interfaces waitid() and wait() are also enabled when SIGCHLD
is enabled.
* File System
- dup() and dup2() can new be used with opened files in a mounted file
system. This supports re-direction of output in NSH to files.
- The binfs file system was moved from apps/builtin to fs/binfs. The
binfs file system was extended to support execution of "builtin
applications" using exec(), execv(), execl(), or posix_spawn().
- Added logic based on SIGCHLD to automatically unload and clean-up
after running a task that was loaded into memory.
* Binary Formats
- Much of the logic for "builtin applications" was moved from
apps/builtin to nuttx/binfmt/libbuiltin. Includes some extensions
contributed by Mike Smith.
- A binary loader was added for builtin applications to support
execution of "builtin applications" using exec(), execv(),
execl(), or posix_spawn().
* Drivers:
- Added logic to marshal and serialized "out-of-band" keyboard
commands (such as cursor controls and key release events) intermixed
with normal ASCII keypress data. The encoding is partially integrated
in the HID keyboard driver and the decoding full integrated into the
apps/examples hidkbd and keypadtest (the latter contributed by Denis
Carlikli).
- Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong.
- Add support for removable serial devices (like USB serial). This
support is enabled by CONFIG_SERIAL_REMOVABLE.
* ARMv7-M:
- Added an option to use the BASEPRI register to disable interrupts
(instead of the PRIMASK). This eliminates some innocuous hardfaults
that interfere with some debug tools. You need to switch to the
BASEPRI method only if you have such tool interference.
* STM32 Drivers
- Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4
(contributed by Mike Smith).
- Add support for USART single wire mode (Contributed by the PX4
team).
- Updates to support for SPI DMA on the STM32 F1/F2/F4. From
Petteri Aimonen.
* STM32 Boards:
- New configuration to support the UG-2864HSWEG01 OLED on the
STM32F4Discovery board.
- Added a posix_spawn() test configuration for the STM32F4Discovery.
* LM3S/LM4F
- Files and directories repartitioned to support both LM3S and LM4F
using the STM32 organization as a model.
- Partial definitions for the LM4F contributed by Jose Pablo Carballo
(this is still a work in progress).
* LM3S Boards
- Added scripts and documentation to use OpenOCD with the LM3S (from
Jose Pablo Carballo).
* LPC176x/LPC178x
- Files and directories repartitioned to support both LPC175x/LPC176x
and the LPC177x/LPC178x families using the STM32 organization as a
model. The LPC1788 port is a work in progress by Rommel Marcelo.
* LPC176x/LPC178x Boards:
- Added a configuration to support the Wave Share Open1788 board.
This is still a work in progress by Rommel Marcelo.
* LPC2148 Boards:
- Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148
and the UG_2864AMBAG01 OLED).
- Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148
and the UG_2864AMBAG01).
* Simulator:
- Add an nxlines configuration for the simulator.
* Networking:
- Add logic to work around delayed ACKs by splitting packets
(contributed by Yan T.).
- Split net_poll() to create the internal interface psock_poll().
* LCDs:
- Added support for LCD1602 alphanumeric LCD (HD4468OU controller).
* Graphics:
- Added 5x8 monospace font. This tiny font is useful for graph
labels and for small bitmapped display. Contributed by Petteri
Aimonen.
* Build System:
- Add an options to better manage toolchain prefixes.
- Redesigned how the context targer works in the apps/ directory.
The old design caused lots of problems when changing configurations
because there is no easy way to get the system to rebuild the
context. This change should solve most the problems and eliminate
questions like "Why don't I see my builtin application in NSH?"
* Kconfig Files:
- There are several new configurations that use the kconfig-frontends
tools and several older configurations that have been converted to
use these tools. There is still a long way to go before the conversion
is complete:
configs/sim/nxwm
configs/sim/nsh
configs/stm3220g-eval/nxwm
configs/stm32f4discovery/posix_spawn
configs/olimex-lpc1766stk/nsh
configs/olimex-lpc1766stk/hidkbd
configs/olimex-lpc1766stk/nettest
configs/open1788/ostest
configs/stm32f4discovery/nsh
configs/stm32f4discovery/usbnsh
configs/lm326965-ek (all configurations)
configs/mcu123-214x/nsh
configs/ubw32/ostest
* Tools:
- tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell.
- tools/configure.c: configure.c can be used to build a work-alike
program as a replacement for configure.sh. This work-alike
program would be used in environments that do not support Bash
scripting (such as the Windows native environment).
- tools/configure.bat: configure.bat is a small Windows batch
file that can be used as a replacement for configure.sh in a
Windows native environment. configure.bat is actually just a
thin layer that executes configure.exe if it is available. If
configure.exe is not available, then configure.bat will attempt
to build it first.
* Applications:
- New and modified examples:
apps/examples/wlan: Remove non-functional example.
apps/examples/ostest: Added a test of vfork(). Extend signal
handler test to catch death-of-child signals (SIGCHLD). Add a
test for waitpid(), waitid(), and wait().
apps/exampes/posix_spawn: Added a test of posix_spawn().
- NSH:
NSH now supports re-direction of I/O to files (but still not from).
The block driver source argument to the mount command is now
optional for file systems that do not require a block driver.
NSH can now execute a program from a file system using posix_spawn().
Added support for a login script. The init.d/rcS script will be
executed once when NSH starts; the .nshrc script will be executed
for each session: Once for serial, once for each USB connection,
once for each Telnet session.
- Supports a new daemon that can be used to monitor USB trace outpout.
- Removed non-functional wlan example.
Bugfixes (see the ChangeLog for details). Some of these are very important:
* Tasking:
- Fixed a *critical* task exit bug. Here is the failure scenario:
(1) sched_lock() is called increments the lockcount on the current
TCB (i.e., the one at the head of the ready to run list), (2)
sched_mergepending is called which may change the task at the head
of the ready-to-run list, then (3) sched_unlock() is called which
decrements the lockcount on the wrong TCB. The failure case that
I saw was that pre-emption got disabled in the IDLE thread, locking
up the whole system.
* Signals:
- sigtimedwait() would return a bad signal number if the signal was
already pending when the function was called.
* Drivers:
- Some SD cards will appear busy until switched to SPI mode for
first time. Having a pull-up resistor on MISO may avoid this
problem, but this fix from Petteri Aimonen makes it work also
without pull-up.
* STM32 Drivers:
- STM32 FLASH driver counting error (from Freddie Chopin).
- STM32 F4 maximum SPI frequency was wrong (corrected by Petteri
Aimonen).
* STM32 Boards
- Due to cloning of untested code, the logic to control on-board
LEDs did not work on any STM32 boards.
- Serial devices number /dev/ttyS0-5 is there is a serial console,
but /dev/ttyS1-6 if there is no serial console.
* Binary Formats
- C++ static constructors execute now using a start taskhook
so that they execute in the context of the child task (instead
of in the context of the parent task).
* File Systems:
- Several FAT-related bugs fixed by Petteri Aimonen.
* Networking:
- Fix poll/select issure reported by Qiang: poll_interrupt() must call
net_lostconnection() when a loss of connection is reported. Otherwise,
the system will not remember that the connection has been lost and will
hang waiting on a unconnected socket later.
- Similar issues corrected for recvfrom() and send().
- Telnetd would hang in a loop if recv() ever returned a value <= 0.
* Libraries:
- fread() could hang on certain error conditions.
- Can't handle SYSLOG output to a character device from the IDLE task
(because the IDLE task can't block).
* Build System:
- Serial was driver was not being built if there is no console
device. Obviously, the serial driver may be needed even in
this case.
* Additional Bugfixes:
- sig_timedwait() and clock_time2ticks.c: Timing "rounding" logic
- ARM9 Compilation issue with low vectors.
- readline() return value
- Others as detailed in the ChangeLog: HID keyboard, LPC17xx bit
definitions, strndup(), PL2303, SYSLOG error handling, AT25,
apps/examples.