mikrocontroller.net

Forum: Compiler & IDEs kein objektfile mit avr-c++


Autor: Markus D. (emtec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

sitze hier vor einem "qfix-Robotic-Kit" mit einem atmel-controller.
Leider schlägt aus irgendeinem Grund das kompilieren der Testdatei fehl.

kerberos@debian:~/crash-bobby/software/ledTest$ avr-c++ -O2 --mmcu=atmega32
-I ../include -o ledtest.elf ledTest.cc

cc1plus: error: unrecognized command line option "-fmmcu=atmega32"

Lasse ich testhalber den Schalter "--mmcu" weg, dann gibts jede Menge
Probleme mit undefinierten Konstanten oder Variablen.

kerberos@debian:~/crash-bobby/software/ledTest$ avr-c++ -O2 -I ../include -o ledtest.elf ledTest.cc
In file included from ../include/qfix.h:12,
                 from ../include/qfixBobbyBoard.h:12,
                 from ledTest.cc:1:
/usr/local/avr/lib/gcc/avr/3.4.2/../../../../avr/include/avr/io.h:254:6: warning: #warning "device type not defined"
In file included from ledTest.cc:1:
../include/qfixBobbyBoard.h: In function `void SIG_OVERFLOW0()':
../include/qfixBobbyBoard.h:131: error: `PORTC' undeclared (first use this function)
../include/qfixBobbyBoard.h:131: error: (Each undeclared identifier is reported only once for each function it appears in.)../include/qfixBobbyBoard.h: In function `void initTimer()':
../include/qfixBobbyBoard.h:147: error: `TCCR0' undeclared (first use this function)
../include/qfixBobbyBoard.h:148: error: `TIMSK' undeclared (first use this function)
../include/qfixBobbyBoard.h: In constructor `BobbyBoard::BobbyBoard()':
../include/qfixBobbyBoard.h:157: error: `DDRA' undeclared (first use this function)
../include/qfixBobbyBoard.h:158: error: `PORTA' undeclared (first use this function)
../include/qfixBobbyBoard.h:159: error: `ADCSRA' undeclared (first use this function)
../include/qfixBobbyBoard.h:164: error: `DDRB' undeclared (first use this function)
../include/qfixBobbyBoard.h:165: error: `PORTB' undeclared (first use this function)
../include/qfixBobbyBoard.h:169: error: `DDRC' undeclared (first use this function)
../include/qfixBobbyBoard.h:170: error: `PORTC' undeclared (first use this function)
../include/qfixBobbyBoard.h:173: error: `DDRD' undeclared (first use this function)
../include/qfixBobbyBoard.h:174: error: `PORTD' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `void BobbyBoard::ledOn(int)':
../include/qfixBobbyBoard.h:183: error: `PORTB' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `void BobbyBoard::ledOff(int)':
../include/qfixBobbyBoard.h:190: error: `PORTB' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `void BobbyBoard::ledsOff()':
../include/qfixBobbyBoard.h:195: error: `PORTB' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `void BobbyBoard::powerOn(int)':
../include/qfixBobbyBoard.h:208: error: `PORTD' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `void BobbyBoard::powerOff(int)':
../include/qfixBobbyBoard.h:215: error: `PORTD' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `bool BobbyBoard::button(int)':
../include/qfixBobbyBoard.h:228: error: `PINA' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `void BobbyBoard::motor(int, int)':
../include/qfixBobbyBoard.h:248: error: `PORTC' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `int BobbyBoard::analog(int)':
../include/qfixBobbyBoard.h:299: error: `ADMUX' undeclared (first use this function)
../include/qfixBobbyBoard.h:300: error: `ADLAR' undeclared (first use this function)
../include/qfixBobbyBoard.h:301: error: `ADCSRA' undeclared (first use this function)
../include/qfixBobbyBoard.h:301: error: `ADSC' undeclared (first use this function)
../include/qfixBobbyBoard.h:303: error: `ADCH' undeclared (first use this function)
../include/qfixBobbyBoard.h: In member function `bool BobbyBoard::digital(int)':
../include/qfixBobbyBoard.h:312: error: `PINB' undeclared (first use this function)


Hängt das Problem mit den undefinierten Konstanten oder Variablen nun
irgendwie mit dem Schalter "--mmcu" zusammen oder sind diese einfach 
nicht definiert?

Wie kann ich das Problem lösen?

MfG

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> /usr/local/avr/lib/gcc/avr/3.4.2/../../../../avr/include/avr/io.h:254:6:
> warning: #warning "device type not defined"

Das ist der Schlüssel. Wenn du dem Compiler nicht sagen willst, für 
welchen Controllertyp er Code erzeugen soll, dann verweigert er die 
Zusammenarbeit... würde ich auch machen ;-)

Autor: Markus D. (emtec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja klingt logisch!

Was passt ihm dann nicht an :
kerberos@debian:~/crash-bobby/software/ledTest$ avr-c++ -O2 --mmcu=atmega32
-I ../include -o ledtest.elf ledTest.cc

cc1plus: error: unrecognized command line option "-fmmcu=atmega32"

avr-c++ kennt diese Option nicht!! Hab ich mich irgendwie vertippt, wie 
lautet es korrekt? Diese Angaben stammen von Datenblatt des Herstellers!
Es sollte so eigentlich funktionieren....

MfG

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
--mmcu=atmega32 ???
-mmcu=atmega32 sollte besser klappen.

Oliver

Autor: Markus D. (emtec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol, stimmt eigetlicht!
Jetzt klappts, war vermutlich ein Tipfehler!

Danke

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Merke: Der Compiler hat immer recht...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.