EEPROM -Tutorial - Fehler ?

Gast #950070
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 !
#950073
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)
Gast #950088
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
}
#950125
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.
Gast #952647
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren