[Back] [Impressum, Datenschutz]
rupsched is a small operating system for 8-bit AVR microrontrollers. It uses the Linux kernel build system and Kconfig, and the rest is also very Linux-like. It features a scheduler, timers and rolls its own interrupt support. All components are optional, even the scheduler.
Directory structure, names of header files, functions and macros, as well as coding style are oriented on the Linux kernel, whoever is used to hack the Linux kernel will feel at home in rupsched.
I managed the configuration of first my AVR projects with the Linux kernel's menuconfig, but for a very long time I only used a binary of menuconfig. I managed my projects in a single SVN repository and so it slowly grew infrastructure which supports the programming model used in the Linux kernel.
One of the first things I implemented was the scheduler and that's where the name comes from.
During the build, all format strings are examined and only the used flags will be implemented in vdevprintf, leading to a very small footprint most of the time.
rupsched contains a parser for atpack files, theoretically supporting all ATMega devices, but currently only a few models are used at the moment. To add your own device, change the DEVICES variable in arch/avr/scripts/decode_packs, and remove arch/avr/devs to force a rebuild.
I have started working on these, but they are not yet ready for release
I have not yet started working on these features. I will start working on that when the above list is implemented.
To build rupsched, a Linux environment is required, with the following packages installed:
It should also be possible to compile using Cygwin on Windows, however I never tested that.
Most of this work is licensed GPL v2, however some files have a different but compatible license.
To get the latest version of rupsched, clone the git repository:
git clone https://www.rupert-eibauer.de/rupsched.git rupsched
Lots of new features, most notable are:
Added support for calculating, reading and burning fuses.
Direct and common interrupt handling can now be mixed.
LTO optimization can now be used.