summaryrefslogtreecommitdiff
path: root/nuttx/TODO
blob: fec57450f6d422d810fce9a1b35988a8286bb4c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
- 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.
- 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 implemenent cancellation points and pthread_testcancel()

o Network
- Port FreeBSD TCP/IP stack

o USB

o Libraries
- sscanf() and lib_vsprintf() do not support floating point values.

o File system
- Add disk usage stats, stat(), chmod(), truncate().
- FAT32: long file names

o Console Output

o Documentation
- Document fs/ & driver/ logic
- Document C-library APIs

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
- Last change to create the arch/arm directory breaks dependencies in arch/arm/src.
  Probably need to add the path to the chip or common subdirectorys when
  running tools/mkdeps.sh

o Applications & Tests

o C5471

o DM320

o LPC214x
- Finish

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