PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eclipse + AVR Plugin Fehlermedlung beim kompilieren



Digital-Ghost
30.09.2012, 12:06
Hallo zusammen ;D
Ich habe mir eben mal auf meinem Ubuntu Laptop Eclipse + das AVR Plugin laut dieser Anleitung installiert und ein neues Projekt erstellt
http://conelek.org/AVR_C:_Softwareentwicklung_mit_der_Eclipse_IDE

Dort habe ich alle Einstellungen soweit übernommen und benutze zum Test folgenden Quellcode für meinen 168er


#ifndef F_CPU
#define F_CPU 16000000UL
#endif


#include <avr/io.h>
#include <util/delay.h>

int main(void)
{

DDRB = 0xFF;

while(1)
{
PORTB ^= (1<<PINB5);
_delay_ms(1000);
}
}

Beim Kompilieren kommt dann diese Fehlermeldung die ich mir nicht erklären kann:



**** Build of configuration Debug for project TEST2 ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega168 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
Finished building: ../main.c

Building target: TEST2.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,TEST2.map -mmcu=atmega168 -o "TEST2.elf" ./main.o
/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm168.o: In function `__bad_interrupt':
../../../../crt1/gcrt1.S:195: undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [TEST2.elf] Fehler 1

**** Build Finished ****


Kann mir einer bei meinem Problem weiterhelfen?

Danke :)

markusj
30.09.2012, 13:20
Das #define am Anfang des Codes kannst/solltest du rausnehmen, das wird in den Projektoptionen gesetzt.
Davon abgesehen scheint irgendetwas mit deiner avr-gcc-Installation nicht in Ordnung zu sein. Ich habe die beiden Kommandos bei mir ausgeführt und das hat Problemlos geklappt.

Installiert habe ich das Paket gcc-avr, zu dessen Abhängigkeiten gehören noch binutils-avr und die avr-libc. An deiner Stelle würde ich versuchen, diese Pakete nochmal neu zu installieren. Welche Version verwendest du eigentlich?

mfG
Markus

Digital-Ghost
30.09.2012, 15:13
Hallo markusj,

also ich habe die #define am Anfang rausgenommen und "gcc-avr", "binutils-avr" und "avr-libc" erneut installiert aber keine Veränderung.

Wie kann ich mir die Versionen anzeigen lassen?

Also bei Eclipse verwende ich die 3.7
Bei avr-gcc stand noch folgends dabei "avr-gcc-4.5.3"

markusj
30.09.2012, 16:14
Die Version bezog sich auf Ubuntu. Hast du Mal versucht, die beiden Kommandos manuell einzugeben?
Umsetzung: main.c in einen Ordner kopieren, dort eine Konsole öffnen und dann:

avr-gcc -Wall -g2 -gstabs -O0 -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega168 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "main.c"
avr-gcc -Wl,-Map,TEST2.map -mmcu=atmega168 -o "TEST2.elf" ./main.o

Ach ja: Hast du vor dem Compilieren auch gespeichert? Du wärst nicht der Erste, der in diese Falle tappt ;)

mfG
Markus

Digital-Ghost
30.09.2012, 16:23
Also der erste Befehl funktioniert und wenn ich den 2 eingebe halt wieder die Fehlermeldung

/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/crtm168.o: In function `__bad_interrupt':
../../../../crt1/gcrt1.S:195: undefined reference to `main'
collect2: ld returned 1 exit status

Die Ubuntu Version ist 12.04.
Und gespeichert hatte ich auch ^^

markusj
01.10.2012, 00:11
Faszinierend. Bei mir läuft genau die gleiche Version und baut problemlos.

Bitte einmal komplett neu installieren:
sudo apt-get purge gcc-avr avr-libc binutils-avr
sudo apt-get install gcc-avr avr-libc binutils-avr

Dann nochmal die obigen Befehle ausführen und falls der Fehler noch auftritt, avr-nm main.o ausführen und die Ausgabe hier posten.

mfG
Markus

Digital-Ghost
01.10.2012, 07:42
Danke hat funktioniert!
Hab mal alles neu installiert und dann liefs :)