Babix: an Educational Multitask Kernel for Arduino Due - ENSTA Paris - École nationale supérieure de techniques avancées Paris Accéder directement au contenu
Rapport (Rapport Technique) Année : 2016

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.
Fichier principal
Vignette du fichier
babix.pdf (357.16 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01814380 , version 1 (13-06-2018)

Identifiants

  • HAL Id : hal-01814380 , version 1

Citer

François Pessaux. Babix: an Educational Multitask Kernel for Arduino Due. [Technical Report] Work not affiliated to any institution. 2016. ⟨hal-01814380⟩
351 Consultations
417 Téléchargements

Partager

Gmail Facebook X LinkedIn More