mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR: Datendatei fuer EEPROM erstellen


Autor: huibu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann ich denn mit avr-gcc eine Datendatei fuer das eeprom erstellen?

Egal was ich auch tue, mein Makefile generiert mir nur eine 13byte lange 
.eep Datei.

Habe schon folgende Syntax zur Deklaration meiner EEPROM-Daten 
ausprobiert:

static const EEMEM uint8_t werte[]= {0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 
0x00, 0xff};

oder

static const uint8_t werte[] _attribute_ ((section(".eeprom"))) = 
{0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff};


Hier ist mein obj-copy Aufruf:

-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@

Was mache ich falsch? Gibt es irgendwo eine Beschreibung fuer das EEPROM 
Datenformat fuer AVRs? Dann baue ich mir das Ding von Hand.

Autor: Stefan B. (stefan) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Testcode (mit Atmega8 getestet)
#include <avr/io.h>
#include <avr/eeprom.h>

static const EEMEM uint8_t werte[]= {0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff};

int main(void)
{
  while(1);
}

Meldungen der Toolchain (AVR Studio + WINAVR)
Build started 18.7.2010 at 17:30:19
avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -O0 -MD -MP -MT huibu_eeprom.o -MF dep/huibu_eeprom.o.d  -c  ../huibu_eeprom.c
avr-gcc.exe -mmcu=atmega8  huibu_eeprom.o     -o huibu_eeprom.elf
avr-objcopy -O ihex -R .eeprom  huibu_eeprom.elf huibu_eeprom.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 -O ihex huibu_eeprom.elf huibu_eeprom.eep

AVR Memory Usage
----------------
Device: atmega8

Program:     106 bytes (1.3% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)

EEPROM:        8 bytes (1.6% Full)
(.eeprom)

EEP-Datei siehe Anhang als Screenshot im Hexviewer und als Binärdatei.
Sieht das bei dir anders aus? Wenn ja, wie?

Autor: roflkopter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vieleicht erwartet der TE eine Datei mit der kompletten anzahl an bytes 
des EEPROMs

es werden aber meist nur dateien erstellt die die adresse + Inhalt 
wiederspiegeln


wenn man eine Komplette Datei möchte   zwingt man den GCC einfach dazu

bei 1kb EEPROM
static const EEMEM uint8_t werte[1024]= {0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff};


wenn man feste adressen mag :
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

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.