FreeRTOS Atmega328

Auf meiner TODO-Liste gab es schon länger den Punkt, sich mal mit FreeRTOS auseinander zu setzen. Da ich noch einen ganzen Stall Atmegas habe, und mir diese Plattform weiterhin am Besten gefällt, wollte ich natürlich ein FreeRTOS auf einem Atmega haben. Et voilà. Es ist mir gelungen die FreeRTOS Demo für den Atmega 323 auf einen Atmega328(p) zu portieren:

Die 3 gelben LEDs werden von einzelnen Threads und einer zugehörigen Coroutine gesteuert. Die grünen LEDs gehören zu Threads die serielle IO über einen Loopback (organgenes Kabel) durchführen. Die rote LED ist ein Heartbeat. Solange diese blinkt ist alles in Ordnung. Die Demo beinhaltet noch weitere Threads, die im Hintergrund Ressourcen verbraten. Details finde sich hier.

Der Demo-Code ist ca. 12KB groß. Es bleiben also noch ca. 20 Kilobyte Flash übrig. Die Heap-Size ist 1500 Byte. Auch diese lässt sich vermutlich noch weiter an die 2KB RAM des Atmega328 annähren. Der Code funktioniert auch auf einem Arduino UNO, Nano, Mini etc. solange dieses einen Atmega328 hat. Auf einem Atmega168 reichen die Ressourcen nicht. Mit 1 KB RAM ist es wirklich an allen Ecken zu eng, sodass ich keinen Sinn darin gesehen habe die Demo immer weiter einzudampfen.

Leave a Reply