Today I am going to tell you a tale. It is a true story of events that happened long, long ago in a land far, far away. We are always told that we should learn from our experience [or from our mistakes – it depends whether you do “glass half full” or “glass half empty”]. Hopefully, there are less painful lessons to be learned from the experience of others.
Once upon a time …
There was a young engineer, who was working on software for some fairly simple, 8-bit embedded systems. Although the term “embedded” had not yet been coined. The code was written in assembly language, but it needed to be modular, scalable and maintainable. Having worked on real time computer systems, he concluded that he needed a real time, multi-tasking kernel. Having no idea of any alternative option, he was very pleased to have the opportunity to design and write a kernel. The result of a couple of weeks work was a kernel that was pre-emptive and time-sliced with a background task. It worked well for the required application and the project was completed on time. (more…)