mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik µC-OS Betriebssystem für AVR ?


Autor: Asterix-007 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

hat jemand von Euch schon mal was mit µC-OS (ein RTOS) zu tun gehabt.
Es wird zu den Altera-Bausteinen mit der Altera-Toolchain mitgeliefert
(glaub ich).
Es soll sich mit jedem C-Compiler übersetzen lassen und auf allen
Umgebungen (AVR, x86, Altera, HCx ....) laufen.

Wäre schön hier jemanden zu finden der schon Erfahrungen mit µC und AVR
hat. Dann stehe ich wenigstens nicht so allein im Wald. ;-)

Andere RTOS für AVR sind auch willkommen. Vielleicht gibt es ja was
Besseres oder Einfacheres.

Danke!

Asterix-007

Autor: Peter Mahler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

schau dir mal freeRTOS (www.freertos.org) an, im gegensatz zu uC-OS ist
es wirklich frei. Ich verwende dieses auf ARM7-Prozessoren und bin sehr
zufrieden. Es gibt auch ein Port für AVR und PIC(18).


Gruss,

Peter

Autor: Daniel Braun (khani)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"Es soll sich mit jedem C-Compiler übersetzen lassen und auf allen
Umgebungen (AVR, x86, Altera, HCx ....) laufen."

Wer's glaubt ! Das ist schon fast in sich ein Widerspruch. Meiner
Erfahrung ist kaum etwas so Compilerdialekt-/Hardware-abhängig wie die
Techniken, die bei einem Betriebssystem zum Einsatz kommen.

Auch mein Hinweis ist FreeRTOS - habe ich seinerzeit mal auf einem C167
exzessiv eingesetzt und benutze es jetzt mit den AVRs.

MfG, Daniel.

Autor: Mario Grafe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Daniel,

ich arbeite viel mit dem C161-PI (C166-Familei von Infineon). Habe aber
noch nicht gehört das es eine FreeRTOS-Portierung dafür gibt. Hast du
den Port für den C167 selber gebastelt?

MfG
Mario

Autor: Daniel Braun (khani)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mario,

ich habe eine Portierung für von FreeRTOS auf den C167 fertiggestellt.

Es war meine Diplomarbeit, das zu tun und eine Speicherverweltung und
Gerätetreiberarchitektur aufzubauen. Dabei habe ich eine angefangene
Portierung stark erweitert und fertig gestellt.

Interesse, Fragen ?

MfG, Daniel.

Autor: bone (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@khani

ab ins netz damit :-)

Autor: Mario Grafe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe großes Interesse. Der C167 gehört ja auch zur C166-Familie von
Infineon, somit wäre ein Portierung für den C161-PI-LF nur eine
"kleine" Anpassung, denke ich.
Ich bin allerdings noch Neu in Sachen FreeRTOS bzw. uC-Betriebssystemen
und bräuchte erstmal so eine Art Grundeinführung.
Das Grundprinzip ist mir allerdings klar (hoffer ich): Ein Scheduler
startet und beendet einzelne Task nach Priorität im
Round-Robin-Verfahren und kümmert sich um push/pop usw. Was meinst du
mit Gerätetreiberarchitektur?
Vielleicht kannst du mir mal deine Diplomarbeit zukommen lassen, würde
mich sehr interessieren.


Vielen Dank erstmal

Mario

Autor: Mario Grafe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage,

hast du als Entwicklungsumgebung Keil benutzt?

MfG
Mario

Autor: SeppKnallhirsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Asterix

Habe FreeRTOS auf dem Mega64 zum Laufen gebracht. FreeRTOS downloaden.
Demo mit WINAVR compilieren - it works...

Autor: Wolfgang Weinmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<<Ein Scheduler startet und beendet einzelne Task nach Priorität im
Round-Robin-Verfahren und kümmert sich um push/pop usw>>

Hallo,

mit sowas muß man aber vorsichtig sein. Für eine Lösung ist es wichtig,
wie hart die Echtzeitanforderungen sind. Regelt man was im hohen
Millisekundenbereich oder noch länger, dann kann ein round-Robin
Berfahren ausreichen.

Je kürzer die maximale Reaktionszeit (Latenzzeit) sein darf, desto eher
muß man auf preemptives Multitasking übergehen. Dort erhält immer der
Prozeß mit der höchsten Priorität die CPU.

