www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM -Tutorial - Fehler ?


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

habe gerade versucht wie im Tutorial beschrieben das EEPROM anzusprechen 
-  bei mir hängt sich aber dann AVR-Studio auf.

ATMEGA8 :


#include <stdint.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>


#ifndef EEMEM

#define EEMEM  __attribute__ ((section (".eeprom")))
#endif



int main()
 { 
 
   uint8_t byte EEMEM = 123;
   uint8_t myByte=0;
   
   //myByte = eeprom_read_byte(&byte); 

}




Was mache ich falsch ?

Gruß und Danke !

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> bei mir hängt sich aber dann AVR-Studio auf.

> Was mache ich falsch ?

Du garnichts (*). Das AVR-Studio benutzt du ja in dem Fall nur als 
besseren Text-Editor, und wenn sich ein Text-Editor aufhängt wenn man 
Wörter wie "eeprom_read_byte" eintippt, ist eindeutig dieser Editor 
fehlerhaft.

Wenn doch was anderes "Abstürzt": Genaue Fehlerbeschreibung!


*) Ein Fehler ist schon noch in deinem Code, EEMEM Variablen niemals 
Lokal in einer Funktion deklarieren (auch nicht in main), sondern immer 
Global! (Abstürzen darf AVR-Studio deshalb trotzdem nicht)

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im AVR-Studio kommen doch drei grüne Punkte beim "Build" -  beim zweiten 
stürzt er ab


Das entscheidende Wort, welches ich rausnehmen muss ist EEMEM -  dann 
geht es ( also irgendwie mit dem EEPROM)

Danke !

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt natürlich nur eine einzige Version vom Studio und es hat seit 
Jahren nur eine einzige Version vom WinAVR gegeben. Insofern ist es 
völlig unnötig, den Leser mit solch überflüssigen Details wie Versionen 
zu quälen.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Im AVR-Studio kommen doch drei grüne Punkte beim "Build" -  beim zweiten
>stürzt er ab

Wieder mal AVR-Studio mit GCC verwechselt.

MfG Spess

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sützt auch so ab.....

#include <stdint.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>


#ifndef EEMEM
#define EEMEM  __attribute__ ((section (".eeprom")))
#endif




uint8_t byte EEMEM = 123;

int main()

{ 


}

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ob jemand abstürzt oder sich aufhängt ist auch beim Menschen ein 
deutlicher Unterschied. Nicht im Ergebnis, wohl aber auf dem Weg 
dorthin.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Version ist 4.12

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WinAVR ist also nicht installiert? Dann erstaunt das nicht.

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar ! hab ich WinAVR installiert  -  das AVR-Stuio 4.12  SP1  stützt 
doch aber ab  - Warum ?!?!

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein letzter Versuch: Sowas wie pauschal "abstürzen" gibt es nur im 
Gebirge oder bei DAUs. Und im ersten Betrag hiess es auch noch 
"aufhängen" statt "abstürzen". Hier sind genauere Angaben durchaus 
hilfreich.

Und da dir die Ironie offenbar entgangen ist: Auch WinAVR hat eine 
Versionsnummer, und die lautet nicht 4.12.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
öhm ich kann keine Lösung zu der Sache beisteuern, allerdings hab ich 
Probleme die wahrscheinlich in die selbe Richtung gehen

Win AVR 20080610
AVR Studio 4.14

ich schreibe ein Programm, daß sich mit AVR Studio prima compailieren 
läßt und auch auf dem Controller funktioniert - soweit so gut

ich füge in main.h: #include <avr/eeprom.h> ein

Dann definiere ich mir in main.h global:

uint16_t ellf EEMEM; // EEPROM lower lever Fehler

über die Sinnvolligkeit meines Variablennames brauchen wir aber ned 
streiten - er is Mist, ich weiß

drücke ich nun F7 (spätestens hier wird klar, ich verwende wirklich das 
AVR Studio) erhalte diesen Fehler:

Loaded plugin STK500
Loaded plugin AVR GCC
Loaded partfile: C:\Programme\Atmel\AVR 
Tools\PartDescriptionFiles\ATmega64.xml
gcc plug-in: Output directory D:\Eigene 
Dateien\Benutzer\Jens\Quellcode\BC3000\IO\V1\default\ does not exist
gcc plug-in: Created directory D:\Eigene 
Dateien\Benutzer\Jens\Quellcode\BC3000\IO\V1\default\

gcc plug-in: Error: Object file not found on expected location D:\Eigene 
Dateien\Benutzer\Jens\Quellcode\BC3000\IO\V1\default\BC3000IO.elf

aber wieso? Früher hats mal genau so funktioniert ...

achso und scheinbar hängt das mit EEMEM zusammen, denn auch:

uint8_t snT1[3] EEMEM;

führt zu besagtem Fehler

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.