Prep for 5.11 Release

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2960 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2010-10-02 00:55:32 +00:00
parent 6427f98c3c
commit d1b6f4fc9a
8 changed files with 100 additions and 129 deletions

View File

@ -1265,7 +1265,7 @@
are after this point, but really causes problems if you want to handle are after this point, but really causes problems if you want to handle
data and prefectch aborts which are within this zeroed region. data and prefectch aborts which are within this zeroed region.
5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr> 5.11 2010-10-01 Gregory Nutt <spudmonkey@racsa.co.cr>
* configs/ea3131/src/up_fillpage.c - Added new configuration item * configs/ea3131/src/up_fillpage.c - Added new configuration item
CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
@ -1286,4 +1286,7 @@
to work correctly with these changes in place. to work correctly with these changes in place.
* examples/ostest/prioinherit.c - Need to reinitialize globals if * examples/ostest/prioinherit.c - Need to reinitialize globals if
test is ran repeatedly in a loop. test is ran repeatedly in a loop.
* configs/ez80f910200zco - Updated to used ZDS-II 4.11.1
5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>

View File

@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4"> <tr align="center" bgcolor="#e4e4e4">
<td> <td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1> <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
<p>Last Updated: September 28, 2010</p> <p>Last Updated: October 1, 2010</p>
</td> </td>
</tr> </tr>
</table> </table>
@ -772,72 +772,39 @@
</tr> </tr>
</table> </table>
<p><b>nuttx-5.10 Release Notes</b>: <p><b>nuttx-5.11 Release Notes</b>:
<p> <p>
This 57<sup>th</sup> release of NuttX, Version 5.10, was made on September 7, 2010 and is available for download from the This 58<sup>th</sup> release of NuttX, Version 5.11, was made on October 1, 2010 and is available for download from the
<a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website. <a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website.
The change log associated with the release is available <a href="#currentrelease">here</a>. The change log associated with the release is available <a href="#currentrelease">here</a>.
Unreleased changes after this release are available in CVS. Unreleased changes after this release are available in CVS.
These unreleased changes are listed <a href="#pendingchanges">here</a>. These unreleased changes are listed <a href="#pendingchanges">here</a>.
</p> </p>
<p> <p>
This release includes a combination of some new features as well as several bugfixes. This is primarily a bugfix release and includes some important corrections to the code:
New features include:
<ul> <ul>
<li> <li>
<b>TI/Luminary Stellaris LM3S9B96</b>. One very important bug fixes a race condition that can occur using
Header file changes contributed by Tiago Maluta. semaphores that can be awakened by signals. Under this particular
race condition, a task could hang waiting for a semaphore.
</li> </li>
<li> <li>
<b>TI/Luminary Stellaris LM3S8962</b>. Corrections to lm3s8962 port contributed by Larry Arnold. That
Header file changes and support for the Stellaris LM3S8962 Ethernet+CAN Evaluation Board contributed by Larry Arnold. port is purported to work correctly with these changes in place.
</li>
</ul>
</p>
<p>
Plus less critical bugfixes as detailed in the ChangeLog. New features
include:
<ul>
<li>
* A new configuration to support the mbed.org LPC1768 board (Contributed
by Dave Marples), and
</li> </li>
<li> <li>
<b>On-Demand Paging Support</b>. * A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part.
The basic logic for the On-Demand Paging feature is complete, implemented for the NXP LPC3131, and partially tested.
See <a href="http://www.nuttx.org/NuttXDemandPaging.html">On-Demand Paging Documentation</a>.
Some additional test infrastructure will be needed in order to complete the verification.
See the EA3131 <a href="http://nuttx.cvs.sourceforge.net/viewvc/nuttx/nuttx/configs/ea3131/README.txt?view=log">README</a> file for details.
</li>
<li>
<b>Two Pass Build Support</b>.
The make system now supports a two pass build where a relocatable, partially linked object is created on the first pass and that object is linked with the NuttX libraris to produce the final executable on the second pass.
This two pass build is currently only used to support the On-Demand paging feature:
The first pass link forces critical logic into the locked text region;
the second pass builds the NuttX executable more-or-less as normal.
<li>
<b><code>CONFIG_APP_DIR</code></b>.
Generalized the way in which applications are built and linked with NuttX.
The new configuration <code>CONFIG_APP_DIR</code> replaces <code>CONFIG_EXAMPLE</code>.
<code>CONFIG_EXAMPLE</code> used to identify the sub-directory within the NuttX <code>examples/</code> directory that held the example application to be built.
That made it awkward to configure to build an application that resided outside of the NuttX <code>examples/</code> directory.
<code>CONFIG_APP_DIR</code> is more general;
it can be used to refer to any directory containing the application to be built.
<ul>
<p><small>
For people who have their own configurations and/or Makefiles, you will need to make a couple of changes:
<ul>
<li>
Replace all occurrences of <code>CONFIG_EXAMPLE=foobar</code> with <code>CONFIG_APP_DIR=examples/foobar</code> in all of the configuration files.
</li>
<li>
Replace any occurrences of <code>examples/$(CONFIG_EXAMPLE)</code> with <code>$(CONFIG_APP_DIR)</code>
</li>
<li>
Replace any occurrences of <code>lib$(CONFIG_EXAMPLE)$(LIBEXT)</code> with <code>libapp$(LIBEXT)</code> in your Makefiles.
</li>
<li>
Check any other occurrences of <code>CONFIG_EXAMPLE</code>.
</li>
</ul>
</small></p>
</ul>
</li>
<li>
<b>Other</b>.
Several bugfixes are included as well as code changes to eliminate some warnings.
See the ChangeLog for details.
</li> </li>
</ul> </ul>
</p> </p>
@ -1887,50 +1854,28 @@ Other memory:
</table> </table>
<ul><pre> <ul><pre>
nuttx-5.10 2010-09-07 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; nuttx-5.11 2010-10-01 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* configs/ea3131/locked - Create logic to support a two pass build * configs/ea3131/src/up_fillpage.c - Added new configuration item
process: The first pass forces critical logic into the locked text CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
region, the second pass builds the NuttX executable more-or-less as is the full path to a file on a mounted file system that contains
normal. a binary image of the NuttX executable. Pages will be filled by
* Makefile, arch/arm/src/Makefile, configs/ea3131 - Add logic to reading from offsets into this file that correspond to virtual
support a two-pass final link. This logic is only in place in fault addresses. up_fillpage.c implements logic to perform page
the arch/arm/src/Makefile for now. files using the CONFIG_PAGING_BINPATH file.
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in * configs/mbed - Add configuration to support the mbed.org LPC1768
macros definitions (patch submitted by Tiago Maluta). board (Contributed by Dave Marples).
* Documents/NuttxPortingGuide.html, configs/README.txt, etc. - * sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for that can occur when a semaphore wait is interrupt by a signal.
desciption). This allows NuttX application code to be built (see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
outside of the examples/ directory. * drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
SPI FLASH part (untested on initial check-in).
For people who have their own configurations and/or Makefiles, * arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
you will need to make a couple of changes: lm3s8962 port contributed by Larry Arnold. That port is purported
to work correctly with these changes in place.
- Replace all occurrences of CONFIG_EXAMPLE=foobar with * examples/ostest/prioinherit.c - Need to reinitialize globals if
CONFIG_APP_DIR=examples/foobar in all of the configuration test is ran repeatedly in a loop.
files. * configs/ez80f910200zco - Updated to used ZDS-II 4.11.1
- Replace any occurrences of examples/$(CONFIG_EXAMPLE) with
$(CONFIG_APP_DIR)
- Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT)
with libapp$(LIBEXT) in your Makefiles.
- Check any other occurrences of CONFIG_EXAMPLE.
* arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when
when CONFIG_DEBUG is enabled.
* arch/arm/src/lm3s and arch/arm/include/lm3s - Support for the
lm3s8962 contributed by Larry Arnold.
* configs/lm328962-ek - Support for the TI/Stellaris EKC-LM3S8962
board (also contributed by Larry Arnold).
* arch/arm/src/lpc313x/lpc313x_boot.c - The call to lpc313x_boardinitialized()
should not be conditioned on CONFIG_ARCH_LEDs being defined!
* arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different
sections; they are too close together.
* arch/arm/src/lpc313x/lpc13x_boot.c - Resetting all of the clocking
had a side effect of wiping out the first 6 words of memory where the
interrupt vectors are located (and also not resetting the fractional
dividers). This is not usually noticeable because the IRQ vectors
are after this point, but really causes problems if you want to handle
data and prefectch aborts which are within this zeroed region.
pascal-2.0 2009-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.0 2009-12-21 Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
@ -1960,27 +1905,7 @@ buildroot-1.8 2009-12-21 &lt;spudmonkey@racsa.co.cr&gt;
</table> </table>
<ul><pre> <ul><pre>
nuttx-5.11 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; nuttx-5.12 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* configs/ea3131/src/up_fillpage.c - Added new configuration item
CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
is the full path to a file on a mounted file system that contains
a binary image of the NuttX executable. Pages will be filled by
reading from offsets into this file that correspond to virtual
fault addresses. up_fillpage.c implements logic to perform page
files using the CONFIG_PAGING_BINPATH file.
* configs/mbed - Add configuration to support the mbed.org LPC1768
board (Contributed by Dave Marples).
* sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
that can occur when a semaphore wait is interrupt by a signal.
(see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
* drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
SPI FLASH part (untested on initial check-in).
* arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
lm3s8962 port contributed by Larry Arnold. That port is purported
to work correctly with these changes in place.
* examples/ostest/prioinherit.c - Need to reinitialize globals if
test is ran repeatedly in a loop.
pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt; pascal-2.1 2010-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;

View File

@ -1413,3 +1413,21 @@ some new features as well as several bugfixes. New features include:
* Several bugfixes are included as well as code changes to eliminate * Several bugfixes are included as well as code changes to eliminate
some warnings. See the ChangeLog for details. some warnings. See the ChangeLog for details.
nuttx-5.11
^^^^^^^^^^
This is the 58th release of NuttX. This is a bugfix release.
* One very important bug fixes a race condition that can occur using
semaphores that can be awakened by signals. Under this particular
race condition, a task could hang waiting for a semaphore.
* Corrections to lm3s8962 port contributed by Larry Arnold. That
port is purported to work correctly with these changes in place.
Plus less critical bugfixes as detailed in the ChangeLog. New features
include:
* A new configuration to support the mbed.org LPC1768 board (Contributed
by Dave Marples), and
* A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part,

14
TODO
View File

@ -1,5 +1,5 @@
NuttX TODO List (Last updated September 30, 2010) NuttX TODO List (Last updated October 1, 2010)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(5) Task/Scheduler (sched/) (5) Task/Scheduler (sched/)
(1) On-demand paging (sched/) (1) On-demand paging (sched/)
@ -26,7 +26,7 @@ NuttX TODO List (Last updated September 30, 2010)
(2) ARM/i.MX (arch/arm/src/imx/) (2) ARM/i.MX (arch/arm/src/imx/)
(4) ARM/LPC17xx (arch/arm/src/lpc17xx/) (4) ARM/LPC17xx (arch/arm/src/lpc17xx/)
(7) ARM/LPC214x (arch/arm/src/lpc214x/) (7) ARM/LPC214x (arch/arm/src/lpc214x/)
(1) ARM/LPC313x (arch/arm/src/lpc313x/) (2) ARM/LPC313x (arch/arm/src/lpc313x/)
(3) ARM/STR71x (arch/arm/src/str71x/) (3) ARM/STR71x (arch/arm/src/str71x/)
(4) ARM/LM3S6918 (arch/arm/src/lm3s/) (4) ARM/LM3S6918 (arch/arm/src/lm3s/)
(5) ARM/STM32 (arch/arm/src/stm32/) (5) ARM/STM32 (arch/arm/src/stm32/)
@ -794,7 +794,7 @@ o ARM/LPC313x (arch/arm/src/lpc313x/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Description: arch/arm/src/lpc313x/lpc313x_spi.c contains logic that is specific to the Description: arch/arm/src/lpc313x/lpc313x_spi.c contains logic that is specific to the
Embedded Artist's ea3131 board. We need to abstract the assignmen of SPI Embedded Artist's ea3131 board. We need to abstract the assignment of SPI
chip selects and logic SPI functions (like SPIDEV_FLASH). My thoughts are: chip selects and logic SPI functions (like SPIDEV_FLASH). My thoughts are:
- Remove lpc313x_spiselect and lpc313x_spistatus from lpc313x_internal.h - Remove lpc313x_spiselect and lpc313x_spistatus from lpc313x_internal.h
- Remove configs/ea3131/src/up_spi.c - Remove configs/ea3131/src/up_spi.c
@ -806,6 +806,12 @@ o ARM/LPC313x (arch/arm/src/lpc313x/)
Status: Open Status: Open
Priority: High if you want to use SPI on any board other than the ea3131. Priority: High if you want to use SPI on any board other than the ea3131.
Description: arch/arm/src/lpc313x/lpc313x_spi.c may or may not be functional. It was
reported to be working, but I was unable to get it working with the
Atmel at45dbxx serial FLASH driver.
Status: Open
Priority: High if you need to use SPI.
o ARM/STR71x (arch/arm/src/str71x/) o ARM/STR71x (arch/arm/src/str71x/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -424,6 +424,12 @@ On-Demand Paging
CONFIG_PAGING_M25PX=y CONFIG_PAGING_M25PX=y
NOTE: See the TODO list in the top-level directory:
"arch/arm/src/lpc313x/lpc313x_spi.c may or may not be functional. It was
reported to be working, but I was unable to get it working with the
Atmel at45dbxx serial FLASH driver."
Alternative: Alternative:
------------ ------------

View File

@ -89,7 +89,10 @@ MQUEUE_SRCS = mq_open.c mq_close.c mq_unlink.c \
mq_send.c mq_timedsend.c mq_sndinternal.c \ mq_send.c mq_timedsend.c mq_sndinternal.c \
mq_receive.c mq_timedreceive.c mq_rcvinternal.c \ mq_receive.c mq_timedreceive.c mq_rcvinternal.c \
mq_setattr.c mq_getattr.c mq_initialize.c mq_descreate.c \ mq_setattr.c mq_getattr.c mq_initialize.c mq_descreate.c \
mq_findnamed.c mq_msgfree.c mq_msgqfree.c mq_waitirq.c mq_findnamed.c mq_msgfree.c mq_msgqfree.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
MQUEUE_SRCS += mq_waitirq.c
endif
ifneq ($(CONFIG_DISABLE_SIGNALS),y) ifneq ($(CONFIG_DISABLE_SIGNALS),y)
MQUEUE_SRCS += mq_notify.c MQUEUE_SRCS += mq_notify.c
endif endif
@ -125,7 +128,10 @@ endif
SEM_SRCS = sem_initialize.c sem_init.c sem_destroy.c\ SEM_SRCS = sem_initialize.c sem_init.c sem_destroy.c\
sem_open.c sem_close.c sem_unlink.c \ sem_open.c sem_close.c sem_unlink.c \
sem_wait.c sem_trywait.c sem_post.c sem_getvalue.c \ sem_wait.c sem_trywait.c sem_post.c sem_getvalue.c \
sem_waitirq.c sem_findnamed.c sem_findnamed.c
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
SEM_SRCS += sem_waitirq.c
endif
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y) ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
SEM_SRCS += sem_holder.c SEM_SRCS += sem_holder.c
endif endif

View File

@ -734,13 +734,14 @@ void sem_releaseholder(FAR sem_t *sem)
* stcb - The TCB of the task that was just started (if any). If the * stcb - The TCB of the task that was just started (if any). If the
* post action caused a count to be given to another thread, then stcb * post action caused a count to be given to another thread, then stcb
* is the TCB that received the count. Note, just because stcb received * is the TCB that received the count. Note, just because stcb received
* the count, it does not mean that it it is higher priority than other threads. * the count, it does not mean that it it is higher priority than other
* threads.
* sem - A reference to the semaphore being posted. * sem - A reference to the semaphore being posted.
* - If the semaphore count is <0 then there are still threads waiting * - If the semaphore count is <0 then there are still threads waiting
* for a count. stcb should be non-null and will be higher priority than * for a count. stcb should be non-null and will be higher priority
* all of the other threads still waiting. * than all of the other threads still waiting.
* - If it is ==0 then stcb refers to the thread that got the last count; no * - If it is ==0 then stcb refers to the thread that got the last count;
* other threads are waiting. * no other threads are waiting.
* - If it is >0 then there should be no threads waiting for counts and * - If it is >0 then there should be no threads waiting for counts and
* stcb should be null. * stcb should be null.
* *
@ -831,6 +832,7 @@ void sem_restorebaseprio(FAR _TCB *stcb, FAR sem_t *sem)
* *
****************************************************************************/ ****************************************************************************/
#ifndef CONFIG_DISABLE_SIGNALS
void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem) void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem)
{ {
/* Check our assumptions */ /* Check our assumptions */
@ -841,6 +843,7 @@ void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem)
(void)sem_foreachholder(sem, sem_restoreholderprio, stcb); (void)sem_foreachholder(sem, sem_restoreholderprio, stcb);
} }
#endif
/**************************************************************************** /****************************************************************************
* Function: sem_enumholders * Function: sem_enumholders

View File

@ -100,7 +100,11 @@ EXTERN void sem_addholder(FAR sem_t *sem);
EXTERN void sem_boostpriority(FAR sem_t *sem); EXTERN void sem_boostpriority(FAR sem_t *sem);
EXTERN void sem_releaseholder(FAR sem_t *sem); EXTERN void sem_releaseholder(FAR sem_t *sem);
EXTERN void sem_restorebaseprio(FAR _TCB *stcb, FAR sem_t *sem); EXTERN void sem_restorebaseprio(FAR _TCB *stcb, FAR sem_t *sem);
# ifndef CONFIG_DISABLE_SIGNALS
EXTERN void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem); EXTERN void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem);
# else
# define sem_canceled(stcb, sem)
# endif
#else #else
# define sem_initholders() # define sem_initholders()
# define sem_destroyholder(sem) # define sem_destroyholder(sem)