summaryrefslogtreecommitdiff
path: root/nuttx/Documentation
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-15 18:07:34 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-03-15 18:07:34 +0000
commitad1878e8fe6fa997672a83ffe8bbee9883649781 (patch)
tree658250c1a0e09eafe3ccdf0038f854697d2b870f /nuttx/Documentation
parent327a0b5bfe1c679660c9d0ef41f9f5519215176c (diff)
downloadpx4-nuttx-ad1878e8fe6fa997672a83ffe8bbee9883649781.tar.gz
px4-nuttx-ad1878e8fe6fa997672a83ffe8bbee9883649781.tar.bz2
px4-nuttx-ad1878e8fe6fa997672a83ffe8bbee9883649781.zip
Prep for 6.26 releasenuttx-6.26
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5745 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/Documentation')
-rw-r--r--nuttx/Documentation/NuttX.html1183
1 files changed, 477 insertions, 706 deletions
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 3d3782ab6..d7b797e83 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -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 4, 2013</p>
+ <p>Last Updated: March 15, 2013</p>
</td>
</tr>
</table>
@@ -1064,30 +1064,29 @@
</tr>
</table>
-<h2>nuttx-6.25 Release Notes</h2>
+<h2>NuttX-6.26 Release Notes</h2>
<p>
- The 92<sup>nd</sup> release of NuttX, Version 6.25, was made on February 1, 2013, and is available for download from the
+ The 93<sup>rd</sup> release of NuttX, Version 6.26, was made on March 15, 2013, 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-6.25.tar.gz</code> and <code>apps-6.25.tar.gz</code>.
+ Note that the release consists of two tarballs: <code>nuttx-6.26.tar.gz</code> and <code>apps-6.26.tar.gz</code>.
Both may be needed (see the top-level <code>nuttx/README.txt</code> file for build information)
The change log associated with the release is available <a href="#currentrelease">here</a>.
Unreleased changes after this release are available in SVN.
These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p>
<p>
- This release corresponds with SVN release number: r5595,
+ This release corresponds with SVN release number: r5745,
Note that all SVN information has been stripped from the tarballs.
If you need the SVN configuration, you should check out directly from SVN.
- Revision r5595 should equivalent to release 6.25 of NuttX:
+ Revision r5745 should equivalent to release 6.26 of NuttX:
</p>
<ul><pre>
-svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+svn checkout -r5745 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</pre></ul>
<p>Or (HTTP):</p>
<ul><pre>
-svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+svn checkout -r5745 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</pre></ul>
-
<p>
<b>Additional new features and extended functionality</b>
</p>
@@ -1098,407 +1097,308 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</p>
<ul>
<li>
- Removed support for <code>CONFIG_BUILTIN_APP_START</code>.
- This is not really a useful feature and creates a violation of the OS layered architecture.
+ Add an additional call-out to support board-specific driver initialization during the boot-up phase (available with <code>CONFIG_BOARD_INITIALIZE=y</code>).
</ul>
</li>
<li>
<p>
- <b>Task Creation</b>
+ <b>Tasking</b>
</p>
<ul>
<li>
- Implement a simple <code>vfork()</code>).
- In NuttX-6.25, this interface is available only for ARM7/9, ARMv7-M (Cortext-M3/4), and MIPS32 (PIC32MX) platforms.
- </li>
- <li>
- <code>exec()</code> now sets the priority of the new task to the same priority as the parent task (instead of the arbirtrary value of 50).
- </li>
- <li>
- New, partially complient implementations of <code>execv()</code> and <code>execl()</code>.
- These are only partially compliant because they do not overlay any existing &quot;process space&quot; but rather create the new task and <code>exit()</code>.
+ New interface <code>task_spawn()</code> that is like <code>posix_spawn()</code>, but uses entry point addresses like <code>ask_create()</code>.
</li>
<li>
- Add a complete implementation of <code>posix_spawn()</code>.
- This standard interface is a better match for an MMU-less architecture than are <code>vfork()</code>) plus <code>execv()</code> or <code>execl()</code>.
+ Additional data restructuring as a continuation of the <i>task group</i> changes of NuttX 6.25.
+ These data structures were moved from the TCB structure into the task group:
+ pthread join data, <code>atexit</code>/<code>on_exit</code> callbacks, <code>waitpid</code>data structures, message queues.
</li>
<li>
- Add a task start hook that will be called before the task main executes.
- This can be used, for example, to schedule C++ static constructors to run automatically in the context of the new task.
+ TCBs for tasks and pthreads are now separate structures.
+ This saves a little memory since tasks do not have to carry the overhead for threads and vice versa.
</li>
</ul>
</li>
<li>
<p>
- <b>Task Parentage</b>
+ <b>Kernel Build</b>
</p>
<ul>
<li>
- Repartitioned tasking data structures.
- All shared resources are now collected together in a &quot;task group&quot;.
- A &quot;task group&quot; includes the resource for the original task that are shared with all of the <code>pthreads</code> created by the task.
+ Extensive changes were made to support the kernel build mode.
+ In this mode, NuttX is built as a monolithic kernel.
+ NuttX is built as a separate kernel mode &quot;blob&quot; and the applications are built as a separate user mode &quot;blob&quot;.
+ The kernel runs in kernel mode and the applications run in user mode (with the MPU restricting user
+ mode accesses).
+ Access to the kernel from the user blob is only via system calls (<i>SVCalls</i>).
</li>
<li>
- Added support for remember the parent &quot;task group&quot; when a new task is started.
+ Extensive changes were made to the syscall, SVCall, and trapping logic.
+ Many internal interfaces were renamed.
</li>
<li>
- Added optional support to record the membership of each thread in the &quot;task group&quot;.
+ The memory manager was extended to support both kernel- and user-mode allocations.
+ Logic within the kernel needs to use the correct kernel- or user-space allocator, depending upon the user of the allocated memory.
</li>
<li>
- Implement support for retaining child task status in the &quot;task group&quot; after the child task exists.
- This is behavior required by POSIX.
- But in NuttX is only enabled with <code>CONFIG_SCHED_HAVE_PARENT</code> and <code>CONFIG_SCHED_CHILD_STATUS</code>.
+ The user-space blob now contains a header built in at the beginning of the block that provides the same information that was previously provided by a kludgy, auto-generated header file (<code>user_map.h</code>).
</li>
<li>
- Add internal logic to &quot;reparent&quot; 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 <code>posix_spawn()</code> to be reparented for the eventual child thread.
+ Basic support implemented for the ARMv7-M family with fragments also implemetned for the ARMv6-M and MIPS32 families.
</li>
<li>
- Added support for <code>SIGCHLD</code>.
- Sent to all members of the parent &quot;task group&quot; when the finall member of the child task group exits.
- </li>
- <li>
- If <code>SIGCHLD</code> and retention of child task exist status are enabled, then a more spec-compliant version of <code>waitpid()</code> is enabled.
+ Kernel build supported added for the LPC17xx Open1788 and for the Atmel SAM3U-EK board.
+ All testing is being performed on the Open1788 board.
</li>
+ </ul>
+ </li>
+ <li>
+ <p>
+ <b>Signals</b>
+ </p>
+ <ul>
<li>
- New interfaces <code>waitid()</code> and <code>wait()</code> are also enabled when <code>SIGCHLD</code> is enabled.
+ Delivery of signals to threads within a task group is now compatible with the way that signals are delivered to threads within a process.
</li>
</ul>
</li>
<li>
<p>
- <b>File System</b>
+ <b>Drivers</b>
</p>
<ul>
<li>
- <code>dup()</code> and <code>dup2()</code> can new be used with opened files in a mounted file system.
- This supports re-direction of output in NSH to files.
+ Add a driver for the SST29VF NOR FLASH parts.
</li>
<li>
- The <code>binfs</code> file system was moved from <code>apps/builtin</code> to <code>fs/binfs</code>.
- The <code>binfs</code> file system was extended to support execution of &quot;builtin applications&quot; using <code>exec()</code>, <code>execv()</code>, <code>execl()</code>, or <code>posix_spawn()</code>.
+ USB device trace/debug feature extended to decode device-specific trace events to make the trace output more readable (from Petteri Aimonen).
</li>
<li>
- Added logic based on <code>SIGCHLD</code> to automatically unload and clean-up after running a task that was loaded into memory.
+ USB MSC device driver can not support names of differing sizes in the USB descriptor and the SCSI fields (from Petteri Aimonen).
+ </li>
+ <li>
+ Locking added to MMC/SD SPI drivers so that MMC/SD can co-exist on the same bus as other SPI devices.
+ Frequency is reset each time that the MMC/SD SPI has the bus locked. (from Petteri Aimonen).
</li>
</ul>
</li>
<li>
<p>
- <b>Binary Formats</b>
+ <b>ARMv6-M (Cortex-M0)</b>
</p>
<ul>
<li>
- Much of the logic for &quot;builtin applications&quot; was moved from <code>apps/builtin</code> to <code>nuttx/binfmt/libbuiltin</code>.
- Includes some extensions contributed by Mike Smith.
- </li>
- <li>
- A binary loader was added for builtin applications to support execution of &quot;builtin applications&quot; using <code>exec()</code>, <code>execv()</code>, <code>execl()</code>, or <code>posix_spawn()</code>.
+ Added support for the ARM Cortex-M0 family.
</li>
</ul>
</li>
<li>
<p>
- <b>Drivers</b>
+ <b>nuvoTon NUC120</b>
</p>
<ul>
<li>
- Added logic to marshal and serialized &quot;out-of-band&quot; 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 is fully integrated into the <code>apps/examples</code> <code>hidkbd/</code> and <code>keypadtest/</code> (the latter contributed by Denis Carlikli).
- </li>
- <li>
- Driver for the UG-2864HSWEG01 OLED contributed by Darcy Gong.
- </li>
- <li>
- Add support for removable serial devices (like USB serial).
- This support is enabled by <code>CONFIG_SERIAL_REMOVABLE</code>.
+ Added support for the nuvoTon NUC120 MCU (Cortex-M0).
</li>
</ul>
</li>
<li>
<p>
- <b>ARMv7-M</b>
+ <b>nuvoTon NUC120 Boards</b>
</p>
<ul>
<li>
- Added an option to use the <code>BASEPRI</code> register to disable interrupts (instead of the <code>PRIMASK</code> register).
- This eliminates some innocuous hardfaults that interfere with some debug tools.
- You need to switch to the <code>BASEPRI</code> method only if you have such tool interference.
+ Added basic support for the nuvoTon NuTiny-SDK-NUC120 board (Cortex-M0).
</li>
</ul>
</li>
<li>
<p>
- <b>STM32 Drivers</b>
+ <b>LPC17xx</b>
</p>
<ul>
<li>
- Bring STM32 F1 DMA capabilities up to par with the STM32 F2/F4 (contributed by Mike Smith).
- </li>
- <li>
- Add support for USART single wire mode (Contributed by the PX4 team).
- </li>
- <li>
- Updates to support for SPI DMA on the STM32 F1/F2/F4.
- From Petteri Aimonen.
+ Added support for the LPC177x and LPC178x families.
+ Most of this is the work of Rommel Marcelo.
</li>
</ul>
</li>
<li>
<p>
- <b>STM32 Boards</b>
+ <b>LPC17xx Boards</b>
</p>
<ul>
<li>
- New configuration to support the UG-2864HSWEG01 OLED on the STM32F4Discovery board.
+ Added support for Zilogic System's ARM development Kit, ZKIT-ARM-1769.
+ From Rashid.
</li>
<li>
- Added a <code>posix_spawn()</code> test configuration for the STM32F4Discovery.
+ The port for the WaveShare Open1788 board is now functional.
+ Basic OS test and NuttShell (NSH) configurations are functional.
+ More driver development and testing is needed (from Rommel Marcelo).
</li>
</ul>
</li>
<li>
<p>
- <b>LM3S/LM4F</b>
+ <b>LPC17xx Drivers</b>
</p>
<ul>
<li>
- Files and directories repartitioned to support both LM3S and LM4F using the STM32 organization as a model.
- </li>
- <li>
- Partial definitions for the LM4F contributed by Jose Pablo Carballo (this is still a work in progress).
+ Added an SD card MSI driver for the LPC178x.
+ The driver is marginally functional but requires DMA capability to be reliable.
</li>
</ul>
</li>
<li>
<p>
- <b>LM3S Boards</b>
+ <b>STM32</b>
</p>
<ul>
<li>
- Added scripts and documentation to use OpenOCD with the LM3S (from Jose Pablo Carballo).
+ Support extended to handle the STM32 F3 family (Cortex-M4 with F1-like peripherals).
</li>
</ul>
</li>
<li>
<p>
- <b>LPC176x/LPC178x</b>
+ <b>STM32 Boards</b>
</p>
<ul>
<li>
- 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.
+ Added support the STMicro STM32F3Discovery board (STM32 F3).
</li>
</ul>
</li>
<li>
<p>
- <b>LPC176x/LPC178x Boards</b>
+ <b>Stellaris LM3S/LM4F</b>
</p>
<ul>
<li>
- Added a configuration to support the Wave Share Open1788 board.
- This is still a work in progress by Rommel Marcelo.
+ Basic support for the LM4F120 family is in place, but untested (mostly from Jose Pablo Carballo).
</li>
</ul>
</li>
<li>
<p>
- <b>LPC2148 Boards</b>
+ <b>Stellaris LM4F Boards</b>
</p>
<ul>
<li>
- Add basic support for the The0.net ZP213x/4xPA board (with the LPC2148 and the UG_2864AMBAG01 OLED).
+ Add support for the LM4F120 LaunchPad (untested).
</li>
- <li>
- Add an nxlines configuration for the ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01).
- </li>
</ul>
</li>
<li>
<p>
- <b>Simulator</b>
+ <b>Networking</b>
</p>
<ul>
<li>
- Add an nxlines configuration for the simulator.
+ <code>select()</code> should now allocate a little less memory.
</li>
</ul>
</li>
<li>
<p>
- <b>Networking</b>
+ <b>Memory Management</b>
</p>
<ul>
<li>
- Add logic to work around delayed ACKs by splitting packets (contributed by Yan T.).
+ Extended to support multiple heaps.
+ This is used as part of the kernel build in order to support separater user- and kernel-mode heaps.
</li>
<li>
- Split <code>net_poll()</code> to create the internal interface <code>psock_poll()</code>.
+ The stand-alone memory manger test had to be removed.
+ It was too entangled and made extension of the memory manager nearly impossible.
+ This is a loss.
</li>
</ul>
</li>
<li>
<p>
- <b>LCDs</b>
+ <b>Build System</b>
</p>
<ul>
<li>
- Added support for LCD1602 alphanumeric LCD (HD4468OU controller).
+ Several configurations converted to use the <i>kconfig-frontends</i> configuration tool.
+ There are still many more that need to be converted.
</li>
</ul>
</li>
<li>
<p>
- <b>Graphics</b>
+ <b>C Library</b>
</p>
<ul>
<li>
- Added 5x8 monospace font.
- This tiny font is useful for graph labels and for small bitmapped display.
- Contributed by Petteri Aimonen.
+ Move the workqueue logic into the C library.
+ There is now a special user-space version of the work queue (which will only be used with a NuttX kernel build).
+ </li>
+ <li>
+ Implementation of <code>itoa()</code> contributed by Ryan Sundberg.
</li>
</ul>
</li>
<li>
<p>
- <b>Build System</b>
+ <b>Applications</b>
</p>
<ul>
<li>
- Add an options to better manage toolchain prefixes.
+ The NSH builtin task logic now uses <code>task_spawn()</code> to start builtin applications.
</li>
<li>
- Redesigned how the context targer works in the <code>apps/</code> 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 &quot;Why don't I see my builtin application in NSH?&quot;
+ The OS test now includes a test cased to verify <code>task_restart()</code>.
</li>
</ul>
</li>
+</ul>
+<p>
+ <b>Efforts In Progress</b>.
+ The following are features that are partially implemented but present in this release.
+ Most are expected to be fully available in NuttX 6.27.
+</p>
+<ul>
<li>
<p>
- <b>Kconfig Files</b>
+ <b>LM4F120 LaunchPad port</b>
</p>
<ul>
<li>
- <p>
- 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:
- </p>
- <ul>
- <li>
- <code>configs/sim/nxwm</code>
- </li>
- <li>
- <code>configs/sim/nsh</code>
- </li>
- <li>
- <code>configs/stm3220g-eval/nxwm</code>
- </li>
- <li>
- <code>configs/stm32f4discovery/posix_spawn</code>
- </li>
- <li>
- <code>configs/olimex-lpc1766stk/nsh</code>
- </li>
- <li>
- <code>configs/olimex-lpc1766stk/hidkbd</code>
- </li>
- <li>
- <code>configs/olimex-lpc1766stk/nettest</code>
- </li>
- <li>
- <code>configs/open1788/ostest</code>
- </li>
- <li>
- <code>configs/stm32f4discovery/nsh</code>
- </li>
- <li>
- <code>configs/stm32f4discovery/usbnsh</code>
- </li>
- <li>
- <code>configs/lm326965-ek</code> (all configurations)
- </li>
- <li>
- <code>configs/mcu123-214x/nsh</code>
- </li>
- <li>
- <code>configs/ubw32/ostest</code>
- </li>
- </ul>
+ Code is in place, but nothing has been tested.
</li>
</ul>
</li>
<li>
<p>
- <b>Tools</b>
+ <b>WaveShare Open1788 port</b>
</p>
<ul>
<li>
- <code>tools/kconfig.bat</code>: Kludge to run kconfig-frontends from a DOS shell.
- </li>
- <li>
- <code>tools/configure.c</code>: <code>configure.c</code> can be used to build a work-alike program as a replacement for <code>configure.sh</code>.
- This work-alike program would be used in environments that do not support Bash scripting (such as the Windows native environment).
- </li>
- <li>
- <code>tools/configure.bat</code>: <code>configure.bat</code> is a small Windows batch file that can be used as a replacement for <code>configure.sh</code> in a Windows native environment.
- <code>configure.bat</code> is actually just a thin layer that executes <code>configure.exe</code> if it is available.
- If <code>configure.exe</code> is not available, then configure.bat will attempt to build it first (assumes the MinGW-GCC is available).
+ This port as actually complete and functional.
+ However, there is still ongoing development and testing of drivers.
</li>
</ul>
</li>
<li>
<p>
- <b>Applications</b>
+ <b>Kernel Build</b>
</p>
<ul>
<li>
- New and modified examples:
- <p>
- <ul>
- <li>
- <code>apps/examples/wlan</code>: Remove non-functional example.
- </li>
- <li>
- <code>apps/examples/ostest</code>: Added a test of <code>vfork()</code>).
- Extend signal handler test to catch death-of-child signals (<code>SIGCHLD</code>).
- Add a test for <code>waitpid()</code>, <code>waitid()</code>, and <code>wait()</code>.
- </li>
- <li>
- <code>apps/exampes/posix_spawn</code>: Added a test of <code>posix_spawn()</code>.
- </li>
- </ul>
- <p>
- </li>
- <li>
- NSH:
- <p>
- <ul>
- <li>
- NSH now supports re-direction of I/O to files (but still not from).
- </li>
- <li>
- The block driver source argument to the mount command is now optional for file systems that do not require a block driver.
- </li>
- </ul>
- </p>
- </li>
- <li>
- NSH can now execute a program from a file system using <code>posix_spawn()</code>.
- </li>
- <li>
- Added support for a login script.
- The <code>init.d/rcS</code> script will be executed once when NSH starts;
- the <code>.nshrc</code> script will be executed for each session:
- Once for a serial console, once for each USB connection, and once for each Telnet session.
- </li>
- <li>
- Supports a new daemon that can be used to monitor USB trace outpout.
+ Much progress has been made, but there kernel build is not yet fully functional due to several user resources that are not yet properly disentangled from the kernel blob.
</li>
+ </ul>
+ </li>
+ <li>
+ <p>
+ <b><i>kconfig-frontends</i></b>
+ </p>
+ <ul>
<li>
- Removed non-functional <code>wlan</code> example.
+ Conversion of old configurations to use the <i>kconfig-frontends</i> tool is an ongoing effort that will continue for some time.
</li>
</ul>
</li>
@@ -1514,79 +1414,63 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</p>
<ul>
<li>
- Fixed a *critical* task exit bug.
- Here is the failure scenario:
- (1) <code>sched_lock()</code> is called increments the lockcount on the current TCB (i.e., the one at the head of the ready to run list),
- (2) <code>sched_mergepending()</code> is called which may change the task at the head of the ready-to-run list, then
- (3) <code>sched_unlock()</code> 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.
+ The wrong PID was being signalled with <code>SIGCHILD</code>.
+ It should be the PID of the task that create the task group, not the ID of the last thread to leave the task group.
</li>
- </ul>
- </li>
- <li>
- <p>
- <b>Signals</b>
- </p>
- <ul>
<li>
- <code>sigtimedwait()</code> would return a bad signal number if the signal was already pending when the function was called.
+ Added logic so that some internal resources and states are recovered when tasks are deleted or restarted.
+ Handle cases where there are outstanding timed events pending when tasks are deleted or restarted.
</li>
</ul>
</li>
<li>
<p>
- <b>Drivers</b>
+ <b>ARMv7-M</b>
</p>
<ul>
<li>
- 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.
+ Several fixes to the MPU control logic.
</li>
</ul>
</li>
<li>
<p>
- <b>STM32 Drivers</b>
+ <b>Drivers</b>
</p>
<ul>
<li>
- STM32 FLASH driver counting error (from Freddie Chopin).
+ Removable serial drivers race conditions fixed.
</li>
<li>
- STM32 F4 maximum SPI frequency was wrong (corrected by Petteri Aimonen).
+ MAX11802 timing bug (from Petteri Aimonen).
</li>
</ul>
</li>
<li>
<p>
- <b>STM32 Boards</b>
+ <b>STM32 Drivers</b>
</p>
<ul>
<li>
- Due to cloning of untested code, the logic to control on-board LEDs did not work on any STM32 boards.
+ Handle cases were SPI DMA logic fails if <code>sem_wait()</code> is awakened by a signal.
+ Need to clear error flags to prevent corruption of subsequent transfers.
+ Also, bit count should not be changed while the SPI peripheral is enabled (from Petteri Aimonen).
</li>
<li>
- Serial devices number <code>/dev/ttyS0-5</code> is there is a serial console, but <code>/dev/ttyS1-6</code> if there is no serial console.
+ Fixes to the OTG FS device driver from Petteri Aimonen.
</li>
- </ul>
- </li>
- <li>
- <p>
- <b>Binary Formats</b>
- </p>
- <ul>
<li>
- 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).
+ Fix typos in DMA register header file (from Yan T.)
</li>
</ul>
</li>
<li>
<p>
- <b>File Systems</b>
+ <b>Graphics</b>
</p>
<ul>
<li>
- Several FAT-related bugs fixed by Petteri Aimonen.
+ Correction to the hyphen in the SANS 17x22 font (from Petteri Aimonen).
</li>
</ul>
</li>
@@ -1596,27 +1480,19 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</p>
<ul>
<li>
- Fix poll/select issure reported by Qiang: <code>poll_interrupt()</code> must call <code>net_lostconnection()</code> 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.
- </li>
- <li>
- Similar issues corrected for <code>recvfrom()</code> and <code>send()</code>.
- </li>
- <li>
- Telnetd would hang in a loop if <code>recv()</code> ever returned a value &lt;= 0.
+ Corrected errors in the socket <code>poll</code>/<code>select</code> logic. Additional
+ state logic was needed to detect if the socket is still connected
+ before starting the poll wait. (bug reported by Qiang Yu).
</li>
</ul>
</li>
<li>
<p>
- <b>Libraries</b>
+ <b>Memory Management</b>
</p>
<ul>
<li>
- <code>fread()</code> could hang on certain error conditions.
- </li>
- <li>
- Can't handle <code>SYSLOG</code> output to a character device from the IDLE task (because the IDLE task can't block).
+ <code>mallinfo()</code> should hold the memory manager semaphore (from Petteri Aimonen.
</li>
</ul>
</li>
@@ -1626,27 +1502,24 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</p>
<ul>
<li>
- Serial was driver was not being built if there is no console device.
- Obviously, the serial driver may be needed even in this case.
+ Resolved several build errors reported by Mike Smith.
</li>
</ul>
</li>
<li>
<p>
- <b>Additional Bugfixes</b>
+ <b>Applications</b>
</p>
<ul>
<li>
- <code>sig_timedwait()</code> and <code>clock_time2ticks.c</code>: Timing &quot;rounding&quot; logic
- </li>
- <li>
- ARM9 Compilation issue with low vectors.
- </li>
- <li>
- <code>readline()</code> return value
+ Fixed an NSH memory leak:
+ Needed to detach after creating each pthread.
</li>
<li>
- As well as other, less critical bugs as detailed in the ChangeLog: HID keyboard, LPC17xx bit definitions, strndup(), PL2303, SYSLOG error handling, AT25, <code>apps/examples</code>.
+ <code>readline()</code> now returns <code>EOF</code> on any failure (instead of a negated <code>errno</code> value).
+ This is because the underlying read is based on logic similar to <code>getc</code>.
+ The value zero (meaning end-of-file) was being confused with a NUL.
+ So if a NUL was received, the NSH session would terminate because it thought it was the end of file.
</li>
</ul>
</li>
@@ -1680,7 +1553,7 @@ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
<li><a href="#arm926ejs">ARM926EJS</a> (3) </li>
<li><a href="#armcortexm0">ARM Cortex-M0</a> (1)</li>
<li><a href="#armcortexm3">ARM Cortex-M3</a> (17)</li>
- <li><a href="#armcortexm4">ARM Cortex-M4</a> (6)</li>
+ <li><a href="#armcortexm4">ARM Cortex-M4</a> (7)</li>
</ul>
<li>Atmel AVR
<ul>
@@ -2546,7 +2419,7 @@ nsh>
<b>STATUS:</b>
This is still a work in progess.
At present there is a working basic port with OS verification and Nuttshell (<a href="http://www.nuttx.org/Documentation/NuttShell.html">NSH</a>) configurations.
- This is stablilizing nicely now and the next steps will involve getting solid LCD support on the WaveShare board.
+ This is stablilizing nicely now and the next steps will involve getting solid driver support for the SD slot and the LCD on the WaveShare board.
</ul>
</td>
</tr>
@@ -2753,6 +2626,27 @@ nsh>
<tr>
<td><br></td>
<td>
+ <p>
+ <b>TI Stellaris LM4F120</b>.
+ This port uses the TI Stellaris LM4F120 LaunchPad.
+ Jose Pablo Carballo is doing this port.
+ </p>
+ <ul>
+ <p>
+ <b>STATUS:</b>
+ As of this writing, the basic port is code complete but still untested.
+ The fully verified LM4F120 LaunchPad port is expected in NuttX-6.27.
+ </p>
+ </ul>
+ </td>
+</tr>
+<tr>
+ <td><br></td>
+ <td><hr></td>
+</tr>
+<tr>
+ <td><br></td>
+ <td>
<p>
<b>Development Environments:</b>
1) Linux with native Linux GNU toolchain, 2) Cygwin/MSYS with Cygwin GNU Cortex-M3 or 4 toolchain, 3) Cygwin/MSYS with Windows native GNU Cortex-M3 or M4 toolchain (CodeSourcery or devkitARM), or 4) Native Windows. A DIY toolchain for Linux or Cygwin is provided by the NuttX
@@ -3842,421 +3736,318 @@ Other memory:
</table>
<ul><pre>
-nuttx-6.25 2013-02-01 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+nuttx-6.26 2013-05-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
- * graphics/: Adds 5x8 monospace font. This tiny font is useful for graph
- labels and for small bitmapped display. Contributed by Petteri
+ * drivers/serial/serial.c: Correct some race conditions when checking
+ for disconnection of a removable serial device.
+ * sched/task_posixspawn.c, task_spawn.c, task_spawnparms.c and
+ spawn_internal.h: Create new interface task_spawn() that is
+ like posix_spawn(), but uses entry point addresses like
+ task_create().
+ * Corrected all argv[] arguments. Should be char * const *, not
+ const char **.
+ * sched/pthread* and include/nuttx/sched: Move pthread join data
+ and pthread key calculation data into the &quot;task group&quot; structure.
+ * sched/atexit.c, on_exit.c, task_exithook.c and include/nuttx/sched.h:
+ Move atexit and on_exit data structures to task group. These
+ callbacks are only issued now when the final member of the task
+ group exits.
+ * sched/waitpid.c, task_exithook.c and include/nuttx/sched.h:
+ Move waitpid data data structures to task group. Callers of
+ of waitpid() are now only awakened whent he final thread of the
+ task group exits.
+ * sched/mq_descreate.c, mq_open.c, mq_remove.c, group_leave.c, and
+ include/nuttx/sched.h: Move list of opened message queues to
+ the task group structures. Now all message queues opened by
+ members of the group are closed when the last member of the group
+ exits.
+ * includes/nuttx/sched.h and Lots of files: Change name of _TCB to
+ struct tcb_s so that (1) it is consitent with other NuttX naming and
+ so that (2) the naming can handle some upcoming changes.
+ * includes/nuttx/sched.h and sched/: There are three TCB structures:
+ struct tcb_s is a generic common version, struct task_tcb_s is a
+ version for tasks and kernel threads and pthread_tcb_s is a version
+ for pthreads. By dividing the TCB structure into these variants,
+ pthreads do not have to be burdened by task-specific data structures
+ (and vice versa).
+ * sched/task_exithook.c adn group_create.c: Fix an error, the
+ task within the task group may exit early leaving a pthread to
+ exit the task group last. In this case, we need to remember the
+ the PID of the main task in the task group and use that PID for
+ signalling SIGCHILD to the parent task group.
+ * included/nuttx/sched.h and sched/sig*.c: Numerous changes to the
+ signal deliver logic so that the delivery of signals to threads
+ within a task group will be compliant with delivery of signals
+ to threads within a POSIX process.
+ * sched/mq_recover.c and task_exithook.c: Add logic to handle the
+ case where a task is deleted (or pthread canceled) while it is
+ waiting on a message queue. task_delete() and pthread_cancel()
+ are dangerous interfaces. This is only one feeble recover measure
+ of *many* that would be needed to do this safely.
+ * sched/group_killchildren.c, task_recover.c, group_foreachchild.c,
+ sched/restart.c, sched/task_delete.c, and others: Beef up logic
+ to better support task deletion and pthread cancellation. Needed
+ to pass need OS test case for task_restart().
+ * sched/include/sched.h and all timed functions in sched/: Move
+ timer from local variables to TCB. This is needed so that if a
+ task is canceled or restarted while it is waiting for a timed
+ event, we can gracefully recover. We can't let the timer expire
+ after the task has been deleted.
+ * arch/arm/include/stm32 and arch/arm/src/stm32: Add support for
+ the STM32 F3 family (still missing some things).
+ * configs/stm32f3discovery: This will (eventually) be support for
+ the STM32F3Discovery board.
+ * STM32 F3 and STM32F3Discovery port is complete a ready for test.
+ * arch/arm/src/lpc17xx: Add support for the Cortex-M4 FPU and
+ Mikes &quot;common vector&quot; logic. The LPC1788 is going to need
+ these things.
+ * arch/arm/src/stm32/stm32_spi.c: Fix SPI DMA logic that does
+ not work if sem_wait() is interrupt by a signal. From Petteri
+ Aimonen.
+ * drivers/input/max11802.c: MAX11802: Fix a timing bug that
+ corrupted coordinates. From Petteri Aimonen.
+ * drivers/mmcsd/mmcsd_spi.c: Use SPI locking so that MMC/SD can
+ exist on the same bus as other SPI devices. From Petteri
+ Aimonen.
+ * graphics/nxfonts/nxfonts_sans17x22.h: Small mod to hyphen in
+ sans17x22 font. The hyphen did not have any space on its sides.
+ This caused it to run together with other characters so that for
+ example &quot;+-&quot; would look weird. From Petteri Aimonen.
+ * mm/mm_mallinfo.c: Take MM semaphore in mm_mallinfo. From Petteri
Aimonen.
- * configs/stm3220g-eval/nxwm: Converted to use the kconfig-frontends
- configuration tool.
- * configs/sim/nxwm: Converted to use the kconfig-frontends configuration
- tool.
- * include/pthread.h: In sys/prctl.h because it is needed by
- pthread_[set|get]name_np()
- * tools/kconfig.bat: Kludge to run kconfig-frontends from a DOS shell.
- * sched/sig_timedwait.c: Should always move the time up to the next
- largest number of system ticks. The logic was rounding. Noted by
- Petteri Aimonen.
- * arch/arm/src/up_head.S: Fix backward conditional compilation. NOTE
- there is a issue of ARM9 systems with low vectors and large memories
- that will have to be addressed in the future.
- * libc/misc/lib_kbdencode.c and lib_kbddecode.c: Add logic to marshal
- and serialized &quot;out-of-band&quot; keyboard commands intermixed with normal
- ASCII data (not yet hooked into anything).
- * drivers/usbhost/usbhost_hidkbd.c: If CONFIG_HIDKBD_ENCODED is
- defined, this driver will now use libc/misc/lib_kbdencode.c to
- encode special function keys.
- * configs/olimex-lpc1766stk/hidkbd: This configuration has been
- converted to use the kconfig-frontends configuration tool.
- * drivers/lcd/ug-2864hsweg01.c and include/nuttx/lcd/ug-2864hsweg01.h:
- Driver for UG-2864HSWEG01 OLED contributed by Darcy Gong.
- * configs/stm32f4discovery/src/up_ug2864hsweg01.c: Support for the
- UG-2864HSWEG01 OLED for the STM32F4Discovery board.
- * 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 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
- configuration tool.
- * configs/zp214xpa: Add basic support for the The0.net ZP213x/4xPA
- board (with the LPC2148 and the UG_2864AMBAG01).
- * configs/sim/nxlines: Add an nxlines configuration for the
- simulator.
- * configs/zp214xpa/nxlines: Add an nxlines configuration for the
- ZP213x/4xPA (with the LPC2148 and the UG_2864AMBAG01). Working
- as of 2012-12-30.
- * configs/olimex-lpc1766stk/wlan: Remove non-functional
- configuration.
- * configs/stm32f4discovery/src and nuttx/drivers/lcd/ug-2864hsweg01.c:
- Updates and correctinos for the UG-2864HSWEG01 from Darcy Gong.
- * configs/lm326965-ek: All configurations converted to use the
- kconfig-frontends configuration tool.
- * configs/Kconfig: NSH_MMCSDSPIPORTNO should depend on MMCSD_SPI,
- not just SPI (from Jose Pablo Carballo).
- * arch/arm/src/arm/Kconfig and armv7m/Kconfig: Add an option for
- 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 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
- * 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.
- * arch/arm/src/lpc17xx/lpc17_syscon.h: Correct some typos in bit
- definitions (from Rommel Marcelo).
- * libc/string/lib_strndup.c: strndup() should use strnlen(), not
- strlen(), to determine the size of the string.
- * sched/os_bringup.c: Remove support for CONFIG_BUILTIN_APP_START.
- This is not really a useful feature and creates a violation of the
- OS layered architecture.
- * include/unistd.h, arch/arch/src/*: Implement a simple vfork().
- On initial checkin, this API is available only for ARM platforms.
- * binfmt/binfmt_exec.c: exec() now sets the priority of the new task
- to the same priority as the current task (instead of the arbirtrary
- value of 50).
- * libc/unisted/lib_execv.c and lib_execl.c: New, somewhat flawed,
- implementations of execv() and execl().
- * tools/cfgdefine.c: Strips quotes from CONFIG_EXECFUNCS_SYMTAB
- value.
- * arch/arm/include/lm3s/chip.h: Move chip definitions into
- public include area for compatibility with other architectures.
- * arch/arm/src/lm3s/chip: Move register definition header files
- into a new chip/ sub-directory.
- * arch/arm/src/lm3s/lm3s_internal.h: Broke up into several
- smaller header files.
- * arch/arm/src/lm: Rename the arch/arm/src/lm3s directory to
- arch/arm/src/lm so that is can support other members of the
- Stellaris family.
- * libc/spawn: Add file action interfaces needed by posix_spawn().
- * sched/clock_time2ticks.c: Another case where time was being
- rounded down instead of up (from Mike Smith).
- * libc/spawn: Implementation of posix_spawn() is complete but
- untested and undocumented.
- * drivers/usbdev/pl2303.c: Fix typols in the PL2303 driver
- (from Max Holtzberg).
- * configs/stm32f4discovery/posix_spawn: Added a configuration
- that can be used for testing posix_spawn().
- * arch/arm/src/stm32: Bring F1 support for general DMA and serial
- DMA in paricular up to parity with F2/F4 (from Mike Smith).
- * libc/stdio/lib_libfread.c: Correct some error handling when
- lib_fread() was passed a bad stream. Needed to move the
- releasing of a semaphore inside of some conditional logic
- (cosmetic).
- * include/nuttx/sched.h, sched/task_setup.c, and sched/task_exithook.c:
- Add support for remembering the parent task and sending
- SIGCHLD to the parent when the task exists.
- * sched/task_exithook.c: Fixed a *critical* bug. Here is
- 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 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 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.
- * sched/sched_waitid.c and sched_wait.c: Add support for waitid()
- and wait(). See issues with waitpid() above.
- * include/nuttx/fs/fs.h and fs/fs_files.c: Add a dup() method to
- the struct mountpt_operations. When dup'ing a file that resides
- on a mounted volume, let the file system's dup() method do the
- work.
- * fs/romfs/fs_romfs.c: Implemented the dup() method for the ROMFS
- file system.
- * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
- fs/nfs/nfs_vfsops.c: Add hooks for dup() method (not yet
- implemented).
- * fs/romfs: Remove the rf_open flag. It looks good, but actually
- does nothing.
- * fs/fat: Remove the ff_open flag. Same story as for the ROMFS
- rf_open flag.
- * fs/fat/fs_fat32.c, fs/nxffs/nxffs_initialize, and
- fs/nfs/nfs_vfsops.c: Completed implementation of the dup() methods.
- There is still no good test available.
- * sched/sig_timedwait.c: sigtimedwait() would return a bad signal
- number if the signal was already pending when the function was
- called.
- * configs/ubw32/scripts: All common linker scripts moved to this
- scripts sub-directory
- * configs/ubw32/ostest: Configuration configured to use the
- kconfig-frontends tools.
- * arch/mips/src/mips32/up_vfork.c, up_vfork.h, and vfork.S:
- Implement vfork() for MIPS32 (no floating point support)
- * configs/ubw32/ostest: Enable the vfork() test.
- * fs/binfs: Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
- 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 builtin
- utility functions from apps/builtin/exec_builtins.c to
- binfmt/libbuiltin/libbuiltin_utils.c
- * binfmt/builtin.c and binfmt/libbuiltin: Add a binary &quot;loader&quot;
- that can be used to execute builtin programs from the BINFS
- file system.
- * configs/sim/nsh: Convert to use kconfig-frontends configuration
- tool.
- * binfmt/binfmt_schedunload.c: Add logic based on SIGCHLD to
- automatically unload and clean-up after running a task that
- was loaded into memory.
- * binfmt/libbuiltin: Extensions from Mike Smith
- * sched/task_reparent.c: Add internal interface to change the
- parent task.
- * sched/task_posixspawn(): Move libc/spawn/lib_ps.c to
- sched/task_posixspawn() now it requires internal, reparenting
- interfaces
- * include/nuttx/spawn(): Move libc/spawn.h to include/nuttx/spawn.h
- * arch/arm/include/lpc17xx/chip.h, irq178x.h: Integrate Marcelo
- Rommel's LPC1788 definitions into the base LPC17xx.
- * configs/olimex-lpc1766stk/nsh: Convert configuration to use
- the kconfig-frontends tools.
- * sched/task_reparent.c: Simplify reparenting interface.
- * arch/arm/src/[many]: More LPC1788 definitions from Rommel
- Marcelo incorporated.
- * configs/open1788: Board configuration for the Wave Share
- 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.).
- * net/recvfrom(): Fix a bug. When the host closes a connection
- (gracefully). recv[from]() returned success and the closure
- was never detected. Hmmm.. I don't know why the network monitor
- did not catch this event. This is an important bug fix.
- * net/recvfrom(): Fix a introduced with the last bugfix. If
- the peer does an orderly closure of the socket, report 0 not
- -ENOTCONN
- * configs/lm3s6965-ek/README.txt and tools/: Add an OpenOCD
- configuration for the LM3S (from Jose Pablo Carballo).
- * nuttx/lcd/hd4478ou.h and configs/pcblogic-pic32mx/src/up_lcd1602:
- Start of support of LCD1602 alphanumeric LCD. I need a few
- more parts before I can finish integrating this one.
- * arch/arm/src/*/chip.h and arch/arm/include/*/chip.h: Move all
- priority ranges from the src to the include chip.h header file.
- * arch/arm/include/armv7-m/irq.h: Add inline functions to enable
- and disable interrupts via the BASEPRI register.
- * arch/arm/Kconfig: Add new option CONFIG_ARM7VM_USEBASEI
- * arch/arm/src/*/*_irq.c: Set the priority of the SVCALL exception
- to the highest possible value.
- * 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 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
- CONFIG_SCHED_CHILD_STATUS
- * Add support for keyboard encode to the keypad test (from
- Denis Carikli).
- * configs/olimex-lpc1766stk/nettest: Configuration converted to
- 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 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
- support for task groups.
- * sched/group_signal.c and task_exithook.c: Send signal to all
- members for the parent task group.
- * include/nuttx/sched.h and sched/env_*.c: Move environment
- variables into task group structure.
- * sched/: Lots of file changed. Don't keep the parent task's
- task ID in the child task's TCB. Instead, keep the parent
- task group IN the child task's task group.
- * fs/, sched/, include/nuttx/sched.h, and include/nutts/fs/fs.h:
- Move file data from the TCB to the task group structure.
- * libc/stdio/, sched/, include/nuttx/lib.h, and include/nutts/fs/fs.h:
- Move stream data from the TCB to the task group structure.
- * net/, sched/, and include/nuttx/net/net.h: Move socket data
- from the TCB to the task group structure.
- * sched/task_starthook.c, sched/task_start.c, and include/nuttx/sched.h:
- Add a task start hook that will be called before the task main
- is started. This can be used to schedule C++ constructors to run
- automatically in the context of the new task.
- * binfmt/binfmt_execmodule: Execute constructors as a start hook.
- * sched/os_start.c: Fix ordering of group initialization.
- * configs/stm32f4discovery/usbnsh: Add an NSH STM32F4Discovery
- configuration that uses USB CDC/ACM for the NSH console.
- * 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 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
- device. Obviously, the serial driver may be needed even in
- this case.
- * arch/arm/src/stm32/stm32_serial.c: If there is a serial console,
- it would be ttyS0 and the others would be ttyS1-5. If there
- is not serial console, was labeling them ttyS1-6; now labels them
- ttyS0-5.
- * fs/fs_syslog.c: Can't handle SYSLOG output to character device from
- the IDLE task (because it can't block). syslog_putc now returns EOF
- on failure and sets errno. Fixed some errors in error handling.
- * libc/stdio/lib_syslogstream.c: Checking of return value from
- syslog_putc was bogus. Switching to EOF for all errors solves
- this.
- * arch/arm/src/lm/chip/lm4f_memorymap.h: More LM4F changes from
- Jose Pablo Carballo.
- * 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.
- * 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.
- * arch/*/src/*/up_assert.h: Mark _up_assert() as non-returning.
- * drivers/mtd/at25.c: When the AT25 device was not available the
- initialization did not fail like it should. From Petteri Aimonen.
- * fs/fat/fs_configfat.c: Fix some errors in FAT formatting logic
- for large devices and for FAT32. From Petteri Aimonen.
- * fs/fat/fs_fat32util.c: Fix an initialization error found by
- Petteri Aimonen. freecount and next freecount initialization were
- reversed.
- * drivers/mmcsd/mmcsd_spi.c: 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 patch makes it work also
- without pull-up. From Petteri Aimonen.
- * fs/fat/fs_fat32.c: Fix a compilation error when FAT_DMAMEMORY=y.
+ * configs/stm32f3discovery/nsh/defconfig: Disable SPI. It is not
+ used.
+ * drivers/mtd/sst39vf: Add a driver for the SST29VF NOR FLASH parts.
+ * sched/os_start.c: Add an additional call-out to support board-
+ specific driver initialization during the start phase: If
+ CONFIG_BOARD_INITIALIZE is defined, then an additioinal
+ initialization function called board_initialize() will be called
+ just after up_initialize() is called and just before the initial
+ application is started.
+ * arch/arm/src/stm32/stm32_otgfsdev.c, drivers/usbdev/usbdev_trprintf.c,
+ and include/nuttx/usb/usbdev_trace.h: Add logic to support decoding
+ of device-specific trace events to make the trace ouput more readable.
From Petteri Aimonen.
- * arch/arm/src/stm32/chip/stm32_spi.h: STM32F4 max SPI clock freq is
- 37.5 MHz. Patch from Petteri Aimonen.
- * 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.
+ * arch/arm/src/stm32/stm32_otgfsdev.c: Need to manually set CNAK in
+ the case where we are waiting for a SETUP command with DATA. Otherwise,
+ the core may NAK further transactions. From Petteri Aimonen.
+ * arch/arm/src/stm32/stm32_otgfsdev.c: Add logic to prevent premature
+ to IDLE state. This change (plus the previous) was necessary to get
+ the CDC/ACM driver working the certain STM32 F4 hardware (but not others).
+ These changes appear to prevent certain race conditions that may or may
+ not cause USB problems. From Petteri Aimonen.
+ * arch/arm/include/armv6-m and arch/arm/src/armv6-m: First cut at support
+ for the Cortex-M0
+ * configs/nutiny-nuc120, arch/arm/include/nu1xx, and arch/arm/src/nuc1xx:
+ Support for Nuvoton NuTiny NUC120.
+ * 2013-02-22: the Cortex-M0, NuvoTron NUC1xx, and NuTiny-SDK-NUC120 port
+ is code complete and ready for testing.
+ * configs/ekk-lm3s9b96/ostest and nsh: All EKK-LM3S9B96 configurations
+ converted to use the mconf configuration tool.
+ * configs/zkit-arm-1769: Add support for Zilogic System's ARM development
+ Kit, ZKIT-ARM-1769. From Rashid.
+ * configs/zkit-arm-1769/hello: Add a &quot;Hello, World!&quot; configuration for
+ the KBIT-ARM-1769 board. From Rashid.
+ * configs/zkit-arm-1769/thttpd: Add a THTTPD configuration for the
+ KBIT-ARM-1769 board. From Rashid.
+ * 2013-02-27: All configurations for the Cortex-M0 NuTINY-SDK-NUC120
+ appear to be functional and stable.
+ * configs/zkit-arm-1769/nsh: Add an NSH configuration for the
+ KBIT-ARM-1769 board. From Rashid.
+ * arch/arm/src/stm32/stm32_otgfsdev.c: Fixes from Petterri Aimonen
+ related to corner cases that can cause infinite interrupts.
+ * drivers/usbdev/usbmsc_scsi.c: Change to allow the full name in the
+ USB descriptor but a truncated, 8-byte name in the SCSI field.
+ From Petteri Aimonen.
+ * arch/arm/src/stm32/stm32_spi.c: Need to clear error flags to prevent
+ corruption of subsequent transfers. Also, bit count should not be
+ changed while the SPI peripheral is enabled. From Petteri Aimonen.
+ * drivers/mmcsd/mmcsd_spi.c: When bus is shared, the speed has to be
+ set every time. Also SD cards require a few dummy clocks to react
+ into CS release. From Petteri Aimonen.
+ * configs/lm4f120-launchpad: In initial configuration for testing
+ the LM4F120 LaunchPad port. This is to support testing only and
+ is not yet a functional board port (as of 2013-03-01).
+ * arch/arm/include/lm/lm4f_irq.h and arch/arm/src/lm/chip/lm4f_vector.h:
+ Add interrupt vector/IRQ number definitions for the LM4F120.
+ * arch/arm/src/stm32f20xxx_dma.c and stm32f40xxx_dma.c: Fix a typo
+ in assigned base register addresses for each DMA channel. From
+ Yan T.
+ * Several build fixes from Mike Smith were incorporated. These were
+ mostly compilation errors introduced into the system because of the
+ large number of recent changes with broad scope (2013-03-04).
+ * configs/zkit-arm-17969/src/up_can.c: Add CAN support to the
+ Zilogics Technologies ZKIT-ARM-1769 board (From Rashid Fatah, (2013-03-04)).
+ * arch/arm/src/lpc17/lpc17*_clockconfig.c: The WaveShare Open1788
+ board now boots and passes the OS test. This is the work of
+ Rommel Marcelo (2013-03-04).
+ * arch/arm/src/lm/lm_gpio.c, lm_gpio.h, and chip/lm4f_pinconfig.h
+ Extend GPIO logic to handle LM4F. Add LM4F pin configuration header
+ file (2013-03-04).
+ * configs/open1788: Enable LED support in all configurations.
+ (2013-03-04)
+ * configs/open1788/nsh: NSH configuration verified function. By Rommel
+ Marcelo (2013-03-05).
+ * configs/open1788/src/lpc17_nsh.c: Use the SD card interface, not SPI
+ to interface with SD cards (2013-03-05.
+ * arch/arm/src/lpc17xx/lpc17_sdcard.c and header files: Clone the STM32
+ SD card interface to the LPC1788. It appears to be the same IP.
+ (2013-03-05)
+ * libc/wqueue: Work queue logic moved from sched/ to libc/wqueue. It
+ is not really core OS functionality and this move helps prepare for
+ user-space work queues. (2013-03-05)
+ * libc/wqueue: Implemented user-space work queues. These will not
+ get tested until the next time I attempt a NuttX kernel build.
+ (2013-03-05).
+ * arch/arm: Correct some bad syscall dispatching logic. This change
+ cannot be fully tested until there is a fielded NuttX kernel build.
+ (2013-03-06).
+ * net/net_poll.c: Correct logic that checks if the socket is
+ disconnected when the poll is setup. That is bad logic: Listen
+ sockets, for example, are not connected. In that case, the purpose of
+ the poll is to wait for connection events. As a result of this,
+ poll/select would return immediately with POLLHUP with it was used to
+ detect connection events. This fix for now was to check instead if
+ the socket is closed (meaning that it was connected at one time but
+ was closed by the remote peer). That excludes the listen socket which
+ was never connected. This does introduce a new problem, however. If
+ the socket was not closed, but lost the connection through an abnormal
+ event, then poll/select will hang. That needs to be revisited.
+ (2013-03-07)
+ * fs/fs_select.c: Was not checking if the timeout parameter was NULL
+ but would, instead, setup a bogus timeout based on whatever it found at
+ address zero. Also, improved some of the memory allocation logic so
+ that it will not use so much memory. (2013-03-07)
+ * net/net_poll.c: Handle the missing case. Now tests for not connected
+ AND not listening. I think that now covers all of the cases including
+ the missing case noted above. (2013-03-07)
+ * mm/: Move all memory manager globals into a structure. A reference
+ to this structure is now passed internally between mm APIs. This
+ change will (eventually) support multiple heaps and heap allocators.
+ (2013-03-08).
+ * mm/ and include/nuttx/mm.h: Implement support for multiple heaps.
+ (2013-03-08).
+ * arch/*/src: xyz_addregion() needs to call kmm_addregion, not mm_addregion.
+ (2013-03-08).
+ * sched/kmm*.c: Move this garbage kmm*.c file to mm/. until I decide what
+ to do with them (which is probably to just delete them). (2013-03-08).
+ * mm/mm_test.c and Makefile.test: Deleted the memory test. This was
+ a good test and helped me a lot when I wrote the memory manager, but
+ now it is in the way and paralyzing other efforts. So the memory unit
+ test was deleted. (2013-03-08)
+ * sched/sched_free.c: Rename sched_free() to sched_ufree(); Add
+ sched_kfree() to handler deferred kernel heap allocations. (2013-03-10)
+ * arch/: User user-accessible heap to allocate all stacks. (2013-03-10)
+ * arch/arm/src/sam3u: The AT91SAM3U will now support a kernel heap if
+ so configured. (2013-03-10)
+ * configs/sam3u-ek/knsh: This configuration was converted to use the
+ kconfigs-frontends build tool. (2013-03-10)
+ * configs/*/include/user_map.h and include/nuttx/userspace.h: Remove
+ the very kludgy user_map.h file and replace it with a header that
+ is expected at the beginning of the user-space blob. (2013-03-10)
+ * configs/sam3u-ek/kernel/up_userspace.c: This is the header for
+ the SAM3U-EK's user space. (2013-03-10)
+ * sched/os_bringup.c: In the kernel build, os_bringup() now uses the
+ user-space header to automatically start the user-space work queue,
+ if so configured. (2013-03-10)
+ * arch/arm/src/lpc17xx/lpc17_mpuinit.c and lpc17_userpace.c: Add
+ support for the MPU and kernel build for the LPC17xx family.
+ (2013-03-11)
+ * configs/open1788/kernel and knsh: Add kernel build support and
+ a kernel NSH configuration for the WaveShare Open1788 board.
+ (2013-03-11)
+ * configs/sam3u_ek/kernel, knsh, and scripts: Move some files around
+ for better supportability. (2013-03-11)
+ * configs/open1788/kernel, knsh, and scripts: Add a kernel mode build
+ configuration for the WaveShare Open1788 board. (2013-03-11)
+ * arch/arm/src/armv7-m/up_mpu.c: Several fixes to MPU logic.
+ (2013-03-12).
+ * arch/arm, configs/sam3u-ek, configs/open1788: Fix memory map for
+ kernel mode build; Some regions were overlapping. (2013-03-13).
+ * arch/: Rename g_heapbase to g_idle_topstack. This is the same value
+ however: The top of the IDLE stack is the same as the base of the
+ heap in the flat build. But not in the kernel build: The base of
+ the heap is elsewhere so the naming was wrong. (2013-03-13).
+ * libc/stdlib/lib_itoa.c: Implementation of itoa() contributed by
+ Ryan Sundberg. (2013-03-14).
-apps-6.25 2013-02-01 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+apps-6.26 2013-03-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
- * Makefiles: Removed dependency of distclean on clean in most top-level
- files. It makes sense for 'leaf' Makefiles to have this dependency,
- but it does not make sense for upper-level Makefiles.
- * apps/namedapp/: Renamed to builtins in preparation for another change.
- * .context: Removed the .context kludge. This caused lots of problems
- when changing configurations because there is no easy way to get the
- system to rebuild the context. Now, the context will be rebuilt
- whenever there is a change in either .config or the Makefile.
- * apps/builtin/registry: Updated new built-in registration logic to handle
- cases where (1) old apps/.config is used, and (2) applications ared
- removed, not just added.
- * apps/examples/nettest/Makefile: Fix an error that crept in during
- some of the recent, massive build system changes.
- * apps/builtin/Makefile: Need to have auto-generated header files
- in place early in the dependency generation phase to avoid warnings.
- It is not important if they are only stubbed out header files at
- this build phase.
- * apps/examples/hidbkd: Now supports decoding of encoded special keys
- if CONFIG_EXAMPLES_HIDKBD_ENCODED is defined.
- * apps/examples/hidbkd: Add support for decoding key release events
- as well. However, the USB HID keyboard drier has not yet been
- updated to detect key release events. That is kind of tricky in
- the USB HID keyboard report data.
- * apps/examples/wlan: Remove non-functional example.
- * apps/examples/ostest/vfork.c: Added a test of vfork().
- * apps/exampes/posix_spawn: Added a test of posix_spawn().
- * apps/examples/ostest: Extend signal handler test to catch
- death-of-child signals (SIGCHLD).
- * apps/examples/ostest/waitpid.c: Add a test for waitpid(), waitid(),
- and wait().
- * builtin/binfs.c: Add hooks for dup() method (not implemented).
- * builtin/exec_builtin.c, nshlib/nsh_parse.c, and nshlib/nsh_builtin.c:
- NSH now supports re-direction of I/O to files (but still not from).
- * builtin/binfs.c: Greatly simplified (it is going to need to be
- very lightweight). Now supports open, close, and a new ioctl to recover
- the builtin filename. The latter will be needed to support a binfs
- binfmt.
- * builtin/binfs.c: Move apps/builtin/binfs.c to fs/binfs/fs_binfs.c
- CONFIG_APPS_BINDIR rename CONFIG_FS_BINFS
- * apps/include/builtin.h: Some of the content of
- apps/include/apps.h moved to include/nuttx/binfmt/builtin.h.
- apps/include/apps.h renamed builtin.h
- * apps/builtin/exec_builtins.c: Move builtin
- utility functions from apps/builtin/exec_builtins.c to
- binfmt/libbuiltin/libbuiltin_utils.c
- * apps/nshlib/nsh_mountcmds.c: The block driver/source
- argument is now optional. Many files systems do not need
- a source and it is really stupid to have to enter a bogus
- source parameter.
- * apps/nshlib/nsh_fileapp.c: Add the ability to execute a file
- from a file system using posix_spawn().
- * apps/builtin/: Extensions from Mike Smith.
- * apps/examples/ftpd/Makefile: Name ftpd_start is not the name of
- the entrypoint. Should be ftpd_main (from Yan T.)
- * apps/netutils/telnetd/telnetd_driver: Was stuck in a loop if
- recv[from]() ever returned a value &lt;= 0.
- * apps/examples/nettest and poll: Complete Kconfig files.
- * apps/examples/ostest/waitpid.c: Need to use WEXITSTATUS()
- to decode the correct exit status.
- * apps/system/usbmonitor: A daemon that can be used to monitor USB
- trace outpout.
- * apps/nshlib/nsh_usbdev.c, nsh_consolemain.c, nsh_session.c, nsh_script.c:
- Add 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.
- * apps/system/readline: Correct readline() return value. Was not
- any returning special values when end-of-file or read errors
- occur (it would return an empty string which is not very useful).
+ * apps/builtin/exec_builtin.c: Now uses task_spawn() to start
+ builtin applications.
+ * Type of argv has changed from const char ** to char * const *
+ * apps/nshlib/nsh_parse.c: Fix memory lead: Need to detach after
+ creating a pthread.
+ * apps/examples and nshlib: Change name of _TCB to struct tcb_s to
+ match NuttX name change.
+ * apps/examples/ostest/restart.c: Add a test case to verify
+ task_restart().
+ * apps/system/readline.c: readline() now returns EOF on any failure
+ (instead of a negated errno value). This is because the underlying
+ read is based on logic similar to getc. The value zero was being
+ confused with a NUL. So if a NUL was received, the NSH session
+ would terminate because it thought it was the end of file.
-NxWidgets-1.5 2013-02-01 Gregory Nutt &lt;gnutt@nuttx.org&gt;
+NxWidgets-1.6 2013-03-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;
- * NxWidgets::CGraphicsPort::move(): Fix typo bug in bounding rectangle
- calculation (from Petteri Aimonen).
- * NxWM::CScrollingPanel::scrollChildren(): Avoid unnecessary redraws in
- CScrollingPanel (contributed by Petteri Aimonen).
- * NxWM::CCycleButton: Remove the separator from CCycleButton. It draws in
- wrong place, and doesnt look very good in the correct place either.
- (from Petteri Aimonen).
- * NxWidgets::CGraphicsPort: Many times we only want a constant background.
- In that case the old code fills the background, reads it back, renders
- the text and then writes it back. When used with LCD's (instead of
- framebuffers) this causes unnecessary delay and screen flicker.
- This commit adds a variant of drawText that takes background color,
- so that the background and text can both be rendered at one go.
- The old functions still function as before (Petteri Aimonen).
- * NxWidgets::CLabel: The label was drawn as a single rectangular region,
- then a text was added to the on top of this. The result is that the
- text would flicker when the CLabel was updated. With this change, the
- two step update is replaced with a five step update: The background
- is updated as four rectangulear regions (leaving the previous text in
- place), then the new text is updated. This eliminates the flicker
- (Petteri Aimonen).
- * Kconfig: Many NxWidgets/NxWM settings do not have meaningful, generic
- default values. Colors, for example, depend on pixel depth. Some
- geometry settings depending on other geometry settings. Font IDs are
- not know-able by the configuration system. etc. In these cases, it
- is best if the settings are just not undefined so that the system can
- calculate a reasonable default. however, if no default is provided
- in the .config file, mconf will complain and generate errors. So work
- around this, I added several &quot;enabling&quot; settings to override the
- default setting. This is awkward and I preferred the configuration as
- it was before, but this avoids the mconf errors and warnings.
- * UnitTests: Changed occurrences of lib_rawprintf() and lib_lowprintf()
- to match recent changes to NuttX (will be in NuttX-6.25)
- * CGraphicsPort::_drawText: Renamed from CGraphicsPort::drawText in order
- to eliminate some naming collisions when overloaded in some configurations
- (i.e., when both bool and nx_pixel_t are uint8_t). From Petteri Aimonen.
- * CNxWidgets::drawContents: Change base drawContents from a do-nothing
- function to a function that fills the widget with the background color.
- This is useful when using CNxWidgets as a &quot;panel&quot; , i.e. a container
- for other widgets. Subclasses will override drawContents and decide
- themselves how to draw the background.
- * CNxWidgets::CTabPanel: A new widget contributed by Petteri Aimonen.
- This widget provides a tab panel, which has a button bar at the top
- and panels below it. Pressing a button will select the corresponding
- panel.
+ * Type of argv[] has changed from const char ** to char * const *
+ * NXWidgets::CNxWidget: Add an inline function to get the current style.
+ * NxWM::CTaskBar: Make a some methods of CTaskbar virtual to allow
+ customizations. From Petteri Aimonen.
+ * NXWidgets::CCycleButton: Make CCycleButton change state in onPreRelease().
+ This way the new value is already available when a listener gets the
+ action event. From Petteri Aimonen.
+ * NxWidgets/tools/bitmap_converter.py: Fix bitmap_converter.py so that
+ it works with indexed input images.
+ * NxWidgets::CLabel: Fix backward conditional compilation in the
+ &quot;flicker free&quot; logic.
+ * NxWidgets::CNxTimer: Previously repeated timers were re-enabled after
+ the timer action event. Consequently, if the action event handler tried
+ to stop the timer, the request would be ignored. Changes the order
+ so that the timer is re-enabled before the callback. There is still
+ no risk of re-entrancy, because everything executes on the USRWORK work
+ queue. From Petteri Aimonen.
+ * NxWidgets::CMultiLineTestBox: Fix text placement error. From Petteri
+ Aimonen.
+ * NxWidgets::CWidgetControl: Added another semaphore, boundssem, which
+ is set as soon as the screen bounds are known. This corrects two
+ problems:
+ 1) Due to the way nxgl_rectsize computes the size, it will never
+ be 0,0 like CWidgetControl expects. Therefore the size is considered
+ valid even though it has not been set yet.
+ 2) After the check is fixed to test for &gt; 1, NxWM window creation will
+ hang. This is due to the fact that it uses the screen bounds for
+ determining window size. This was being blocked on geosem, which
+ is only posted after the size has been set.
+ From Petteri Aimonen.
+ * NxWidgets::CImage: Two enhancements:
+ 1) Allow changing the bitmap even after the control has been created.
+ 2) Allow giving 'null' to have the control draw no image at all.
+ From Petteri Aimonen.
+ * NxWM::CTaskBar: Allow windows with null icon. This makes sense for e.g.
+ full screen windows. From Petteri Aimonen.
+ * NxWM::CApplicationWindow: Add config options to override NxWM
+ stop/minimize icons. From Petteri Aimonen.
+ * NwWM::CStartWindow, NxWM::CWindowMessenger: Get rid of the start window
+ thread. Instead, handle all events through the USRWORK work queue.
+ For me, this was necessary because I would open some files in button
+ handlers and close them in NxTimer handlers. If these belonged to
+ different tasks, the close operation would fail. Further benefits:
+ + Gets rid of one task and message queue.
+ + Reduces the amount of code required
+ + Decouples CStartWindow from everything else - now it is just a window
+ with application icons, not an integral part of the event logic.
+ + All events come from the same thread, which reduces the possibility of
+ multithreading errors in user code.
+ + The user code can also send events to USRWORK, so that everything gets
+ serialized nicely without having to use so many mutexes.
+ Drawbacks:
+ - Currently the work state structure is malloc()ed, causing one allocation
+ and free per each input event. Could add a memory pool for these later, but
+ the speed difference doesn't seem noticeable.
+ - The work queue will add ~50 ms latency to input events. This is however
+ configurable, and the delay is anyway short enough that it is unnoticeable.
+ From Petteri Aimonen.
uClibc++-1.0 2011-11-05 &lt;gnutt@nuttx.org&gt;
@@ -4264,31 +4055,11 @@ uClibc++-1.0 2011-11-05 &lt;gnutt@nuttx.org&gt;
C++ library for NuttX. This package was contributed ay Qiang Yu and
David for the RGMP team.
-buildroot-1.11 2011-11-05 &lt;gnutt@nuttx.org&gt;
+buildroot-1.12 2011-13-15 &lt;gnutt@nuttx.org&gt;
- * configs/avr-defconfig-4.3.3 - Added --enable-long-long as a GCC
- option.
- * configs/avr-defconfig-4.5.2 - New configuration.
- * Config.in and almost all configurations in configs/ - Changed the
- default nuttx path to $(TOPDIR)/../../nuttx
- * Misc files. Patch provided by Gerd v. Egidy that solves the following
- problems
- - binutils 2.21 is not available on the gnu servers anymore, they replaced
- it with 2.21.1
- - there is some assembler error when compiling gcc for arm, gcc bugzilla
- 43999
- - you can't build nuttx for cortex m3/m4 because of a missing instruction
- in the assembler, binutils bugzilla 12296
- * Add support for binutils 2.22 and GCC 4.6.3.
- * Change name of all tools from xxx-elf to xxx-nuttx-elf
- * Added an ARM EABI GCC 4.6.3 configuration (tool name is arm-nuttx-eabi-).
- * ldnxflat: Add support for the R_ARM_REL32 relocation. This relocation
- type was not generated by GCC/LD prior to gcc-4.6.3
- * R_ARM_REL32 logic is conditionally disabled because it has not been
- tested.
- * ldnxflat: Correct a memory allocation error that could cause written
- past the end of allocated memory. Partial restoration of R_ARM_REL32
- logic. There are lots of issues that I still do not understand here.
+ * Fix typo toolchain/gdb/Config.in that prevented GDB 7.4 from building
+ (from Ken Bannister).
+ * Add support for a Cortex-M0 toolchain based on GCC 4.6.3.
pascal-3.0 2011-05-15 Gregory Nutt &lt;gnutt@nuttx.org&gt;