PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler beim compilieren vom Projet mit AVR Studio.



popi
16.06.2006, 09:31
Guten Morgen zusammen,

ich arbeite schon seit Tagen hier an einem Projekt mit AVR-Studio.
Alles ging gut, bis gestern Abend.

Ich kann das Projekt nicht mehr compilieren. Es kommt immer die Fehlermeldung:

gcc plug-in: Error: Object file not found on expected location C:\...Verzeichnise...\test\default\test.elf

Und da ist auch wirklich die Datei nicht drin, die er sucht.

Aber ich habe die letzten Tage auch nichts anderes gemacht, wie Taste F7 für "Build" zu drücken und es ging immer.

Kennt jemand sowas und weiß Rat??

Danke und Grüße

popi

popi
16.06.2006, 10:29
Ich habe herausgefunden, das es mit dem Zufügen von while(OCR3A <= 0x40) ... zu tun hat.

Also, folgender Code lässt sich problemlos compilierern, entfernt man die Komentarueichen bei OCR3A... gibts wieder Probleme:

void main(void)
{
DDRB = (1<< DDB4) | (1<< DDB5) | (1<< DDB6) | (1<< DDB7);
PORTB = (1<< PB4) | (1<< PB5) | (1<< PB6) | (1<< PB7);
// DDRD = (1<< DDD0);
// PORTD = (1<< PD0);
DDRE = (1<< DDE3) | (1<< DDE4) | (1<< DDE5);
PORTE = (1<< PE3) | (1<< PE4) | (1<< PE5);
TCCR0 = (1 << WGM00) | (1<< COM01) | (1<< CS00);
TCCR1A = (1 << WGM10) | (1<< COM1A1) | (1<< COM1B1);
TCCR1B = (1 << CS10);
TCCR2 = (1 << WGM20) | (1<< COM21) | (1<< CS20);
TCCR3A = (1 << WGM30) | (1<< COM3A1) | (1<< COM3B1) | (1<< COM3C1);
TCCR3B = (1 << CS30);
//OCR0,OCR2,OCR1A,OCR1B,OCR3A,OCR3B,OCR3C = 0x00;
OCR3B = 0x02;

while(x==2)
{

while(OCR0 <= 0x60) {for (i=0;i<300;i++) asm volatile("NOP"); OCR0 = OCR0 + 1;}
while(OCR2 <= 0x40) {for (i=0;i<300;i++) asm volatile("NOP"); OCR2 = OCR2 + 1;}
while(OCR1A <= 0xAE) {for (i=0;i<100;i++) asm volatile("NOP"); OCR1A = OCR1A + 1;}
// while(OCR3A <= 0x40) {for (i=0;i<150;i++) asm volatile("NOP"); OCR3A = OCR3A + 1;}
while(OCR0 >= 0x40) {for (i=0;i<100;i++) asm volatile("NOP"); OCR0 = OCR0 - 1;}
while(OCR2 >= 0x10) {for (i=0;i<100;i++) asm volatile("NOP"); OCR2 = OCR2 - 1;}
while(OCR1A >= 0x10) {for (i=0;i<100;i++) asm volatile("NOP"); OCR1A = OCR1A - 1;}
// while(OCR3A >= 0x01) {for (i=0;i<09;i++) asm volatile("NOP"); OCR3A = OCR3A - 1;}
}}


Habt Ihr sowas schon mal gehabt, weiss jemand was man machen soll????

Danke und Grüße

popi

linux_80
16.06.2006, 11:37
Hallo,

Welche AVR verwendest Du gleich wieder ?

Kommt weiter oben nicht noch ein anderer Fehler der dann zu diesem führt ?

popi
16.06.2006, 13:25
Hallo,

einen mega64. Aber ich habe den Fehler rausgefuden.
Misst, man muss genau hinschauen was man tut.

Grüße

popi

linux_80
16.06.2006, 13:41
Düfen wir auch wissen wo's gezwickt hat ?

popi
16.06.2006, 13:58
Ihr wollt es nicht wirklich wissen ;o)

in der auskommetierten Zeile habe ich nicht i<9 sondern i<09 geschrieben und diese Null bedeutete für den Compiler wohl eine Hex-Zahl.

Wie auch immer, aus...

// while(OCR3A >= 0x01) {for (i=0;i<09;i++) asm volatile("NOP"); OCR3A = OCR3A - 1;}

habe ich nun

// while(OCR3A >= 0x01) {for (i=0;i<9;i++) asm volatile("NOP"); OCR3A = OCR3A - 1;}

