YAVRTOS – Yet Another Atmel AVR OS
Chris O’Byrne created YAVRTOS for understanding how RTOS can be built and how they Tick.
YAVRTOS – Yet Another Atmel AVR OS
What is a real-time operating system?
Processors are only actually only able to do one thing at a time, whereas we need them to do more than one thing at a time (e.g. update the display while checking for keypresses while reading the serial port). A real-time operating system (RTOS) provides facilities for achieving that.
What is a task?
A task does one of the things (e.g. update the display, check for keypresses, read the serial port) that the application needs done. The real-time operating system allows tasks to execute concurrently, while providing facilities for e.g. tasks to communicate with each other.
What is a tick?
The RTOS needs to be able to switch between tasks – they way it does this is by using a regular processor interrupt (e.g. one of the timer interrupts). Every such interrupt is called a “tick”. These interrupts must be set up before the RTOS is started.
My Notes –
There are two things to learn from Chris, build something to completely learn a concept. This is a tough but thorough way of learning. The easier way is to learn from examples. Hacking and Reverse Engineering also good for students to digest methods exhaustively.
The way chris follows leads to things like innovation/improvement and inventions. That is A Better way. This phrase is probably attributed to hp, now called Agilent Technologies. The computing/printing division carries the hp brand name.
I had once serviced a DMM by hp(agilent) decades ago. It had something like a custom 8039. This was decades back. It was a 5-1/2 or more. It had a Watchdog built with CMOS 40xx chips. I never understood watchdogs then, they were not even called watchdogs.
The “Tick” is the heartbeat of a RTOS, not only it keeps polling all peripheral chips or I/O, It cannot skip a beat, even high priority interrupts cannot stop the routine tasks or even delay them. If it has to sample a Analog level ten times a second and produce a output control byte at the same speed; It could be RTOS for Process Control. For a rocket this will not be RTOS. Speed and not missing a step. Many times faster than the process it is meant for, probably ?