quinta-feira, 27 de agosto de 2009

Femto OS: RTOS for small MCU's like AVR

O Femto OS é um sistema operativo muito compacto portavel de tempo real - (RTOS) para microcontroladores com RAM e flash minimos, digamos de 2KB a 16KB flash, 128 a 16KB flash, e 128 a 1024 bytes ram.



Femto OS: RTOS for small MCU's like AVR:

The Femto OS is a very concise portable real time - preemptive operating system (RTOS) for embedded microcontrollers with minimal ram and flash, say 2KB .. 16KB flash and 128 .. 1024 bytes ram. The main target is the Atmel AVR architecture, such as the ATtiny or smaller ATmega series. The OS runs well on larger hardware also. The system is written in C with a separate port file. Porting has been done for 31 AVR devices.

AVR femtoKernel:

I needed a realtime OS Kernel which could run on the smallest devices available. By that I mean devices with less than 2KB of flash and less than 256 bytes of RAM. I found that most rtos-es for small architectures were taillored for devices above 32KB of flash, which was unacceptable.

What I did was take an approach which would produce an extremely light kernel, cosisting only of a task scheduler. It's preemptive, round-robin, which means that one process can interrupt another, and each process has CPU access a limited amount of time. The footprint for this Kernel is around 600bytes of flash. 16bit Timer1 is used to determine the amount of time elapsed for a process.

The code has a test application consisting of 3 processes. Each process runs for about 20msec. If you decide to use my kernel, be sure to make estimates of the number of processes and process stack usage and modify OS_cfg.h accordingly.

Special thanks go to:
Silviu "Sil" Buligan
Ovidiu "Shau" Buligan
Attila Csibi
Vasile Toth


FreeRTOSTM is a portable, open source, royalty free, mini Real Time Kernel - a free to download and free to deploy RTOS that can be used in commercial applications.
Downloaded more then 77,500 times during 2008, FreeRTOS is the cross platform de facto standard for embedded microcontrollers.
View My Stats