Planned in the next release: timeouts on sync objects, Arduino Due port.
- v1.11 for Arduino IDE 1.6.5 or more
- bug found by Virgilio Villatora, fixed: wrong task queuing order in some circumstances.
- v1.10 for Arduino IDE 1.6.5 or more
- 5 priorites on tasks instead of 3
- messaging usage is simpler and a message can directly carry data (no just a pointer)
- a task can just get a message without removing it from the messages queue with the peekMessage(...) function
- work objects can be priorized (normal mode or urgent mode) and now contains a result value. A task can wait the end of execution of a work instance.
- In addition of the macro OS48_ATOMIC_BLOCK: OS48_NO_KT_BLOCK and OS48_NO_CS_BLOCK to disable just the kernel interrupt or just the context switch
- yieldTo, for the cooperative scheduler, can delay the yield until the next call of a blocking function such as Semaphore::acquire()
- A memory pool implementation with a default configuration (in Advanced_paramters.h). Memory pools improve performance of dynamic allocations.
- Statistics on tasks to print on a Serial object such as CPU time consumption and memory footprints...
- Hook functions in the kernel interruptions for advanced users
- More advanced parameters for advanced users in Advanced_paramters.h
- Some other improvements and bugs fixed
- v1.01 for Arduino IDE 1.6.5 or more
- improvements: for
SchPolicyIntelligentscheduling policies, a context switch is performed when a higher priority task than current one is added to the ready queue (after a task creation or a call to the resume method)
- bug fixed: resumption of tasks failed when
millis()exceeds 2 ^ 32
- improvements: for
- 2015-09-22: improvements:
- several renamings
- adding the function
Scheduler::isATaskShouldBeAwakefor the cooperative scheduling policy
- possibility to change the task time slice in "Advanced_parameters.h"
- possibility to change the stack size used by some kernel functions including the kernel tick (in "Advanced_parameters.h")
- 2015-09-16: bug fixed:
Task::getUserFreeStackSize()returned 1 byte too many
- 2015-09-15: bug fixed: the scheduling algorithm "SchModeRandomPriority" never choose tasks with the highest priority
- v1.00 (2015-09-11) for Arduino IDE 1.6.5 or more
- v1.01 (Latest version up to date)