- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: WinAVR compiliert garnicht

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    9

    WinAVR compiliert garnicht

    Anzeige

    Praxistest und DIY Projekte
    Hi

    Ich bin Anfänger und habe den Bausatz Asuro erfolgreich gelötet, jetzt wollte ich anfangen meinen Asuro zu programmieren.
    Leider will das nicht funktionieren, ich habe die Software WinAVR installiert und diese will, selbst test.c nicht compiliert :

    Code:
     //#include "asuro.h"
    
    int main(void)
    {
    	Init();
    	
    	while(1);
    	return 0;
    }
    die asuro.h sieht folgendermaßen aus:

    Code:
     /*******************************************************************************
    *
    * File Name:   asuro.h
    * Project  :   ASURO
    *
    *
    * Ver.     Date         Author           Comments
    * -------  ----------   --------------   ------------------------------
    * 1.00	   14.08.2003   Jan Grewe		 build
    * 2.00     14.10.2003   Jan Grewe        LEFT_VEL, RIGHT_VEL -> MotorSpeed(unsigned char left_speed, unsigned char right_speed);
    *										 LeftRwd(),LeftFwd(),RightRwd(),RigthFwd() -> MotorDir(unsigned char left_dir, unsigned char right_dir);
    *                                        GREEN_ON,GREEN_OFF,RED_ON,RED_OFF -> StatusLED(unsigned char color);
    *                                        LED_RED_ON, LED_RED_OFF -> FrontLED(unsigned char color);
    *                                        Blink(unsigned char left, unsigned char right) -> BackLED(unsigned char left, unsigned char right);
    *                                        Alles in Funktionen gefasst => leichter verständlich ?!?!
    * 2.10     17.10.2003   Jan Grewe        new Timer funktion void Sleep(unsigned char time36kHz)  
    *
    *
    * Copyright (c) 2003 DLR Robotics & Mechatronics
    *****************************************************************************/
    /***************************************************************************
     *                                                                         *
     *   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.                                                    *
     ***************************************************************************/
    
    #ifndef ASURO_H
    #define ASURO_H
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    
    #define  FALSE	0
    #define  TRUE	1
    
    #define  OFF    0
    #define  ON     1
    
    #define GREEN	1
    #define RED		2
    #define YELLOW  3
    
    /* Init function Processor will be initalized to work correctly */
    void Init(void);
    
    /* Set Status LED (OFF,GREEN,RED,YELLOW)*/
    /* example code set Status LED GREEN */
    /* StatusLED(GREEN); */
    inline void StatusLED(unsigned char color);
    /* function for front LED */
    /* example code front LED On */
    /* FrontLED(ON); */
    inline void FrontLED(unsigned char status);
    
    /* function for Back LEDs */
    /* example code right LED On left LED Off */
    /* BackLED(OFF,ON); */
    void BackLED(unsigned char left, unsigned char right);
    
    /* Set motor direction (FWD,RWD,BREAK,FREE)*/
    /* example code set Direction for right motor to rewind */
    /* MotorDir(BREAK,RWD); */
    inline void MotorDir(unsigned char left_dir, unsigned char right_dir);
    
    /* range for motor speed 0..255 */
    /* example code set speed for left motor to 150 */
    /* MotorSpeed(150,0); */
    inline void MotorSpeed(unsigned char left_speed, unsigned char right_speed);
    
    /* function for serial communication */
    void SerWrite(unsigned char *data,unsigned char length);
    /* timeout = 0 => bloking mode !!! */
    void SerRead(unsigned char *data, unsigned char length, unsigned int timeout);
    
    /* function to read out line follow phototransistors (left,rigth) */
    void LineData(unsigned int *data);
    
    /* function to read out odometrie phototransistors (left,rigth) */
    void OdometrieData(unsigned int *data);
    
    /* function to read out switches */
    unsigned char PollSwitch (void);
    /* for working with Interrupt */
    void StartSwitch(void);
    void StopSwitch(void);
    
    /* Sleep function using 36kHz counter */
    void Sleep(unsigned char timer36kHz);
    /* ----------- END ------------ */
    
    
    /* --------------- INTERNAL ------------- */
    #define GREEN_LED_ON  PORTB |=  GREEN_LED
    #define GREEN_LED_OFF PORTB &= ~GREEN_LED
    #define RED_LED_ON    PORTD |=  RED_LED
    #define RED_LED_OFF   PORTD &= ~RED_LED
    
    #define FWD		(1 << PB5) /* (1 << PD5) */
    #define RWD		(1 << PB4) /* (1 << PD4) */
    #define BREAK	0x00
    #define FREE	(1 << PB4) | (1 << PB5) /* (1 << PD4) | (1 << PD5)*/
    
    #define IRTX        (1 << PB3)
    #define GREEN_LED   (1 << PB0)
    #define RED_LED     (1 << PD2)
    
    #define PWM 	  (1 << PB1) | (1 << PB2)
    #define RIGHT_DIR (1 << PB4) | (1 << PB5)
    #define LEFT_DIR  (1 << PD4) | (1 << PD5)
    
    #define SWITCHES   (1 << PD3)
    #define SWITCH_ON  PORTD |= SWITCHES
    #define SWITCH_OFF PORTD &= ~SWITCHES
    
    #define BATTERIE  (1 << MUX0) | (1 << MUX2) //ADC5
    #define SWITCH    (1 << MUX2)							//ADC4
    #define IR_LEFT	  (1 << MUX0) | (1 << MUX1)	//ADC3
    #define IR_RIGHT  (1 << MUX1)							//ADC2
    #define FRONT_LED (1 << PD6)
    
    #define ODOMETRIE_LED 	  (1 << PD7)
    #define ODOMETRIE_LED_ON  PORTD |= ODOMETRIE_LED
    #define ODOMETRIE_LED_OFF PORTD &= ~ODOMETRIE_LED
    
    #define WHEEL_LEFT   (1 << MUX0)			//ADC1
    #define WHEEL_RIGHT  0					//ADC0
    
    #endif /* ASURO_H */
    An diesen Dateien sollte es wirklich nicht liegen denn sie werden so zum dowload angeboten und der Fehler wurde meines Wissens noch nicht protokoliert.


    Folgender Fehler erscheint bei jeglichen Versuchen meine Tools make bzw clean auszuführen (auch diese sind standart und wurden von mir nicht verändert):


    > "C:\Programme\Asuro\Beispiel-Programme\FirstTry\Test-all.bat"

    C:\Programme\Asuro\Beispiel-Programme\FirstTry>make all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -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
    AllocationBase 0x0, BaseAddress 0x71590000, RegionSize 0x50000, State 0x10000
    C:\Programme\WinAVR\utils\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487
    make: *** [asuro.d] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:02
    Ich habe die Software schon neu installiert und die neueste Version von WinAVR installiert und es erscheint aber immernoch dieser Fehler.
    Leider habe ich auch keine Anwort zu diesem Thema im Internet gefunden. Mittlerweile habe ich einige Stunden versucht und kein Erfolg gehabt, langsam macht sich Frust breit.

    Hat jemand ne Ahnung woran das denn liegen könnte oder hat vielleicht sogar jemand den gleichen Fehler und wie kann man diesen Fehler beheben!?

    Vielen dank für eure Hilfe

    Simon

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    67
    Beiträge
    531
    Hallo,

    Ich nehme an es handelt sich um Windows (nicht Linux)...

    C:\Programme\WinAVR\utils\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487
    Hier wird gesucht nach 'C:\Programme\WinAVR\...' aber dass Verzeichnis 'WinAVR' ist bei mir 'C:\WinAVR'.

    Ist da irgendwo beim instalation etwas in 'C:\Programme' installiert worden?

    Gruss

    Henk

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    9
    Hi vielen dank für deine rasche Antwort

    Ich nehme an es handelt sich um Windows (nicht Linux)...
    du hast recht, es handelt sich um ein Windows XP, da war ich wohl nicht genau genug. Brauchst du noch weitere Infos zum System? Gibt es bekannte Konflikte bei der Verwendung bestimmter Programme (Firewall, Virenscanner..., hab sie zwar auch alle mal ausgeschaltet, hat sich aber nichts geändert...) Ich glaube nämlich, dass das Problem auf einem Konflikt zwischen WinAVR und einer anderen Anwendung beruht, weil dieser Fehler sonst so selten protokoliert wird (rein spekulativ!).

    Hier wird gesucht nach 'C:\Programme\WinAVR\...' aber dass Verzeichnis 'WinAVR' ist bei mir 'C:\WinAVR'.Ist da irgendwo beim instalation etwas in 'C:\Programme' installiert worden?
    Ich hatte zu diesem Zeitpunkt das Installationsverzeichnis "C:\Programme\WinAVR\..." gewählt, habe es mittlerweile auch schon mit einer Neuinstallation (nach Deinstallation und Neustart des Rechners) im Standartverzeichnis "C:\WinAVR" versucht. Die Fehlermeldung berücksichtig dies und sieht dann entsprechend so aus:

    > "C:\ASURO_scr\FirstTry\Test-all.bat"

    C:\ASURO_scr\FirstTry>make all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -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
    AllocationBase 0x0, BaseAddress 0x71590000, RegionSize 0x50000, State 0x10000
    C:\WinAVR\utils\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487
    make: *** [test.d] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:08
    Ich habe übrigens in meiner Verzweiflung auch im Arexx Forum gepostet, von dem aus du hier her verlinks

    Vielen Dank für dein Bemühen

    Ganz liebe Grüße
    Simon

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Teste mal, was von den installierten Programmen funktioniert und was nicht
    make.exe
    avr-gcc.exe
    sed

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    9
    Wie soll ich die Testen!? (Tut mir Leid bin mit dem Programm ein blutiger anfänger) Ich habe jetzt wieder die vom Asuro mitgelieferten Dateien geöffnet (test.c mit #include "asuro.h"). Die datei make.exe habe ich jetzt über "Tools/[WinAVR] make all" gestartet. Aber auch hier entsteht der bekannt Fehler:


    > "make.exe" all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -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
    AllocationBase 0x0, BaseAddress 0x71590000, RegionSize 0x50000, State 0x10000
    C:\WinAVR\utils\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487
    make.exe: *** [asuro.d] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:02
    auch wenn ich die anderen noch Verfügbaren Tools starte ("[WinAVR] Make clean" und "[WinAVR] Programm") bekomme ich diese Fehlermeldung.

    Was ist die Datei avr-gcc.exe und wie teste ich diese.

    Vielen Dank für die Hilfe

    Simon

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Shell (cmd.exe) öffnen und die einzelnen Programmnamen eintippen. Ansonsten mal die Pfade überprüfen. Werden die Programme überhaupt gefunden?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    9
    also wenn ich die Datei avr-gcc.exe über die Eingabeaufforderung starte kommt folgende Meldung

    avr-gcc.exe: keine Eingabedateien
    oder muss ich die da noch spezielle Befehle zum laden von einer Datei ausführen!?

    bei der Datei make.exe gibt es folgende Meldung:

    make.exe: *** No targets specified and no makefile found. Stop.
    Vielen Dank
    Simon

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von Nomi_S
    C:\WinAVR\utils\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 487
    Sieht aus, als wär deine Windows-Umgebung zu klein um eine sh zu starten.

    Möglicherweise liegt das Problem im Makefile (nicht bei make), weil da Kommandos drinne sind, die Pipes bauen und die viel Speicher brauchen.

    (avr-gcc | sed > *** || rm ***) --- das zerrt am Speicher!

    avr-gcc wird gefunden und korrekt ausgeführt.

    make wird gefunden und ausgeführt.

    Wenn du dich in ein Verzeichnis stellst, das ein "Makefile" enthält, sollte make es ausführen.
    Disclaimer: none. Sue me.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    12.04.2006
    Ort
    Stuttgart
    Alter
    37
    Beiträge
    9
    Was heißt das denn jetzt für mich. Wie kann ich den Fehler beheben!?
    Einen neuen Arbeitsspeicher besorgen!?!

    Vielen Dank für deine sachkundige Auskunft!

    Simon

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Mehr Speicher bringt wahrscheinlich nichts. Was nicht stimmt sind wohl Einstellungen zusammen mit den resourcenfressenden Kommandos im Makefile. Evtl hilft es schon, wenn du dein Makefile etwas weniger fordernd schreibst

    Was sagt denn mem?
    Disclaimer: none. Sue me.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress