Datei mit Daten zusammen mit Programm ins Flash laden

OP #4721647
Lesenswert?
• ▲
▼
Hallo,

ich will einen Datenfile an eine bestimmte Adresse im Flash ablegen um 
dann z.B: per "pgm_read_byte_far" zur Laufzeit auf die Daten 
zuzugreifen.

Gibt es eine Möglichkeit das Programm mit dem Datenfile zusammen zu 
linken, damit ich dann die Datei in meinen Mikrocontroller (ATMEGA 1284) 
programmieren kann?

Es würde auch über einen Bootloader gehen, aber den Umweg würde ich mir 
gerne ersparen.

In den Linker-Einstellungen von AtmelStudio kann ich Flash-Segmente 
definieren. Mir fehlt nur noch der Schritt die Datei in das Flash zu 
bekommen.

MfG,

Sven
OP #4721972
Lesenswert?
• ▲
▼
Hallo,

ich hatte doch noch zu kämpfen mit dem Problem.

Für alle die einfach eine beliebig Formatierte Binärdatei dazu linken 
wollen:

Ich habe meine Binär-Datei foo.bin genannt und habe mit dem avr-objcopy 
eine foo.o Datei erstellt. Diese Datei habe ich dann zu meiner .elf 
Datei hinzugelinkt...

Ganz wichtig ist, dass man das Format der .o Datei angibt (in meinem 
Fall ATMEGA 1284: avr51) über die Option

--binary-architecture avr51

Das ganze in Atmel Studio einzubinden ist auch nicht so einfach:

Project->Properties->Build Events:

avr-objcopy --rename-section 
.data=.progmem.data,contents,alloc,load,readonly,data -I binary 
--binary-architecture avr51 -O elf32-avr foo.bin foo.o

in den Bereich "pre-build event command line" eintragen.


Dann noch unter:
Project->Properties->Toolchain->AVR/GNU Linker->Miscellaneous->Other 
Linker Flags:

foo.o

eintragen (sonst wird die Datei nicht hinzu gelinkt).


Im Programm kann man dann wie in dem Beispiel
[Beitrag "Re: PWM Tonhöhe und Lautstärke"]
drauf zugreifen.

MfG,

Sven

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.