# Quelldatei FILE = Vorbereitung # FILE = Termin1Aufgabe1_b TOOLCHAIN = arm-elf- # Compiler COMPILER = gcc # Linker/Binder LINKER = ld # Pfad zur libgcc.a # fuer Virtuell_RA_MPS_xxx LIBGCC = /opt/mpstools/lib/gcc/arm-v4t-elf/4.4.5/libgcc.a # Debugger DEBUGGER = arm-elf-insight # Optimierungsstufe OPTI = 0 # Bauen all: # uebersetzen der Quelldatei (FILE) # 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 -O$(OPTI) boot_ice.o swi.o $(FILE).o -o $(FILE).elf $(LIBGCC) # Debugger starten debug: $(TC)$(DEBUGGER) $(FILE).elf # Aufraeumen clean: rm *.o rm *.s rm *.elf # BDI2000 zuruecksetzen bdireset: bash bdi_reset