Position der Variablen im EEProm bei gcc

Persönliche Seite #2313917
Lesenswert?

Das dürfte nicht gehen, jedenfalls nicht mit Standard C. Was du machen 
könntest wäre das ganze mit defines tricksen:
1
#define testbyte ((uint8_t*)0x10)
2

3
eeprom_write_byte(testbyte, 10);

Bei beiden Varianten darf du jedoch keinesfalls mehr mit EEMEM arbeiten, 
da es zu Adresskonflikten kommen kann.

Wenn es nicht unbedingt sein muss würde ich mit EEMEM arbeiten, das ist 
einfacher als sich über die Adressen selber gedanken zu machen.
Gast #2313928
Lesenswert?

>ich möchte sie einfach in der Definitionszeile der EEProm-Variable mit >angeben.

Du solltest vielleicht einmal schreiben, zu welchem Zweck Du das 
überhaupt möchtest. Dann wird vielleicht manches klarer und unsere 
Erklärungen sind zielgerichteter.

Die Formulierung
>die direkte Zuweisung einer Adresse im EEProm.

ist nämlich so unkorrekt (es fehlt das Objekt im Satz), das man sie 
deuten muss. Wem oder soll hier eine Adresse im EEPROM zugewiesen 
werden?

Man kann dafür sorgen, dass eine bestimmte Speicherstelle im EEPROM für 
irgendeinen Zweck benutzt wird und diese Adresse fest im Programm 
benennen (ohne zusätzlichen RAM-Speicher zu brauchen). Im allgemeinen 
ist das aber unnötig, da der Compiler bzw. der Linker selbst Adressen 
festlegen kann.

Hier kommen wir zum nächsten Problem. In welcher Sprache und mit welchem 
Compiler willst Du arbeiten?
OP #2314093
Lesenswert?

Hallo Kali,

ich möchte einfach einen festen Aufbau aller EEProms eines großen 
Steuerungssystem haben, um nicht jedes mal bei Auslesen erst nachschauen 
zu müssen, was an welcher Adresse gespeichert wird.

Es gibt aufgrund der Speicherplatzgröße des Atmel nun mehrere Programme, 
welche immer eine bestimmte Funktion erfüllen. Dadurch brauchen nicht 
alle Programme alle Variablen im EEProm.

Ich kann nun natürlich immer alle Variablen in den einzelnen Programmen 
mit aufnehmen, aber die Variante mit dem define der Adressen ist jetzt 
erst mal der Übersichtlicher.

> Hier kommen wir zum nächsten Problem. In welcher Sprache und mit welchem
> Compiler willst Du arbeiten?

Mit dem avr-gcc, welches mit winavr 20100110 installiert wurde.


Hardy

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