Artikel
PICXEX18 und PicWin8
Betriebssystem und Monitorfür PIC-Mikrocontroller
Der Artikel beschreibt die Entwicklung eines Multi-tasking-Betriebssystems für Mikrocontroller der PIC18F-Reihe von Microchip. Die Anforderungen an Programm- und Arbeitsspeicher sind minimal, die grundsätzliche Idee sehr einfach, aber dennoch kann das Betriebssystem Applikationen bedeutend erleichtern.
programmieren und debuggen, wenn Sie sie in Funktionselemente oder Tasks trennen. Eine Softwarestruktur zur Handhabung der Tasks könnte dann wie in Bild 1 aussehen. Hier besteht unser „Betriebssystem“ nicht mehr als aus ein paar CALL-Befehlen mit einem GOTO MAIN-Befehl am Ende. Der CALL-Befehl aktiviert den Task und der Task führt einen RETURN-Befehl aus, um zum Betriebssystem zurückzukehren.
Dies gilt für einige kleine Anwendungen, aber normalerweise benötigen die Funktionen/Tasks unserer Applikation irgendeine Art der Kontrolle über ihre eigene Ausführung und die anderer Tasks. Zum Beispiel könnte ein Key-scanner-Task ununterbrochen einige Tasten abfragen. Wenn eine Taste gedrückt wird, muss der mit dieser Taste verbundene Task durch den Key-scanner-Task aktiviert werden. Oder eine Sequenz könnte einen ihrer (vielen) Schritte ausführen und mit dem nächsten Schritt im Programm fortfahren, sobald eine bestimmte Bedingung erfüllt wird. Es ist klar, dass mehr als RETURN-Befehle für die oben genannten Scanner- und Folgetasks erforderlich sind, um ein System zu realisiseren. Der Key-scanner-Task muss einen (von einigen) „schlafenden“ Tasks aktivieren, während der Sequenztask die Fähigkeit haben muss, seine eigenen Einstiegspunkte zu ändern, damit nur ein bestimmter Teil seines Programms (der aktive Schritt und seine Kriterien) gleichzeitig durchgeführt wird. Der Einstiegspunkt eines Tasks ist die Speicherstelle, an der der Taskkode die Ausführung anfangen wird, wenn das Betriebssystem die Steuerung dem Task übergibt.
programmieren und debuggen, wenn Sie sie in Funktionselemente oder Tasks trennen. Eine Softwarestruktur zur Handhabung der Tasks könnte dann wie in Bild 1 aussehen. Hier besteht unser „Betriebssystem“ nicht mehr als aus ein paar CALL-Befehlen mit einem GOTO MAIN-Befehl am Ende. Der CALL-Befehl aktiviert den Task und der Task führt einen RETURN-Befehl aus, um zum Betriebssystem zurückzukehren.
Dies gilt für einige kleine Anwendungen, aber normalerweise benötigen die Funktionen/Tasks unserer Applikation irgendeine Art der Kontrolle über ihre eigene Ausführung und die anderer Tasks. Zum Beispiel könnte ein Key-scanner-Task ununterbrochen einige Tasten abfragen. Wenn eine Taste gedrückt wird, muss der mit dieser Taste verbundene Task durch den Key-scanner-Task aktiviert werden. Oder eine Sequenz könnte einen ihrer (vielen) Schritte ausführen und mit dem nächsten Schritt im Programm fortfahren, sobald eine bestimmte Bedingung erfüllt wird. Es ist klar, dass mehr als RETURN-Befehle für die oben genannten Scanner- und Folgetasks erforderlich sind, um ein System zu realisiseren. Der Key-scanner-Task muss einen (von einigen) „schlafenden“ Tasks aktivieren, während der Sequenztask die Fähigkeit haben muss, seine eigenen Einstiegspunkte zu ändern, damit nur ein bestimmter Teil seines Programms (der aktive Schritt und seine Kriterien) gleichzeitig durchgeführt wird. Der Einstiegspunkt eines Tasks ist die Speicherstelle, an der der Taskkode die Ausführung anfangen wird, wenn das Betriebssystem die Steuerung dem Task übergibt.
Diskussion (0 Kommentare)