Hallo, ich suche nach einer Möglichkeit, eine Binärdatei (z.B. Midi-File) im Flash unterzubringen, damit das Programm Zugriff auf die Daten dieser Binärdatei hat. (Programmierumgebung: GCC unter Linux, Architektur: AtMega) Mein erster Ansatz war, mittels eines PC-Hilfsprogramms die Datei umzuwandeln in C-Code: const unsigned char datei[]={ 0x10,0x11,0x57, ... }; D.h. Zuerst werden die C-Bezeichner erzeugt, dann die Datei gelesen und für jedes Byte eine Darstellung im Ascii-Format erzeugt. Natürlich ein paar Zeilenumbrüche. Diese erzeugte Datei ist im Makefile und wird kompiliert und gelinkt. Aber gibt es eventuell einen einfacheren und eleganteren Weg? Vielleicht gibt es spezielle Befehle im Makefile, um die Datei im Flash abzulegen? Schönen Abend!
Mach´s doch zur Laufzeit über eine Art Bootloader mittels SPM, dann kannst Du die Daten nachträglich auch mal ändern. Mögliches Interface dafür wäre das UART.
Ich meinte sowas aehnliches wie der Windows Resource-Editor.
Aus den Resourcen werden ganz normale Objekte erzeugt (*.res) und zum
exe gelinkt.
Sowas aehnliches duerfte es doch bei GNU auch geben.
> Warum kein Array erzeugen?
Hast du meinen 1. Beitrag gelesen?
const unsigned char datei[]={ 0x10,0x11,0x57, ... }; So landen die Daten nicht im Flash, sondern im RAM. Stichtwort: PROGMEM
Ja mann wrote: > const unsigned char datei[]={ > 0x10,0x11,0x57, ... > }; > > So landen die Daten nicht im Flash, sondern im RAM. Stichtwort: PROGMEM Ist mir schon klar.
Mit diesem Programm (nicht von mir) kann man irgendwelche Binär-Dateien in ein C-Array konvertieren.
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.