Hinweise in den zugehörigen Dokumentationen müssen beachtet werden. Marken Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren Zwecke die Rechte der Inhaber verletzen kann. Haftungsausschluss Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft.
Neuinstallation ..........................44 4.1.2 Installation der Compiler, IDE, Debugger ..................47 4.1.3 Installation zusätzlicher Produkte, Board Support Pakete............47 4.1.4 Hinweise zur Nutzung der Utilities von RMOS3 ................48 Inbetriebnahme des Zielsystems ....................48 4.2.1 Booten von Massenspeichern......................49 4.2.1.1 Neuinstallation des Zielsystems mit DOS-bootfähigem USB-Flash Drive........49 4.2.1.2...
Seite 4
Kommandozeileninterpreter CLI ....................59 RMOS3-Debugger ........................60 Praxisteil: Erstellen einer RMOS3-Task....................61 Erstellen einer RMOS3-Task mit den GNU-Tools ..............61 Hinweise zum Programmieren und Laden von Tasks ..............61 Praxisteil: Testen einer RMOS3-Task...................... 63 Testen mit den GNU-Tools ......................63 SVC-Exceptionhandler, Statusmeldungen und Testausgaben...........
Seite 5
8.6.5 Exception-Interrupthandler......................134 8.6.6 SVC-Exceptionhandler.......................136 8.6.7 Testen mit dem RMOS3-Debugger ...................137 8.6.8 Testen mit dem RMOS3-Profiler....................138 8.6.8.1 Praktische Übung mit dem RMOS3-Profiler ................138 8.6.9 Testen auf Quellcodeebene.......................148 Basis Ein-/Ausgabe-System von RMOS3..................149 Arithmetik-Coprozessor ......................151 C-Runtime-Bibliothek CRUN......................152 8.9.1 Einsatzvoraussetzungen der C–Bibliothek ................152 8.9.2 Mathematische Funktionen......................153...
Seite 6
Auswahl des Verzeichnisses für die Dokumentation ..............46 Bild 4-6 Ende der Installation ........................47 Bild 8-1 Betriebssystemstruktur.........................68 Bild 8-2 Übersicht über die Privileglevel....................71 Bild 8-3 Tasks aus Sicht der Anwenderprogramme..................77 Bild 8-4 Datenstrukturen von RMOS3 zur Verwaltung einer Task............78 RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Debugger Kommunikation ......................131 Bild 8-21 F_TASK erweitert um eine WHILE-Schleife ................139 Bild 8-22 Aufbau von Treibern und Geräten .....................150 Bild 9-1 Speichermapping einer typischen PC-Architektur ..............160 Bild 9-2 Prinzipielle Struktur von RMOS3 auf PC ...................162 RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Seite 8
Inhaltsverzeichnis RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Referenzhandbüchern und dem Systemhandbuch. Das Benutzerhandbuch informiert Sie über den Umgang mit dem Produkt und macht Sie, zum Teil in Form eines Lehrbuchs, mit den Eigenschaften und Möglichkeiten von RMOS3 vertraut. Im Systemhandbuch werden Ihnen das Betriebssystem, seine Konfigurierung und seine Programmierschnittstellen im Detail beschrieben.
Das Benutzerhandbuch gibt einen Überblick über das Produkt und zeigt Ihnen, wie Sie RMOS3 installieren. Es erläutert, wie RMOS3-Programme erstellt, ausgeführt und getestet werden. Außerdem werden die Themen Kommunikation zwischen RMOS3-Tasks sowie die Merkmale von RMOS3 behandelt. Am Ende des Buches finden Sie Kapitel über den Aufbau des RMOS3-Nukleus. Kapitel 1 "Wissenswertes über Ihre RMOS3 Dokumentation (Seite 9)"...
Wissenswertes über Ihre RMOS3 Dokumentation 1.2 Notationen Kapitel 5 "Human Interface von RMOS3 (Seite 57)" hilft Ihnen, RMOS3 auf Ihrem Rechner zu starten und erklärt die verschiedenen Konsolen, über die Sie RMOS3 bedienen können. Außerdem stellen wir Ihnen den RMOS3-Kommadozeileninterpreter und den RMOS3-Debugger vor.
Klammern oder |a|b|c| nebeneinander zwischen senkrechten Strichen stehen. Wiederholung Ellipsen weisen auf die mögliche Wiederholung des vorherigen Elements hin. Abkürzungen Eine Reihe von Abkürzungen und Kurzbezeichnungen gilt für die gesamte RMOS3- Dokumentation: Tabelle 1- 2 Abkürzungen Abkürzung Bedeutung Textstelle konfigurierbar...
Wissenswertes über Ihre RMOS3 Dokumentation 1.2 Notationen Datentypen Folgende Datentypen können mit den unter RMOS3 zugelassenen C-Compilern verwendet werden: Tabelle 1- 3 Allgemeine Datentypen Datentyp Datenlänge char 8 bit short 16 bit 32 bit long 32 bit long long 64 bit...
Seite 14
Wissenswertes über Ihre RMOS3 Dokumentation 1.2 Notationen RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Echtzeit-Multitasking-Betriebssystem (engl. Realtime Multitasking Operating System = RMOS), das durch seine Vielseitigkeit die Entwicklung, Wartung und Pflege Ihrer Software auf PC/AT-kompatiblen Systemen wesentlich beschleunigt und vereinfacht. Die grundlegenden Eigenschaften von RMOS3 können direkt aus dem Begriff Echtzeit-Multitasking-Betriebssystem abgeleitet werden. Echtzeit Der Begriff Echtzeit soll im Folgenden verstanden werden als die Fähigkeit eines Systems,...
Seite 16
Einführung in RMOS3 Multitasking Eine weitere wichtige Anforderung an ein Betriebssystem ist die Mehrprogrammfähigkeit. Die meisten technischen Prozesse lassen sich in mehrere, miteinander gekoppelte und zueinander parallel ablaufende Teilprozesse zerlegen. Dabei ist es äußerst schwierig, vollkommen unübersichtlich und manchmal ganz unmöglich, diese Prozesse durch ein sequentiell ablaufendes Programm zu steuern.
Einführung in RMOS3 2.1 Prozess-Steuerung mit separatem Mensch-Maschine-Interface RMOS3 Um diese Einschränkungen zu umgehen, bieten sich Ihnen mit RMOS3 folgende Lösungsansätze an: 1. Die Prozess-Steuerung und das Mensch-Maschine-Interface sind auf einem PC realisiert. Für die Realisierung der graphischen Oberfläche wird das separate Produkt RMOS3- GRAPHX benötigt.
Einführung in RMOS3 2.1 Prozess-Steuerung mit separatem Mensch-Maschine-Interface Bild 2-1 Prozess-Steuerung mit separatem Mensch-Maschine-Interface Das Richtmaß für die geforderte Echtzeitfähigkeit bestimmt also nicht das Betriebssystem, sondern die Automatisierungsaufgabe. Als Beispiel stellt das automatische Bremssystem in einem Auto wesentlich höhere Anforderungen an die rechtzeitige, unmittelbare System- Reaktion als die automatische Klimaanlage.
Komponenten eingesetzt werden können, die unter RMOS3 ablauffähig sind. Bei unbedienten Systemen oder weniger komplexen Anforderungen an das MMI können Sie alle Aufgaben unter RMOS3 realisieren und auf den separaten PC für MMI-Funktionen verzichten. Damit entfallen auch zusätzliche Lizenzgebühren für DOS/Windows- Betriebssysteme oder -Programme.
Mehrere Programme laufen parallel Multitasking bedeutet bei einer im System enthaltenen CPU, dass zwei oder mehr Programme (Tasks) quasiparallel ablaufen können. Dies wird bei RMOS3 über einen Task- Wechsel-Mechanismus (im Folgenden auch mit Scheduler bezeichnet) gesteuert, der sich an einer absoluten Kennzahl, der Priorität, orientiert. Jede Task startet mit einer von Ihnen festgelegten Priorität zwischen 0 (niedrigste Priorität) und 255 (höchste Priorität).
Seite 21
Priorität aller bereiten Tasks besitzt, die auf diesem Core ablaufen können. Während in der Windows-Umgebung Programme nur dann unterbrochen werden, wenn sie die Kontrolle selbst an die CPU abgeben, kann bei RMOS3 die z.Z. aktive Task auch vorzeitig (preemptiv) ● durch eine gerade bereit gewordene Task höherer Priorität, ●...
Seite 22
● dem automatischen Start der von Ihnen festgelegten Initialisierungstask nach dem Hochlauf des Betriebssystems, ● dem Systemaufruf "Task starten" oder ● der Startanforderung aufgrund eines Interrupts. Die Zustandswechsel Zuordnen bzw. Verdrängen steuert der RMOS3-Scheduler. Die CPU wird der höchstprioren Task zugeordnet, wenn sämtliche Betriebssystem-Aktivitäten beendet sind. RMOS3 V3.50 Benutzerhandbuch...
Systemebene registriert, kommen aber in dem zuvor erwähnten Fall erst nach langer Zeit bis zum eigentlichen Steuerungsprogramm durch. Interruptbearbeitung Die gesamte Interrupt-Steuerung unterliegt der Kontrolle von RMOS3. Alle Interrupts werden von einer zentralen Überwachungsroutine verwaltet, die, abhängig von der Interrupt-Ursache die RMOS3-Interrupt-Routine aufruft. Die jeweiligen RMOS3-Interrupt-Routinen werden in einer Interrupt-Deskriptor-Tabelle hinterlegt und bei Eintreffen eines Interrupts abgearbeitet.
Seite 24
Einführung in RMOS3 2.2 Leistungsmerkmale von RMOS3 Interrupt-Behandlung in 4 Betriebszuständen Abbildung "Betriebszustände von Echtzeit-Interrupts" verdeutlicht die zur Verfügung stehenden Betriebszustände bei der Interrupt-Behandlung. DI-Zustand Disabled Interrupt Zustand alle Interrupts sind gesperrt. I-Zustand Interrupt Zustand Interrupts, die eine niedrigere Priorität als der momentan abgearbeitete haben, sind gesperrt.
Seite 25
Die Interrupt-Service-Routinen werden direkt in einer Hochsprache (z.B. in C) codiert und können durch Prozedur-Deklaration problemlos dynamisch installiert, aktiviert oder ausgetauscht werden. Das Schreiben eines speziellen RMOS3-konformen Treibers zur Behandlung der Echtzeit-Interrupts ist damit in der Regel nicht notwendig. Für Interrupts, die etwas mehr Zeit haben, können Sie darüber hinaus noch zwischen den Diensten ●...
Einführung in RMOS3 2.2 Leistungsmerkmale von RMOS3 Schutzmechanismen von RMOS3 Ein wichtiger Aspekt der Industrietauglichkeit von RMOS3 ist die Unterstützung des 32-Bit- Protected-Mode (ab 80386). Damit sind alle Tasks untereinander geschützt. Daten-, Stack- oder Programmbereichs-Verletzungen einer Task führen zur Fehlererkennung durch das Betriebssystem und zur Ausgabe einer entsprechenden Fehlermeldung, die Hinweise auf Art und Ursache der erkannten Prozessor-Exception gibt.
überschaubare (ausreichende) Anzahl Systemdienste zur Task- und Betriebsmittel- Verwaltung und zur Task-Koordination und -Kommunikation. Durch den Einsatz des konfigurierbaren RMOS3-Nukleus kann der Anwender, ohne selbst einen Nukleus generieren zu müssen, auf eine getestete Betriebssystemvariante aufsetzen und die erforderlichen Treiber durch eine Konfigurationsdatei (RMOS.INI) einbinden, konfigurieren und aktivieren.
● Status-Abfrage (eigene oder andere Task). Taskkommunikation und -koordination Die Taskkommunikation wird bei RMOS3 durch den lokalen Botschaftenverkehr und Ereignisflags ermöglicht. Der Botschaftenverkehr basiert auf sog. Mailboxen, zu denen rechnende Tasks Nachrichten senden bzw. von diesen empfangen können. Dabei können die Tasks auswählen, ob sie beim Senden auf das Abholen ihrer Nachricht oder beim...
Seite 29
Systemaufrufe kann die Software-Uhr, als auch die in den PCs vorhandene Hardware-Uhr gesetzt und abgefragt werden. RMOS3 steuert die Ein- und Ausgabe für eine Vielzahl von Peripheriegeräten über Geräte- Treiber. Mittels eines Systemaufrufs kann eine Task die Ein-/Ausgabe von Daten (Texten) an einen Treiber weitergeben.
Als Entwicklungssystem kann eine beliebige HW-Plattform eingesetzt werden mit einem Windows-Betriebssystem. Optional kann auch TCP/IP eingesetzt werden zur Übertragung von Dateien mittels FTP oder zur Diagnose und Bedienung des RMOS3-Systems per Telnet. Für die Installation der RMOS3-Entwicklungsumgebung ist ein CD-ROM-Laufwerk notwendig.
Seite 31
Resource Reporter Der Resource Reporter ist eine Task, die den Debugger in der Testphase sinnvoll ergänzt. Mit seiner Hilfe können Bestandsaufnahmen von RMOS3-Datenstrukturen und -Betriebsmitteln auf dem Bildschirm ausgegeben werden. Er umfasst Auswertungen für Tasks, Gerätetreiber, Speicherpools, Semaphore, lokale und globale Ereignisflags, Message-Queues und Mailboxen.
Folgende Abildung zeigt u.a. die zuvor erwähnten Entwicklungshilfsmittel innerhalb der Betriebssystem-Struktur von RMOS3. Bild 2-7 Betriebssystemstruktur von RMOS3 Den innovativen Charakter von RMOS3 unterstreichen auch weitere Komponenten, wie z.B. ● symmetrisches Multiprocessing, ● Speicherschutz, ● die ANSI-C Laufzeitbibliothek, ● der Kommandozeileninterpreter, engl. Command Line Interpreter (CLI), ●...
Seite 33
2.2 Leistungsmerkmale von RMOS3 ANSI-C Laufzeitbibliothek Die C-Laufzeitbibliothek RMOS3-CRUN stellt sämtliche C-Funktionen gemäß ANSI-Draft- Standard ISO/IEC DIS 9899 (herausgegeben 1990) in der RMOS3-Multitasking-Umgebung zur Verfügung. Die Laufzeitbibliothek kann als "Shared Library" eingesetzt werden und bietet u.a. folgende Leistungsmerkmale. ● Zeichenverwaltung, String- und Speicher-Operationen.
Ebenso ist das Anlegen und Löschen von Verzeichnissen möglich. 2.2.9 Allgemeine RMOS3-Einsatzbereiche Durch die modulare Struktur von RMOS3 ist der Leistungsumfang und damit die notwendige Speichergröße, entsprechend den kundenspezifischen Anforderungen, individuell konfigurierbar. Von kleinen Embedded-Applikationen bis zu komplexesten Automatisierungssystemen bildet RMOS3 die flexible Echtzeit-Plattform für PC-kompatible Architekturen.
Chance Ihre Applikation schnell und wirtschaftlich zu realisieren. RMOS3 = elementarer Software-Grundbaustein Mit RMOS3 steht ein elementarer Software-Grundbaustein in Form eines Echtzeit- Multitasking-Betriebssystems zur Verfügung, der durch seine Vielseitigkeit die Entwicklung, Wartung und Pflege der Applikations-Software wesentlich beschleunigt und vereinfacht.
Seite 36
Einführung in RMOS3 2.3 Zusammenfassung Motivation für den Einsatz von RMOS3 ● Vermeidung hoher, ständig wiederkehrender Kosten in der Entwicklung und im Management von Software-Anteilen, die nicht direkt relevant für die eigentliche Applikation sind. ● Einfache Portierbarkeit bereits bestehender, ausgetesteter Software-Module in andere Projekte.
Seite 37
● Preemptives Multitasking, ● Echtzeitfähigkeit, ● Industrietauglichkeit und ● Kommunikations- und Koordinationsmechanismen Die Verbindung unterschiedlicher Standards mit RMOS3 bildet dabei eine optimale Betriebssystem-Basis für viele Aufgabenstellungen in der Automatisierungstechnik. Unterstützung der Portabilität Unterstützung der Portabilität und der Wiederverwendbarkeit von Applikations-Software durch: ●...
Seite 38
Einführung in RMOS3 2.3 Zusammenfassung RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Übersicht Die Hard- und Softwareausstattung, die Sie für die Arbeit mit RMOS3 benötigen, hängt davon ab, ob Sie auf einem Entwicklungssystem Tasks entwickeln oder ob RMOS3 auf dem Zielsystem ausgeführt werden soll. Dieses Kapitel beschreibt die jeweilige Mindestausstattung für die ausgelieferte, vorkonfigurierte Betriebssystemvariante sowie für das Entwicklungssystem.
Systemdateien), ist im Kapitel "Booten von Massenspeichern (Seite 49)" beschrieben. RMOS3-Entwicklungssystem Entwicklungssystem Ein RMOS3-Entwicklungssystem erfordert ein PC/AT-kompatibles System ● mit ca. 40 MByte freiem Speicherplatz auf einem Massenspeicher für die RMOS3- Entwicklungsdateien, sowie ● ein CD-ROM-Laufwerk zur Installation. Zusätzlich benötigen Sie Speicherplatz für die in Abschnitt "Programmier- und Testwerkzeuge für die Taskentwicklung (Seite 40)"...
3.4 Programmier- und Testwerkzeuge für die Systemgenerierung Programmier- und Testwerkzeuge für die Systemgenerierung Im Allgemeinen ist eine Generierung des RMOS3-Systems durch den Einsatz des konfigurierbaren Nukleus nicht mehr erforderlich. Deshalb sollten nachfolgend aufgeführte Tools für die Systemgenerierung bei Neuentwicklung nicht mehr verwendet werden.
Seite 42
Erforderliche Hard- und Software 3.4 Programmier- und Testwerkzeuge für die Systemgenerierung RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Entwicklungsrechner. In den folgenden Kapiteln werden die einzelnen Schritte der Installation beschrieben. Bei einem Update von einer früheren Version von RMOS3 muss zuerst das Kapitel "Update (Seite 44)" berücksichtigt werden. Bei einer Neuinstallation kann sofort mit Kapitel "Neuinstallation (Seite 44)" begonnen werden.
Führen Sie die in Kapitel "Neuinstallation (Seite 44)" aufgeführten Installationsschritte durch. Bei Bedarf kopieren Sie Ihre Projektdateien wieder in den aktualisierten Entwicklungsbaum von RMOS3 und berücksichtigen Sie auch die Hinweise in Kapitel "Installation der Compiler, IDE, Debugger (Seite 47)", Kapitel "Installation zusätzlicher Produkte, Board Support Pakete (Seite 47)"...
Seite 45
RMOS3 installieren 4.1 Installation der Entwicklungsumgebung Schritt 2 Nach Betätigung des "Next"-Buttons wird die Seite zur Installation des RMOS3- Entwicklungsbaumes eingeblendet. Bild 4-2 Startbildschirm Schritt 3 Hier erfolgt die Auswahl des Zielverzeichnisses, in welches die Entwicklungsumgebung installiert werden soll. Als Default-Vorgabe wird hier das Verzeichnis C:\RM3DEV vorgeschlagen.
Seite 46
Nun werden Sie aufgefordert, ein Verzeichnis des Startmenüs auszuwählen, in das Verknüpfungen für die RMOS3-Dokumente abgelegt werden. Die Voreinstellung ist SICOMP RMOS3. Haben Sie bereits eine ältere RMOS3-Version installiert und wollen deren Verknüpfungen nicht überschreiben, wählen Sie hier bitte ein anderes Verzeichnis.
Sie bitte die Anweisungen der entsprechenden Produkte. 4.1.3 Installation zusätzlicher Produkte, Board Support Pakete Je nach eingesetzter Zielhardware ist der Einsatz weiterer Produkte von RMOS3 bzw. Board Support Pakete notwendig. Diese können im Anschluss an die vorgenommene Installation der RMOS3-Entwicklungsumgebung nach Anweisung in den jeweiligen Handbüchern installiert werden.
RMOS3-Dokumentation enthalten. Zum Gebrauch dieser Utilities dienen folgende Hinweise: Dokumentation Die komplette RMOS3-Dokumentation in Form von 6 Handbüchern ist im PDF-Format im Verzeichnis RM3DEV\DOC enthalten. Über die Einträge im Startmenü haben Sie die Möglichkeit in elektronischer Form auf die Handbücher zuzugreifen.
4.2 Inbetriebnahme des Zielsystems 4.2.1 Booten von Massenspeichern Vorbereitung des USB-Flash Drives Für die Installation der Laufzeitumgebung von RMOS3 auf einer Festplatte bzw. Compact- Flash-Disk des Zielsystems benötigen Sie ● einen DOS- bzw. Windows PE-bootfähigen USB-Flash Drive Partitionsgröße ● Bei FAT16 beträgt die Partitionsgröße maximal 2 GB. Es werden bis zu 4 Partitionen unterstützt.
Auf dem Massenspeicher darf nach dem Formatiervorgang kein Label angelegt werden. Der RMOS3-Bootloader muss als erste Datei des Filesystems angelegt sein, damit RMOS3 gebootet werden kann. Da ein Label unter RMOS3 wie eine Datei behandelt wird kann dieses Label zu Problemen beim Booten führen.
Seite 51
USB-Flash Drive und dem Vorbereiten des Massenspeichers (siehe Kapitel "Vorbereitung des Massenspeichers (Seite 50)" starten Sie die Installation mit INSTALL <drive> <drive> steht für das Laufwerk des Zielsystems, auf das RMOS3 installiert werden soll. Hinweis Wurde vom USB-Flash Drive gebootet, hat dieses den Laufwerksbuchstaben C: INSTALL unterscheidet während der Ausführung anhand eines Eintrags auf dem USB-Flash...
Neuinstallation des Zielsystems mit Windows PE-bootfähigem USB-Flash Drive Vorbereitung der RMOS3-Installation über USB-Flash Drive Aufruf von INSTUSBPE Zur Installation von RMOS3 über USB-Flash Drive benötigen Sie ein Windows-PE- bootfähiges USB-Flash Drive (z.B. SIMATIC IPC USB-FlashDrive inkl. vorinstalliertem Betriebssystem Windows PE. Bestell-Nr. 6ES7648-0DC50-0AA0). Die Übertragung der notwendigen Installationsdateien vom Entwicklungssystem auf das USB-Flash Drive erfolgt über INSTUSBPE.BAT im Verzeichnis RM3DEV\SYSTEM\PC_CNUC.
Seite 53
Auf dem Massenspeicher darf nach dem Formatiervorgang kein Label angelegt werden. Der RMOS3-Bootloader muss als erste Datei des Filesystems angelegt sein, damit RMOS3 gebootet werden kann. Da ein Label unter RMOS3 wie eine Datei behandelt wird kann dieses Label zu Problemen beim Booten führen.
RMOS3 installieren 4.2 Inbetriebnahme des Zielsystems 4.2.1.3 Update des Zielsystems Für ein Update eines bestehenden RMOS3-Nukleus auf dem Zielsystem müssen je nach Art des USB-Flash Drives und der Boot-Variante verschiedene Randbedingungen berücksichtigt werden. Hinweis Bei einem Update müssen alle Systemdateien ausgetauscht werden, da sonst nicht vorhersehbare Effekte auftreten können.
Seite 55
RMOS3 installieren 4.2 Inbetriebnahme des Zielsystems Update mit Windows-PE-bootfähigem USB-Flash Drive Der RMOS3-Nukleus RM3_PC1.SYS muss im Rootverzeichnis an der 2. Stelle stehen und darf nicht fragmentiert sein. Aus diesem Umstand heraus ergeben sich folgende Möglichkeiten eines Updates: ● Austausch des RMOS3-Nukleus RM3_PC1.SYS, der Konfigurationsdateien und nachladbarer Programme durch Kopieren der neuen Versionen auf den Datenträger.
Seite 56
RMOS3 installieren 4.2 Inbetriebnahme des Zielsystems RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Runtime-Umgebung CRUN bzw. dem aufrufenden Programm Standard-Ein-/ Ausgaben definiert. RMOS3 stellt vier RMOS3-Konsolen für Ein-/Ausgaben zur Verfügung. Dies sind in der Regel die Units 0...3 des BYT-Treibers. Zwischen den Units können Sie mit den Tasten <F1> ... <F4> umschalten. Zur besseren Unterscheidbarkeit haben die vier Units unterschiedliche Hintergrundfarben.
Kommandozeileninterpreter CLI ein zweites Mal starten. Die beiden Kommandozeileninterpreter laufen unabhängig voneinander. Bei RMOS3 können Sie nun den Bildschirm als Ausgabe mit den Tasten <F5> ... <F8> einer anderen Unit zuordnen, die Tastatur bleibt weiterhin der Unit zugeordnet, die ihr mit <F1> ...
Befehlsdatei CLISTART.BAT. Im ausgelieferten System werden durch diese Datei die Form des Cursors (Prompt) und der Suchpfad eingestellt, auf dem der CLI Programme sucht. Der Suchpfad bei Auslieferung ist so eingestellt, dass der CLI die mitgelieferten RMOS3- Beispielprogramme im Verzeichnis C:\RM3RUN findet (DIR.386, TIME.386 etc). Beachten Sie, dass der CLI sowohl Inline-Befehle als auch nachladbare Befehle umfasst.
Code. Beispiel: CLISTART.BAT RMOS3-Debugger Funktion des Debuggers Der RMOS3-Debugger ist ein Programm zum Testen von Tasks und zum Auslesen von Systeminformationen. Mit dem RMOS3-Debugger können Sie sich einen Überblick über die Systemressourcen, den Zustand des Betriebssystems verschaffen und Systemzustände gezielt verändern.
Praxisteil: Erstellen einer RMOS3-Task Erstellen einer RMOS3-Task mit den GNU-Tools Erstellen mit den GNU-Tools Hinweise zur Erstellung einer RMOS3-Task mit den GNU-Tools entnehmen Sie bitte dem Handbuch RMOS3-GNU, Kapitel 7 "Beispiel Applikationserzeugung". Hinweise zum Programmieren und Laden von Tasks Analyse der Automatisierungsaufgabe Der erste Schritt sollte immer eine genaue Analyse der Automatisierungsaufgabe sein.
Seite 62
Systemabstürzen führen. Auch ein Sicherheitszuschlag ist nicht verkehrt. 2. Stackbedarf des Betriebssystems pro Task: Wenn eine Zustandsänderung einer Task eintritt, rettet RMOS3 die Prozessorregister auf dem taskeigenen Stack. Dafür werden 40 Byte benötigt. 3. Werden von der Task CRUN–Funktionen (z.B.
Praxisteil: Testen einer RMOS3-Task Testen mit den GNU-Tools Die Vorgehensweise beim Testen einer RMOS3-Task mit den GNU-Tools entnehmen Sie bitte dem Handbuch RMOS3-GNU, Kapitel "Testen einer RMOS3-Applikation". SVC-Exceptionhandler, Statusmeldungen und Testausgaben SVC-Exceptionhandler Ein SVC-Exceptionhandler wird vom RMOS3-System bereitgestellt. Er soll auf Programmfehler, die in der Anwendersoftware nicht abgefangen werden, in unterster Ebene reagieren.
Praxisteil: Testen einer RMOS3-Task 7.3 Debuggen mit dem RMOS3-Debugger Ist ein Fehler aufgetreten, wird mit dem SVC der Fehlercode in einen Klartext RmDecode umgewandelt. Beispiel: Durch den Aufruf der Funktion svc_sts svc_sts(1,"RmCreateFlagGrp", Status); wird eine Fehlermeldung generiert, die den auslösenden SVC anzeigt (...
Starten Sie die Task dann erneut, wie oben beschrieben. Die Task läuft jetzt ohne diese Fehlermeldung und wartet jetzt auf das Setzen des Flags (SECOND_FLAG). Wechseln Sie zu einer anderen RMOS3-Konsole, starten Sie den Debugger und setzen Sie >svc rmsetflag <Task-ID> 1 <Return>...
Seite 66
Praxisteil: Testen einer RMOS3-Task 7.3 Debuggen mit dem RMOS3-Debugger Exception: SVC-Fehler Nach Eingabe dieses Befehls läuft die Task weiter. Es tritt aber erneut eine Exceptionmeldung auf: *** nuc-0: 09-MAR-1995 09:50:35, svc RmGetBinSemaphore from task: CLI_JOB_1 id: 0x28 failed: 36 (Invalid ID)
Dieses Kapitel beschreibt übergreifend den Aufbau von RMOS3 und die Applikationsmöglichkeiten. Lesehinweis Die Struktur von RMOS3 ist nicht von der Hardware abhängig. In diesem Kapitel werden deshalb die Begriffe, die für das Verstehen des Betriebssystems notwendig sind, übergreifend dargestellt. Für den Einsteiger ist es sicher lohnend, sich über dieses komplexe Kapitel zunächst einen Überblick zu verschaffen und dann anhand der Konkretisierung in den nachfolgenden...
Seite 68
Verzögerung bis zur Bearbeitung des Ereignisses und die Möglichkeit der Vergabe von Prioritäten für die Bearbeitung von Ereignissen. Die Reaktionszeiten und die Dauer für die Bearbeitung von Ereignissen durch RMOS3 hängen stark von folgenden Gegebenheiten ab: RMOS3 V3.50 Benutzerhandbuch...
Seite 69
Zustand von Synchronisierungs- und Kommunikations-Mechanismen untersucht werden kann (auch über den Debugger sind diese Untersuchungen möglich). Mit dem RMOS3-Debugger im Monitor-Mode, aber auch mit einem Emulator, ist das Austesten von Treibern möglich. Zusätzlich ist mit rm-gdb von RMOS3-GNU (separates Produkt) ein symbolisches Debuggen auf Hochsprachenebene möglich.
Seite 70
Applikationen Applikationen oder Anwenderprogramme werden durch eine oder mehrere Tasks realisiert, die miteinander kommunizieren oder sich synchronisieren können. Alle Tasks setzen auf den RMOS3-Systemaufrufen auf. Die Tasks können in Assembler oder in einer höheren Programmiersprache programmiert sein. RMOS3 V3.50 Benutzerhandbuch...
Betriebssystem-Eigenschaften von RMOS3 8.1 Speicherschutz Speicherschutz Beschreibung Neben dem Speicherschutz für segmentierte Programme verfügt RMOS3 über einen Speicherschutz für Flat-Programme. Dieser Schutz verhindert, dass Anwenderprogramme, die im Speichermodell Flat geschrieben sind, Betriebssystem-Code und -Daten sowie Code von Anwenderprogrammen überschreiben. Der Speicherschutz wird durch Verwendung des Paging- und Privileglevel-Mechanismus der 80386-Architektur realisiert.
Betriebssystem-Eigenschaften von RMOS3 8.1 Speicherschutz Tabelle 8- 1 Privileglevel der System Tasks Task Privileglevel Busy Debugger Debugger-Dispatcher Error Logger Exception Task Filesystem Reporter Remote VGA-Task Init-Task (rmconf.c) CLI-Dispatcher Paging Der gesamte Speicher wird mittels Paging in einem gemeinsamen linearen Adressraum dargestellt.
Seite 73
Speicher wird beim User Stack auf 4k aufgerundet. Der System Stack ist immer 3072 Bytes (0x0c00) groß und wird während der Bearbeitung von Betriebssystemaufrufen verwendet. Für den Anwender ist nur der User Stack sichtbar. Der User Stack kann für Segmentierte und Flat Anwendungen (siehe RMOS3-GNU Beschreibung) eingestellt werden. User Stacks müssen mit bzw.
Seite 74
Betriebssystem-Eigenschaften von RMOS3 8.1 Speicherschutz E/A-Zugriffe Die E/A-Zugriffe sind kompatibel zu CAD-UL (z.B. inbyte, outbyte, usw.) und können auf PL0 und PL3 ohne Einschränkungen ausgeführt werden. RMOS3-SVCs SVC-Aufrufe werden auf Systemebene (PL0) ausgeführt. Bei Anwenderprogrammen wird ein impliziter Wechsel von PL3 nach PL0 durchgeführt.
8.2.1 Hochlauf Starten der Prozessorkerne Der Boot-Prozessorkern (Core 0) startet das BIOS und bootet RMOS3. Die weiteren Prozessorkerne (Core 1 und weitere) werden als Applikations-Prozessoren bezeichnet. Sie werden im BIOS initialisiert. Beim Laden des Treibers PCIAPIC.DRV werden die weiteren Prozessorkerne initialisiert und anschließend wird der Scheduler durchlaufen.
Alle Tasks (Prozesse, Programme) mit Ausnahme der Systemprozesse werden vom RMOS3-Nukleus in zwei Tabellen verwaltet, damit ein korrekter nebenläufiger Ablauf aller Tasks möglich ist. RMOS3 legt dazu zwei Datenstrukturen für jede einzelne Task an. Diese Datenstrukturen werden als Prozessleitblöcke (TCD (task control data), TCB (task control block)) bezeichnet und enthalten für jede Task die Startbedingungen als Konstanten und die...
Seite 77
RmCreateTask, RmCreateChildTask RmCreateTaskEx Startdaten einer neuen Task in die Task-Verwaltungstabelle aufzunehmen. Der neue Eintrag in die Tabelle besteht aus den beim SVC übergebenen Parametern. Beim Löschen von Tasks entfernt RMOS3 den Eintrag aus der Task-Verwaltungstabelle. RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Seite 78
Tasks dynamisch kreiert und zum Ablauf gebracht werden, ohne die Betriebssystemkonfigurierung zu verändern. RMOS3 benötigt mindestens eine Task, die beim Systemhochlauf von RMOS3 bereits automatisch gestartet wird. Diese Task wird bei der Konfigurierung festgelegt. Diese Task wird deshalb auch als Starttask oder Initialisierungstask bezeichnet und kann alle anderen Tasks über SVCs starten.
Systemaufrufe stehen jeder in Assembler oder einer Hochsprache programmierten Task zur Verfügung. Die Systemaufrufe werden bei RMOS3 auch SVCs (Supervisor Calls) genannt. Die SVCs bilden die Schnittstelle zwischen RMOS3 und den Tasks. Die SVCs werden von Tasks ausgelöst und von RMOS3 bearbeitet. Durch SVCs werden z.B. der Zustand von Tasks beeinflusst, Speicher allokiert oder Nachrichten an andere Tasks weitergeleitet.
DORMANT (RUHEND, DORMANT) Die Task ist im Betriebssystem mit allen notwendigen Teilen wie Codebereichen, Stack, usw. bekannt, d.h. sie ist in der Taskverwaltungstabelle von RMOS3 eingetragen. Die Task ist noch nicht durch einen SVC gestartet worden. Der Übergang einer Task vom Zustand DORMANT in den Zustand BEREIT wird als Start der Task bezeichnet und durch einen SVC eingeleitet.
8.2 Multiprocessing unter RMOS3 NICHT EXISTENT (NON-EXISTENT) Die Task ist nicht in den Taskverwaltungstabellen von RMOS3 eingetragen. Diese Task kann z.B. als Datei auf einem Massenspeicher liegen oder bereits im PROM stehen. Nur dynamische Tasks können sich in diesem Zustand befinden. Der Übergang vom Zustand NICHT EXISTENT in den Zustand DORMANT, d.
Scheduling-Mechanismus am Beispiel eines Systems mit 2 Cores Warteschlangen (Ready Task Queue, RTQ) RMOS3 unterhält für jeden Core eine Warteschlange, die aus allen lokalen Tasks besteht, die sich im Zustand "BEREIT" befinden sowie eine globale Warteschlange, die aus allen globalen Tasks besteht, die sich im Zustand "BEREIT" befinden. Diese Warteschlangen werden auch als RTQs (Ready Task Queues) bezeichnet.
Cores ein Rescheduling-Vorgang angestoßen. So wird sichergestellt, dass immer die Tasks mit der höchsten Priorität ablaufen. Hinweis Bei älteren RMOS3-Versionen als RMOS3 V3.11 wurde eine Task mit gleicher Priorität vor der bereits vorhanden Task eingereiht! Bild 8-8 Ready Task Queue...
Seite 84
Task-Wechsel (< Round Robin-Zeitintervall) kommen. Wenn die zuvor geschedulte Task wieder RECHNEND wird, läuft sie mit einem neuen, vollen Round Robin-Zeitintervall los. Round Robin bei RMOS3 heißt nicht "Realisierung einer Zeitscheibe", sondern "Task soll nicht länger als das Round-Robin-Zeitintervall RECHNEND sein"! Taskscheduling anhalten Der SVC sperrt alle lokalen und globalen Tasks für die Ausführung...
8.2.4 RMOS3-API zur Taskverwaltung Übersicht der Funktionen RMOS3 stellt ein umfangreiches API zur Taskverwaltung zur Verfügung. In den folgenden Kapiteln werden die wichtigsten Aufrufe kurz erläutert. Weitere Informationen zu den Aufrufen erhalten Sie im Referenzhandbuch Teil III. Tabelle 8- 3 RMOS3-API zur Taskverwaltung...
Bei Systemstart Nach einem Systemhochlauf befinden sich alle im System vorhandenen statischen Tasks im Zustand DORMANT. RMOS3 startet dann automatisch die vom Benutzer konfigurierte Initialisierungs–Task. Obwohl diese Task keinen besonderen Einschränkungen unterliegt, wird davon ausgegangen, dass sie die anwendungsspezifische Umgebung (Datenstrukturen usw.) initialisiert und dann weitere Tasks startet, die für die Applikation notwendig sind.
Datensichtgeräts betätigt wird. Zwei Zeichen pro Gerät Unter RMOS3 ist es möglich, eine Task zu definieren, deren Aufgabe es ist, die unerwartete Eingabe von diesem Gerät zu verarbeiten. Die Task wird in der Konfigurierung des jeweiligen Geräts/Treibers angegeben. Eine unerwartete Eingabe wird ignoriert, wenn keine Task zu ihrer Bearbeitung konfiguriert wurde.
8.2 Multiprocessing unter RMOS3 8.2.8 Taskpriorität Dringlichkeitsstufe Die Priorität einer Task gibt die Dringlichkeitsstufe wieder, mit der RMOS3 eine Task abarbeitet. Die Priorität einer Task wird bei der Task–Definition festgelegt, kann aber später jederzeit geändert werden, um auf die Systemanforderungen einzugehen. 8.2.8.1 Prioritätsänderung durch SVCs...
Betriebssystem-Eigenschaften von RMOS3 8.2 Multiprocessing unter RMOS3 8.2.8.3 Automatische Prioritätsänderung durch Semaphor-Besitz Semaphor-Besitz Um zu verhindern, dass eine semaphor-anfordernde Task durch eine semaphor-besitzende Task mit niedrigerer Priorität blockiert wird, wird die besitzende Task bis zum Rücksetzen des Semaphors mit der gleichen Priorität versehen wie die anfordernde Task. Nach der Rückgabe des Semaphors erhält die in der Priorität angehobene Task wieder die Priorität...
Betriebssystem-Eigenschaften von RMOS3 8.2 Multiprocessing unter RMOS3 8.2.11 SYSTEM HALTED Ausgehen der SMRs bzw. SRBs Wenn auf einem Prozessorkern die SMRs bzw. SRBs ausgehen, werden alle Prozessorkerne angehalten. 8.2.12 Performance Geschwindigkeitsgewinn Das Vorhandensein von zwei Prozessorkernen bedeutet auch bei einer Multithreaded- Applikation nicht unbedingt, dass die Anwendung mit doppelter Geschwindigkeit läuft.
Core zu binden: ● Binden der Applikation mit CORE ● Binden einzelner Tasks mit CORETASK ● Binden einzelner Tasks mit RmBindTask Fast Timer Ticks Programme, die FastTimerTick-Funktionen verwenden, müssen mit RMOS3 V3.50 neu erzeugt werden. RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Betriebssystem-Eigenschaften von RMOS3 8.3 Interrupt-Bearbeitung unter RMOS3 Interrupt-Bearbeitung unter RMOS3 Interrupts Interrupts dienen zur Synchronisation von Treiberzuständen und der Hardware, d.h. die Hardware zeigt der Software einen bestimmten Zustand an (z. B., dass ein Zeichen eingelesen werden kann). Jeder Treiber, der über Interrupts synchronisiert wird, besitzt mindestens einen, eventuell auch mehrere Einsprünge, die von einer Interruptroutine aus...
Betriebssystem-Eigenschaften von RMOS3 8.3 Interrupt-Bearbeitung unter RMOS3 8.3.1 Grundlagen der Interrupt-Bearbeitung Interrupt im 80x86 Alle Prozessoren 80x86 besitzen zwei Interrupteingänge, ● INTR, Interrupt-Request und ● NMI, Non Maskable Interrupt. Nur der Interrupt am INTR-Eingang kann über ein Interrupt-Flag gesperrt oder freigegeben werden.
Seite 94
Die Eingänge der Interrupt-Controller können, zusätzlich zur Interrupt-Sperre bzw. –Freigabe des Prozessors, individuell maskiert und wieder freigegeben werden. Dies ist über das Interrupt Mask Register des Interrupt-Controllers möglich und wird vom RMOS3- Betriebssystem bei der Installation von Interrupt-Routinen und Treibern automatisch vorgenommen.
6. Am Ende der entsprechenden Interrupt Service Routine (spätestens beim Wechsel vom I-Zustand in den S-Zustand) muss die CPU dem PIC ein EOI-Kommando (End Of Interrupt) geben. Dies wird bei RMOS3 mit der Routine "X_ISSUE_EOI" gesteuert und automatisch ausgeführt. Interrupt-Bearbeitung im APIC-Modus Die Interrupt-Bearbeitung ist ähnlich wie im PIC-Modus, aber wesentlich schneller.
Seite 96
Betriebssystem-Eigenschaften von RMOS3 8.3 Interrupt-Bearbeitung unter RMOS3 Behandlung fehlerhafter Interrupt-Signale im PIC-Modus ● Sowohl im flanken- als auch im pegelgetriggerten Mode des PIC muss jedes IR-Signal bis zur fallenden Flanke des 1. INTA# -Impulses (von der CPU) "aktiv" (low) bleiben! ●...
Es stehen keine Aufrufe zur Verfügung, die ein Warten auslösen. Dadurch ist eine Kommunikationsmöglichkeit in Richtung vom Interrupthandler zur Applikationstask gegeben. Ein Interrupthandler kann unabhängig von den RMOS3–Datenstrukturen (z.B. für Treiber) implementiert sein. Es muss dann allerdings eine entsprechende Applikationstask geben, die auf diesen Interrupthandler abgestimmt ist, die z.B.
(siehe auch Hochsprachen–Interrupthandler). rettet alle Register im Stack des x_elipse unterbrochenen Programms und schaltet auf den RMOS3–Systemstack um, falls dieser nicht schon aktiv ist. Vor Verlassen des DI–Zustandes müssen deshalb die Registerinhalte wiederhergestellt werden, die zu Beginn der Interruptbehandlung gültig waren.
Interrupt zu bearbeiten. Zeitkritische Operationen können dann vor dem Verlassen des DI–Zustandes (vor Aufruf des Unterprogramms x_elipse durchgeführt werden. Dies ist normalerweise nicht üblich, da von RMOS3–Treibern sofort aufgerufen wird. gibt unter anderem den Interrupteingang der CPU wieder...
Umwandlung des Interrupthandlers in einen x_systate Systemprozess, der zu einem späteren Zeitpunkt weiter bearbeitet wird. RMOS3-Treiber Die RMOS3-Standardtreiber leiten die Behandlung eines Interrupts im I-Zustand ein. Im I- Zustand können SVCs aufgerufen werden, die nach Verlassen des I-Zustandes abgearbeitet werden. RMOS3 V3.50 Benutzerhandbuch...
Das bedeutet, dass alle nachfolgenden Systemprozesse blockiert werden. Systemprozesse besitzen deshalb untereinander auch keine Priorität. Alle Interrupts sind freigegeben Alle Interrupts sind im S–Zustand freigegeben. Abläufe des RMOS3–Nukleus sowie große Teile von Treiberprogrammen sollten im S–Zustand ausgeführt werden. Systemprozesse beenden sich immer selbst durch Unterprogrammaufrufe, die vom Nukleus bereitgestellt werden, oder durch eine RETURN–Anweisung.
Seite 102
Übergang vom I– in den S–Zustand vom Zustand RECHNEND in den Zustand BEREIT versetzt, da in jedem Fall zuerst der Systemprozess bearbeitet werden muss. Die Systemprozesse können lokale Variablen (RMOS3–Systemstack), Systemvariablen und eine Reihe von Unterprogrammaufrufen des Nukleus benutzen, um die Bearbeitung von Ereignissen abzuschließen.
Befehls ausgeführt wird, da jeder Interrupt die Programme im Applikationszustand sofort unterbricht. Übergänge vom S–Zustand zum A–Zustand sind bei RMOS3 über den Scheduler möglich (Taskwechsel), der die Taskbearbeitung veranlasst. Ein Interrupthandler bzw. ein Systemprozess kann niemals in den A–Zustand übergehen.
● Der PCI-Scanner ermöglicht das Auffinden einzelner oder aller Baugruppen am PCI-Bus. Shared Interrupt Server Der Treiber RMISHSRV.DRV initialisiert den PCI Shared Interrupt Server, trägt den Treiber in den RMOS3-Katalog ein und setzt in einer Mailbox Zugriffsinformationen für den Client ab. Der Interrupt Server wird beim Hochlauf des Nukleus nachgeladen: ●...
Seite 105
Die Funktionen des PCI-Scanners ( RmPciSearchFunction RmPciSearchSubFunction ermöglichen einer RMOS3-Task alle PCI-Devices am Bus zu suchen oder gezielt nach PCI- Devices zu suchen, deren Vendor-ID und Device-ID, oder deren Vendor-ID, Device-ID, Subsystem-VendorID und Subsystem ID bekannt sind (siehe Technische Beschreibung der jeweiligen Baugruppe).
Benutzer ist, wird als "kritischer Bereich" bezeichnet. Mechanismen RMOS3 stellt für die Taskkommunikation einen weiten Bereich von Mechanismen durch SVCs bereit, die sich durch die Länge der Information, in der Geschwindigkeit, Komplexität und Einsatzzweck unterscheiden, aber auch teilweise überschneiden.
Zustand WARTEND (BLOCKED) geschieht, spricht man von aktivem bzw. passivem Warten. Aktives Warten oder Polling ist bei Multitasking–Betriebssystemen von Nachteil, da diese Art von Warten Rechenzeit verbraucht, was den Systemdurchsatz vermindert. Nachfolgend werden die unter RMOS3 verfügbaren Kommunikationsmittel erläutert. Tabelle 8- 5 Task-Kommunikation, -Koordination, -Synchronisierung Taskkommunikation, -koordination, -synchronisierung...
Betriebssystem-Eigenschaften von RMOS3 8.4 Taskkommunikation, -koordination, -synchronisierung 8.4.1 Kommunikation und Koordination durch Starten einer Task Starten einer Task Dieses Kommunikationsmittel ist eng verwandt mit der Verwaltung von Tasks. Die Nachricht besteht im Starten einer Task durch eine andere Task über SVCs ( RmStartTask, ) und besitzt bestenfalls eine vordefinierte Bedeutung für die gestartete...
Betriebssystem-Eigenschaften von RMOS3 8.4 Taskkommunikation, -koordination, -synchronisierung RMOS3 unterstützt binäre Semaphore. Das Semaphor ist eine Datenstruktur, für das nur die beiden Operationen zugelassen sind. RmGetBinSemaphore RmReleaseBinSemaphore Der SVC prüft und sperrt den kritischen Bereich für andere Tasks. Falls RmGetBinSemaphore der kritische Bereich frei ist, kehrt der Aufruf sofort zurück und die Task kann in den kritischen Bereich eintreten, andernfalls wird die Task in den Zustand WARTEND gesetzt, bis der kritische Bereich frei wird.
Betriebssystem-Eigenschaften von RMOS3 8.4 Taskkommunikation, -koordination, -synchronisierung 8.4.3 Kommunikation und Koordination durch Spinlocks Spinlocks Ein Spinlock ist eine Programmiertechnik zur Synchronisation von Tasks bzw. Programmteilen, die parallel auf mehreren Cores laufen. Spinlocks sind in ihrer Funktionalität Semaphoren recht ähnlich. Semaphore warten passiv auf die Freigabe des Betriebsmittels.
Betriebssystem-Eigenschaften von RMOS3 8.4 Taskkommunikation, -koordination, -synchronisierung Spinlocks können nur innerhalb einer geladenen Applikation benutzt werden, da der Code direkt eingebunden wird. Der Code wird für jede geladene Applikation neu dazugebunden. Da die Spinlocks keine Betriebssystemaufrufe sind, werden die entsprechenden Aufrufe nicht vom Profiler aufgezeichnet.
(Flag-ID ungleich Null) als auch auf alle lokalen Flaggruppen über die SVCs RmGetFlag bzw. (über die entsprechende Task-ID) zugreifen. RmSetLocalFlag RmGetLocalFlag RMOS3 besitzt folgende SVCs für Operationen mit Flags: ● Ereignis–Flag setzen ( RmSetFlag, RmSetLocalFlag ● Flag nach Ablauf eines Zeitintervalls setzen ( RmSetFlagDelayed ● Ereignis–Flag rücksetzen ( RmResetFlag, RmResetLocalFlag ●...
Kommunikation über lokale Mailboxen Lokale Mailboxen Eine Mailbox ist in RMOS3 eine Datenstruktur, die einer dynamischen, linearen Liste vom Typ Nachricht entspricht. Eine Nachricht ist immer 3 Worte (12 Bytes) lang und besitzt einen von der Applikation abhängigen Inhalt (z.B. einen Zeiger und eine Länge, oder einfach 12 Zeichen).
8.4.6 Message-Kommunikation Messages RMOS3-Tasks können untereinander Nachrichten als Messages austauschen. Dazu kann für jede Task eine Message-Queue erzeugt werden. Die Message-Queue ist ein FIFO- Speicher, in den von anderen Tasks Nachrichten kopiert werden können. Die Minimalanforderung an eine Nachricht ist ein 32-bit-Parameter und ein Far-Pointer. Der 32-bit-Parameter (Identifikationskennung der Nachricht) benennt die Nummer bzw.
Speicherbereich (z.B. ein gemeinsames Datenfeld, Puffer, Shared Memory) für zwei oder mehrere Tasks. Diese Variante ist unter RMOS3 ohne weiteres möglich. Der Benutzer muss dann allerdings selbst dafür sorgen, wann welche Bereiche gültig sind, gelesen oder beschrieben werden dürfen und wie dies den Partnertasks mitgeteilt wird. Die Programmierung dafür ist in jedem Fall applikationsspezifisch und ist nicht trivial.
Betriebssystem-Eigenschaften von RMOS3 8.5 Betriebsmittelverwaltung Betriebsmittelverwaltung RMOS3 bietet zahlreiche Systemaufrufe zur Betriebsmittelverwaltung. In folgender Übersicht sind die wichtigsten SVCs aufgeführt. Weitere Details zu den Aufrufen finden Sie im Referenzhandbuch Teil III. Tabelle 8- 6 Betriebsmittelverwaltung Betriebsmittelverwaltung Ressourcen- Zeitverwaltung Speicherverwaltung Deskriptor-...
Message RM_CATALOG_MESSAGE 2048 Der Betriebsmittelkatalog ermöglicht die gezielte Suche nach Einträgen, ohne die ID der entsprechenden Task, Schnittstelle, ... zu kennen, da die IDs vom RMOS3-System immer dynamisch vergeben werden, die Katalogeinträge aber immer den gleichen Namen beibehalten. bzw. kann die ID des gewünschten Katalogeintrags ermittelt und...
Parameter eine Zeit enthalten, übergeben ein Zeitintervall und dessen Anzahl. Das kleinste Zeitintervall ist eine Millisekunde, das größte eine Stunde. Falls der Parameter für die Anzahl der Zeitintervalle Null ist, spricht man bei RMOS3 von einem Minimalzeitintervall. Diese Zeitdauer entspricht dann einfach der Wartezeit auf den nächsten Systemtakt.
Verzögerungen wieder auszugleichen. BEREIT für Neustart, schnelle Zykluszeiten Mit der Funktionalität des schnellen Zyklus können unter RMOS3 bis zu fünf Tasks im Raster von 10 Mikrosekunden gestartet werden. Damit können z.B. schnelle Regelalgorithmen implementiert werden. Die Einstellung des gemeinsamen Grundzyklus für 10, 50, 100, 200 oder 500 Mikrosekunden erfolgt über den Aufruf...
Seite 120
RMOS3 eine Task für eine bestimmte Zeit in den Zustand WARTEND RmPauseTask setzen. Die Länge der Pause kann angegeben werden, oder RMOS3 verwendet von sich aus ein Mindestzeitintervall. Nach Ablauf des Zeitintervalls wird die Task wieder in den Zustand BEREIT überführt und fortgesetzt.
Seite 121
Um den Abschluss einer angeforderten E/A–Operation auch im Falle eines fehlerhaften Peripheriegerätes zu sichern und dadurch ein einwandfreies Funktionieren des Systems zu gewährleisten, bietet RMOS3 die Möglichkeit, in jedem Geräte–Software–Treiber ein Zeitintervall, Geräte–Timeout genannt, zu definieren, das die maximal zugelassene Zeit für die Durchführung einer E/A–Operation darstellt.
Speicherbereiche für dynamische Datenstrukturen, Speicherpools: Beim Systemhochlauf ermittelt das RMOS3–System den freien RAM–Speicher. Dieser Speicher wird als HEAP–Pool (Haufen) von RMOS3 verwaltet. Darüber hinaus ist es auch möglich, weitere Speicher-Pools zu definieren. Der HEAP–Pool kann immer mit der ID –1 angesprochen werden, während bei anderen Pools immer die ID angegeben werden muss.
8.5.4 Deskriptorverwaltung Protected Mode und Privilegstufen RMOS3 ist ein Protected Mode Betriebssystem, das heißt Code, Daten und Stack des Nukleus und Tasks sind gegenseitig vor unerlaubten Zugriffen geschützt. Die Protected Mode Mechanismen wurden mit der 80386-Prozessor-Architektur möglich, in der Zugriffe eines Programms auf Daten und Code überprüft werden und Berechtigungen für einen...
Seite 124
Betriebssystem-Eigenschaften von RMOS3 8.5 Betriebsmittelverwaltung Adressierung im Protected Mode Im Protected Mode erfolgt die Adressierung nicht direkt über die Basisadressen des gewünschten Daten-Segments, sondern über Segmentselektoren. Dieser Segmentselektor wird in ein 16-Bit Segmentregister, z.B. DS, geladen und dient zur Adressierung eines Descriptors, z.B. Descriptor #3. Das heißt, dieser Segmentselektor wählt einen Descriptor aus seiner Descriptor-Tabelle (GDT, LDT) aus.
Descriptor Table zeigt. Mittels der Buildin-Funktion erhält man den Pointer auf die gewünschte Adresse. buildpointer(Selector, Offset) RMOS3 bietet auch weitere Funktionen zur Verwaltung von Deskriptoren. Dies sind neben der schon erwähnten Funktion Funktionen zum Löschen von RmCreateDescriptor Deskriptoren und zur Veränderung von Zugriffsrechten, als auch Funktionen zur Ermittlung...
Meldung im Klartext aus. Er wurde bereits in den Beispielen aus Kapitel "Praxisteil: Erstellen einer RMOS3-Task (Seite 61)" und Kapitel "Praxisteil: Testen einer RMOS3-Task (Seite 63)" in der Prozedur svc_sts eingesetzt und in Kapitel "SVC-Exceptionhandler, Statusmeldungen und Testausgaben (Seite 63)" ausführlich beschrieben.
(über Netzwerk), den Resource Reporter und den RMOS3-Profiler. Debugger Der Low-Level-Debugger besitzt folgende Eigenschaften: ● Ablaufsteuerung (z.B. Starten) und Zustandsprüfung aller unter RMOS3 arbeitenden Tasks ● Möglichkeit zur Prüfung und Änderung von Speicherinhalten ● Setzen von Unterbrechungspunkten (Breakpoints) in Anwendertasks ●...
Initialisierungsvorgang Meldungen ausgegeben. Damit ist eine erste Feststellung der Korrektheit einer Konfigurierung möglich. RMOS3 kann alle SVCs, die mit nicht korrekten Parametern abgesetzt wurden, mit einer Meldung an einem konfigurierbaren Terminal registrieren. Diese Meldung ist unabhängig von einer eventuellen Fehlerauswertung des SVCs im Code der aufrufenden Task.
Austesten von Treibern, für die der Quellcode vorliegt, wird ein Host-Debugger mit dem RMOS3-Target-Debugger oder ein Hardwareemulator benötigt. Als Host-Debugger steht derzeit der rm-gdb aus dem Softwarepaket RMOS3-GNU (zur Ausführung unter Windows) zur Verfügung. Zum Austesten von Anwendertasks stehen bei einer korrekten Betriebs- systemkonfigurierung neben den unabhängigen Testmitteln der Debugger, der Resource...
Dort sind Details wie Konfigurierung und alle Testmöglichkeiten beschrieben. 8.6.2.2 Host-Debugger Anschluss Der Host-Debugger auf einem PC kann mit dem RMOS3-Debugger als Targetsystem über eine LAN-Schnittstelle kommunizieren. rm-gdb von GNU Merkmale des rm-gdb.exe von GNU: ● Unter Windows ablauffähiges Programm ●...
Ein Emulator ist im Vergleich zum Monitor in jedem Falle das komfortablere und leistungsfähigere Werkzeug (symbolisches Testen, Trace-Puffer). Hinweis Nach Auflaufen der RMOS3-Applikation auf einen Breakpoint ist keine Echtzeitverarbeitung mehr gegeben, da das gesamte System stillsteht. RMOS3 V3.50 Benutzerhandbuch...
8.6 DEBUG-Strategien unter RMOS3 8.6.3 Meldungen beim Systemhochlauf Meldungen beim Bootvorgang RMOS3 kann beim Hochlauf Meldungen ausgeben. Dazu wird in der Konfigurationsdatei RMCONF.C eine Ausgaberoutine, bezogen auf einen bestimmten Baustein, angegeben. -Funktion Dadurch haben die Initialisierungsroutinen die Möglichkeit, mit einer Putchar Zeichenketten auszugeben.
Systemkonsole. Die Errorloggertask wird z.B. von der CRUN genutzt. Auch Treiber können die Errorloggertask für Fehlermeldungen nutzen. Die Konfigurierung der Errorloggertask und die Festlegung der Systemkonsole sind bei der Systemkonfigurierung (im Systemhandbuch) beschrieben und kann auch in allen mitgelieferten RMOS3-Applikationen nachvollzogen werden. Meldungen Bei unzureichenden Systemressourcen gibt der Nukleus über die Routine...
Bildschirm aus. Der EIH ist modular aufgebaut und gliedert sich in einen Assembler- und C- Teil. Dadurch kann er leicht erweitert werden. Hinweis Der EIH beeinträchtigt die Echtzeitfähigkeit von RMOS3, da er bei Bildschirmausgaben im Polling-Verfahren arbeitet. Die Interrupts werden dabei von der Routine nicht...
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Task im A-Zustand Wurde beispielsweise ein Exception-Interrupt von einer Task im Zustand A ausgelöst, hat die Bildschirmausgabe folgendes Aussehen: *** nuc-<CoreID>: <datum> <uhrzeit> <Exception-Text>: xxxx:xxxxxxxx xxxx:yyyyyyyy ZZ..Befehl error code: y caused by task <name> id: 0xXX tcb at address: xxxx:xxxxxxxx...
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Die Exceptions können mit dem rm-gdb aus dem Software-Paket RMOS3-GNU untersucht werden (siehe Handbuch RMOS3-GNU). Abhängig davon, ob das EIP-Register nach dem Exception-Interrupt die Adresse des auslösenden Befehls oder des nächsten Befehls enthält, gibt der EIH entweder AT ADDRESS oder NEAR ADDRESS aus.
Testen mit dem RMOS3-Debugger Der RMOS3-Low-Level-Debugger ist fester Bestandteil eines Standard-RMOS3-Systems (für spezielle Anwendungen kann er auch aus dem RMOS3-System entfernt werden, z.B. auch um die Größe des Betriebssystem-Nukleus zu verringern). Er ist ein Programm zum Testen von Tasks und zum Auslesen von Systeminformationen. Mit dem RMOS3-Debugger können Sie sich einen Überblick über die Systemressourcen, den Zustand des...
Laufzeitoptimierung hilfreich. Weitere Einsatzmöglichkeiten sind das Messen von SVC- Ausführungszeiten und bestimmten Programmteilen. In den folgenden Schritten finden Sie eine kurze Einführung in die Anwendung des RMOS3- Profilers. Eine ausführliche Dokumentation des RMOS3-Profilers ist im Referenzhandbuch Teil I, Kapitel 5 "Referenz der RMOS3-Profiler-Kommandos".
Seite 139
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Erweiterung des Beispiels F_TASK F_TASK.C finden Sie im Verzeichnis \EXAMPLES\F_TASK. Dieses Beispiel soll um eine WHILE-Schleife erweitert werden. Bild 8-21 F_TASK erweitert um eine WHILE-Schleife Im nachfolgenden Listing sind die Erweiterungen fett markiert. Nachdem Sie die Änderungen durchgeführt haben, compilieren Sie das Programm neu und übertragen es auf das...
Seite 140
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Listing Sourcecode des erweiterten Programms F_TASK #include <rmapi.h> #include <stdio.h> #include <stdlib.h> #define FLAG1 void svc_sts (unsigned int, char *, int); void _FAR main (void) Status; unsigned int FlagId, CurrentFlag, Counter; printf ("FIRST_TASK is running\n\n\r");...
(" = %s\n", buf); else printf ("\n"); Vorbereitungen am Zielsystem Starten Sie RMOS3 am Zielsystem. Falls nicht automatisch erfolgt, starten Sie auf dem weißen Bildschirm mit <CTRL-R> den Command Line Interpreter. CLI logon task Enter name of startup file : <ENTER>...
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Übersicht über die Ressourcen Gehen Sie mit der <F2>-Taste zurück auf den roten Bildschirm, starten den RMOS3- Debugger und verschaffen Sie sich einen Überblick über die katalogisierten Tasks mit >dir task Cataloged resources...
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Start des RMOS3-Profilers Jetzt können wir auf der weißen Konsole den RMOS3-Profiler starten: Hauptmenü "Select measurement mode" C:\>rprof Rprof, RMOS Profiler V2.1.0 running on RMOS3 Version V03.50.00 Select measurement mode 0 – Determine load distribution 1 –...
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Protokollierung der Rechenzeitverteilung Eine Übersicht über die Rechenzeitverteilung liefert der Menü-Punkt " " im Hauptmenü. 0 - Determine load distribution Input: 0 Menü "Determine load distribution" Determine load distribution 0 - Start measurement...
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Starttime of measurement: 00:01:27:782 (h:min:s:ms) Stoptime of measurement: 00:01:30:746 (h:min:s:ms) Duration of measurement: 2964 ms Load distribution for tasks(core0): 3 ms ( 0.10%) Load distribution for s-state(core0): 2 ms ( 0.06%) Idle time(core0): 2959 ms ( 99.83%)
Seite 146
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Menü "Determine task activity" Determine task activity 0 - Start measurement 1 - Stop measurement 2 - Start measurement of specified duration 3 - Output measurement 4 - Return to main menue 5 - Release memory 6 - Output measurement to file RPROF.SAV...
Seite 147
Betriebssystem-Eigenschaften von RMOS3 8.6 DEBUG-Strategien unter RMOS3 Analyse des Protokolls Jetzt kann das Protokoll als Datei RPROF.SAV in das Verzeichnis abgespeichert und weiterverarbeitet werden, von dem RPROF gestartet wurde, oder auf dem Bildschirm angezeigt werden: Determine task activity 0 - Start measurement...
RMOS3-Profiler-Kommandos" zu Rate ziehen. Die sechste Spalte (CORE) enthält die CoreID des Prozessorkerns, auf dem die Task abgelaufen ist. Die letzte Spalte enthält den Tasknamen und die Namen der Interrupt-Routinen, z.B. die des Timer Ticks (RMOS3- Systemtakt) im DI-Zustand und auch eine Interrupt-Bearbeitung im S-Zustand, die...
Treiber steuert und verwaltet entweder ein oder mehrere Peripheriegeräte gleichen Typs (z.B. Ausgaben über eine oder mehrere V.24–Schnittstellen). Alle Peripheriegeräte, die ein einzelner Treiber ansteuert und verwaltet, werden bei RMOS3 als "Geräte" oder "Units" dieses Treibers bezeichnet. Treiber lassen sich grob in zwei Kategorien einteilen: Zeichenorientierte Treiber und blockorientierte Treiber.
Seite 150
Betriebssystem-Eigenschaften von RMOS3 8.7 Basis Ein-/Ausgabe-System von RMOS3 Je nachdem, ob der Treiber über einen Controller mehrere Geräte steuert, oder über mehrere Controller jeweils ein Gerät steuert, wird der entsprechende Treiber dann als serieller oder paralleler Treiber bezeichnet. Ein Treiber besteht meistens aus mehreren Programmen, die überwiegend als Systemprozesse laufen und eine Schnittstelle zum Nukleus besitzen, die durch Unterprogrammaufrufe realisiert ist.
Ein Arithmetik-Coprozessor (z.B. 80387), sofern vorhanden, kann von mehreren Tasks für umfangreiche mathematische Berechnungen verwendet werden. Wird eine Task verdrängt, die auf den Coprozessor zugegriffen hat, führt RMOS3 einen Registeraustausch des Coprozessors durch. Die Sicherung der Register erfolgt in einem eigens dafür angeforderten Speicherbereich und wird als NPX-Kontext (NPX steht für "Numeric Processor eXtension")
Beginn jeder Task aufgerufen werden. Erst danach stehen die eigentlichen Funktionen von CRUN zur Verfügung. Standardmäßig wird durch die Initialisierungstask (in RMCONF.C) aufgerufen. Der xinitc RMOS3-CLI führt für Tasks, die er startet ( ) die Initialisierung mit durch. main xinitt...
Betriebssystem-Eigenschaften von RMOS3 8.9 C-Runtime-Bibliothek CRUN 8.9.2 Mathematische Funktionen Die in der Headerdatei MATH.H deklarierten numerischen Funktionen führen Operationen mit Gleitkommazahlen durch und sind nur für double–Argumente (64 Bit) definiert. Die übrigen mathematischen Funktionen können nur auf ganzzahlige Werte angewendet werden.
Betriebssystem-Eigenschaften von RMOS3 8.9 C-Runtime-Bibliothek CRUN Behandlung von speziellen 8087-Zahlenformaten Alle speziellen Zahlenformate werden als Argumente von numerischen Funktionen folgendermaßen behandelt: NaNs (Not a Number) Tritt ein NaN als Argument in einer numerischen Funktion auf, wird dieses NaN wieder unverändert durch die Funktion zurückgegeben. Dieses Vorgehen ist konform zum ISO/IEC DIS 9899–Standard.
Seite 155
Betriebssystem-Eigenschaften von RMOS3 8.9 C-Runtime-Bibliothek CRUN Initialisierung des Coprozessors 80x87 Die Initialisierung des Coprozessors 80x87 ist defaultmäßig für PC-kompatible Hardware ausgelegt. Die Datei SWCCF87.ASM enthält die nachstehenden Funktionen, die unter Umständen an die Besonderheiten der Hardware und der Anwender–Software anzupassen sind.
Seite 156
Auftreten einer Fehlerbedingung verlassen werden. Der Anwender muss in diesem Fall einen eigenen Signalhandler installieren. far struct env87 void x_cr_issue_eoi_copr(void) Mit dieser Funktion werden Interrupts des 80x87 behandelt. Die Funktion wird im RMOS3– DI–Zustand aufgerufen. Die Funktion legt auf dem Stack die Umgebung des 80x87 ab (14 Worte).
Fehlerüberprüfung erfolgen. Dies betrifft alle Funktionen, die Ein–/Ausgabe–Operationen über das RMOS3–Dateisystem oder den RMOS3–BYT–Treiber ausführen. In diesem Fall wird zusätzlich eine Variable errno2 initialisiert. Diese Variable enthält die originalen Status–Werte des aufgerufenen Treibers oder des HSFS. Die Variable enthält nur dann sinnvolle Werte, wenn...
Betriebssystem-Eigenschaften von RMOS3 8.9 C-Runtime-Bibliothek CRUN 8.9.4 Beispielprogramme zur Verwendung der C–Bibliothek Folgende Schritte sind zur Inbetriebnahme notwendig: zu Beginn einmal global aufrufen. xinitc in der Initialisierungs–Task aufrufen. xinitt 3. Bei Bedarf andere Tasks starten. zu Beginn jeder weiteren Task aufrufen.
Da der Bootsektorcode fast ausschließlich im Real-Mode abgearbeitet wird, lassen sich RMOS3-Systeme ohne speziellen Bootloader nur innerhalb des ersten MBytes laden. Daraus ergibt sich, wie in folgender Abbildung dargestellt, die maximale Größe des RMOS3- Nukleus von 608 kByte. RMOS3 V3.50 Benutzerhandbuch...
Bild 9-1 Speichermapping einer typischen PC-Architektur Bevor der Bootsektorcode ein RMOS3-System über einen Taskswitch startet, wird das GDT-, IDT- und Taskregister (mit GDT-Entry 5) geladen und anschließend in den Protected Mode geschaltet. Die Auswahl des Bootmediums ist abhängig vom BIOS.
Seite 161
Betriebssystem direkt mit dem RMOS3-Bootloader (nur bei Dateigrößen kleiner als 608 kByte möglich) oder mit dem Second Stage Bootloader RMLDR geladen werden. Alternativ dazu besteht die Möglichkeit, über MS-DOS zu booten und den RMOS3-Nukleus über den DOS-Bootloader LOADX.EXE zu laden.
(Codesegment bzw. Local ROM), den statischen, vom Nukleus benötigten Variablen und Datenstrukturen (Datensegment, Local RAM) und den für den Nukleus benötigten Heap (RAM). Die entsprechenden Speicherabbilder sind in folgendeer Abbildung schematisch dargestellt. Bild 9-2 Prinzipielle Struktur von RMOS3 auf PC RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
RMOS3 System-Konfigurierung 9.3 Systemeigenschaften des RMOS3-Nukleus Systemeigenschaften des RMOS3-Nukleus Eigenschaften des Konfigurierbaren Nukleus Nachdem das RMOS3-System hochgelaufen ist, sind im Konfigurierbaren Nukleus die in den folgenden Abschnitten aufgeführten Betriebssystemelemente verfügbar. 9.3.1 Belegung der Geräteeinheiten Dateiverwaltungssystem RMOS3 enthält das Dateiverwaltungssystem HSFS. Das HSFS kann Datenträger mit DOS- 12-Bit FAT (File Allocation Table), DOS-16-Bit FAT, BIGDOS, VFAT16, FAT32 und VFAT32- Partitionen verwalten.
HSFS-Tasks für Je Speichermedium wird vom HSFS eine Task HSF_B Diskettenlaufwerke gestartet. HSF_R und RAM-Disk RMCONF RMOS3-Startup-Task Die Reihenfolge folgender Tasks ist vom gestarteten RMOS3-System abhängig: Katalogeintrag Name Bedeutung BU_COUNT Busy-Task Misst die Auslastung des Systems. CLI_CLEANUP CLI-Task für Bereinigt den Speicher bei Beendigung von...
HDINIT Die Integration der Festplatten in das HSFS erfolgt beim Systemstart. Das Modul HDINIT wird in den RMOS3-Bindevorgang einbezogen und während der Initialisierung ausgeführt. In einer ersten Phase wird der HD0-Treiber initialisiert. Dazu werden die Daten der BIOS- ROM-Tabelle verwendet, auf die die Interrupt-Vektoren 41H und 46H zeigen. Nachdem der Treiber für Unit 0 (Laufwerk-C) und Unit 1 (Laufwerk-D) initialisiert wurde, wird in der zweiten...
Abkürzungen/Glossar Application Programming Interface APIC Advanced Programmable Interrupt Controller Botschaft (engl. Message). Unter RMOS3 wird unter Botschaft der Inhalt eines 3-Wort-Puffers verstanden Board Support Package. CAD-UL Computer Aided Design Ulm, Compiler-Hersteller Command Line Interpreter, Anwenderschnittstelle zum Betriebssystem. Client Verbraucher oder Kunde einer Dienstleistung, manchmal auch Bezeichnung eines Rollenverhaltens in der Beziehung zweier kooperierender Prozesse, in dem der Client die aktive, anfordernde Rolle annimmt.
Seite 168
Driver Control Data, Treiber-Steuerdaten, Tabelle mit den Vorgabewerten der Konfiguration. Device Treiberprogramm, Ein-/Ausgabeoperationen werden von RMOS3 über spezielle Programme, Treiberprogramme oder kurz Treiber genannt, und deren Untereinheiten, den Units, abgewickelt. Welche Treiber dem Betriebssystem zur Verfügung stehen, wird bei der Systemkonfigurierung festgelegt.
Seite 169
High Speed File System Interrupt Descriptor Table I/O Request Block, E/A-Anforderungsblock an einen Treiber. Programme und Kommandos, die vom CLI (Kommandozeileninterpreter des RMOS3, engl. Command Line Interpreter) gestartet wurden. Local Area Network Mailed Message Block, Verwaltungsblock für Warten auf das Abholen einer Botschaft.
Seite 170
Realtime Multitasking Operating System Ready Task Queue, nukleusinterner Datenstruktur zur Verwaltung aller Tasks im Zustand READY. Supervisor Descriptor Block, Supervisor-Beschreibungsblock zur Übergabe der Parameter bei einem Systemaufruf. Server Dienstleistender Partner in der Beziehung zweier kooperierender Prozesse RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Seite 171
Daten zur Steuerung einer Task. Task Control Data, Task-Steuerdaten, Tabelle mit den Vorgabewerten, wird bei statischen Tasks durch die Konfigurierung, bei dynamischen Tasks durch den Lader angelegt. Transmission Control Protocol TCP/IP TCP internet protocol RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...
Seite 172
Unterverzeichnis Alle Verzeichnisse auf einem Datenträger, die nicht das Hauptverzeichnis sind, sind Unterverzeichnisse (engl. Subdirectory). Ihnen muss ein Name gegeben werden, der innerhalb des Verzeichnisses, in dem sie angelegt wurden einmalig ist. Warteschlange (engl.queue) RMOS3 V3.50 Benutzerhandbuch Bedienhandbuch, 07/2012, A5E03692290-01...