User manual

RP6 ROBOT SYSTEM - 4. Programmierung des RP6
Das Beispielprogramm wird nun übersetzt (das nennt man „kompilieren“ vom engli-
schen „to complile“ bzw. „Compiler“=„Übersetzer“) und eine Hexdatei erzeugt. Diese
enthält das Programm in der für den Mikrocontroller übersetzten Form und kann dann
später in diesen geladen und ausgeführt werden! Es werden während der Kompilie-
rung noch viele temporäre Dateien erzeugt (Endungen wie „.o, .lss, .map, .sym,
.elf, .dep“). Die brauchen sie alle nicht weiter zu beachten! Mit dem eben angelegten
Tool „make clean“ kann man diese bequem löschen. Davon ist nur die Hexdatei für Sie
interessant! Die Hexdatei wird beim Aufruf von „make clean“ übrigens nicht gelöscht.
Es sollte nach dem Aufruf des MAKE ALL Menüpunktes folgende Ausgabe erscheinen
(hier jedoch stark gekürzt! Einiges kann natürlich etwas anders aussehen):
> "make" all
-------- begin --------
[...]
Compiling: RP6Base_LEDs.c
avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct
-fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=RP6Base_LEDs.lst -I../../RP6lib
-I../../RP6lib/RP6base -I../../RP6lib/RP6common -std=gnu99 -MD -MP -MF .dep/RP6Base_LEDs.o.d RP6Ba-
se_LEDs.c -o RP6Base_LEDs.o
Compiling: ../../RP6lib/RP6base/RP6RobotBaseLib.c
[...]
Creating load file for Flash: RP6Base_LEDs.hex
avr-objcopy -O ihex -R .eeprom RP6Base_LEDs.elf RP6Base_LEDs.hex
[...]
Size after:
AVR Memory Usage
----------------
Device: atmega32
Program: 6858 bytes (20.9% Full)
(.text + .data + .bootloader)
Data: 148 bytes (7.2% Full)
(.data + .bss + .noinit)
-------- end --------
> Process Exit Code: 0
> Time Taken: 00:01
Wichtig ist ganz unten das Process Exit Code: 0“. Das bedeutet, dass es beim Überset-
zen keinen Fehler gegeben hat. Steht dort ein anderer Code, gibt es einen Fehler im
Quellcode, den man korrigieren muss bevor es klappt. Der Compiler gibt in diesem
Fall weiter oben diverse Fehlermeldungen aus, in denen man mehr Infos dazu findet.
Aber bitte beachten Sie, dass „Process Exit Code: 0“ nicht auf ein komplett fehlerfreies
Programm hinweist! Denkfehler in Ihrem Programm findet der Compiler natürlich nicht
und er kann auch nicht verhindern, dass der Roboter vor die Wand fährt ;-)
WICHTIG: Weiter oben können auch noch Warnungen u.ä. stehen diese sind oft
sehr sehr hilfreich und weisen fast immer auf wichtige Probleme hin! Daher sollten
diese immer beseitigt werden! PN2 hebt Warnungen und Fehler farbig hervor, so dass
man diese leicht identifizieren kann. Es wird auch die Zeilennummer angegeben, die
- 59 -