update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@451 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
28b8f4a2e6
commit
48a5b245df
@ -49,6 +49,10 @@
|
|||||||
<td><img src="favicon.ico"></td>
|
<td><img src="favicon.ico"></td>
|
||||||
<td><a href="#history">Release History</a></td>
|
<td><a href="#history">Release History</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="favicon.ico"></td>
|
||||||
|
<td><a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="favicon.ico"></td>
|
<td><img src="favicon.ico"></td>
|
||||||
<td><a href="#documentation">Other Documentation</a></td>
|
<td><a href="#documentation">Other Documentation</a></td>
|
||||||
@ -642,11 +646,18 @@ Other memory:
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<p>
|
||||||
|
The current NuttX Change Log is available in CVS <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/ChangeLog">here</a>.
|
||||||
|
ChangeLog snapshots associated with the current release are available below.
|
||||||
|
</p>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<center><table width ="80%">
|
<center><table width ="80%">
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="favicon.ico"></td>
|
<td><img src="favicon.ico"></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="#olderreleases">Change Logs for Older Releases</a><br>
|
<a href="ChangeLog.txt">Change Logs for all releases</a><br>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@ -663,276 +674,6 @@ Other memory:
|
|||||||
</tr>
|
</tr>
|
||||||
</table></center>
|
</table></center>
|
||||||
|
|
||||||
<table width ="100%">
|
|
||||||
<tr bgcolor="#e4e4e4">
|
|
||||||
<td>
|
|
||||||
<a name="olderreleases">Change Logs for Older Releases</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<ul><pre>
|
|
||||||
0.1.0 2007-03-09 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Initial Release
|
|
||||||
* Support for Linux user mode simulation and TI
|
|
||||||
TMS320C5471 (Arm7) provided
|
|
||||||
|
|
||||||
0.1.1 2007-03-14 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Corrected an error in interrupt level context switching
|
|
||||||
for C5471
|
|
||||||
* Added fgets() and gets() logic; verified c5471 console read.
|
|
||||||
* Corrected error in reading from the C5471 serial port:
|
|
||||||
Improper use of semaphore can cause deadlock.
|
|
||||||
* Fixed an error in the memory cleanup: The idle task
|
|
||||||
cannot take sempahores (because it must always be ready
|
|
||||||
to run).
|
|
||||||
* Tasks can now accept a configurable maximum number of
|
|
||||||
input parameters (argc)
|
|
||||||
* _task_init() was divided into separate functions that
|
|
||||||
require fewer parameters. This was necessary to keep
|
|
||||||
the stack usage down for the 8051/2 (which has only
|
|
||||||
256 bytes of stack).
|
|
||||||
* Attempts to use C5471 console from interrupt handlers
|
|
||||||
can cause errors. Added a special path for this case.
|
|
||||||
* Refuse calls to sem_wait and sem_trywait from interrupt
|
|
||||||
handlers. This was happening because interrupt handlers
|
|
||||||
were calling printf-like functions.
|
|
||||||
* Added strtok() and strtok_r()
|
|
||||||
* Added a simple shell called nsh (see examples/nsh).
|
|
||||||
* Platform support for 8052 is complete but not stable
|
|
||||||
when the timer interrupt is enabled. Seems to be an
|
|
||||||
issue when SP enters indirect address space.
|
|
||||||
* Documentation updates
|
|
||||||
|
|
||||||
0.1.2 2007-03-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Add dirent.h, opendir(), readdir(), closedir(), etc.
|
|
||||||
* Add strerror()
|
|
||||||
* Added 'ls' command to nsh
|
|
||||||
* Added C5471 watchdog driver
|
|
||||||
* Fixed another bug where free() is called from IDLE task.
|
|
||||||
Can't do this; the caller must be able to wait for access
|
|
||||||
to memory.
|
|
||||||
* Fixed bugs associated with debug output:
|
|
||||||
Cannot do dbg() in middle of context switch logic.
|
|
||||||
because it may require use of semaphores and cause
|
|
||||||
additional context switches. lldbg() is safe.
|
|
||||||
* Interrupt must be disabled throughout all context switches.
|
|
||||||
* Separated C5471 serial driver; a shareable part is
|
|
||||||
in drivers/. ; the C5471 specific part is in arch/C5471.
|
|
||||||
serial.h defines the interface.
|
|
||||||
* Fixed mq_receive() and mq_send() -- bad memcpy()
|
|
||||||
* Fixed C5471 signal deliver logic: use of dbg() and
|
|
||||||
other actions by use signal handler can alter errno.
|
|
||||||
need to protect errno during signal handling.
|
|
||||||
* Fixed uninitialized variable in filesystem that could
|
|
||||||
cause various problems
|
|
||||||
* Added a test for roundrobin scheduler.
|
|
||||||
|
|
||||||
0.2.1 2007-03-22 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Fix error in handing signed decimal in vsprintf().
|
|
||||||
* Major restructuring of header files to get closer to
|
|
||||||
POSIX compliance.
|
|
||||||
* Eliminate compilation warnings that that crept into
|
|
||||||
recent check-ins
|
|
||||||
* Add kill()
|
|
||||||
* Added support for POSIX timers
|
|
||||||
* Some Documentation updates
|
|
||||||
* Added support for the Neuros OSD / DM320
|
|
||||||
|
|
||||||
0.2.2 2007-03-26 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
* Created the configs/ directory; separated board configuration
|
|
||||||
from processor architecture logic
|
|
||||||
* Add memory leak detection test to examples/ostest
|
|
||||||
* Corrected memory leak in OS pthread join logic
|
|
||||||
* Corrected memory leaks in examples/ostest due to failures
|
|
||||||
to join or detach from pthreads.
|
|
||||||
* Added pthread_once(), pthread_kill(), pthread_sigmask()
|
|
||||||
* Added pthread_barrierattr_*() APIs
|
|
||||||
* Added pthread_barrier_init(), pthread_barrier_destroy(), and
|
|
||||||
pthread_barrier_wait();
|
|
||||||
* Added pthread barrier test
|
|
||||||
* Added protection so that errno cannot be modified from
|
|
||||||
interrupt handling.
|
|
||||||
* sched_setparam(), sched_setscheduler() now correctly set
|
|
||||||
errno; pthread_setscheduler() now returns the correct errno.
|
|
||||||
* Added pthread_setschedprio().
|
|
||||||
* Added directories to hold board-specific header files
|
|
||||||
* Added directories to hold board-specific drivers
|
|
||||||
|
|
||||||
0.2.3 2007-03-29 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* mq_receive and mq_send now return errno's appropriately
|
|
||||||
* mq_receive and mq_send are now correctly awakened by signals.
|
|
||||||
* Fixed an unmatched sched_lock/unlock pair in task_delete().
|
|
||||||
* sched_lock must be called in _exit() because operation of
|
|
||||||
task_delete() can cause pending tasks to be merged and a
|
|
||||||
context switch to occur.
|
|
||||||
* Added mq_timedreceive() and mq_timedsend()
|
|
||||||
* signal mask is now inherited by both child tasks and threads.
|
|
||||||
* Improved sharebility of stdout among pthreads (only). Nothing
|
|
||||||
was broken, but by moving the mutual exclusion logic to a
|
|
||||||
higher level, the printf output is more readable.
|
|
||||||
* Fixed a bug in file system cleanup: A list was being deleted
|
|
||||||
before the buffers contained in the list.
|
|
||||||
* Fixed a bug in the wait-for-message-queue-not-empty logic.
|
|
||||||
* Added a test of timed mqueue operations; detected and corrected
|
|
||||||
some mqueue errors.
|
|
||||||
* Identified and corrected a race condition associated with
|
|
||||||
pthread_join. In the failure condition, memory was being
|
|
||||||
deallocated while still in use.
|
|
||||||
|
|
||||||
0.2.4 2007-04-28 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Verfied c5471 build under Cygwin on WinXP
|
|
||||||
* Makesystem changes to better support different SoCs.
|
|
||||||
* Made arch/c5471/include and arch/dm320/include identical in
|
|
||||||
preparation for merging into arch/arm
|
|
||||||
* Logic from arch/c5471 and arch/dm320 combined into arch/arm.
|
|
||||||
arch/c5471 and arch/dm320 are deprecated and will be removed
|
|
||||||
when the new c5471 and dm320 logic is verified.
|
|
||||||
|
|
||||||
0.2.5 2007-05-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Corrected some build/configuration issues introduced with the
|
|
||||||
last release.
|
|
||||||
* Added support for the NXP 214x processor on the mcu123.com lpc214x
|
|
||||||
development board (untested)
|
|
||||||
* Added support for block devices.
|
|
||||||
* Simulated target now exports a VFAT filesystem
|
|
||||||
* Begin support for VFAT filesystem (missing functionalit)
|
|
||||||
* Added mount() and umount()
|
|
||||||
* Fix bug in memcmp return value
|
|
||||||
* Fix errors in timeslice calculation (several places)
|
|
||||||
* Added missing irqrestore() in timer_deletall().
|
|
||||||
* close() was not closing the underlying device.
|
|
||||||
* Added fsync()
|
|
||||||
* Added strspn() and strcspn()
|
|
||||||
|
|
||||||
0.2.6 2007-05-26 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Added unlink(), mkdir(), rmdir(), and rename()
|
|
||||||
* Fixed several serious FAT errors with oflags handling (&& instead of &)
|
|
||||||
* Added FAT support for unlink(), mkdir(), rmdir(), and rename
|
|
||||||
* Added FAT support for opendir(), closedir(), readdir(), seekdir(),
|
|
||||||
telldir(), rewindir().
|
|
||||||
* Fixed ARM compilation errors introduced in 0.2.5 (that is what I get
|
|
||||||
for only testing on the simulation).
|
|
||||||
|
|
||||||
0.2.7 2007-06-09 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Added stat() to fs layer and to FAT
|
|
||||||
* Fixed reference counting errors associated with mounted filesystems
|
|
||||||
* Added fat_getattrib() and fat_setattrib()
|
|
||||||
* Added statfs() to fs layer and to FAT
|
|
||||||
* Correct file name extension in tools/zipme.sh
|
|
||||||
* Fix error in dependencies in 8051/2 Makefile
|
|
||||||
* sched/Makefile: Don't build sleep() or usleep() if signals are disabled
|
|
||||||
* sched/sched_setparam.c: Remove redundant disabling of interrupts
|
|
||||||
* sched/usleep.c: Fixed nsec calculation
|
|
||||||
* lib/lib_strcspn.c: Function incorrectly named strspn().
|
|
||||||
* examples/ostest/main.c: Errors in SDCC version of a memcpy() call
|
|
||||||
* examples/ostest/sighand.c: Don't call fflush() if streams are disabled
|
|
||||||
* include/limits.h, include/time.h, sched/clock_internal.h: A support for
|
|
||||||
using selectable system timer frequency.
|
|
||||||
* Fixed error in mountpoint related conditional compilation introduced
|
|
||||||
in 0.2.5
|
|
||||||
* Restructured some Makefiles to better handle enabling and disabling
|
|
||||||
NuttX features without having so much conditional compilation in the
|
|
||||||
source files.
|
|
||||||
* tools/mkconfig.c: No longer depends on asprintf() and _GNU_SOURCE and
|
|
||||||
so should now build in non-GNU, non-GLIBC environments.
|
|
||||||
* include/nuttx/compiler.h: Fix for using SDCC with the Z80.
|
|
||||||
* include/assert.h & arch/pjrc-8051/src/up_assert.c: SDCC does support
|
|
||||||
__FILE__and __LINE__ (not tested)
|
|
||||||
* examples/ostest/barrier.c: Don't call usleep() when signals are
|
|
||||||
disabled.
|
|
||||||
|
|
||||||
0.2.8 2007-07-02 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
* tools/Makefile.mkconfig: Under Cygwin, executable has a different name
|
|
||||||
* tools/mkdeps.sh & arch/arm/src/Makefile: Corrected a problem makeing dependencies
|
|
||||||
* tools/zipme.sh: Force directory name to be nuttx-xx.yy.zz
|
|
||||||
* fs/fs_opendir.c: Correct errors in semaphore usage that can cause deadlock.
|
|
||||||
* lib/lib_getopt.c: Added getopt() support
|
|
||||||
* examples/nsh/: NSH now supports cat, mount, umount, and mkdir. ls supports
|
|
||||||
-l -s, and -R
|
|
||||||
* Added basic OS support to manage environment variables: environment
|
|
||||||
storage, cloning on task creation, sharing on pthread creation, destruction
|
|
||||||
on thread/task exit.
|
|
||||||
* Add environment variables APIs: environ, getenv, putenv, clearenv, setenv,
|
|
||||||
unsetenv
|
|
||||||
* Correct an error in realloc() when the block is extended "down" in memory.
|
|
||||||
In this case, the old memory contents need to be copied to the new location
|
|
||||||
and an allocated bit was not being set.
|
|
||||||
* examples/ostest/: Added an environment variable test.
|
|
||||||
* examples/nsh/: Break into several files.
|
|
||||||
* lib/: Added strrchr, basename, dirname
|
|
||||||
* examples/nsh/: Add cp, rm, rmdir, set, unset commands. echo will now print
|
|
||||||
environment variables.
|
|
||||||
|
|
||||||
0.3.0 2007-11-06 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Imported uIP into the tree (see
|
|
||||||
http://www.sics.se/~adam/uip/index.php/Main_Page)
|
|
||||||
* Adding socket(), bind(), connect()
|
|
||||||
* Added snprintf()
|
|
||||||
* Added send() and sendto(); integrate write() and close() with socket descriptors.
|
|
||||||
* Added recv() and recvfrom().
|
|
||||||
* Added getsockopt() and setsockopt()
|
|
||||||
* Documentation updated to address socket interfaces.
|
|
||||||
* Implemented receive timeouts via setsockopt(SO_RCVTIMEO).
|
|
||||||
* Provide support for multiple network devices
|
|
||||||
* Implement socket ioctl() calls to set addresses
|
|
||||||
* Added listen() and accept()
|
|
||||||
* Added DM90x0 ethernet driver
|
|
||||||
* ARP timer is now built into the network layer
|
|
||||||
* Basic client functionality verified: socket(), bind(), connect(), recv(), send().
|
|
||||||
|
|
||||||
0.3.1 2007-11-19 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Separated net/uip/uip.c into several functions in several files.
|
|
||||||
* Corrected a TCP problem where packets were dropped because there was no
|
|
||||||
recv() in place but the packet was being ACKed. There are still TCP
|
|
||||||
recv buffering issues, but this is part of a larger buffering issue.
|
|
||||||
* Basic server functionality verified: listen(), accept()
|
|
||||||
* Fix DM90x0 driver problem that caused TX overruns
|
|
||||||
* Add strncmp()
|
|
||||||
* Added TCP/IP read-ahead buffer to minimize failed ACKs and packet loss.
|
|
||||||
|
|
||||||
0.3.2 2007-11-23 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Add strcat() and strncat()
|
|
||||||
* Integrated uIP micro webserver
|
|
||||||
* Corrected a serious bug in TCP queue management
|
|
||||||
* Fix leak in socket close logic
|
|
||||||
* Add TX notification to driver so that it can respond faster to
|
|
||||||
the availability of TX data.
|
|
||||||
* Moved urgent data info into device structure.
|
|
||||||
* TCP and ICMP protocols can now be disabled.
|
|
||||||
* Added UDP test in examples/udp
|
|
||||||
* Verified/debugged UDP socket(), bind(), sendto() and recvfrom() logic
|
|
||||||
using examples/udp
|
|
||||||
* recvfrom() and accept() now correctly return the remote address.
|
|
||||||
* Fixed computation error in ntohl().
|
|
||||||
|
|
||||||
0.3.3 2007-11-28 Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
|
|
||||||
* Removed unused uIP files
|
|
||||||
* sched/, mm/, and net/ subystem debug can not be selectively enabled/disabled
|
|
||||||
* Correct socket close logic -- needs to disconnect TCP socket on close
|
|
||||||
* uIP webserver now seems to be fully functional
|
|
||||||
* fs/ and lib/ subystem debug can not be selectively enabled/disabled
|
|
||||||
* Added vsnprintf
|
|
||||||
* Integrated uIP telnetd
|
|
||||||
* Add missing logic to readahead buffer logic
|
|
||||||
* examples/nettest uses larger buffers
|
|
||||||
* Improved ACK handling in send() to better hander deferred acknowledgements
|
|
||||||
and polling intervals. Greatly improves send performance.
|
|
||||||
</pre></ul>
|
|
||||||
|
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
<tr bgcolor="#e4e4e4">
|
<tr bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
@ -978,6 +719,20 @@ Other memory:
|
|||||||
* NSH ifconfig command now shows uIP status was well (examples/nsh)
|
* NSH ifconfig command now shows uIP status was well (examples/nsh)
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
|
|
||||||
|
<table width ="100%">
|
||||||
|
<tr bgcolor="#e4e4e4">
|
||||||
|
<td>
|
||||||
|
<a name="TODO"><h1>Bugs, Issues, <i>Things-To-Do</i></h1></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<p>
|
||||||
|
The current list of NuttX <i>Things-To-Do</i> in CVS <a href="http://nuttx.cvs.sourceforge.net/*checkout*/nuttx/nuttx/TODO">here</a>.
|
||||||
|
A snapshot of the <i>To-Do</i> list associated with the current release are available <a href="TODO.txt">here</a>.
|
||||||
|
</p>
|
||||||
|
</ul>
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
<tr bgcolor="#e4e4e4">
|
<tr bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
@ -995,6 +750,14 @@ Other memory:
|
|||||||
<td><img src="favicon.ico"></td>
|
<td><img src="favicon.ico"></td>
|
||||||
<td><a href="NuttxPortingGuide.html">Porting Guide</a></td>
|
<td><a href="NuttxPortingGuide.html">Porting Guide</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="favicon.ico"></td>
|
||||||
|
<td><a href="ChangeLog.txt">Change Log</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><img src="favicon.ico"></td>
|
||||||
|
<td><a href="TODO.txt">To-Do List</a></td>
|
||||||
|
</tr>
|
||||||
</center></ul>
|
</center></ul>
|
||||||
|
|
||||||
<small>
|
<small>
|
||||||
|
373
TODO
373
TODO
@ -1,111 +1,302 @@
|
|||||||
NuttX TODO List
|
NuttX TODO List (Last updated December 13, 2007)
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
o Task/Scheduler
|
(6) Task/Scheduler (sched/)
|
||||||
- When a tasks exits, shouldn't all of its child pthreads also be terminated?
|
(2) Memory Managment (mm/)
|
||||||
- Should task_delete() cause atexit() function to be called?
|
(1) Signals (sched/, arch/)
|
||||||
- Implement sys/mman.h and functions
|
(1) pthreads (sched/)
|
||||||
- Implement sys/wait.h and functions
|
(1) C++ Support
|
||||||
- Implement priority inheritance
|
(10) Network (net/, netutils/)
|
||||||
- Consider implementing wait, waitpid, waitid. At present, a parent has
|
(2) USB (drivers/usbdev)
|
||||||
no information about child tasks.
|
(2) Libraries (lib/)
|
||||||
- Several APIs do not set errno. Need to review all APIs.
|
(2) File system (fs/, drivers/)
|
||||||
|
(2) Documentation (Documentation/)
|
||||||
|
(3) Build system
|
||||||
|
(0) Applications & Tests (examples/)
|
||||||
|
(1) ARM (arch/arm/)
|
||||||
|
(0) ARM/C5471 (arch/arm/src/c5471/)
|
||||||
|
(1) ARM/DM320 (arch/arm/src/dm320/)
|
||||||
|
(2) ARM/LPC214x (arch/arm/src/lpc214x/)
|
||||||
|
(3) pjrc-8052 / MCS51 (arch/pjrc-8051/)
|
||||||
|
|
||||||
o Memory Managment
|
|
||||||
- Add an option to free all memory allocated by a task when the task exits.
|
|
||||||
This is probably not be worth the overhead for a deeply embedded system.
|
|
||||||
- Current logic adapts size_t for 16-bit address machines vs. 32-bit address
|
|
||||||
machines. But a small memory option should also be provided so that
|
|
||||||
the small offset option can be used with 32-bit machines that have small
|
|
||||||
RAM memories (like the lpc2148)
|
|
||||||
|
|
||||||
o Signals
|
o Task/Scheduler (sched/)
|
||||||
- 'Standard' signals and signal actions are not supported.
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
o pthreads
|
Description: When a tasks exits, shouldn't all of its child pthreads also be
|
||||||
- pthread_cancel(): Should implement cancellation points and pthread_testcancel()
|
terminated?
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium, required for good emulation of process/pthread model.
|
||||||
|
|
||||||
|
Description: atexit() supports registration of one function called on exit().
|
||||||
|
Should task_delete() also cause atexit() function to be called?
|
||||||
|
Status: Open
|
||||||
|
Priority: Low, task_delete() is non-standard and its behavior is
|
||||||
|
unspecified.
|
||||||
|
|
||||||
|
Description: Implement sys/mman.h and functions
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: Implement sys/wait.h and functions. Consider implementing wait,
|
||||||
|
waitpid, waitid. At present, a parent has no information about
|
||||||
|
child tasks.
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: Implement priority inheritance
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium, this is a good feature for realtime systems.
|
||||||
|
|
||||||
|
Description: Several APIs do not set errno. Need to review all APIs.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium, required for standard compliance (but makes the
|
||||||
|
code bigger)
|
||||||
|
|
||||||
|
o Memory Managment (mm/)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: Add an option to free all memory allocated by a task when the
|
||||||
|
task exits. This is probably not be worth the overhead for a
|
||||||
|
deeply embedded system.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium/Low, a good feature to prevent memory leaks but would
|
||||||
|
have negative impact on memory usage and code size.
|
||||||
|
|
||||||
|
Description: Current logic adapts size_t for 16-bit address machines vs.
|
||||||
|
32-bit address machines. But a small memory option should also
|
||||||
|
be provided so that the small offset option can be used with
|
||||||
|
32-bit machines that have small RAM memories (like the lpc2148)
|
||||||
|
Status: Open
|
||||||
|
Priority: High, a good feature enhancement.
|
||||||
|
|
||||||
|
o Signals (sched/, arch/)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: 'Standard' signals and signal actions are not supported.
|
||||||
|
(e.g., SIGINT, SIGCHLD, SIGSEGV, etc).
|
||||||
|
Status: Open
|
||||||
|
Priority: Low, required by standards but not so critical for an
|
||||||
|
embedded system.
|
||||||
|
|
||||||
|
o pthreads (sched/)
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: pthread_cancel(): Should implement cancellation points and
|
||||||
|
pthread_testcancel()
|
||||||
|
Status: Open
|
||||||
|
Priority: Low, probably not that useful
|
||||||
|
|
||||||
o C++ Support
|
o C++ Support
|
||||||
- Need to call static constructors
|
^^^^^^^^^^^
|
||||||
|
|
||||||
o Network
|
Description: Need to call static constructors
|
||||||
- uIP's netutils/smtp, resolv, webclient -- untested
|
Status: Open
|
||||||
- Should implement SOCK_RAW, SOCK_PACKET
|
Priority: Low, depends on toolchain. Call to gcc's built-in static
|
||||||
- uIP polling issues:
|
constructor logic will probably have to be performed by
|
||||||
(1) Current logic will not support multiple ethernet drivers. Each driver should
|
user logic in user_start().
|
||||||
poll on TCP connections connect on the network supported by the driver; UDP
|
|
||||||
polling should respond with TX data only if the UDP packet is intended for the
|
|
||||||
the network supported by the driver.
|
|
||||||
(2) If there were multiple drivers, polling would occur at double the rate.i
|
|
||||||
Fix by using bound IP address in TCP connection (lipaddr) and verifying that it
|
|
||||||
is in the subnet served by the driver.
|
|
||||||
- uIP/Socket callback logic is not thread safe. This means that a socket cannot be
|
|
||||||
used concurrently by two threads. Minimal fix: Add mutex to support exclusion.
|
|
||||||
- IPv6 support is incomplete
|
|
||||||
- Incoming UDP broadcast should only be accepted if listening on INADDR_ANY(?)
|
|
||||||
- Should add some driver call to support throttling... when there is no listener
|
|
||||||
for new data, the driver should be throttled. Perhaps the driver should disable
|
|
||||||
RX interrupts when throttled and re-anable on each poll time. recvfrom would,
|
|
||||||
of course, have to un-throttle.
|
|
||||||
- Need to standardize collection of statistics from network drivers. examples/nsh
|
|
||||||
ifconfig command should present statistics.
|
|
||||||
|
|
||||||
o USB
|
o Network (net/, netutils/)
|
||||||
- Implement USB device support
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
- Implement USB bulk device
|
|
||||||
|
|
||||||
o Libraries
|
Description: Several of the netutils/ apps are untested. These include
|
||||||
- sscanf() and lib_vsprintf() do not support floating point values.
|
uIP's netutils/smtp, dhcpd, resolv, webclient. Only minimal
|
||||||
- The definition of environ in stdlib.h is bogus and will not work as it should. This
|
testing of the others has been performed.
|
||||||
is because the underlying representation of the environment is not an arry of pointers.
|
Status: Open
|
||||||
|
Priority: Medium, Important but not core NuttX functionality
|
||||||
|
|
||||||
o File system
|
Description: Should implement SOCK_RAW, SOCK_PACKET
|
||||||
- Add chmod(), truncate().
|
Status: Open
|
||||||
- FAT32: long file names
|
Priority: Low
|
||||||
|
|
||||||
o Documentation
|
Description: uIP polling issues / Multiple network interface support:
|
||||||
- Document driver/ logic
|
(1) Current logic will not support multiple ethernet drivers.
|
||||||
- Document C-library APIs
|
Each driver should poll on TCP connections connect on the
|
||||||
|
network supported by the driver; UDP polling should respond
|
||||||
|
with TX data only if the UDP packet is intended for the
|
||||||
|
the network supported by the driver.
|
||||||
|
(2) If there were multiple drivers, polling would occur at
|
||||||
|
double the rate. Fix by using bound IP address in TCP
|
||||||
|
connection (lipaddr) and verifying that it is in the subnet
|
||||||
|
served by the driver.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium, The feature is not important, but it is important
|
||||||
|
for NuttX to resolve the architectural issues.
|
||||||
|
|
||||||
|
Description: Sendoto() and multiple network interface support:
|
||||||
|
When polled, would have to assure that the destination IP
|
||||||
|
is on the subnet served by the polling driver.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium, The feature is not important, but it is important
|
||||||
|
for NuttX to resolve the architectural issues.
|
||||||
|
|
||||||
|
Description: uIP/Socket callback logic is not thread safe. This means that
|
||||||
|
a socket cannot be used concurrently by two threads. Minimal
|
||||||
|
fix: Add mutex to support exclusion for protection.
|
||||||
|
Status: Open
|
||||||
|
Priority: Low. The currently socket design cannot be use concurrently
|
||||||
|
by threads with out a major redesign. The feature is not
|
||||||
|
of great value since the use model for multi-thread sockets
|
||||||
|
is not common. Adding mutex support would only mask the
|
||||||
|
underlying issue.
|
||||||
|
|
||||||
|
Description: IPv6 support is incomplete
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium
|
||||||
|
|
||||||
|
Description: Incoming UDP broadcast should only be accepted if listening on
|
||||||
|
INADDR_ANY(?)
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: Read-ahead buffers capture incoming TCP data when no user
|
||||||
|
thread is recv-ing the data. Should add some driver call to
|
||||||
|
support throttling; when there is no listener for new data, the
|
||||||
|
driver should be throttled. Perhaps the driver should disable
|
||||||
|
RX interrupts when throttled and re-anable on each poll time.
|
||||||
|
recvfrom would, of course, have to un-throttle.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium
|
||||||
|
|
||||||
|
Description: Need to standardize collection of statistics from network
|
||||||
|
drivers. examples/nsh ifconfig command should present
|
||||||
|
statistics.
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: Outgoing packets are dropped and overwritten by ARP packets
|
||||||
|
if the destination IP has not been mapped to a MAC. Could
|
||||||
|
improve send() performance by explicitly performing ARP before
|
||||||
|
sending the packet.
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium
|
||||||
|
|
||||||
|
o USB (drivers/usbdev)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: Implement USB device support
|
||||||
|
Status: Open
|
||||||
|
Priority: High
|
||||||
|
|
||||||
|
Description: Implement USB bulk / serial device support
|
||||||
|
Status: Open
|
||||||
|
Priority: High
|
||||||
|
|
||||||
|
o Libraries (lib/)
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: sscanf() and lib_vsprintf() do not support floating point
|
||||||
|
values.
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: The definition of environ in stdlib.h is bogus and will not
|
||||||
|
work as it should. This is because the underlying
|
||||||
|
representation of the environment is not an arry of pointers.
|
||||||
|
Status: Open
|
||||||
|
Priority: Mediam
|
||||||
|
|
||||||
|
o File system (fs/, drivers/)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: Add chmod(), truncate().
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: FAT32: long file names
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium
|
||||||
|
|
||||||
|
o Documentation (Documentation/)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: Document driver/ logic
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: Document C-library APIs
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
o Build system
|
o Build system
|
||||||
- Some names under arch are still incorrect. These should be processor architecture
|
^^^^^^^^^^^^
|
||||||
names: pjrc-8051 should be 805x
|
|
||||||
- configs/pjrc-8051 should be configs/pjrc-87c52
|
|
||||||
- Dependencies do not work correctly under configs/<board>/src (same as arch/<arch>/src/board).
|
|
||||||
|
|
||||||
o Applications & Tests
|
Description: Some names under arch are still incorrect. These should be
|
||||||
|
processor architecture names: pjrc-8051 should be 805x
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
o ARM
|
Description: configs/pjrc-8051 should be configs/pjrc-87c52
|
||||||
- Add option to use a separate stack for interrupt handling. At present,
|
Status: Open
|
||||||
each interrupt executes on top of the user stack allocation making each
|
Priority: Low
|
||||||
user stack allocation larger than needed.
|
|
||||||
|
|
||||||
o ARM/C5471
|
Description: Dependencies do not work correctly under configs/<board>/src
|
||||||
|
(same as arch/<arch>/src/board).
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium
|
||||||
|
|
||||||
o ARM/DM320
|
o Applications & Tests (examples/)
|
||||||
- It seems that when a lot of debug statements are added, the system no
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
longer boots. This has been diagnosed as a stack problem.. making the stack
|
|
||||||
bigger or removing arrays on the stack fixes the problem.
|
|
||||||
|
|
||||||
o ARM/LPC214x
|
o ARM (arch/arm/)
|
||||||
- Finish bringup
|
^^^^^^^^^^^^^^^
|
||||||
- Add MMC and USB support
|
|
||||||
|
|
||||||
o pjrc-8052 / MCS51
|
Description: Add option to use a separate stack for interrupt handling. At
|
||||||
- Current status:
|
present, each interrupt executes on top of the user stack
|
||||||
- Basic OS task management seems OK
|
allocation making each user stack allocation larger than needed.
|
||||||
- Fails when interrupts enabled. The stack pointer is around 0x6e
|
Status: Open
|
||||||
before the failure occurs. It looks like some issue when the
|
Priority: Medim
|
||||||
stack pointer moves from the directly to indirectly addressable
|
|
||||||
region (0x80 boundary).
|
o ARM/C5471 (arch/arm/src/c5471/)
|
||||||
- Work on the 8052 is temporarily on hold
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
- Use timer 0 as system timer. Timer 2 is needed for second UART.
|
|
||||||
Logic is implemented, but there needs to be a system configuration
|
o ARM/DM320 (arch/arm/src/dm320/)
|
||||||
to change the ticks-per-second value to match the timer interrupt
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
rate
|
|
||||||
- During build, there are several integer overflows reported:
|
Description: config/ntos-dm320: It seems that when a lot of debug statements
|
||||||
gmtime_r.c aroud lines 184 and 185
|
are added, the system no longer boots. This is suspected to be
|
||||||
clock_initialize.c at line 107
|
a stack problem: Making the stack bigger or removing arrays on
|
||||||
pthread_create.c at 330
|
the stack seems to fix the problem (might also be the
|
||||||
sighand.c at 225 and 244
|
bootloader overwriting memory)
|
||||||
|
Status: Open
|
||||||
|
Priority: Mediam
|
||||||
|
|
||||||
|
o ARM/LPC214x (arch/arm/src/lpc214x/)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: Finish bringup
|
||||||
|
Status: Open
|
||||||
|
Priority: High
|
||||||
|
|
||||||
|
Description: Add MMC and USB support
|
||||||
|
Status: Open
|
||||||
|
Priority: Mediam
|
||||||
|
|
||||||
|
o pjrc-8052 / MCS51 (arch/pjrc-8051/)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Description: Current status:
|
||||||
|
- Basic OS task management seems OK
|
||||||
|
- Fails when interrupts enabled. The stack pointer is around
|
||||||
|
0x6e before the failure occurs. It looks like some issue
|
||||||
|
when the stack pointer moves from the directly to indirectly
|
||||||
|
addressable region (0x80 boundary).
|
||||||
|
- Work on the 8052 is temporarily on hold
|
||||||
|
Status: Open
|
||||||
|
Priority: Low, 8051 is a tough platform because of the tiny stack.
|
||||||
|
|
||||||
|
Description: Use timer 0 as system timer. Timer 2 is needed for second UART.
|
||||||
|
Logic is implemented, but there needs to be a system
|
||||||
|
configuration to change the ticks-per-second value to match the
|
||||||
|
timer interrupt rate
|
||||||
|
Status: Open
|
||||||
|
Priority: Low
|
||||||
|
|
||||||
|
Description: During build, there are several integer overflows reported:
|
||||||
|
gmtime_r.c aroud lines 184 and 185
|
||||||
|
clock_initialize.c at line 107
|
||||||
|
pthread_create.c at 330
|
||||||
|
sighand.c at 225 and 244
|
||||||
|
Status: Open
|
||||||
|
Priority: Medium
|
||||||
|
|
||||||
|
@ -113,8 +113,19 @@ for dir in ${GARBAGEDIRS}; do
|
|||||||
rm -rf ${NUTTX}/${dir}
|
rm -rf ${NUTTX}/${dir}
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Make sure that all of the necessary soft links are in place
|
||||||
|
|
||||||
|
cd ${NUTTX}/Documentation || \
|
||||||
|
{ echo "Failed to cd to ${NUTTX}/Documentation" ; exit 1 ; }
|
||||||
|
|
||||||
|
ln -sf ../TODO TODO.txt
|
||||||
|
ln -sf ../ChangeLog ChangeLog.txt
|
||||||
|
|
||||||
# Perform a full clean for the distribution
|
# Perform a full clean for the distribution
|
||||||
|
|
||||||
|
cd ${PROJECTS} || \
|
||||||
|
{ echo "Failed to cd to ${PROJECTS}" ; exit 1 ; }
|
||||||
|
|
||||||
make -C ${NUTTX} distclean
|
make -C ${NUTTX} distclean
|
||||||
|
|
||||||
# Remove any previous tarballs
|
# Remove any previous tarballs
|
||||||
|
Loading…
Reference in New Issue
Block a user