Forum: Mikrocontroller und Digitale Elektronik Datei mit Daten zusammen mit Programm ins Flash laden


von Sven S. (honxx)


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

von Peter II (Gast)


Lesenswert?

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

http://www.atmel.com/webdoc/AVRLibcReferenceManual/FAQ_1faq_binarydata.html

von Falk B. (falk)


Lesenswert?


von Sven S. (honxx)


Lesenswert?

Hallo,

Super, damit kann ich etwas anfangen!

Vielen Dank!

MfG,

Sven

von Sven S. (honxx)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.