Andi1888
05.03.2014, 11:48
Hallo,
ich nutze zum Programmieren/Compilieren/Flashen Asuro Flash in der Version 1.8.13.110.
Die Asuro Library die ich verwende ist die V2.8.0rc2
WinAVR verwende ich in der Version 20100110
Nun folgendes Phänomen.
Wenn ich das Test Projekt öffne, kann ich dieses ohne Probleme compilieren und flashen.
Erstelle ich nun ein eigenes Projekt, lege die asuro.c und die asuro.h in das Projektverzeichnis und erstelle eine eigene "new.c" Datei mit foglendem Inhalt:
#include "asuro.h"
int main(void)
{
Init();
while(1)
{
BackLED(OFF,OFF);
StatusLED(OFF);
}
return 0;
}
und compiliere alles, bekomme ich folgende Fehlermeldung:
Linking: Project1.elf
avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.o" new.o --output Project1.elf -Wl,-Map=Project1.map,--cref -L"C:\ProgramData/AsuroFlash/asuro-lib/lib" -lm -lasuro
new.o: In function `main':
C:\ProgramData\AsuroFlash\Projects\Test/new.c:5: undefined reference to `Init'
make: *** [Project1.elf] Error 1
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: new.c
avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.lst" "new.c" -o new.o
ExitCode 2
>Ready.
Wenn ich nun zusätzlich noch die asuro.c einbinde, funktioniert es.
Warum muss ich bei mir immer die asuro.c einbinden, während in allen anderen Programmen immer die asuro.h eingebunden wird?
Muss ich eventuell noch Einstellungen im AsuroFlash vornehmen?
Installiert habe ich AusroFlash unter C:\ProgramData und WinAVR liegt in C:\WinAVR-20100110
Folgende Einstellungen habe ich bereits angepasst:
COM-Port 4
AVR-Path: C:\WinAVR-20100110
Die restlichen Parameter habe ich so gelassen.
gruß
Andi
ich nutze zum Programmieren/Compilieren/Flashen Asuro Flash in der Version 1.8.13.110.
Die Asuro Library die ich verwende ist die V2.8.0rc2
WinAVR verwende ich in der Version 20100110
Nun folgendes Phänomen.
Wenn ich das Test Projekt öffne, kann ich dieses ohne Probleme compilieren und flashen.
Erstelle ich nun ein eigenes Projekt, lege die asuro.c und die asuro.h in das Projektverzeichnis und erstelle eine eigene "new.c" Datei mit foglendem Inhalt:
#include "asuro.h"
int main(void)
{
Init();
while(1)
{
BackLED(OFF,OFF);
StatusLED(OFF);
}
return 0;
}
und compiliere alles, bekomme ich folgende Fehlermeldung:
Linking: Project1.elf
avr-gcc -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.o" new.o --output Project1.elf -Wl,-Map=Project1.map,--cref -L"C:\ProgramData/AsuroFlash/asuro-lib/lib" -lm -lasuro
new.o: In function `main':
C:\ProgramData\AsuroFlash\Projects\Test/new.c:5: undefined reference to `Init'
make: *** [Project1.elf] Error 1
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: new.c
avr-gcc -c -mmcu=atmega8 -DF_CPU=8000000UL -I. -g -Os -I"C:\ProgramData/AsuroFlash/asuro-lib/lib/inc" -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms="new.lst" "new.c" -o new.o
ExitCode 2
>Ready.
Wenn ich nun zusätzlich noch die asuro.c einbinde, funktioniert es.
Warum muss ich bei mir immer die asuro.c einbinden, während in allen anderen Programmen immer die asuro.h eingebunden wird?
Muss ich eventuell noch Einstellungen im AsuroFlash vornehmen?
Installiert habe ich AusroFlash unter C:\ProgramData und WinAVR liegt in C:\WinAVR-20100110
Folgende Einstellungen habe ich bereits angepasst:
COM-Port 4
AVR-Path: C:\WinAVR-20100110
Die restlichen Parameter habe ich so gelassen.
gruß
Andi