|
|
||
![]() embedded Webserver SC1x -IPC@CHIP |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Das Betriebssystem der IPC@CHIP embedded Webserver stammt wie die Chips selber von der Fa. Beck. Die Fa.Beck bezeichnet ihre Betriebssystem als RealTime-OperatingSystem (RTOS), da sie die Fähigkeit besitzen, mehrere Anwendungspro-gramme (Tasks), parallel zueinander laufen zu lassen. Das RTOS ist also ein Multitask-Betriebssystem
Das RTOS verfügt für alle, im linken Menü aufgelisteten Betriebssystemteile, über Unterprogramme. Diese werden mit dem Begriff API umschrieben. Diese Abkürzung bedeutet Applikation Programmers Interface. Die Unterprogramme können elementar in die eigene Programmierung einbezogen werden. Dies ist aber in vielen Fällen nicht notwendig, da sie auch von den Funktionen der benutzten, höheren Programmiersprache verwendet werden. Die C-Funktion getch() (Get a character) beispielsweise, basiert auf einem der API-Unterprogramme. Zwei weitere Benutzer der API-Unterprogramme sind der Kommandozeileninterpreter (Command), seine Datei autoexec.bat sowie die Datei chip.ini und deren Kommandos.
Die API-Unterprogramme lassen sich nach ihren Fähigkeiten in mehrere Bereiche unterteilen. Sie sind im linken Menü unter dem Menüpunkt [Betriebssystem] aufgelistet. Die Bereiche [Command], [Config], [BIOS] und [DOS] lehnen sich dabei ein Stück weit an Strukturen an, die dem bekannten PC-DOS entsprechen. Sie sind vorzugsweise dem RealTime OperatingSystem [RTOS] untergeordnet, welches die Möglichkeit schafft mehr als ein Programm zu einer Zeit 'laufen' zu lassen. Die weiteren Bereiche [Hardware], [Fossil COM], [I2C/SPI -Bus] [USB/CAN-Bus] usw. betreffen hardwaremässig verfügbare Schnittstellen der IPC@CHIP -Bausteine. Zuletzt sind die Bereiche [Ethernet], [TCP/IP PPP] und [CGI/SSI -Server] zu nennen, welche den Serverprogramme im Betriebssystem zuzuordnen sind, die zum Betrieb des IPC@CHIP in einem Netzwerk, benötigt werden.
Da das RTOS-Betriebssystem, wie jede Software kontinuierlichen Veränderungen unterworfen ist, sollte man sich in zeitlichen Abständen über den momentanen Entwicklungsstand informieren. Den neuen Versionen des Betriebssystems liegt auch die originale Beschreibung der Fa. Beck in einer englischsprachigen .pdf-Datei bei.
Von der BECK-Homepage kann man neben den neuesten Versionen des Betriebssystems auch Hilfsprogramme, Applikationsbeispiele und Bibliotheken zum Aufruf der APIs herunterladen. Diesen Dateien ist ebenfalls eine jeweils englischsprachige Dokumentation mitgegeben. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Im Versionsreport werden die bekannten Fehler der Vorversion und/oder die Änderungen und Neuerungen der neuen Version beschrieben. |
|
|
|
|
|
|
|
|
|
|
|
Unsere Übersetzung und Beschreibung der API-Funktionen folgt dem Bedarf unserer schulischen Tätigkeit. Dort wo diese bisher nicht hinreichte, sind die englischen Texte von Beck zu finden, die wir in Abständen überarbeiten. Wer tiefer in die Materien eindringen möchte, der sollte sich die letzte Dokumentation des RTOS vom Link der Fa. Beck. herunterladen. |
|
|
|
|
|
|
|
|
|
|
|
Die Unterprogramm des Application Programmers Interface (API) sind durchweg über die Software-Interrupts (SoftINTs) der 80186 CPU erreichbar. Die Wirkung eines Softwareinterrupts kann man sich als indirekten Sprüng in ein Unterprogramm vorstellen. Da es von ihnen nur 256 Stück gibt, aber mehr API-Unterprogramme vorliegen, stellen die zunächst erreichten Unterprogramme in den meisten Fällen Sprunglisten in Form eines Programms dar. Aus diesen heraus wird auf weitere Unterprogramme verzweigt.
Die Auswahl, auf welches der Unter- Unterprogramme eines Software-Interrupts verzweigt werden soll, wird über eine Kennzahl (der Funktionsnummer) im AH-Register der CPU vorgenommen.
Um eines der Unter- Unterprogramme aufzurufen, muss also zunächst das CPU-Register AH mit der Funktionsnummer (Fkt) geladen werden, dann muss der zugeordnete Softwareinterrupt (INT) aufgerufen werden. Hierfür gibt es sowohl in Pascal, C oder der Assemblersprache entsprechende Befehle. Häufig sind den deutschen Beschreibungen für die C- oder Assembler-Programmierung entsprechende Beispiele angefügt.
... Compilereinstellungen für die 80186CPU Die IPC@CHIP Webserver verfügen über eine 80186 / 16Bit CPU, die seit ihrem Erscheinen bevorzugt in der Steuerungs- und Regelungstechnik eingesetzt wird. Diese CPU versteht auch den Maschinencode ihrer Vorgänger, der 8086 und der 8088 CPU, nicht jedoch die erweiterten Maschinencodes ihrer Nachfolger, der 80286, 80386 CPU bis hin zum Pentium. Der Umstand, dass 80186 Maschinencode erstellt werden soll, muss dem Compiler in seinen Voreinstellungen mitgeteilt werden, damit er keine Maschinencodes der neueren CPUs erzeugt. Bei neueren Compilern und leider auch solchen die frei im Netzt verfügbar sind, ist zudem zu beachten, dass diese häufig die älteren ®Intel-Prozessoren nicht mehr unterstützen.
... Compilereinstellungen für den 80187Coprozessor Die IPC Webserver verfügen nicht über einen 8087 numerischen Coprozessor, welcher in modernen Prozessoren neben der Integer-CPU werkelt und die Berechnung der Fliesskommaarithmetik übernimmt. Dies muss dem Compiler in seinen Voreinstellungen mitgeteilt werden. Er kann dann, je nach Benutzerwunsch einen Programmteil an das Benutzerprogramm anhängen, welcher den Fliesskommaprozessor softwaremässig nachahmt (emuliert). Damit wird auch der 80186 fliesskommafähig. Wird die Emulation des 80187 abgewählt, dürfen in dem Benutzerprogramm keine Fliesskommarechnung vorkommen. Ein Systemabsturz wäre die Folge. Ohne die den Programmteil zur Emulation des 80187 kann nur auf der Basis von Ganzen Zahlen gerechnet werden.
... Compilereinstellungen für das Speichermodell Nach dem Start arbeiten der 80186, wie auch der Turbo186 im Real-Mode der ® Intel- Prozessoren. Dies bedingt im Compiler die Einstellung des gewünschten Speichermodells. Bei der Benutzung des Modells LARGE werden die Programme zwar etwas umfangreicher, dafür aber gibt es bei keinem Programm für die IPC-Webserver Unverträglichkeiten. Diese würden sich in Programmabbrüchen und Fehlermeldungen mit der Darstellung von Registerinhalten, äussern. |
|
|
|
|