|
|
Was
ist ein API
|
|
|
|
Die
Abkürzung API steht für Applikation Programmers
Interface, was mit Schnittstelle für den
Anwendungsprogrammierer übersetzt werden kann. Derartige
Softwareschnittstellen besitzen Programme, auf denen weitere
Programme aufbauen können.
Betriebssysteme
sind ein gutes Beispiel. Die Unterprogramme und Daten die das
Betriebssystem umfasst, machen es möglich, dass ein
Programmierer Anwendungsprogramme schreiben kann, ohne über
die genaue Funktion der Hardware informiert zu sein. Er muss nur
die entsprechenden Unterprogramme des API aufrufen.
Dieser Weg
vereinfacht die Anwendungsprogrammierung, bedingt aber, dass die
Daten und Unterprogramme der Softwareschnittstelle gut
dokumentiert und beschrieben sind. In den nebenstehenden Kapiteln
werden die Softwareschnittstellen der Betriebssysteme für
die SC1x IPC@CHIP Webserver beschrieben.
|
|
|
|
|
|
|
|
Begriffe
und Überblick
|
|
|
|
Betriebssysteme
sind üblicherweise in mehreren Schichten aufgebaut. Den
Kernbereich (Kernel) umgeben mehreren Programmierebenen (Layer),
die auch Schalen (Shells) genannt werden. Die Schichten bauen
aufeinander auf und erzeugen in Abhängigkeit zu der
vorhergehenden Schicht zusätzliche Fähigkeiten. Neben
diesen aufeinander aufbauenden Schichten gibt es aber auch
solche, die gleichbedeutend nebeneinander stehen und die
optionalen Fähigkeiten des Systems erweitern. Jede dieser
Ebenen beinhaltet eine Vielzahl von Unterprogrammen, die auch ein
Anwendungsprogrammierer benutzen kann. Im Betriebssystem der
IPC@CHIP Webserver wurde folgende Unterteilung der APIs
vorgenommen ..
|
|
|
|
Das
Hardware-API-
Über die Unterprogramme dieser
Schnittstelle wird die Funktion der PINs an den IPC@CHIP
Webservern gesteuert und deren Signale gesetzt oder gelöscht.
Das Hardware-API stellt die unterste Ebene dieses
Betriebssystems dar.
|
|
|
|
Das
BIOS-API-
BIOS bedeutet
Basic-Input-Output-Systemprogramm. In ihm befinden sich
Unterprogramme die bereits integrierte Baugruppen und die
Standard Ein- und Ausgabegeräte ansteuern. Beispiele sind
Unterprogramme zur Steuerung des Datenflusses zur Tastatur und
dem Monitor, sowie Timer (Zähler), das Powermanagement usw.
Unterprogramme die Statusmeldungen zur Version des
Betriebssystems oder seinen Einstellungen bereithalten, sind
ebenfalls im BIOS enthalten. Viele Funktionen der statischen
C-Bibliothek greifen auf diese Unterprogramme zu. Um die
Funktionsfähigkeit dieser C-Bibliotheksprogramme zu
gewährleisten wurden im BIOS-API auch Funktionen
eingebunden, die zum Betrieb des IPC@CHIP nicht notwendig sind.
Diese Funktionen wurden als 'dummys' bezeichnet.
|
|
|
|
Das
Fossil-API-
Die Unterprogramme dieses API befassen
sich ausschliesslich mit der Steuerung der beiden seriellen
Schnittstellen. Diese können hier ein- oder ausgeschaltet
werden, was ihre PINs für andere Funktionen freigibt, die
Baudraten- und Buffereinstellungen sowie die Kontrolle des
Datenflusses finden hier statt. Eigentlich ein Teil des BIOS.
|
|
|
|
Das
I2C-Bus-API-
Dieses Bussystem, das auf zwei Leitungen
(Daten und Takt) bis zu 127 Geräte ansteuern kann, tritt an
den PINs des Rechners aus und kann wie die seriellen
Schnittstellen optional benutzt werden. Unterbleibt seine
Benutzung werden die PINs des Rechners für andere Aufgaben
frei. So kann hier auch ein SPI-Bus betrieben werden
|
|
|
|
Das
externe Disk-API-
Diese optionale Schnittstelle ist nur von
Interesse, wenn an den IPC@CHIP Webservern ein externes
Diskettenlaufwerk angeschlossen werden soll. Die notwendige
Hardware zur Steuerung des Massenspeichers muss aber erst
erstellt werden, denn der Chip besitzt hierfür keine eigene
Hardware.
|
|
|
|
Das
DOS-API-
Das Disketten-Organisations-Systemprogramm
ist der dem BIOS folgende Layer. Bei den IPC@CHIP Webservern
verliert es etwas von dieser Abhängigkeit, da der
Massenspeicher in einem Flash-ROM (Laufwerk A:\) oder im RAM
(Laufwerk C:\) emuliert wird. Dennoch stellt das DOS die
Funktionalität der Disketten-Speicherverwaltung für
die Anwenderprogramme zur Verfügung
|
|
|
|
Das
RTOS-API-
RTOS bedeutet Real-Time
Operating-System und erweitert das DOS um die Fähigkeit,
mehrere System- und Anwenderprogramme gleichzeitig laufen zu
lassen. Dementsprechend findet man in dieser API Unterprogramme,
welche die Zuteilung der Zeitsegmente auf die laufenden
Programme (Tasks) regeln.
|
|
|
|
Das
TCP/IP-API-
Auf dem TCP/IP Protokoll basieren die
Netzwerkfähigkeiten der IPC@CHIP Webserver. Auf ihm fussen
die diversen Serverprogramme und die Point to Point Übertragung.
Im Bereich dieses API befinden sich auch die Unterprogramme die
mit einem DHCP oder einem GATEWAY-Server zusammenarbeiten.
|
|
|
|
Das
Ethernet-API-
Diese API enthält Unterprogramme, mit
deren Hilfe Datenpakete über das Ethernet transportiert
werden können. Die Übertragungsgeschwindigkeiten
lauten 10MBit/s (SC12) und 100MBit/s (SC13) beim SC11 ist keine
Ethernetschnittstelle vorhanden.
|
|
|
|
Das
CGI Server-API-
Mit den Unterprogrammen dieser API können
Treiberprogramme zur Herstellung von dynamischen Hypertextseiten
installiert werden und das Rootverzeichnis sowie die Startdatei
des CGI-fähigen http:// und ftp:// - Netzwerkservers
eingestellt werden.
|
|
|
|
Das
COMMAND- und das CONFIG-API-
Von diesen beiden Benutzerschnittstellen
war bereits im vorherigen Kapitel die Rede. Sie unterscheiden
sich insofern von den vorgenannten APIs, als sie keine
Unterprogramme nennen, die durch Anwendersoftware aufgerufen
werden können. Beide APIs dienen der unmittelbaren
Steuerung des Betriebssystems, einmal durch den, im
Betriebssystem enthaltenen Kommandozeilen-Interpreter (Commamd)
und in beiden Fällen (Command und Config) durch die beiden
Startdateien autoexec.bat und chip.ini.
|
|
|
|
|
|
|
|
Aufruf der API-Unterprogramme
|
|
|
|
- Der Aufruf
eines Unterprogramms aus einer der oben genannten APIs durch ein
Anwenderprogramm, ist an die sogenannten Software-Interrupts,
die SoftINTs der 80x86 CPU gebunden. Von diesen gibt es 256
Stück und sie ermöglichen indirekte
Unterprogrammaufrufe. So muss der Anwendungsprogrammierer nicht
die genaue Einsprungsadresse des gewünschten Unterprogramms
kennen. Er muss nur die Nummer des SoftINT kennen und zudem die
Ordnungsnummer des gewünschten Unterprogramms.
-
Die Ordnungsnummern ergeben sich aus dem
Umstand, dass es in der Regel mehr Unterprogramme in einem
Betriebssystem gibt, als SoftINTs. So griff man zu der
Strategie, einem SoftINT mehrere Unterprogramm zuzuordnen, und
diese durch Ordnungsnummern zu unterscheiden.
-
Seit den Anfangstagen des PC-DOS hat sich
dabei folgendes Vorgehen eingebürgert. Wurden einem
Software-Interrupt mehrere Unterprogramme zugeordnet, dann wird
die Ordnungs- oder Funktionsnummer des gewünschten
Unterprogramms, in das AH - Prozessorregister eingetragen
und hernach der SoftINT aufgerufen.
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
- Beide Angaben
sind in den Unterprogrammbeschreibungen der APIs zu finden.
-
Um die API Unterprogramme aus einem
eigenen Programm heraus zu erreichen gibt es in der Hochsprache
C die Funktion int86x();
-
In der Assemblersprache lauten die Befehle
..
-
mov
AH, FktNr
-
int
SoftIntNr
|
|
|
|
|
|
|
|
|
|
|
|
nächste Seite ..

|
|