Skip to content
Snippets Groups Projects
TODO 3.55 KiB
Newer Older
  • Learn to ignore specific revisions
  • patacongo's avatar
    patacongo committed
    NuttX TODO List
    ^^^^^^^^^^^^^^^
    
    
    patacongo's avatar
    patacongo committed
    - 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
    
    patacongo's avatar
    patacongo committed
    - 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.
    
    patacongo's avatar
    patacongo committed
    
    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.
    
    patacongo's avatar
    patacongo committed
    - 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)
    
    patacongo's avatar
    patacongo committed
    
    o Signals
    
    - 'Standard' signals and signal actions are not supported.
    
    patacongo's avatar
    patacongo committed
    
    o pthreads
    
    - pthread_cancel():  Should implement cancellation points and pthread_testcancel()
    
    patacongo's avatar
    patacongo committed
    o C++ Support
    - Need to call static constructors
    
    
    patacongo's avatar
    patacongo committed
    - Finish integratin of uIP
    
    patacongo's avatar
    patacongo committed
    - Implement USB device support
    
    - Implement USB bulk device
    
    patacongo's avatar
    patacongo committed
    o Libraries
    
    patacongo's avatar
    patacongo committed
    - 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.
    
    patacongo's avatar
    patacongo committed
    
    o File system
    
    - Add chmod(), truncate().
    
    patacongo's avatar
    patacongo committed
    - FAT32: long file names
    
    o Network
    - Did not implement send() and sendto() timeouts.  Option is setable via setsockopt,
      but is not implemented.
    - netutils/webserver netutils/telnetd (and maybe others) are seriously broken.
    - Should implement SOCK_RAW
    - Performance Improvements (uIP is not very fast):
    
      Add simple buffer management.  CONFIG_NET_BUFFERS
      (1) On write, queue buffer for output get a new buffer for the socket (waiting if
          nececcesary
      (2) Copy buffer structure into uip_driver_structure when driver requests write
          data
    
      Add a txail callback into driver to eliminate send delays.  Since we want to
      support multiple network devices, this means we will have to add some infrastructure
      to map to device.
    
    patacongo's avatar
    patacongo committed
    
    o Documentation
    
    patacongo's avatar
    patacongo committed
    - Document fs/ & driver/ logic
    - Document C-library APIs
    
    patacongo's avatar
    patacongo committed
    
    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
    
    - Dependencies do not work correctly under configs/<board>/src (same as arch/<arch>/src/board).
    
    patacongo's avatar
    patacongo committed
    
    o Applications & Tests
    
    o C5471
    
    
    - It seems that when a lot of debug statements are added, the system no
      longer boots.  There could be some issue with the bootloader or with
      the programming of the SDRAM MMU regions.
    
    patacongo's avatar
    patacongo committed
    - Finish bringup
    - Add MMC and USB support
    
    patacongo's avatar
    patacongo committed
    o pjrc-8052 / MCS51
    
    patacongo's avatar
    patacongo committed
      - 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