attached a video of a scheduler I have developed for the ARM board. The scheduler supports 8 active task currently. It switches between task in round robin manner. Each task is given its separate stack space of 512 bytes. Task can add and remove themselves from the scheduler list dynamically. Also each peripherals are given semaphores to prevent against concurrent access. Details of the scheduler and kernel code and also features of Keil's RTX kernel are listed in the presentation.