Forum: Compiler & IDEs Eclipse + WinAVR + AVR Plug-in für Eclipse


von Dennis (Gast)


Lesenswert?

Moin Moin,
ich hab nen kleines Problem mit Eclipse.
ich hab eclipse,winavr und das avr plug-in runter geladen, hab dann 
winavr als erstes installiert und dann eclipseentpacktund das plug in in 
die richtigen ordner gepackt!
hab dann ein projekt angelegt wie es in der beschreibung beschrieben 
ist.
wenn ich jetzt auf build gehe haut das auch ohne fehler hin.
Console bringt dann das hier:
**** Build of configuration Release for project test2 ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -funsigned-bitfields -mmcu=atmega32 -Wall -fshort-enums 
-DF_CPU=16000000UL -funsigned-char -Os -fpack-struct -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=atmega32 -o"test2.elf"  ./main.o
Finished building target: test2.elf

Invoking: AVR Create Extended Listing
avr-objdump test2.elf -h -S  >"test2.lss"
Finished building: test2.lss

Create Flash image (ihex format)
avr-objcopy test2.elf -R .eeprom -O ihex  "test2.hex"
Finished building: test2.hex

Create eeprom image (ihex format)
avr-objcopy test2.elf -j .eeprom --no-change-warnings 
--change-section-lma .eeprom=0 -O ihex  "test2.eep"
Finished building: test2.eep

Invoking: Print Size
avr-size --format=avr test2.elf --mcu=atmega32
AVR Memory Usage
----------------
Device: atmega32

Program:     122 bytes (0.4% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


Finished building: sizedummy

aber wenn ich jetzt auf make target->build gehe meckert er rum:


**** Build of configuration Release for project test2 ****

make -k main
cc   main.o   -o main
process_begin: CreateProcess(NULL, cc main.o -o main, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.

make: *** [main] Error 2

diese fehler meldung bring er wenn ich bei make target->build als namen 
main angebe,wenn ich da einen anderen namen angebe sagt er:

**** Build of configuration Release for project test2 ****

make -k main1
make: *** No rule to make target `main1'.


so nun hab ich das problem schon seit ein paar tagen und hab mir auch 
schon sehrvieleforumsbeiträge dazu durch gelesen, aber bin bis jetzt auf 
keinen grünen zweig gekommen.
hat das evtl. was mit den makefile zu tun?
diewerden hier doch auchtomatisch erzeugt von eclipse(bzw. avr plug in) 
oder?

währe sehr nett wenn jemand mir weiter helfen könnte

gruss dennis

von Dennis (Gast)


Lesenswert?

aso als programm hab ich das aus dem avr-eclipstoturial genommen:


#include <avr/io.h>

#define running  1

// Unterprogramm mit Zeitschleife fuer ATMega16 ohne Quarz
void delay_ms( unsigned int ms )
{
    unsigned int  i;
    unsigned int  j;

    for ( i = ms;  i;  i-- )
    {
        for ( j = 255;  j;  j-- )
        {
        }
    }
}

int main( void )
{
    // PortD6 als Output konfigurieren
    DDRC |= _BV(PC6);

    // Hauptschleife des Programms
    while ( running )
    {
      // LED einschalten, und dann warten
        PORTC |= _BV(PC6);
        delay_ms( 1000 );

      // LED ausschalten, und dann warten
        PORTC &= ~_BV(PC6);
        delay_ms( 29000 );
    }
}


gruss dennis

von Oliver (Gast)


Lesenswert?

>make -k main
>cc   main.o   -o main
>process_begin: CreateProcess(NULL, cc main.o -o main, ...) failed.
>make (e=2): Das System kann die angegebene Datei nicht finden.

Die Fehlermeldung kenne ich, wenn ein "falsches" make aufgerufen wird 
(bei mir z.B. Borland-make), nicht das gnu-make aus dem WinAVR-Paket. 
Such mal auf deinem Rechner, ob da noch mehr make.exe existieren, und ob 
die im Suchpfad vorher auftauchen. Ein "which make.exe" sollte es auch 
tun.

Bleibt noch die Frage, wofür du "make target" brauchst. build 
funktioniert ja ohne Probleme.

Oliver

von Thomas H. (innot)


Lesenswert?

Hi Dennis,

> ...
> aber wenn ich jetzt auf make target->build gehe meckert er rum:
> ...
> hat das evtl. was mit den makefile zu tun?
> diewerden hier doch auchtomatisch erzeugt von eclipse(bzw. avr plug in)
> oder?

'make targets' ist eine Funktionalität in Eclipse, um mit (händisch 
erzeugten) komplexen Makefiles zu arbeiten (z.B. bei nicht 
"Eclipsifizierten" Projekten).

Da Du für Deine AVR Projekte die automatisch erzeugten Makefiles benutzt 
brauchst Du 'make targets' nicht!

Wenn Du 'make targets' unbedingt benutzten möchtest, dann musst Du in 
dem 'Create a new Make target' Dialog als 'Make target' den Namen eines 
existierenden Targets in dem Makefile angeben, z.B. 'all', 'clean' oder 
'{projektname}.elf'.

Außerdem musst Du, wie Oliver schon geschrieben hat, den Pfad zu 
'make.exe' überprüfen, da er bei 'make targets' nicht mehr von 
'Preferences -> AVR -> Paths' kommt, sondern separat in 'Project 
Properties -> C/C++ Build -> Builder Settings' eingestellt werden muss.


LG

Thomas

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.