Also den Startup-Code braucht man auf jeden Fall. Das Linker-Script, das ich nutze scheint auch richtig zu sein. Zumindest habe ich etliche andere Beispiele im Netz gefunden die das selbe Skript nutzen. Außerdem war es ja auch im FWLib mit dabei (nur mit noch anzupassender RAM-Größe). Wird also schon stimmen.
Dann wird der Fehler wohl im Makefile liegen. Was mir hier noch nicht ganz klar ist. Welche Dateien muss ich unter APP_DEP = ... eintragen? Alle Header-Dateien?
Und welche Dateien muss ich im folgenden Abschnitt eintragen? Scheinbar alle *.c und *.s Dateien.

Code:
$(BINDIR)/$(APP_NAME).elf : \
	./ld/$(APP_NAME).ld \
	$(BINDIR)/startup_stm32f10x_md.o \
	$(BINDIR)/stm32f10x_exti.o \
	$(BINDIR)/stm32f10x_flash.o \
	$(BINDIR)/stm32f10x_gpio.o \
	$(BINDIR)/stm32f10x_rcc.o \
	$(BINDIR)/stm32f10x_usart.o \
	$(BINDIR)/misc.o \
	$(BINDIR)/core_cm3.o \
	$(BINDIR)/main.o \
	$(BINDIR)/stm32_eval.o \
	$(BINDIR)/stm32f10x_it.o \
	$(BINDIR)/system_stm32f10x.o
	$(LINK) \
	$(BINDIR)/startup_stm32f10x_md.o \
	$(BINDIR)/stm32f10x_exti.o \
	$(BINDIR)/stm32f10x_flash.o \
	$(BINDIR)/stm32f10x_gpio.o \
	$(BINDIR)/stm32f10x_rcc.o \
	$(BINDIR)/stm32f10x_usart.o \
	$(BINDIR)/misc.o \
	$(BINDIR)/core_cm3.o \
	$(BINDIR)/main.o \
	$(BINDIR)/stm32_eval.o \
	$(BINDIR)/stm32f10x_it.o \
	$(BINDIR)/system_stm32f10x.o \
	$(LINKFLAGS)
Aber was ist zum Beispiel mit der stm32f10x_conf.h Datei? Hierzu gibt es ja kein .c Gegenstück. Muss ich diese Datei auch noch irgendwie berücksichtigen?

Achso, mir ist auch gerade aufgefallen, dass ich den Startupcode aus dem ARM-Ordner genommen hatte. Ich denke die aus dem GCC-Ordner wird aber die richtige sein? Diese Korrektur hat aber auch keine Besserung gebracht. Die .bin Datei ist immer noch 384MB groß.

Hat hier eigentlich schonmal jemand ein Beispiel aus der FWLib 3.1.2 zum laufen bekommen. Dann bitte mal die Makefile und Linkerscript posten.