Skip to content
TODO 52.9 KiB
Newer Older
patacongo's avatar
patacongo committed
NuttX TODO List (Last updated March 8, 2011)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
patacongo's avatar
patacongo committed

  (1)  On-demand paging (sched/)
patacongo's avatar
patacongo committed
  (2)  Memory Managment (mm/)
  (1)  Signals (sched/, arch/)
  (1)  pthreads (sched/)
  (1)  C++ Support
patacongo's avatar
patacongo committed
  (5)  Binary loaders (binfmt/)
patacongo's avatar
patacongo committed
 (16)  Network (net/, drivers/net)
patacongo's avatar
patacongo committed
  (5)  Network Utilities (netutils/)
  (2)  USB (drivers/usbdev, drivers/usbhost)
patacongo's avatar
patacongo committed
  (5)  Libraries (lib/)
patacongo's avatar
patacongo committed
 (13)  File system/Generic drivers (fs/, drivers/)
patacongo's avatar
patacongo committed
  (2)  Graphics subystem (graphics/)
  (1)  Pascal add-on (pcode/)
patacongo's avatar
patacongo committed
  (1)  Documentation (Documentation/)
  (5)  Build system / Toolchains
  (4)  NuttShell (NSH) (examples/nsh)
  (3)  Other Applications & Tests (examples/)
  (7)  Linux/Cywgin simulation (arch/sim)
  (3)  ARM (arch/arm/)
patacongo's avatar
patacongo committed
  (1)  ARM/C5471 (arch/arm/src/c5471/)
patacongo's avatar
patacongo committed
  (3)  ARM/DM320 (arch/arm/src/dm320/)
  (2)  ARM/i.MX (arch/arm/src/imx/)
patacongo's avatar
patacongo committed
  (3)  ARM/LPC17xx (arch/arm/src/lpc17xx/)
patacongo's avatar
patacongo committed
  (7)  ARM/LPC214x (arch/arm/src/lpc214x/)
patacongo's avatar
patacongo committed
  (2)  ARM/LPC313x (arch/arm/src/lpc313x/)
patacongo's avatar
patacongo committed
  (3)  ARM/STR71x (arch/arm/src/str71x/)
patacongo's avatar
patacongo committed
  (4)  ARM/LM3S6918 (arch/arm/src/lm3s/)
  (4)  ARM/STM32 (arch/arm/src/stm32/)
  (4)  8051 / MCS51 (arch/8051/)
patacongo's avatar
patacongo committed
  (2)  Hitachi/Renesas SH-1 (arch/sh/src/sh1)
  (4)  Renesas M16C/26 (arch/sh/src/m16c)
patacongo's avatar
patacongo committed
  (8)  z80/z8/ez80 (arch/z80/)
  (8)  z16 (arch/z16/)
patacongo's avatar
patacongo committed
  (1)  mc68hc1x (arch/hc)
patacongo's avatar
patacongo committed

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: 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 On-demand paging (sched/)
  ^^^^^^^^^^^^^^^^^^^^^^^^^

  Description: On-demand paging has recently been incorporated into the RTOS.
               The design of this feature is described here:
patacongo's avatar
patacongo committed
               http://www.nuttx.org/NuttXDemandPaging.html.
               As of this writing, the basic feature implementation is
               complete and much of the logic has been verified.  The test
               harness for the feature exists only for the NXP LPC3131 (see
               configs/ea3131/pgnsh and locked directories).  There are
               some limitations of this testing so I still cannot say that
               the feature is fully functional.
patacongo's avatar
patacongo committed
  Status:      Open
  Priority:    Medium-Low

patacongo's avatar
patacongo committed
o Other core OS logic
  ^^^^^^^^^^^^^^^^^^^

  Description: get_environ_ptr() (sched/sched_getenvironptr.c) is not implemented.
               The representation of the the environment strings selected for
               NutX is not compatible with the operation.  Some significant
               re-design would be required to implement this funcion and that
               effort is thought to be not worth the result.
  Status:      Open
  Priority:    Low -- There is no plan to implement this.

  Description: timer_getoverrun() (sched/timer_getoverrun.c) is not implemented.
  Status:      Open
  Priority:    Low -- There is no plan to implement this.

patacongo's avatar
patacongo committed
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.
               There would be complexities with this implementation as well
               because often one task allocates memory and then passes the
               memory to another:  The task that "owns" the memory may not
               be the same as the task that allocated the memory.
patacongo's avatar
patacongo committed
  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
patacongo's avatar
patacongo committed
o C++ Support
patacongo's avatar
patacongo committed
  ^^^^^^^^^^^

  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().

patacongo's avatar
patacongo committed
o Binary loaders (binfmt/)
  ^^^^^^^^^^^^^^^^^^^^^^^^

  Description: Not all of the NXFLAT test under examples/nxflat are working.
               Most simply do not compile yet.  tests/mutex runs okay but
               outputs garbage on completion.
  Status:      Open
  Priority:    High

  Description: The ARM up_getpicbase() does not seem to work.  This means
               the some features like wdog's might not work in NXFLAT modules.
  Status:      Open
  Priority:    Medium-High

  Description: At present, all .rodata must be put into RAM.  There is a 
               tentative design change that might allow .rodata to be placed
               in FLASH (see Documentation/NuttXNxFlat.html).
  Status:      Open
  Priority:    Medium

  Description: If the function pointer to a statically defined function is
               taken, then GCC generates a relocation that cannot be handled
               by NXFLAT.  There is a solution described in Documentataion/NuttXNxFlat.html,
               by that would require a compiler change (which we want to avoid).
               The simple workaround is to make such functions global in scope.
  Status:      Open
  Priority:    Low (probably will not fix)

  Description: In the NXFLAT symbol tables... Using a 32-bit hash value instead
               of a string to identify a symbol should result in a smaller footprint.
  Status:      Open
  Priority:    Low

patacongo's avatar
patacongo committed
o Network (net/, drivers/net)
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
patacongo's avatar
patacongo committed

  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:
Loading
Loading full blame...