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><a href="#history">Release History</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="favicon.ico"></td>
|
||||
<td><a href="#TODO">Bugs, Issues, <i>Things-To-Do</i></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="favicon.ico"></td>
|
||||
<td><a href="#documentation">Other Documentation</a></td>
|
||||
@ -642,11 +646,18 @@ Other memory:
|
||||
</tr>
|
||||
</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%">
|
||||
<tr>
|
||||
<td><img src="favicon.ico"></td>
|
||||
<td>
|
||||
<a href="#olderreleases">Change Logs for Older Releases</a><br>
|
||||
<a href="ChangeLog.txt">Change Logs for all releases</a><br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -663,276 +674,6 @@ Other memory:
|
||||
</tr>
|
||||
</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%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
@ -978,6 +719,20 @@ Other memory:
|
||||
* NSH ifconfig command now shows uIP status was well (examples/nsh)
|
||||
</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%">
|
||||
<tr bgcolor="#e4e4e4">
|
||||
<td>
|
||||
@ -995,6 +750,14 @@ Other memory:
|
||||
<td><img src="favicon.ico"></td>
|
||||
<td><a href="NuttxPortingGuide.html">Porting Guide</a></td>
|
||||
</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>
|
||||
|
||||
<small>
|
||||
|
373
TODO
373
TODO
@ -1,111 +1,302 @@
|
||||
NuttX TODO List
|
||||
^^^^^^^^^^^^^^^
|
||||
NuttX TODO List (Last updated December 13, 2007)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o Task/Scheduler
|
||||
- When a tasks exits, shouldn't all of its child pthreads also be terminated?
|
||||
- Should task_delete() cause atexit() function to be called?
|
||||
- Implement sys/mman.h and functions
|
||||
- Implement sys/wait.h and functions
|
||||
- Implement priority inheritance
|
||||
- Consider implementing wait, waitpid, waitid. At present, a parent has
|
||||
no information about child tasks.
|
||||
- Several APIs do not set errno. Need to review all APIs.
|
||||
(6) Task/Scheduler (sched/)
|
||||
(2) Memory Managment (mm/)
|
||||
(1) Signals (sched/, arch/)
|
||||
(1) pthreads (sched/)
|
||||
(1) C++ Support
|
||||
(10) Network (net/, netutils/)
|
||||
(2) USB (drivers/usbdev)
|
||||
(2) Libraries (lib/)
|
||||
(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
|
||||
- 'Standard' signals and signal actions are not supported.
|
||||
o Task/Scheduler (sched/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o pthreads
|
||||
- pthread_cancel(): Should implement cancellation points and pthread_testcancel()
|
||||
Description: When a tasks exits, shouldn't all of its child pthreads also be
|
||||
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
|
||||
- Need to call static constructors
|
||||
^^^^^^^^^^^
|
||||
|
||||
o Network
|
||||
- uIP's netutils/smtp, resolv, webclient -- untested
|
||||
- Should implement SOCK_RAW, SOCK_PACKET
|
||||
- uIP polling issues:
|
||||
(1) Current logic will not support multiple ethernet drivers. 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.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.
|
||||
Description: Need to call static constructors
|
||||
Status: Open
|
||||
Priority: Low, depends on toolchain. Call to gcc's built-in static
|
||||
constructor logic will probably have to be performed by
|
||||
user logic in user_start().
|
||||
|
||||
o USB
|
||||
- Implement USB device support
|
||||
- Implement USB bulk device
|
||||
o Network (net/, netutils/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o Libraries
|
||||
- sscanf() and lib_vsprintf() do not support floating point values.
|
||||
- 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.
|
||||
Description: Several of the netutils/ apps are untested. These include
|
||||
uIP's netutils/smtp, dhcpd, resolv, webclient. Only minimal
|
||||
testing of the others has been performed.
|
||||
Status: Open
|
||||
Priority: Medium, Important but not core NuttX functionality
|
||||
|
||||
o File system
|
||||
- Add chmod(), truncate().
|
||||
- FAT32: long file names
|
||||
Description: Should implement SOCK_RAW, SOCK_PACKET
|
||||
Status: Open
|
||||
Priority: Low
|
||||
|
||||
o Documentation
|
||||
- Document driver/ logic
|
||||
- Document C-library APIs
|
||||
Description: uIP polling issues / Multiple network interface support:
|
||||
(1) Current logic will not support multiple ethernet drivers.
|
||||
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
|
||||
- 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
|
||||
- Add option to use a separate stack for interrupt handling. At present,
|
||||
each interrupt executes on top of the user stack allocation making each
|
||||
user stack allocation larger than needed.
|
||||
Description: configs/pjrc-8051 should be configs/pjrc-87c52
|
||||
Status: Open
|
||||
Priority: Low
|
||||
|
||||
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
|
||||
- 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 Applications & Tests (examples/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o ARM/LPC214x
|
||||
- Finish bringup
|
||||
- Add MMC and USB support
|
||||
o ARM (arch/arm/)
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
o pjrc-8052 / MCS51
|
||||
- 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
|
||||
- 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
|
||||
- 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
|
||||
Description: Add option to use a separate stack for interrupt handling. At
|
||||
present, each interrupt executes on top of the user stack
|
||||
allocation making each user stack allocation larger than needed.
|
||||
Status: Open
|
||||
Priority: Medim
|
||||
|
||||
o ARM/C5471 (arch/arm/src/c5471/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
o ARM/DM320 (arch/arm/src/dm320/)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Description: config/ntos-dm320: It seems that when a lot of debug statements
|
||||
are added, the system no longer boots. This is suspected to be
|
||||
a stack problem: Making the stack bigger or removing arrays on
|
||||
the stack seems to fix the problem (might also be the
|
||||
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}
|
||||
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
|
||||
|
||||
cd ${PROJECTS} || \
|
||||
{ echo "Failed to cd to ${PROJECTS}" ; exit 1 ; }
|
||||
|
||||
make -C ${NUTTX} distclean
|
||||
|
||||
# Remove any previous tarballs
|
||||
|
Loading…
Reference in New Issue
Block a user