mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Binärdaten im Programmspeicher (Flash) unterbringen


Autor: Jürgen G. (jg32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Warum kein Array erzeugen?

MfG Spess

Autor: Jürgen G. (jg32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Ja mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
const unsigned char datei[]={
0x10,0x11,0x57, ...
};

So landen die Daten nicht im Flash, sondern im RAM. Stichtwort: PROGMEM

Autor: Jürgen G. (jg32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Henry (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit diesem Programm (nicht von mir) kann man irgendwelche Binär-Dateien 
in ein C-Array konvertieren.

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.