Skip to content
TODO 44.2 KiB
Newer Older
NuttX TODO List (Last updated May 8, 2010)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
patacongo's avatar
patacongo committed

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/)
 (15)  Network (net/, drivers/net)
patacongo's avatar
patacongo committed
  (5)  Network Utilities (netutils/)
patacongo's avatar
patacongo committed
  (1)  USB (drivers/usbdev)
patacongo's avatar
patacongo committed
  (5)  Libraries (lib/)
patacongo's avatar
patacongo committed
 (11)  File system/Generic drivers (fs/, drivers/)
patacongo's avatar
patacongo committed
  (3)  Graphics subystem (graphics/)
  (1)  Pascal add-on (pcode/)
patacongo's avatar
patacongo committed
  (1)  Documentation (Documentation/)
  (6)  Build system / Toolchains
patacongo's avatar
patacongo committed
  (3)  NuttShell (NSH) (examples/nsh)
  (3)  Other Applications & Tests (examples/)
  (2)  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
  (7)  ARM/LPC214x (arch/arm/src/lpc214x/)
patacongo's avatar
patacongo committed
  (3)  ARM/STR71x (arch/arm/src/str71x/)
patacongo's avatar
patacongo committed
  (4)  ARM/LM3S6918 (arch/arm/src/lm3s/)
patacongo's avatar
patacongo committed
  (5)  ARM/STM32 (arch/arm/src/stm32/)
  (4)  pjrc-8052 / MCS51 (arch/pjrc-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/)
patacongo's avatar
patacongo committed
  (9)  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 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
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:
               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.

patacongo's avatar
patacongo committed
  Description: IPv6 support is incomplete.  Adam Dunkels has recently announced
               IPv6 support for uIP (currently only as part of Contiki).  Those
               changes need to be ported to NuttX.
patacongo's avatar
patacongo committed
  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.
patacongo's avatar
patacongo committed
               ---
Loading
Loading full blame...