Forum: Compiler & IDEs Eclipse AVR-Plugin und Includes


von AVR 0. (avr08)


Angehängte Dateien:

Lesenswert?

Hallo,

ich suche schon seit mehreren Tagen eine Lösung finde aber keine. 
Vielleicht kann mir hier jemand helfen.

Ich arbeite unter Ubuntu Linux 11.04 und Eclipse Galileo. Wenn ich die 
angehängten Datei laufen lassen funktioniert alles wunderbar (mit bash 
./gogo.bat).

demo.c kompiliert ohne Probleme und wird geflasht.

Mit Eclipse hingegen bekomme ich immer bei folgender Datei (main.c) 
immer einer Fehler:

main.c (Eclipse):

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

int main()
{
  DDRB = 0b011000;
  while (1) {
    PORTB = 0b011000;
    delay_ms(500);
    PORTB = 0b000000;
    _delay_ms(500);
  }
return 0;
}


Fehler:

**** Erstellung of configuration Release for project BlinkLED ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char 
-funsigned-bitfields -mmcu=attiny13 -DF_CPU=1200000UL -MMD -MP 
-MF"main.d" -MT"main.d" -c -o"main.o" "../main.c"
../main.c: In Funktion »main«:
../main.c:16: Warnung: Implizite Deklaration der Funktion »delay_ms«
Finished building: ../main.c

Building target: BlinkLED.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,BlinkLED.map -mmcu=attiny13 -o"BlinkLED.elf"  ./main.o
./main.o: In function `main':
main.c:(.text+0x16): undefined reference to `delay_ms'
make: *** [BlinkLED.elf] Fehler 1


Ich gehe davon aus das der Compiler (avr-gcc) nicht weiß wo die includes 
sind. Was mich irgendwie wundert, denn wenn ichs über die Konsole 
kompiliern lassen funktioniert es ja.

Ich  habe versucht das auch in Eclipse einzubinden (die Files liegen 
unter /usr/lib/avr/include) aber hatte damit bisher keinen Erfolg, weil 
ich auch nicht genau weiß an welche Stelle.

Weiß jemand wie ich hier weiterkommen kann?

von Oliver (Gast)


Lesenswert?

AVR 08 schrieb im Beitrag #2190130:
> Ich gehe davon aus das der Compiler (avr-gcc) nicht weiß wo die includes
> sind.

Nö. In disesm Fall gäbe es die Fehlermeldung:
>../main.c:1:20: error: util/delay.h: No such file or directory

Wenn du aber nochmals ganz genau deinen Quellcode und die Fehlermeldung 
anschaust, sollte dir das Problem auffallen ;)

>Wenn ich die
>angehängten Datei laufen lassen funktioniert alles wunderbar (mit bash
>./gogo.bat).

Wenn du damit sagen willst, daß das Programm fehlerfrei compiliert und 
linkt, dann glaube ich dir das nicht.

Oliver

von Werner B. (werner-b)


Lesenswert?

Wo ist der Unterschied zwischen Zeile 9 ...
1
    delay_ms(500);
 und Zeile 11 ...
1
    _delay_ms(500);
?
Was da stehen muss, kann man in <util/delay.h> nachsehen (und/oder in 
der Dokumentation).

von AVR 0. (avr08)


Lesenswert?

Boah! voll blind! Danke!

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.