mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik preemptive und Interrupt


Autor: Owen Senmeis (senmeis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es gibt zwei Software-Module auf einem XC164: Applikation und 
Kommunikation. Das RTOS RTX166 Tiny wird dafür eingesetzt. Zwei 
Mitarbeiter sollen jeweils an einem Modul arbeiten. Der initiale Wunsch 
ist eine Trennung der Entwicklung dieser beiden Mitarbeiter. D.h. einer 
konzentriert sich nur auf Applikation und der andere nur auf 
Kommunikation. Dieses RTOS ist nicht preemptive. Ich verstehe dies wie 
folgt:
Befehle können nicht von anderen Interrupt abgebrochen werden. Ist das 
korrekt?

Wenn so ist, braucht man sich um die Integrietät der Variablen nicht zu 
kümmern.

MfG
Senmeis

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Befehle können vom Interrupt wie üblich unterbrochen (nie "abgebrochen" 
- wie kommst Du darauf?) werden, präemptiv oder nicht.

Ein präemptives OS würde erkennen, ob ein Prozess auf das 
Interrupt-Ereignis wartet.  Falls ja, wird es nach Bearbeitung des 
Interrupts die momentane Zeitscheibe dem bisher laufenden Prozess 
entziehen und dem Prozess zuteilen, der darauf gewartet hat.

Beim nicht präemptiven OS läuft die Zeitverteilung weiter, als wäre 
nichts geschehen.  Der wartende Prozess kann erst auf das Ereignis 
reagieren, wenn er in der normalen Zeitscheiben-Reihenfolge wieder dran 
ist.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Frage. Beim kooperativen OS werden die Task nur bei einem Wait() 
gewechselt. Dh in der Tat braucht man nur bei den Interrupts 
aufzupassen.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Präemptiv und kooperativ haben aber wenig miteinander zu tun.  Natürlich 
wird ein kooperatives OS nie präemptiv sein, aber das ist schon alles. 
Vom kooperativen OS schrieb der TE aber nichts, sondern vom 
nicht-präemptiven RTOS.

Und ich frage mich auch schon bei einem nicht-präemptiven RTOS, wofür 
das „RT" überhaupt steht.  Beim kooperativen wäre es dann endgültig 
daneben.

Autor: Owen Senmeis (senmeis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Erklärungen.

Eigentlich haben wir bereits alle nötigen Treiber für die 
Kommunikationsseite (CAN um genau zu sein) fertiggeschrieben. Nun denke 
ich mal muss das RTOS das CAN Treiben übernehmen. D.h. unser Treiber 
muss neu angepasst werden. Wie aufwendig ist diese Anpassung?

MfG
Senmeis

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.