Anwenderprogramme

Der GNU Assembler (für PC und UNIX) und C Compiler (für PC und UNIX) ist die komfortabelste Art der Codeerzeugung für EyeBot. Information hierzu finden sich in der GNU Manual Page. GNU-Versionen können kopiert werden vom EyeBot ftp Server.

Es gibt auch eine Reihe weiterer Compiler und Assembler für den 68.000. Siehe hierzu das Beispiel-Assemblerprogramm demo.asm in Motorola Syntax.

Zur Steuerung von EyeBot können eigene Programme in Assembler oder C geschrieben werden. C-Programme sollten die EyeBot-Bibliothek verwenden, welche eine Reihe von Funktioen für Graphikausgabe (Text über "printf" sowie Grafik), Kameraeingabe (Graustufen oder Farbe), Soundausgabe und Servosteuerung zur Verfügung stellt.

Schreiben eines Anwenderprogramms

Compiler

Am besten erstellt man ein Unterverzeichnisses auf dem Host-System für die C+Assembler-Programme einer Anwendung sowie das Makefile.

File Extensions:

Mit dem Shell-Skript gcc68 läßt sich sehr einfach ein C-Programm übersetzen.

Das Standard "main.c" Source-Programm sieht folgendermaßen aus:

/* ------------------------------------------ */
/*     Sample User Program for ROBIOS         */
/* ------------------------------------------ */

#include "librobi/librobi.h"
#include "libimpro/improc.h"
#include "librobi/protos.h"

#include "keys.h"
#include "lcd.h"
#include "cam.h"
#include "types.h"
#include "const.h"
#include "kern.h"
#include "vw.h"
#include "rs232.h"

#include <math.h>
#include <stdio.h>
#include <unistd.h>     

void main ()
{

/* disable input/output buffer */

        setvbuf (stdout,NULL,_IONBF,0);
        setvbuf (stdin,NULL,_IONBF,0);

/* clear display and write message */

        LCDClear();
        LCDMode(SCROLLING);

        printf("HELLO !! \n");
        printf("and bye !!\n");

        KEYWait(0);

        printf("KeyPressed !\n");
}

Assembler

Es ist zu beachten, daß der GNU-Assembler einige Konventionen benutzt, die vom Motorola-Standard abweichen. Diese sind: Mit dem Shell-Skript gas68 läßt sich sehr einfach ein ASM-Programm übersetzen.

Makefiles

Ein Makefile wird nur dann benötigt, wenn mehrere C- oder ASM- Sourcefiles in ein einziges Executable übersetzt werden sollen. Ein typisches "Makefile" für Unix sieht folgendermaßen aus:
# Makefile for executables

CC = gcc-m68k
AS = as-m68k
LD = ld-m68k
OBJCOPY = objcopy-m68k

OPTIMZE = -O -g
CPU = 68332

LFLAGS = -T../ldfiles/robi-ram.ld -L../librobi -L../libs
CFLAGS = -I../include -m${CPU} ${OPTIMZE} -c -msoft-float

# --------------------------------------------------------
# You will only have to modify this for your own userprg

OBJS = main.o gh.o
PROG = userprg
# --------------------------------------------------------

.s.o:
        ${AS} ${AFLAGS} -o $*.o $*.s

.c.o:
        ${CC} ${CFLAGS} $*.c

all:    echocwd ${PROG}

${PROG}:        ${OBJS} ${ROBIOS_LIB}
                ${LD} ${LFLAGS} -o $@ ${OBJS} -lmyc -lmygcc -lrobi
                ${OBJCOPY} -O srec ${PROG} ${PROG}.hex

clean:  echocwd
        rm -f ${OBJS} ${PROG} ${PROG}.hex core

echocwd:
        @pwd

Thomas Bräunl, 1997