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


von Tim (Gast)


Lesenswert?

Hi,

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

ATMEGA8 :


1
#include <stdint.h>
2
#include <avr/io.h>
3
#include <avr/interrupt.h>
4
#include <avr/eeprom.h>
5
6
7
#ifndef EEMEM
8
9
#define EEMEM  __attribute__ ((section (".eeprom")))
10
#endif
11
12
13
14
int main()
15
 { 
16
 
17
   uint8_t byte EEMEM = 123;
18
   uint8_t myByte=0;
19
   
20
   //myByte = eeprom_read_byte(&byte); 
21
22
}



Was mache ich falsch ?

Gruß und Danke !

von Εrnst B. (ernst)


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)

von Tim (Gast)


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 !

von Andreas K. (a-k)


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.

von spess53 (Gast)


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

von Tim (Gast)


Lesenswert?

sützt auch so ab.....
1
#include <stdint.h>
2
#include <avr/io.h>
3
#include <avr/interrupt.h>
4
#include <avr/eeprom.h>
5
6
7
#ifndef EEMEM
8
#define EEMEM  __attribute__ ((section (".eeprom")))
9
#endif
10
11
12
13
14
uint8_t byte EEMEM = 123;
15
16
int main()
17
18
{ 
19
20
21
}

von Andreas K. (a-k)


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.

von Tim (Gast)


Lesenswert?

Version ist 4.12

von Andreas K. (a-k)


Lesenswert?

WinAVR ist also nicht installiert? Dann erstaunt das nicht.

von Tim (Gast)


Lesenswert?

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

von Andreas K. (a-k)


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.

von Jens (Gast)


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

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.