Ich versuche zu verstehen, wie Echtzeitbetriebssysteme funktionieren. Ich habe mir die Quellcodes einiger RTOS angesehen. Ich möchte lernen, indem ich mein einfaches RTOS erstelle, so etwas wie FLIRT .
Ich verwende die PIC16-Serie und den XC8 C-Compiler mit MPLABX. Ich möchte auch diese sehr einfache RTOS-PIC12-Serie implementieren.
Also entschied ich mich, zunächst zu lernen, wie man einen Stapel manipuliert (wie es Supercat in dieser Antwort getan hat ), und begann mit der Suche und stieß auf AN818 mit dem Titel "Manipulieren des Stapels des PIC18-Mikrocontrollers". Zitiert aus dem Anwendungshinweis:
Traditionell wurde der Mikrocontroller-Stack nur als Speicherplatz für Rücksprungadressen von Subroutinen oder Interrupt-Routinen verwendet, bei denen alle Push- und Pop-Operationen ausgeblendet waren.
Zum größten Teil hatten Benutzer keinen direkten Zugriff auf die Informationen auf dem Stapel. Der PIC18-Mikrocontroller weicht geringfügig von dieser Tradition ab. Mit dem neuen PIC18-Kern haben Benutzer jetzt Zugriff auf den Stapel und können den Stapelzeiger und die Stapeldaten direkt ändern.
Ich bin verwirrt. Wie kommt es, dass RTOSs für PIC-Mikrocontroller entwickelt wurden, die mit PIC16-Kernen arbeiten? Zum Beispiel ist OSA RTOS für PIC12 / 16 mit mikroC-Compiler verfügbar.
Können Sie mich auf einige Ressourcen verweisen oder wenn möglich Beispiele nennen, damit ich mehr über das Stack-Switching erfahren kann?
JumpC4 & 255
nach W?