Chris O'Byrne - YAVRTOS

Revision History

Revision 1.11, 2009 Apr 02

  • More efficient use of the stack when waiting on semaphores

Revision 1.10, 2009 Apr 02

  • Removed the need to use static storage in the task switcher. However, switch/case statements use the stack, so changed that so that it used if/else instead.
  • Cleanup of function names, macro names, struct names etc

Revision 1.9, 2009 Apr 02

  • Work around for a major problem with the task switcher. Every time we entered the task switcher, the stack pointer was using the system stack. However, the compiler expected the Y register to be pointing to the stack as well (or maybe n bytes below the stack pointer, where n is the number of local bytes of storage this function needs). Since it usually wasn't, we ended up with memory corruption and hence a crash. The work-around was to change the task switcher so that it doesn't use local storage - all variables in the task switcher use static storage.
  • Added wait_for_increment_of_timeout() - for completeness

Version 1.8, 2009 Apr 01

  • Added the ability to timeout while waiting on semaphores, mutexes etc.
  • Added proper return values to functions

Version 1.7, 2008 Mar 01

  • Moving out of beta

Version 1.6b2, 2008 Jan 25

Version 1.6b1, 2008 Jan 21

  • Fixed another race condition with mailboxes that was leading to deadlock

Version 1.5b1, 2008 Jan 20

  • I now have just one ISR-related macro - TASK_ISR() - and ISRs may now decide if a task switch should occur

Version 1.4b1, 2008 Jan 17

  • Added init_data to the tasks - the task function now takes a void * argument

Version 1.3b2, 2008 Jan 17

  • Fixed a bug with write_mbox() and wait_for_receiver() - an incorrect algorithm was being used to see if another task was waiting on the mailbox, which could (and did) lead to deadlock.

Version 1.3b1, 2008 Jan 14

  • wait_for_mutexes no longer ignored when stop_task() is called on current_task

Version 1.2b1, 2008 Jan 13

Version 1.1b1, 2008 Jan 11

  • Added wait_for_mutexes to stop_task()
  • Changed write_mbox() so that the number of receivers could be specified, and added the "nullify" feature
  • Updated and re-organised the documentation

Version 1.0b1, 2008 Jan 09

  • Removed noticeboards, and replaced them with proper mailboxes
  • Fixed a few bugs
  • Started proper doxygen documentation

Version 0.4, 2008 Jan 07

  • If a task is stopped while holding mutexes, the mutexes will be released

Version 0.3, 2008 Jan 07

  • Fixed a memory leak bug with non-empty mailboxes on stopping tasks

Version 0.2, 2007 Dec 31

  • Added noticeboards

Version 0.1, 2007 Dec 29

  • Initial release

YAVRTOS and YAVRTOS documentation Copyright © 2007-2009 Chris O'Byrne. Email - chris <at> obyrne <dot> com