Forum: Mikrocontroller und Digitale Elektronik Arduino, Binär-Datei im Flash ablegen


von Alexander P. (scientiapotentiaest)


Lesenswert?

Liebes Forum,

ich möchte eine mehrere Kilo-Byte große Binärdatei im Arduino-Flash 
ablegen. Mit "const byte Tabelle[]PROGMEM = {..}" komme ich mit einem 
Sketch an das Flash heran. Die Daten sollen aber von einer Datei auf dem 
PC gelesen werden, damit nicht "seitenweise" Sketch-Datei entsteht. Es 
müsste irgendwas in der Form "const byte Tabelle[]PROGMEM = { include 
<Datei.bin> }" sein. Gibt es hierfür einen Weg?

Viele Grüße

von Falk B. (falk)


Lesenswert?

@ Alexander Potchinkov (scientiapotentiaest)


>ablegen. Mit "const byte Tabelle[]PROGMEM = {..}" komme ich mit einem
>Sketch an das Flash heran.

Dann mach das auch so, denn . . .

> Die Daten sollen aber von einer Datei auf dem
>PC gelesen werden, damit nicht "seitenweise" Sketch-Datei entsteht.

Das ist aber gerade bei Arduino der deutlich einfachere Weg. Denn sonst 
muss man an den Linker-Optionen rumschrauben, an die men bei Arduino 
nicht so wirklich rankommt.

> Es
> müsste irgendwas in der Form "const byte Tabelle[]PROGMEM = { include
> <Datei.bin> }" sein. Gibt es hierfür einen Weg?

Weg ja, einfach nein.

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Dateien_direkt_im_Flash_einbinden

von Daniel A. (daniel-a)


Lesenswert?

Ich habe ein script dass für mich Arrays aus Dateien automatisch 
erstellt.
Hier: https://github.com/Daniel-Abrecht/DPA-UCS/
Die dateien genCode.sh makefile src/2cstr.c src/headers/DPA/UCS/files.h

Bei Arduino muss man das vermutlich noch etwas anpassen.

von Alexander P. (scientiapotentiaest)


Lesenswert?

Hallo Falk,

danke für die "ernüchternde" Antwort, der ich aber folgen werde...

von Alexander P. (scientiapotentiaest)


Lesenswert?

Hallo Daniel,

danke für die Antwort, aber es wirkt zu kompliziert...

von Falk B. (falk)


Lesenswert?


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.