diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html index d795e086e731e6944f84b05a6c3ca4d13174a0b0..c4191189990b4b9a4cd2590100ac91709fd1ba12 100644 --- a/Documentation/NuttX.html +++ b/Documentation/NuttX.html @@ -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> diff --git a/TODO b/TODO index 9cd59baa388b080348f4b5415e72ef6beb32d070..b6dc42e69cec90e455774d8466fd5a3b83f5f56d 100644 --- a/TODO +++ b/TODO @@ -1,111 +1,302 @@ -NuttX TODO List -^^^^^^^^^^^^^^^ - -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. - -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 pthreads -- pthread_cancel(): Should implement cancellation points and pthread_testcancel() +NuttX TODO List (Last updated December 13, 2007) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + (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 Task/Scheduler (sched/) + ^^^^^^^^^^^^^^^^^^^^^^^ + + 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. - -o USB -- Implement USB device support -- Implement USB bulk device - -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. - -o File system -- Add chmod(), truncate(). -- FAT32: long file names - -o Documentation -- Document driver/ logic -- Document C-library APIs + ^^^^^^^^^^^ + + 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 Network (net/, netutils/) + ^^^^^^^^^^^^^^^^^^^^^^^^^ + + 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 + + Description: Should implement SOCK_RAW, SOCK_PACKET + Status: Open + Priority: Low + + 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 - -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. - -o ARM/C5471 - -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 ARM/LPC214x -- Finish bringup -- Add MMC and USB support - -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: Some names under arch are still incorrect. These should be + processor architecture names: pjrc-8051 should be 805x + Status: Open + Priority: Low + + Description: configs/pjrc-8051 should be configs/pjrc-87c52 + Status: Open + Priority: Low + + Description: Dependencies do not work correctly under configs/<board>/src + (same as arch/<arch>/src/board). + Status: Open + Priority: Medium + +o Applications & Tests (examples/) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +o ARM (arch/arm/) + ^^^^^^^^^^^^^^^ + + 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 diff --git a/tools/zipme.sh b/tools/zipme.sh index 382305d68c03170056bb67f1ddf7af25cfedd93d..3200384cf5e4fdac9999c937f6b00c34f74f7374 100755 --- a/tools/zipme.sh +++ b/tools/zipme.sh @@ -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