Babix: an Educational Multitask Kernel for Arduino Due
Résumé
I want to thank Maxime Ayrault who worked on the second version of Babix during his internship and fruitfully contributed to the implementation of mutex and semaphores. He also debugged few insidious bugs I didn't see or didn't have time to kill. 1 What is Babix? Babix is a little preemptive multitask kernel for Arduino Due I wrote to illustrate the basic principles of task-switching in an operating system. Its purpose is first of all educational, hence Babix remains simple enough to be taught. Babix is written in C as far as possible, with a little bit of assembly inlines (since it is impossible to escape from them when writing low-level operating system stuff). Processes can be dynamically created simply providing the address of their entry function. Therefore, Babix is not a complete, industrial or state-of-the-art operating system, not real-time and not fully optimized. It should normally not turn your Arduino Due into a hot and smoking device, nor make it explode. I have tortured several boards a long time without killing any of them. But, just in case, if yours gets transformed into a " I-don't-know-what " , please do not send lawyers at my door. Downloads Babix sources are freely available at http://francois.pessaux.perso.sfr.fr/arduino.html# Babix. Two versions can be downloaded. The " lite " version is a bit simpler, without processes termination. The " normal " version adds processes termination. The " lite " version is intended not to change o much, in order to keep it simple to understand. The " normal " version may be subject to evolutions and extensions.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...