das Gegenteil ist kooperatives Multitasking - bekannt aus Windows. Dort
hat ein Prozeß solange die CPU, bis er sie selbst wieder freigibt - kein
Ansatz für harte Echtzeit.

Zudem ist ein richtiges RT-Betribssystem oft nicht notwendig. Gerade
bei Controllern kann man oft mit folgendem Ansatz gut auskommen:

http://www.embedded.com/2000/0009/0009feat4.htm

Diesen Ansatz leicht abgeändert habe ich bereits erfolgreich
eingesetzt: Die Interrups für Ereignisse, auf die man schnell reagieren
muß und die Abarbeitung im Main-Bereich ( eben das Hauptprogramm, das
läuft, wenn kein Interrupt ansteht) mit dem Ansatz von Michael
Melkonian.

Gruß

Wolfgang Weinmann

--
www.ibweinmann.de
Mikrocontrollersysteme

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Asterix,

ich fand das uC-OS auch ganz klasse. Der Preis für die kommerzielle
Nutzung ist leider nicht ganz ohne. Deswegen ist es auch für
Hobbyprojekte für mich nicht infrage gekommen - zwei mal einarbeiten
muss dann doch nicht sein.

Das Buch zu uC-OS ist aber sehr informativ - kann ich nur empfehlen.

Gruß, Stefan

Autor: SuperUser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Folks,

ich bin von FreeRTOS nach AVRX gewechselt, weil mir FreeRTOS zu gross
war und einigen Laufzeitoverhead hat.

Ich bin sehr begeistert von AVRX, überschaubarer Funktionsumfang, sehr
stabil, schnell und kompakt. AVRX ist vollständig in ASM geschrieben
mit sauberen Interface zu GCC.

Einziger Nachteil: läuft nur auf AVR's

Autor: Fabian Scheler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur ein paar Kommentare zum Thema Multitasking, präemptiv usw. ...

"mit sowas muß man aber vorsichtig sein. Für eine Lösung ist es
wichtig,
wie hart die Echtzeitanforderungen sind. Regelt man was im hohen
Millisekundenbereich oder noch länger, dann kann ein round-Robin
Berfahren ausreichen.

Je kürzer die maximale Reaktionszeit (Latenzzeit) sein darf, desto
eher
muß man auf preemptives Multitasking übergehen. Dort erhält immer der
Prozeß mit der höchsten Priorität die CPU."

Round-Robin ist präemptives Multitasking! Gut der Schedulingalgorithmus
ist für Echtzeitsysteme freilich nicht unbedingt immer geeignet, was du
ansprichst ist ein prioritätengesteuerter Scheduler

"das Gegenteil ist kooperatives Multitasking - bekannt aus Windows.
Dort hat ein Prozeß solange die CPU, bis er sie selbst wieder freigibt
- kein Ansatz für harte Echtzeit."

bekannt aus welchem Windows, aus den neueren definitiv nicht (also NT,
Windows 2000, Windows XP), die arbeiten mit einem verdrängenden (also
einem präemtpiven) Scheduler, wie es bei den älteren aussieht, weiß ich
nicht

Ciao, Fabian

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zweiter Nachteil: Sema/Messagewait nur ohne Timeout. Man zwar zwar
separat einen Timer starten lassen, es wird dadurch aber etwas
umständlich. Ansonsten aber sehr brauchbar, und kommt im Unterschied zu
manch anderen RTOS konsequent ohne dynamischen Speicher aus (mag ich in
embedded systems nicht so).

Autor: Wolfgang Weinmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<<bekannt aus welchem Windows, aus den neueren definitiv nicht (also
NT,
Windows 2000, Windows XP), die arbeiten mit einem verdrängenden (also
einem präemtpiven) Scheduler, wie es bei den älteren aussieht, weiß
ich
nicht>>


Hallo Fabian,

das kann durchaus sein - aber es war ja nur ein Beispiel für ein
kooperatives OS. Die Aussage ansich, daß harte Echtzeit eher
preemptives Verhalten erfordert, bleibt aber. Ich bin kein
WIN-Programmierer.

Gruß

Wolfgang

--
www.ibweinmann.de
Mikrocontrollersysteme

Autor: mgiaco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Daniel, Post isch schon sehr alt, aber ich hätte interesse an deiner 
Diplomarbeit und an dem Port?

Hab dir eine Nachricht geschrieben.

Gruß
Mathias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.