# zu verwendete Quelldatei FILE = Termin1Aufgabe1 # Toolchain TOOLCHAIN = arm-eb63-elf- # Compiler COMPILER = gcc # Linker/Binder LINKER = ld # Debugger DEBUGGER = insight # Optimierungsstufe OPTI = 0 # Bauen all: # uebersetzen der Quelldatei (FILE).c # Der Schalter -c erzeugt nur die Objektdatei aus der Quelldatei ohne zu binden # Der Schalter -g in gcc fügt Debugging-Code in die kompilierten Objektdateien ein # Der Schalter -O gibt die zu verwendete Optimierungsstufe (0..3,s) an # Der Schalter -I weist gcc an, das Verzeichnis include in den Include-Pfad einzufügen # Der Schalter -L weist gcc an, das Verzeichnis lib in den Library-Pfad einzutragen. # Der Schalter -S weist gcc an, eine Datei mit Assemblercode zu erzeugen. $(TOOLCHAIN)$(COMPILER) -c -g -O$(OPTI) $(FILE).c -I ../h # Der Schalter -S erzeugt eine Assemblerdatei aus der Quelldatei $(TOOLCHAIN)$(COMPILER) -S -O$(OPTI) $(FILE).c # Erzeugen weitere benoetitgen Objektdateien $(TOOLCHAIN)$(COMPILER) -c -g -O$(OPTI) ../boot/swi.S -o swi.o -I ../h $(TOOLCHAIN)$(COMPILER) -c -g -O$(OPTI) ../boot/boot_ice.S -o boot_ice.o -I ../h # Binden fuer die RAM-Version $(TOOLCHAIN)$(LINKER) -Ttext 0x02000000 boot_ice.o swi.o $(FILE).o -o $(FILE).elf # Debugger starten debug: $(TOOLCHAIN)$(DEBUGGER) $(FILE).elf # Aufraeumen clean: rm *.o rm $(FILE).s rm $(FILE).elf