PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kompilierungsfehler in Verbindung mit Chirp



Wrandy
25.11.2009, 21:22
Hallo,

Ich habe ein Problem:
Irgendwie bekomm ich immer eine merkwürdige Fehlermeldung, sobald ich die Chirpfunktion benutzen will. Ich habe Windows XP, AVR Lib 2.80, Programmers Notepad 2. Pfad in makefile wurde geändert. Die Dateien hab ich auch in den default Ordner kopiert/ersetzt und in den Options make new lib erstellt und dieses mit make-all verbunden.

Wenn ich nun ein Programm kompiliere, indem nur "Standardfunktionen" aus der asuro.h verwendet werden gibt es keine Fehlermeldung, sobald ich die chirp Funktion verwenden möchte, erhalte ich folgende Fehlermeldung:


C:\Asuro\ASURO_src\FirstTry>make clean
set -e; avr-gcc -MM -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -IC:/Asuro/lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
rm -f test.hex
rm -f test.eep
rm -f test.obj
rm -f test.cof
rm -f test.elf
rm -f test.map
rm -f test.obj
rm -f test.a90
rm -f test.sym
rm -f test.lnk
rm -f test.lss
rm -f test.o asuro.o
rm -f test.lst asuro.lst
rm -f test.s asuro.s
rm -f test.d asuro.d
Errors: none
-------- end --------

C:\Asuro\ASURO_src\FirstTry>make MCU=atmega8 LIBFILE=asuro
set -e; avr-gcc -MM -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -IC:/Asuro/lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
[ -s asuro.d ] || rm -f asuro.d
set -e; avr-gcc -MM -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -IC:/Asuro/lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
[ -s test.d ] || rm -f test.d
-------- begin --------
avr-gcc --version
avr-gcc (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -IC:/Asuro/lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
test.c: In function `main':
test.c:17: warning: implicit declaration of function `SerPrint'
test.c:25: warning: implicit declaration of function `PrintInt'
avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -IC:/Asuro/lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -IC:/Asuro/lib/inc -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -LC:/Asuro/lib -lm -lasuro
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: BFD 2.14 20030612 + coff-avr-patch (20030831) internal error, aborting at ../../bfd/reloc.c line 444 in bfd_get_reloc_size

C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\bin\ld.exe: Please report this bug.

make: *** [test.elf] Error 1

C:\Asuro\ASURO_src\FirstTry>pause
Press any key to continue . . .

Und ich kann damit überhaupt nix anfangen. Mein Quellcode ist einfach nur ein Testcode für den Ultraschallsensor:

/************************************************** *************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* any later version. *
************************************************** *************************/

#include "asuro.h"
#include "ultrasonic.h"

int abstand=0;

int main(void)
{
Init();
SerPrint("\r\n --- ultrasonic test ---");

do
{
abstand = Chirp();
SerPrint("\r\n distanz in cm: ");
PrintInt(abstand);
}
while(1);
return 0;
}




Das Programm geht, weil auch die hex datei dieses Programms mit dabei war...

Ich hoffe sehr, dass ihr mir helfen könnt....

Hubert.G
25.11.2009, 22:54
Es wird noch eine Datei dazugehören in der SerPrint und PrintInt definiert sind.

Wrandy
26.11.2009, 09:35
Es wird noch eine Datei dazugehören in der SerPrint und PrintInt definiert sind.

Wie? Es geht doch nicht, wenn ich die chirp kompilieren möchte. Wenn ich die auskommentiere, funktioniert es ja, nur dann hab ich ja auch keinen Zugriff auf die Ultraschallsensoren.
Die SerPrint und PrintInt Funktionen machen keine Probleme.

Hubert.G
26.11.2009, 13:16
test.c:17: warning: implicit declaration of function `SerPrint'
test.c:25: warning: implicit declaration of function `PrintInt'
Das heist das der Compiler die declaration nicht findet, also wird die entsprechende Datei nicht eingebunden sein.
So wird das auch mit den Chirp sein.
Die ganzen ASURO Dateien habe ich nicht, daher kann ich nicht nachsehen welche fehlen.

Wrandy
26.11.2009, 14:10
Ursache des Problems gefunden. Ich habe noch die alte asuro.c in meinem Ordner gehabt. Deshalb wurden die Dateien falsch gelinkt