Build Your Own RealTime Operating Systems from first principles . Practice on STM32 and TIVA C boards