gemacht und es geht...

Deswegen sagt ich: richtig hinschauen ;o)

Grüße

popi

ogni42
16.06.2006, 16:33
Diese Null bedeutet für den Compiler eine Oktalzahl und eigentlich sollte der da einen Fehler melden, da die Zahlen nur von 0 bis 7 gehen.

jagdfalke
15.03.2007, 22:49
Hi,
ich sehe nicht ganz, wie das Problem mit dem elf-File gelöst wurde. Ich habe momentan das gleiche Problem:



#include <avr/io.h>
#include "i2cmaster.h"

#define POWER_PORTS_I2C 0x72

int main(void) {
i2c_init(); // init I2C interface
uint8_t ret;
ret = i2c_start(POWER_PORTS_I2C + I2C_WRITE); // set device address and write mode
if ( ret ) {
i2c_stop();
} else {
/* issuing start condition ok, device accessible */
char value;
value = 1;
while(1) {
i2c_start_wait(POWER_PORTS_I2C + I2C_WRITE);
i2c_write(value);
i2c_stop();
value = value * 2;
if(value > 16) {
value = 1;
}
}
}
return 1;
}


Build -> Compile:


avr-gcc.exe -I"E:\mathias\projects\avr.projects\rnbfra_led\." -mmcu=atmega32 -Wall -gdwarf-2 -O0 -fsigned-char -MD -MP -MT rnbfra_led.o -MF dep/rnbfra_led.o.d -c ../rnbfra_led.c
Build succeeded with 0 Warnings...


Build -> Build:


Loaded plugin STK500
Loaded plugin AVR GCC
Loaded partfile: C:\Programme\Atmel\AVR Tools\PartDescriptionFiles\ATmega32.xml
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Exported makefile to C:\Dokumente und Einstellungen\mathias\Desktop\Makefile
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf
gcc plug-in: Error: Object file not found on expected location E:\mathias\projects\avr.projects\rnbfra_led\defaul t\rnbfra_led.elf




Unter "Source Files" steht rnbfra.c twimaster.c und i2cmaster.S. Unter "Header Files" nur i2cmaster.h. Ist also alles da was gebraucht wird.

chientech
02.04.2007, 12:17
Hi ich hab das selbe Problem.

Gibts ne Lösung?

mfg c

ogni42
02.04.2007, 17:20
Arbeitest Du mit einem externen makefile? Dann musst Du dort die Pfade überprüfen.

plusminus
27.04.2007, 18:40
Tach, habe das selbe Problem:


Build started 27.4.2007 at 19:22:10
avr-gcc.exe -mmcu=atmega2560 -Wall -gdwarf-2 -DF_CPU=16000000UL -O0 -fsigned-char -MD -MP -MT Hexapod.o -MF dep/Hexapod.o.d -c ../Hexapod.c
process_begin: CreateProcess((null), avr-gcc.exe -mmcu=atmega2560 -Wall -gdwarf-2 -DF_CPU=16000000UL -O0 -fsigned-char -MD -MP -MT Hexapod.o -MF dep/Hexapod.o.d -c ../Hexapod.c, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
make: *** [Hexapod.o] Error 2
Build succeeded with 0 Warnings...



27-Apr-2007 19:22:10 gcc plug-in: Error: Object file not found on expected location G:\Projekte\Robotics\Hexapod\Code\C\Hexapod\defaul t\Hexapod.elf


Makefile wird erstellt:
G:\Projekte\Robotics\Hexapod\Code\C\Hexapod\defaul t\Makefile"
Die Daten darin stimmen auch (soweit ich das sehen kann).

################################################## #############################
# Makefile for the project Hexapod
################################################## #############################

## General Flags
PROJECT = Hexapod
MCU = atmega2560
TARGET = Hexapod.elf
CC = avr-gcc.exe

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -DF_CPU=16000000UL -O0 -fsigned-char
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=


An meinem Code wirds nicht liegen:


#include <stdio.h>

int Zahl1;
char Zeichen1;

int main (void)
{
int zahl2;

/* Anweisungen */
return 0;
}


Bei Project-Settings ist "Create hex-file" akiviert.

An was liegts/könnte es liegen :?:

plusminus
29.04.2007, 23:40
kompletten Re-Install gemacht. WinAVR diesmal direkt auf C: "C:\WinAVR" danach das aktuellste AVRStudio(mit Vista-Patch !) und schon gehts!