uIP und Contiki

Contiki ist eine Internet Desktop Umgebung für Computer, die nur wenig Resourcen zur Verfügung stellen. Contiki läuft auch auf 8-Bit Copmutern wie z.B. C64 oder Atari 800. Als IP-Stack kann der uIP benutzt werden. Das Bild zeigt den Contiki Desktop als MS-DOS Textanwendung.

Eine Portierung von uIP auf PC und Atari Portfolio und Portierungen von Contiki für PC, Atari Portfolio und Atari ST (für VT52) ist auf meiner Downloadseite zu finden. Dort finden sich auch weitere, für die Übersetzung nötige Bibliotheken. Um die Sourcen zu übersetzen, werden die folgenden Dateien von mir benötigt:

Aufgrund der Ähnlichkeit von Portfolio und PC werden Codeteile gemeinsam benutzt. Für den Zugriff auf die serielle Schnittstelle (rs232dev.c) nutzt die Portfolio Software den PC-spezifischen Code. Für die CTK Routinen gibt es sowohl für Portfolio als auch PC eine eigene Datei, die die Initialsierung enthält und einen "generischen" Teil mit dem direkten Zugriff auf den Bildschirmspeicher. Zusätzlich sind für den Zugriff auf die serielle Schnittstelle des PC/Portfolio bzw. den Zugriff auf den Bildschirmspeicher weitere Librarys nötig, die ich programmiert bzw. portiert hatte. Auch für die Version für Atari ST ist die CTK Toolbox so aufgeteilt, daß sie aus einen Atari spezifischen Teil mit den Eingaberoutinen und einen "generischen" VT52 Teil besteht. Damit könnte z.B. eine Version für Ausgaben auf Terminals entwickelt werden.

In dem Archiv sind sämtliche plattformspezifischen Dateien (PC, Portfolio ST) und die ausführbaren Programme enthalten. Die allgemeinen Dateien sind von der Contiki Homepage zu beziehen.

Leider sind unter DOS (und plain TOS auf dem Atari ST) keine langen Dateinamen möglich.

Auch wird durch die Anzahl der notwendigen Parameter (Includeverzeichnisse bzw. Defines für die gewünschte Cintiki Funktionalität) die maximale Länge der Kommandozeile unter DOS überschritten. Für die DOS Anpassung wurden deshalb die Defines in eine Konfiguratiosndatei (config.h) verschoben, die jede Sourcedatei includieren muß! In der Funktion uip_main.c im Verzeichnis uip muß noch die Konstante CLK_TCK auf (u16_t) gecastet werden, um Gleitkommaarithmetik zu vermeiden:

if((current - start) >= (u16_t)CLK_TCK/2 {
Diese Äderungen im Originalcode muß noch von Hand durchgeführt werden.

Unter TOS wurden relative Includeanweisungen verwendet, um nicht jedes Unterverzeichnis als Includeverzeichnis angeben zu müssen. Damit war auch eine Änderung der Originalsourcen nötig!

Contiki Desktop


Zurück zur Homepage