Gast
#1295606
Hallo zusammen, Ich suche ein BS für AVR. Speziell geht es mir darum die Technik zum Kontextwechsel anzuschauen. Daher sollten die Prozesse unterbrechbar sein => echtes Multitasking. Grüsse, Daniel
|
Anzeige
|
Betriebsystem für AVR
Gast
#1295606
Hallo zusammen, Ich suche ein BS für AVR. Speziell geht es mir darum die Technik zum Kontextwechsel anzuschauen. Daher sollten die Prozesse unterbrechbar sein => echtes Multitasking. Grüsse, Daniel Klein: AvrX. Vergleichsweise gross: FreeRTOS.
Gast
#1295612
>Daher sollten die Prozesse unterbrechbar >sein => echtes Multitasking. Popcorn. Echtes Multitasking ohne vollwertige MMU? mutig... _.-=: MFG :=-._ Wieso? Ist nicht wesentlicher mutiger als normale Controllerprogrammierung mit Interrupts.
Gast
#1295689
ich denmke für sowas ist ein AVR ungeeignet, das Verhältnis von rechenpower zu Verwaltungsaufansd für multitasking ist zu gering. Wenn man sowas braucht, sollten man sich nach einem brauchbaream ARM oder sowas umsehen.
Gast
#1295735
> Echtes Multitasking ohne vollwertige MMU? mutig...
Was hat eine MMU damit zu tun?
Gast
#1295737
Ist im Wesentlichen nur zu Lernzwecken gedacht. Bevor ich die Quellen von einem "echten OS" anschaue und mit 100 Konzepten gleichzeitig erschlagen werde, will ich etwas kleines putziges^^ Das Schema für ein kooperatives OS habe ich schon:
Wenn ein thread trotzdem auf ihregendeine Weise while(1) hinbekommt, dann hängt alles. Etwas ähnliches habe ich auf Linux programmiert. Habe dafür alarm() system call als Timer missbraucht. Wenn da ein Thread blockierend liest, dann hängt auch alles. Ich überlege mir wie ich Speicher "aufteilen" soll, damit jeder Thread eigenen Stack bekommt.(und weitere Aufrufe tätigen kann) Bestimmt gibt es andere Probleme, an die ich nicht gedacht habe. MMU zählt erst mal nicht dazu ;-) Grüsse
Gast
#1295740
ups .. im Code oben fehlt in main die Endlosschleife bitte mental dazudenken :)
Gast
#1295747
Guckst du : http://www.femtoos.org/ Gruß Sven
Gast
#1295755
FreeRTOS ist ziemlich cool (wurde oben ja schon erwaehnt). Laeuft problemlos ab Atmega32. Nur muss man hoellisch aufpassen mit dem RAM-Verbrauch, weil jeder Task (logischerweise) seinen eigenen Stack unterhaelt.
Gast
#1295915
ChibiOS http://chibios.sourceforge.net/ pC/OS http://www.embedded-os.de/ RTOSe gibts für den AVR ne Menge, einfach mal bei AVRfreaks nachschauen oder googlen. Allerdings ist der AVR nicht sonderlich gut dafür geeignet, da er sehr wenig SRAM hat. Pro Task 32 Register sichern, 32 Byte Call-Stack, 32 Byte Variablen, also ~100Byte ist nicht viel. Bei nur 10 Tasks ist dann ein ATmega16 (1kB) rappeldicht zu. Interrupts sind dabei nichtmal eingerechnet. Auch sonstige SRAM-Verbraucher (Display-Buffer, UART-FIFO usw.) kannste knicken. Ein RTOS geht also nur für sehr kleine und überschaubare Applikationen, wo man es eigentlich garnicht bräuchte. Peter Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|