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
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
Hallo, Super, damit kann ich etwas anfangen! Vielen Dank! MfG, Sven
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.