mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung bei AVR Studio


Autor: Dominik Flucke (domflu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute - habe heute mein erstes Progrämmchen für meinen ATTiny2313 aus 
einem Buch abgeschrieben. Das Kompilieren ist Fehler- und Warnungsfrei, 
das Builden klappt auch wunderbar. Die Dateien werden erzeugt.
Über Connect wähle ich das STK500 aus, wähle meinen MC - Read Signature 
läuft wunderbar. Wenn ich dann aber im nächsten Reiter "Program" die 
Flash und EEPROM Dateien auswähle, kommt, wenn ich auf verify klicke bei 
EEPROM, folgender Fehler:

"The Intel Hex input file is empty"

Beim Flash - kein Problem.
Erbitte Hilfe - hab nach erstem Auftreten des Fehlers die neueste 
Version (4.17) des AVR Studios installiert. Daran lags leider nicht.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das liegt vielleicht daran, dass dein Programm gar kein EEPROM benutzt, 
und deswegen auch nur ein leere File erzeugt?!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wenn ich auf verify klicke bei
>EEPROM, folgender Fehler:

>"The Intel Hex input file is empty"

Hast du denn Daten für das EEPROM im Programm?
Wenn nicht, dann ignoriere die Meldung einfach.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das ist kein Fehler.
Wenn Dein Programm keien Daten für das EEPROM-Segment erzeugt, weil Du 
diesen nicht benutzt, bleibt die Datei eben leer.

Gruß aus Berlin
Michael

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Mach mal einen Screenshoot von dem Tab.

MfG Spess

Autor: Dominik Flucke (domflu)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hi - danke für die schnellen antworten. wofür wird denn der eeprom 
gebraucht? ich hab mich nur gewundert, dass eine datei mit endung eep 
erzeugt wird (und auch was drin steht - also nicht 0byte groß ist) und 
dann nicht verwendet wird?

hm dann müsste es ja eignetlich bereits funktionieren..

die fehlermeldung hab ich angehängt.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>die fehlermeldung hab ich angehängt.

Wie eine Fehlermeldung aussieht, weiss ich. Es ging um den Reiter 
"Program" (Tab).

MfG Spess

Autor: Dominik Flucke (domflu)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
aso - sorry - da ist das ding.
hab gerade probiert ob es geht - leider nicht, aber vll hat das ja auch 
andere gründe ...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wie sind die Dateinamen/Pfade für Flash/EEPROM/ELF in die entsprechenden 
Felder gekommen? Eingetragen oder ausgewählt?

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Spess

>Beim Flash - kein Problem.

Die Ursache für die Fehlermeldung ist doch längst geklärt.

>ich hab mich nur gewundert, dass eine datei mit endung eep
>erzeugt wird (und auch was drin steht - also nicht 0byte groß ist) und
>dann nicht verwendet wird?

Steht das drin?

:00000001FF

Dann ist die Intel HEX Datei leer.

Autor: Dominik Flucke (domflu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die pfade hab ich selbst gewählt.

yup :00000001FF steht drin - supi danke. dass es noch nicht geht wird 
dann wohl einen anderen grund haben.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Steht das drin?

>:00000001FF

Normalerweise erstellt das AVRstudio kein *.eep-File (bzw. löscht es 
wieder), wenn der EEPROM nicht benutzt wird. Dann kann auch nicht 
':00000001FF' drin stehen.

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Normalerweise erstellt das AVRstudio kein *.eep-File (bzw. löscht es
>wieder), wenn der EEPROM nicht benutzt wird. Dann kann auch nicht
>':00000001FF' drin stehen.

Was ist schon normal? Das kommt auch auf das makefile an.

[Klugscheissermodus]
Nur :00000001FF in der Datei könnte man auch so interpretieren:
Alle EEPROM Zellen sind 0xFF. Bei Intel HEX dürfen diese
0xFF Zellen unterdrückt/weggelassen werden. Folge:
Es steht nur :00000001FF in der Datei. Das ist die Kennung
für END OF HEX FIlE.
[/Klugscheissermodus]

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI

>Was ist schon normal? Das kommt auch auf das makefile an.

AVR-Studio kennt kein Make-File.

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>AVR-Studio kennt kein Make-File.

Ist mir Wurscht. Ich benutze AVR-Studio nicht.
Tatsache ist, das ein *.eep File erzeugt wurde das leer ist.
Wo das her kommt ist mir auch Wurscht ;)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ist mir Wurscht. Ich benutze AVR-Studio nicht.

OK. Das langt für eine kompetente Aussage.

>hab gerade probiert ob es geht - leider nicht, aber vll hat das ja auch
>andere gründe ...

Dann poste mal da Programm, und versuch mal zu beschreiben, was du 
gemacht hast.

MfG Spess

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Spess

>>Ist mir Wurscht. Ich benutze AVR-Studio nicht.

>OK. Das langt für eine kompetente Aussage.

In welchem Bezug? Die *.eep Datei ist leer.
Das ist Fakt. Du darfst mir gerne glauben das ich da
kompetent bin.

Autor: Dominik Flucke (domflu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo - hier ist der quellcode. das ganze soll einen würfel ergeben der 
zufällig eine zahl ausspuckt - kommt dann auf die ausrichtung der leds 
an. ja ich könnte mit einem einfacheren beispiel anfangen, aber da ich 
das ganze ja nur abgeschrieben habe, dachte ich es müsste schon 
funktionieren. wie gesagt, kompilieren und builden geht wunderbar. dann 
klicke ich auf das "AVR" kästchen und das fenster geht auf. ich wähle 
meinen MC und teste auch das read signature. dann lade ich die dateien 
und klicke auf program. läuft dann wie beschrieben in 2 von 3 fällen 
prima durch - und das müsste es ja schon gewesen sein oder?
#include <avr/io.h>
#define TAKT 1000000ul

void wartex10ms (unsigned char);

int main(void)
{
  unsigned char i, zaehler=6;
  unsigned char tab[7]={0x01, 0x02, 0x03, 0x06, 0x07, 0x0e, 0x0f};


  DDRB=0x0f;

  if(!(PINB & (1<<PB4))) zaehler=7;

  for (i=0;i<zaehler; i++)
  {
    PORTB=~tab[i];
    wartex10ms(50);
  }

  PORTB=0xff;

  while(1)
  {
    for(i=0; i<zaehler; i++)
    {
      if(!(PINB & (1<<PB4)))
      {
        PORTB=~tab[i];
        wartex10ms(5);
        
        while(!(PINB & (1<<PB4)));

        wartex10ms(5);

        PORTB=0xff;
      }
    }
  }
return 0;
}

void wartex10ms(unsigned char faktor)
{
  for(unsigned char j=0; j<faktor; j++)
  {
    for(unsigned int p=TAKT/400ul;p>0;p--);
  }
}

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht wo das Problem liegt, es gibt keine Daten im *.eep File 
und daher auch der Hinweis: "The Intel Hex input file is empty"

Also ich bin noch nie auf die Idee gekommen, wenn ich keine Daten im 
EEPROM habe, nachzuschauen ob wirklich keine Daten da sind und mich dann 
zu wundern das es bestätigt wird.

Autor: Dominik Flucke (domflu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert G. schrieb:
> Ich weiss nicht wo das Problem liegt, es gibt keine Daten im *.eep File
> und daher auch der Hinweis: "The Intel Hex input file is empty"

yo das problem ist erledigt, hab aber gleich eine neue frage - hab noch 
ein wenig gebastelt und das programm auf folgende zeilen reduziert:
#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  unsigned char i, zaehler=6;
  
  
  unsigned char tab[6]={0x01, 0x02, 0x03, 0x06, 0x07, 0x0e};

  DDRB=0xff;
      
  while(1)
  {
    for(i=0; i<zaehler; i++)
    {
      if(!(PIND & (1<<PD4)))
      {
        PORTB=~tab[i];
        _delay_ms(50);
        
        while(!(PIND & (1<<PD4)));

        _delay_ms(50);

        PORTB=0xff;
      }
    }
  }
return 0;
}

irgendwie scheint das array allerdings nicht so ganz zu funktionieren. 
die ersten beiden zahlen funtionieren, aber danach nichts mehr. kann mir 
jemand erklären warum? in dieser version funktioniert es, aber die erste 
ist offensichtlich viel eleganter:
#define F_CPU 1000000ul
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  unsigned char i, zaehler=6;

  DDRB=0xff;

while(1)
{
  for(i=0;i<zaehler;i++)
  {
    if(!(PIND & (1<<PD4)))
    {
      switch(i)
      {
        case 0: PORTB=~0x01; _delay_ms(50); while(!(PIND & (1<<PD4))); _delay_ms(50); break;
        case 1: PORTB=~0x02; _delay_ms(50); while(!(PIND & (1<<PD4))); _delay_ms(50); break;
        case 2: PORTB=~0x03; _delay_ms(50); while(!(PIND & (1<<PD4))); _delay_ms(50); break;
        case 3: PORTB=~0x06; _delay_ms(50); while(!(PIND & (1<<PD4))); _delay_ms(50); break;
        case 4: PORTB=~0x07; _delay_ms(50); while(!(PIND & (1<<PD4))); _delay_ms(50); break;
        case 5: PORTB=~0x0e; _delay_ms(50); while(!(PIND & (1<<PD4))); _delay_ms(50); break;
      }
      PORTB=0xff;
    }
  }
}

return 0;
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.