Kitty'S: Writing a toy is for the ATmega168 from scratch

Writing an operating system for a computing platform is one of those non-trivial tasks that few people have to do, whether it's for a small microcontroller or a larger general-purpose computer. Many of us spend a lot of our time producing robust code for embedded systems, sometimes delving deeper into abstraction when we get stuck on a problem. Very often this work relies on an RTOS, which we consider a problem solved. [Jonathan Diamond] had gained a good grasp of some of the low-level AVR black magic, as well as details of the inner workings of operating systems, and so decided to jump into building an operating system toy called KittyOS. , just for the learning experience.

[Jonathan] is quick to add that this is not a hands-on operating system, but a learning platform that needs a few extra bells and whistles to be useful. Aimed at the 8-bit ATmega168 AVR with only 16 KB of flash memory and 1 KB of SRAM, the small chip can still perform more than well enough to house the rudimentary operating system - up to four application tasks and one support for basic system calls.

Already, KittyOS sports preemptive multitasking, with prioritization and support for applications written in C. Hardware support is a bit limited, with just serial I/O and a bit of GPIO, but that's more than enough for a demonstrator. Applications can be loaded into one of four available slots, with execution state control per slot, using the Python-based host interface. The post is long, with an absolute ton of gory detail that we love around those parts, and we're very glad [Jonathan] took the time to do some proper redaction as well as a demo video, which can be found after the break.

Many such operating systems have graced these pages over the years, such as ZARDOS, which is for Arduino Mega/UNO boards. Getting a bit more complex, we saw Snowdrop, which was written in pure x86 and even sports a BASIC interpreter. Finally, we have to mention our guide on RTOS and how to choose the best one for your needs.

Kitty'S: Writing a toy is for the ATmega168 from scratch

Writing an operating system for a computing platform is one of those non-trivial tasks that few people have to do, whether it's for a small microcontroller or a larger general-purpose computer. Many of us spend a lot of our time producing robust code for embedded systems, sometimes delving deeper into abstraction when we get stuck on a problem. Very often this work relies on an RTOS, which we consider a problem solved. [Jonathan Diamond] had gained a good grasp of some of the low-level AVR black magic, as well as details of the inner workings of operating systems, and so decided to jump into building an operating system toy called KittyOS. , just for the learning experience.

[Jonathan] is quick to add that this is not a hands-on operating system, but a learning platform that needs a few extra bells and whistles to be useful. Aimed at the 8-bit ATmega168 AVR with only 16 KB of flash memory and 1 KB of SRAM, the small chip can still perform more than well enough to house the rudimentary operating system - up to four application tasks and one support for basic system calls.

Already, KittyOS sports preemptive multitasking, with prioritization and support for applications written in C. Hardware support is a bit limited, with just serial I/O and a bit of GPIO, but that's more than enough for a demonstrator. Applications can be loaded into one of four available slots, with execution state control per slot, using the Python-based host interface. The post is long, with an absolute ton of gory detail that we love around those parts, and we're very glad [Jonathan] took the time to do some proper redaction as well as a demo video, which can be found after the break.

Many such operating systems have graced these pages over the years, such as ZARDOS, which is for Arduino Mega/UNO boards. Getting a bit more complex, we saw Snowdrop, which was written in pure x86 and even sports a BASIC interpreter. Finally, we have to mention our guide on RTOS and how to choose the best one for your needs.

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow