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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.