Forum: Mikrocontroller und Digitale Elektronik Raspi: Programm aus SPI-Flash ausführen


von Hans M. (Gast)


Lesenswert?

Hallo zusammen,

Wie im Betreff angedeutet, frag ich mich ob es möglich ist ein Programm 
auszuführen, welches in nem 2MB SPI-Flash Baustein liegt.
Meine Idee ist :
- Unterschiedliche Erweiterungsplatinen
- Nur ein Programm auf der SD_Karte
- Beim Start wird der auf jeder Platine enthaltene Flash gemountet und 
das dort befindliche Platinenspezifische Programm ausgeführt

Somit "erkennt" der Raspi was drauf steckt und kann mit der Hardware 
sprechen.

Hoffe ich konnt vermitteln, was meine Idee is.

MfG Hans

von Florian K. (florian_k89)


Lesenswert?

Hi,

Ja das ist möglich. Es gibt ein paar serial Flashes,
für die es Linuxtreiber gibt.
Speicherst dann deine Programmbinarie auf dem Flash und lässt die dann 
vom Pi laden und ausführen.

gruss

von Hans M. (Gast)


Lesenswert?

Ok,
Über die Konsole kann ich den Speicherchip ansprechen ( via SPI halt) 
nur wie kann ich Linux beibringen das Teil zu Mounten? Denk mal ich muss 
da auch n kleine Partition mit Dateisystem anlegen? Oder würds reichen 
den Inhalt vom c-file drauf zu speichern und im Raspi n Skript 
abzulegen, welches byteweise den Flash per SPI ausliest temp. in ne 
Datei schreibt und dann kompiliert und dann startet?!

von c.m (Gast)


Lesenswert?

ich schätze mal du brauchst einen treiber der aus dem spi gerät ein 
blockdevice macht das du dann wie jedes andere blockdevice behandeln 
kannst.

von Hans M. (Gast)


Lesenswert?

Wenn ich jetzt frag, was n blockdevice is, streu ich trollfutter?!
Schau mir mal an was das bedeuten könnte und bedank mich für den 
Strichpunkt !

von Florian K. (florian_k89)


Lesenswert?

Hi,
Blockdevice bedeutet im entferntesten Sinne, dass du den Flashspeicher 
in dein Dateisystem mounten kannst. Bzw ihn behandeln kannst wie jeden 
anderen Dateispeicher auch ( USB-Stick, HDD usw).
Wenn du nen Flashspeicher findest den du als Blockdevice ansprechen 
kannst,
kannst du das Ding natürlich auf mit dem RPi formatieren.
Ist auf alle Fälle der eleganteste Weg.
Kannst dir aber auch einen Deamon schreiben, der dir den Flash byteweise 
per SPI ausliest und baust dir daraus eine ausführbare Datei, die du 
dann auf dem RPi ausführst.
Auf alle Fälle interesantes Projekt.

gruss
Florian

von Hans M. (Gast)


Lesenswert?

Ok das klingt machbar. Also brauch ich einfach nur n einfaches Programm, 
welches ganz stumpf z.B mit Hilfe von wiringPi das Flash in n buffer 
liest, den ich dann in ne tempDatei schreib. Das Progrämmchen wird dann 
beim booten ausgeführt und danach die tempdatei?!?
Aber da kommt mir doch glatt ne neue Idee:
Ich leg im Flash nur noch Informationen über die aufgesteckte Platine ab 
z.B. AD-Wandler, Schnittstelle, Baustein, bitbreite, min/max,...
Das hätte den Vorteil das nix gemountet werden muss, Änderungen direkt 
in einem einzigen Prog aufm Pi gemacht werden müssen ohne jedesmal mit'n 
Flash rum zu spielen, alles direkt als ASCII verarbeitet werden kann und 
und und ...
Das klingt für erst mal machbarer, da das am wenigsten mit "Linux 
spielen" zu tun hat ;)
Und das einmalige beschreiben würd ich fix mit nem Mega direkt ausm 
atmelstudio und jtag machen ;) harhar der Plan fühlt sich jetzt schon 
runder an!

Hans

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.