0.1.0 2007-03-09 Gregory Nutt * Initial Release * Support for Linux user mode simulation and TI TMS320C5471 (Arm7) provided 0.1.1 2007-03-14 Gregory Nutt * Corrected an error in interrupt level context switching for C5471 * Added fgets() and gets() logic; verified c5471 console read. * Corrected error in reading from the C5471 serial port: Improper use of semaphore can cause deadlock. * Fixed an error in the memory cleanup: The idle task cannot take sempahores (because it must always be ready to run). * Tasks can now accept a configurable maximum number of input parameters (argc) * _task_init() was divided into separate functions that require fewer parameters. This was necessary to keep the stack usage down for the 8051/2 (which has only 256 bytes of stack). * Attempts to use C5471 console from interrupt handlers can cause errors. Added a special path for this case. * Refuse calls to sem_wait and sem_trywait from interrupt handlers. This was happening because interrupt handlers were calling printf-like functions. * Added strtok() and strtok_r() * Added a simple shell called nsh (see examples/nsh). * Platform support for 8052 is complete but not stable when the timer interrupt is enabled. Seems to be an issue when SP enters indirect address space. * Documentation updates 0.1.2 2007-03-19 Gregory Nutt * Add dirent.h, opendir(), readdir(), closedir(), etc. * Add strerror() * Added 'ls' command to nsh * Added C5471 watchdog driver * Fixed another bug where free() is called from IDLE task. Can't do this; the caller must be able to wait for access to memory. * Fixed bugs associated with debug output: Cannot do dbg() in middle of context switch logic. because it may require use of semaphores and cause additional context switches. lldbg() is safe. * Interrupt must be disabled throughout all context switches. * Separated C5471 serial driver; a shareable part is in drivers/. ; the C5471 specific part is in arch/C5471. serial.h defines the interface. * Fixed mq_receive() and mq_send() -- bad memcpy() * Fixed C5471 signal deliver logic: use of dbg() and other actions by use signal handler can alter errno. need to protect errno during signal handling. * Fixed uninitialized variable in filesystem that could cause various problems * Added a test for roundrobin scheduler. 0.2.1 2007-03-22 Gregory Nutt * Fix error in handing signed decimal in vsprintf(). * Major restructuring of header files to get closer to POSIX compliance. * Eliminate compilation warnings that that crept into recent check-ins * Add kill() * Added support for POSIX timers * Some Documentation updates * Added support for the Neuros OSD / DM320 0.2.2 2007-03-26 Gregory Nutt * Created the configs/ directory; separated board configuration from processor architecture logic * Add memory leak detection test to examples/ostest * Corrected memory leak in OS pthread join logic * Corrected memory leaks in examples/ostest due to failures to join or detach from pthreads. * Added pthread_once(), pthread_kill(), pthread_sigmask() * Added pthread_barrierattr_*() APIs * Added pthread_barrier_init(), pthread_barrier_destroy(), and pthread_barrier_wait(); * Added pthread barrier test * Added protection so that errno cannot be modified from interrupt handling. * sched_setparam(), sched_setscheduler() now correctly set errno; pthread_setscheduler() now returns the correct errno. * Added pthread_setschedprio(). * Added directories to hold board-specific header files * Added directories to hold board-specific drivers 0.2.3 2007-03-29 Gregory Nutt * mq_receive and mq_send now return errno's appropriately * mq_receive and mq_send are now correctly awakened by signals. * Fixed an unmatched sched_lock/unlock pair in task_delete(). * sched_lock must be called in _exit() because operation of task_delete() can cause pending tasks to be merged and a context switch to occur. * Added mq_timedreceive() and mq_timedsend() * signal mask is now inherited by both child tasks and threads. * Improved sharebility of stdout among pthreads (only). Nothing was broken, but by moving the mutual exclusion logic to a higher level, the printf output is more readable. * Fixed a bug in file system cleanup: A list was being deleted before the buffers contained in the list. * Fixed a bug in the wait-for-message-queue-not-empty logic. * Added a test of timed mqueue operations; detected and corrected some mqueue errors. * Identified and corrected a race condition associated with pthread_join. In the failure condition, memory was being deallocated while still in use. 0.2.4 2007-xx-xx Gregory Nutt * Started m68322