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.
Gast
#1210661
Hi Warum kein Array erzeugen? MfG Spess
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?
Gast
#1210685
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.
Gast
#1210776
Mit diesem Programm (nicht von mir) kann man irgendwelche Binär-Dateien in ein C-Array konvertieren.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.