Forum: Compiler & IDEs arm-elf-gcc: unrecognized option `-mcpu=arm7tdmi'


von Alex (Gast)


Lesenswert?

Guten Abend,

ich versuche schon seit 2 Stunden ein Testprogramm für den LPC2478 zu 
kompilieren mit folgendem Ergebnis:

//---------------------------------------
Compiling C: main.c
arm-elf-gcc -c  -mcpu=arm7tdmi  -I. -gdwarf-2 -DROM_RUN  -Os -Wall 
-Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch 
-Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=main.lst 
-MD -MP -MF .dep/main.o.d -Wstrict-prototypes -Wmissing-declarations 
-Wmissing-prototypes -Wnested-externs  -std=gnu99 main.c -o main.o

as: unrecognized option `-mcpu=arm7tdmi'
make: *** [main.o] Error 1

> Process Exit Code: 2
//----------------------------------------

Ich nutze WinARM-20060606 und den darin enthaltenen arm-elf-gcc unter 
Windows Vista Home Premium. Das Makefile ist ebenfalls aus einem 
Beispielprojekt aus WinARM.

Meine Pfadangabe sieht wie folgt aus:

//----------------------------------------
C:\WinARM\libexec\gcc\arm-elf\4.1.1;C:\WinARM\bin;C:\WinARM\arm-elf\bin;
C:\WinARM\utils\bin
//----------------------------------------

Für mich sieht es so aus, als ob der arm-elf-gcc die Option -mcpu und 
die Architektur arm7tdmi nicht erkennt, obwohl das Ganze in den Specs 
klar aufgelistet ist.
Nach einigem Ausprobieren und Testen ist mir außerdem aufgefallen, dass 
der arm-elf-gcc überhaupt keine einzige ARM-Controllerarchitektur 
erkennen will, was letztendlich am Nicherkennen der Option -mcpu zu 
liegen scheint.

Nun frage ich mich, wie das denn sein kann, dass mitunter die wichtigste 
Option überhaupt bei dieser ganzen Geschichte nicht funktionieren kann. 
Vielleicht aber mache ich irgendwo einen Fehler oder interpretiere hier 
einiges falsch und deshalb bitte ich an dieser Stelle um Rat.

Vielen Dank im Voraus
Gruß Alex

von Kai S. (zigzeg)


Lesenswert?

Irgendwie wird ein falscher Assembler ('as') benutzt. Evtl. mal die 
Option '-v' hinzufügen um eventuell zu sehen welcher Assembler benutzt 
wird.
Ist vielleicht noch eine andere toolchain (avr ?) installiert, die mit 
dem ARM compiler ins Gehege kommt ?

von Alex (Gast)


Lesenswert?

Hallo Kai,

nach hinzufügen der Option -v kommt folgendes Ergebnis:

//---------------------------------------------
Compiling C: main.c
arm-elf-gcc -c  -v -mcpu=arm7tdmi  -I. -gdwarf-2 -DROM_RUN  -Os -Wall 
-Wcast-align -Wcast-qual -Wimplicit  -Wpointer-arith -Wswitch 
-Wredundant-decls -Wreturn-type -Wshadow -Wunused -Wa,-adhlns=main.lst 
-MD -MP -MF .dep/main.o.d -Wstrict-prototypes -Wmissing-declarations 
-Wmissing-prototypes -Wnested-externs  -std=gnu99 main.c -o main.o
Using built-in specs.
Target: arm-elf
Configured with: ../../gcc-4.1.1/configure --enable-languages=c,c++ 
--enable-interwork --enable-multilib --with-gcc --with-gnu-ld 
--with-gnu-as --with-stabs --disable-shared --disable-threads 
--disable-libssp --disable-libstdcxx-pch --disable-libmudflap 
--disable-win32-registry --disable-nls --disable-debug --without-headers 
--with-newlib --target=arm-elf --prefix=c:/WinARM -v
Thread model: single
gcc version 4.1.1 (WinARM)
 cc1 -quiet -v -I. -iprefix c:\users\desktop\eigene 
arm-programme\lpc2478 board led-testprogramm\../lib/gcc/arm-elf/4.1.1/ 
-MD main.d -MF .dep/main.o.d -MP -MQ main.o -D__USES_INITFINI__ 
-DROM_RUN main.c -quiet -dumpbase main.c -mcpu=arm7tdmi -auxbase-strip 
main.o -gdwarf-2 -Os -Wall -Wcast-align -Wcast-qual -Wimplicit 
-Wpointer-arith -Wswitch -Wredundant-decls -Wreturn-type -Wshadow 
-Wunused -Wstrict-prototypes -Wmissing-declarations -Wmissing-prototypes 
-Wnested-externs -std=gnu99 -version -o ./ccAhaaaa.s
ignoring nonexistent directory "c:\users\desktop\eigene 
arm-programme\lpc2478 board 
led-testprogramm\../lib/gcc/arm-elf/4.1.1/include"
ignoring nonexistent directory "c:\users\desktop\eigene 
arm-programme\lpc2478 board 
led-testprogramm\../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/sys-includ 
e"
ignoring nonexistent directory "c:\users\desktop\eigene 
arm-programme\lpc2478 board 
led-testprogramm\../lib/gcc/arm-elf/4.1.1/../../../../arm-elf/include"
ignoring nonexistent directory "c:/WinARM/arm-elf/sys-include"
#include "..." search starts here:
#include <...> search starts here:
 .
 c:/WinARM/lib/gcc/arm-elf/4.1.1/include
 c:/WinARM/arm-elf/include
End of search list.
GNU C version 4.1.1 (WinARM) (arm-elf)
  compiled by GNU C version 3.4.2 (mingw-special).
GGC heuristics: --param ggc-min-expand=99 --param 
ggc-min-heapsize=129768
Compiler executable checksum: 5cb80e272bf25e7fa000e5f0caa5b13e
 as -mcpu=arm7tdmi -adhlns=main.lst -o main.o ./ccAhaaaa.s
as: unrecognized option `-mcpu=arm7tdmi'
make.exe: *** [main.o] Error 1

> Process Exit Code: 2
> Time Taken: 00:00
//------------------------------------------------------

Irgendwie werde ich aus diesem Ergebnis nicht wirklich schlau, außer 
dass es einige 'nonexistent directory' gibt, die aber meiner Meinung 
nach nicht die Option -mcpu beeinflussen sollen !??!

Auf dem Laptop ist außerdem WinAVR-20100110 und MinGW für Eclipse C/C++ 
installiert, wobei ich im obigen Ergebnis auch keinen Zusammenhang mit 
dem Nichtfunktionieren der -mcpu Option erkennen kann.

Für jede weitere Idee/ Tipp bin ich sehr dankbar...

von Alex (Gast)


Lesenswert?

Kai schrieb:
> Ist vielleicht noch eine andere toolchain (avr ?) installiert, die mit
> dem ARM compiler ins Gehege kommt ?

Bingo!!

Habe WinAVR und MinGW aus dem Pfad entfernt und siehe da es 
funktioniert...

Besten Dank für den Tipp Kai

Schönen Abend noch
Gruß Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.