c5971231da
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@163 42af7a65-404d-4744-a932-0658087f49c3
82 lines
2.7 KiB
Plaintext
82 lines
2.7 KiB
Plaintext
NuttX TODO List
|
|
^^^^^^^^^^^^^^^
|
|
|
|
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
|
|
- Make the system timer frequency configurable via defconfig. See:
|
|
_POSIX_CLOCKRES_MIN in limits.h
|
|
CLK_TCK in time.h
|
|
MSEC_PER_TICK in sched/clock_internal.h
|
|
- Consider implementing wait, waitpid, waitid. At present, a parent has
|
|
no information about child tasks.
|
|
|
|
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.
|
|
|
|
o Signals
|
|
- 'Standard' signals and signal actions are not supported.
|
|
|
|
o pthreads
|
|
- pthread_cancel(): Should implemenent cancellation points and pthread_testcancel()
|
|
|
|
o Libraries
|
|
- There seems to be some kind of failure in the mutual exclusion logic on
|
|
buffered, "standard," IO.
|
|
- If two threads try fflush-ing at the same time, there is corruption
|
|
of the output.
|
|
- Yhere is a failure in the examples/ostest POSIX timer
|
|
test when CONFIG_DEBUG is enabled. This is almost certainly yet
|
|
another case where printf (or its kin) are being called from a
|
|
sensitive area in the OS.
|
|
- I am now seeing the same thing with the dm320 barrier test.
|
|
Apparently printf has some thread safety issues.
|
|
|
|
o File system
|
|
- Add some concept like mount points to handle mounted "real" filesystems.
|
|
|
|
o Console Output
|
|
|
|
o Documentation
|
|
- Document fs/ & driver/ logic
|
|
- Document C-library APIs
|
|
|
|
o Build system
|
|
- Names under arch are incorrect. These should hold processor architectures.
|
|
c5471 should be arm7
|
|
dm320 should be arm9
|
|
pjrc-8051 should be 805x
|
|
- SoC-specific logic should be in subdirectories under arch/<processor-name>.
|
|
Eg. arm7/include/c5471 should hold c5471 specific header files
|
|
- configs/pjrc-8051 should be configs/pjrc-87c52
|
|
|
|
o Applications & Tests
|
|
|
|
o C5471
|
|
|
|
o DM320
|
|
|
|
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
|