www.mikrocontroller.net

Forum: Compiler & IDEs EEprom block read sehe Walt vor lauter.


Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,
wie schon im Titel dieses Beitrags erwähnt ich seh den Walt vor lauter 
Bäumen nicht !

bei ausführung volgender Zeile auf meinem Mega16 stürzt mein Programm ab 
und startet am Anfang !
    #define NEVENT_BYTS    7
    #define NEVENT    20

    uint8_t  events[NEVENT_BYTS];
    uint8_t   eventstatus[2]  ;
    uint8_t  EEevents[NEVENT][NEVENT_BYTS]    EEMEM;
    uint8_t   EEeventstatus[2]                  EEMEM;

    

    eeprom_read_block(EEevents,events,sizeof(events));   // dies wäre die besagte Zeile

ich verwende WinAVR "20080403"

wäre sehr nett wenn sich jemand meiner annimmt!

Gruß

Pier

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dürfte auf den Silicon-Bug zurückzuführen sein.

Abhilfe:
Entweder Compiler-Optimierungen einschalten,
oder auf neuere WinAVR-Version updaten.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
static __inline__ void eeprom_read_block(
    void *  __dst,
    const void *    __src,
    size_t    __n   
  ) [static]

//Read a block of __n bytes from EEPROM address __src to SRAM __dst. 

src und dst sind bei dir wohl vertauscht. Ob das allerdings direkt zu 
einem Restart führt, keine Ahnung.

Es gab da auch eine avrlibc-Version mit einem Bug in den 
eeprom-Routinen, der zu einem Restart führen konnte. Garantiert 
betroffen war WinAVR 20080610, ob deine etwas ältere Version auch 
betroffen ist, weiß ich nicht. Soweit ich mich erinnere, tritt der 
Fehler aber nur bei Compiliereung ohne Optimierung auf, das kannst du ja 
mal prüfen.

Oliver

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert es zusammen mit den Zeilen?
#include <avr/interrupt.h> 

EMPTY_INTERRUPT (SIG_EEPROM_READY)

Beitrag "Re: Riesige Änderungen zwischen WinAVR 030913 und der aktuellen Version?"

Johann

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver schrieb:

> src und dst sind bei dir wohl vertauscht. Ob das allerdings direkt zu
> einem Restart führt, keine Ahnung.

Ja das ist wohl mit dem ganzen probieren passiert !


> Es gab da auch eine avrlibc-Version mit einem Bug in den
> eeprom-Routinen, der zu einem Restart führen konnte. Garantiert
> betroffen war WinAVR 20080610, ob deine etwas ältere Version auch
> betroffen ist, weiß ich nicht. Soweit ich mich erinnere, tritt der
> Fehler aber nur bei Compiliereung ohne Optimierung auf, das kannst du ja
> mal prüfen.


Dein Tip war sehr gut mit Optimierung läufts soweit!!

Auf welche version des WinAvr kann man ohne grösseren Risiken ausweichen 
???

Danke Gruß
Pier

Autor: Pier S. (bigpier)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Johann L. schrieb:
> Funktioniert es zusammen mit den Zeilen?
>
> #include <avr/interrupt.h>
> 
> EMPTY_INTERRUPT (SIG_EEPROM_READY)
> 
wo soll ich diese zeile einfühgen ????

Danke Gruß
pier

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pier S. schrieb:
> Johann L. schrieb:
>> Funktioniert es zusammen mit den Zeilen?
>>
>> #include <avr/interrupt.h>
>>
>> EMPTY_INTERRUPT (SIG_EEPROM_READY)
>> 
> wo soll ich diese zeile einfühgen ????

Egal. In Irgendeiner C-Datei des Projekts wo's für dich passt.

Und nur einfügen, wenn du nicht schon die EEPROM-ISR implementiertst!

Johann

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.