2007-03-21 18:21:26 +01:00
|
|
|
NuttX TODO List
|
|
|
|
^^^^^^^^^^^^^^^
|
|
|
|
|
2007-03-29 16:21:31 +02:00
|
|
|
o Task/Scheduler
|
2007-03-21 18:21:26 +01:00
|
|
|
- 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
|
2007-03-24 00:22:22 +01:00
|
|
|
- Consider implementing wait, waitpid, waitid. At present, a parent has
|
|
|
|
no information about child tasks.
|
2007-04-26 02:44:27 +02:00
|
|
|
- Several APIs do not set errno. Need to review all APIs.
|
2007-03-21 18:21:26 +01:00
|
|
|
|
|
|
|
o Memory Managment
|
|
|
|
- Add an option to free all memory allocated by a task when the task exits.
|
2007-03-25 15:16:27 +02:00
|
|
|
This is probably not be worth the overhead for a deeply embedded system.
|
2007-05-07 01:00:14 +02:00
|
|
|
- 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)
|
2007-03-21 18:21:26 +01:00
|
|
|
|
|
|
|
o Signals
|
2007-03-25 15:16:27 +02:00
|
|
|
- 'Standard' signals and signal actions are not supported.
|
2007-03-21 18:21:26 +01:00
|
|
|
|
|
|
|
o pthreads
|
2007-06-10 04:24:53 +02:00
|
|
|
- pthread_cancel(): Should implement cancellation points and pthread_testcancel()
|
2007-03-21 18:21:26 +01:00
|
|
|
|
2007-06-06 12:25:20 +02:00
|
|
|
o C++ Support
|
|
|
|
- Need to call static constructors
|
|
|
|
|
2007-11-06 17:17:50 +01:00
|
|
|
o Network
|
2007-12-02 16:11:32 +01:00
|
|
|
- uIP's netutils/smtp, resolv, webclient -- untested
|
|
|
|
- Should implement SOCK_RAW, SOCK_PACKET
|
2007-11-06 20:58:14 +01:00
|
|
|
- uIP polling issues:
|
2007-11-07 23:54:51 +01:00
|
|
|
(1) Current logic will not support multiple ethernet drivers. Each driver should
|
2007-11-06 20:58:14 +01:00
|
|
|
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.
|
2007-11-19 19:17:23 +01:00
|
|
|
(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.
|
2007-11-24 14:59:57 +01:00
|
|
|
- IPv6 support is incomplete
|
2007-12-02 16:11:32 +01:00
|
|
|
- Incoming UDP broadcast should only be accepted if listening on INADDR_ANY(?)
|
2007-12-07 00:12:48 +01:00
|
|
|
- Should add some driver call to support throttling... when there is no listener
|
2007-12-07 16:19:00 +01:00
|
|
|
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.
|
2007-11-06 20:58:14 +01:00
|
|
|
|
|
|
|
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
|
2007-03-21 18:21:26 +01:00
|
|
|
|
|
|
|
o Documentation
|
2007-12-10 18:41:40 +01:00
|
|
|
- Document driver/ logic
|
2007-03-27 23:27:41 +02:00
|
|
|
- Document C-library APIs
|
2007-03-21 18:21:26 +01:00
|
|
|
|
|
|
|
o Build system
|
2007-04-29 23:50:53 +02:00
|
|
|
- Some names under arch are still incorrect. These should be processor architecture
|
|
|
|
names: pjrc-8051 should be 805x
|
2007-03-27 00:14:28 +02:00
|
|
|
- configs/pjrc-8051 should be configs/pjrc-87c52
|
2007-11-04 17:31:24 +01:00
|
|
|
- Dependencies do not work correctly under configs/<board>/src (same as arch/<arch>/src/board).
|
2007-03-21 18:21:26 +01:00
|
|
|
|
|
|
|
o Applications & Tests
|
|
|
|
|
2007-11-30 21:46:29 +01:00
|
|
|
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.
|
2007-03-21 18:21:26 +01:00
|
|
|
|
2007-11-30 21:46:29 +01:00
|
|
|
o ARM/C5471
|
|
|
|
|
|
|
|
o ARM/DM320
|
2007-11-06 17:17:50 +01:00
|
|
|
- It seems that when a lot of debug statements are added, the system no
|
2007-11-28 16:25:09 +01:00
|
|
|
longer boots. This has been diagnosed as a stack problem.. making the stack
|
|
|
|
bigger or removing arrays on the stack fixes the problem.
|
2007-03-25 15:16:27 +02:00
|
|
|
|
2007-11-30 21:46:29 +01:00
|
|
|
o ARM/LPC214x
|
2007-06-06 12:25:20 +02:00
|
|
|
- Finish bringup
|
|
|
|
- Add MMC and USB support
|
2007-04-29 23:50:53 +02:00
|
|
|
|
2007-03-21 18:21:26 +01:00
|
|
|
o pjrc-8052 / MCS51
|
2007-03-29 16:21:31 +02:00
|
|
|
- Current status:
|
2007-03-21 18:21:26 +01:00
|
|
|
- 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
|
2007-06-10 04:24:53 +02:00
|
|
|
|