Projektidee: Programm auf SD Karte wird in PIC18F ausgeführt

Gast #3147074
Lesenswert?

Hallo Leute,

Ich habe folgende Idee:
Ein Programm von einer SD Karte wird in einem PIC18F ausgeführt.
Dies hätte den Vorteil, bei einem Firmwareupdate, den Kunden nur eine 
neu SD Karte zu schicken.

Wie sollte es funktionieren:
SD Karte hängt am SPI bei einem PIC18 mit externem Memory 
Bus(zb.PIC18F85J50).
Am Memory Bus wird ein SRAM angeschlossen.
Beim Starten prüft der PIC18F, ob sich ein Programm im externen Speicher 
befindet.
Wenn nein, wird das Programm von der SD Karte in den Ram kopiert.
Der PIC startet neu. Es wird wider geprüft.
Es wird ein Programm gefunden.
Das Programm wird vom SRAM ausgeführt.

Ist dies realisierbar, oder bietet der Bootblock dafür zuwenig Speicher?
Am Anfang müsste es nicht umbedingt eine FAT32 / FAT16 Implementierung 
geben.
Gast #3147078
Lesenswert?

So macht man das nicht. Man verwendet einen Bootloader und überprüft 
nach dem Reset, ob auf der SD-Karte/USB-Schnittstelle/... ein neues 
Programm da ist. Wenn ja lässt man den PIC sich selbst flashen. Alles 
andere ist Murks hoch 25.-
Gast #3147081
Lesenswert?

Der Gedanke ist der , das das Programm während des Laufens auch geändert 
werden könnte, und der Flash geschont wird.
Ausserdem währe eine SD Karten <-> PIC Codierung denkbar zwecks 
Verschlüsslung der Firmware
#3147101
Lesenswert?

Karlos schrieb:
> Der Gedanke ist der , das das Programm während des Laufens auch geändert
> werden könnte, und der Flash geschont wird.

Wie oft kann das Flash #garantiert# neu beschrieben werden. (Und immer 
daran denken, das ist kein Ablaufzähler. Auch wenn du 'nur' eine 
Garantie für 10000 Schreibzyklen hast, bedeutet das nicht das mit dem 
10001-ten Schreibversuch alles vorbei ist).
Also: wie oft kann das Flash bei deinem PIC beschrieben werden? Wie oft, 
geschätzt, benötigst du den Fall, die Firmware upzudaten. Wie viele 
Jahrhunderte hält daher das Flash?


Edit: oder meinst du selbstmodifizierenden Code.
Da kann ich nur sagen: Finger weg!
#3147103
Lesenswert?

Karlos schrieb:

> Ausserdem währe eine SD Karten <-> PIC Codierung denkbar zwecks
> Verschlüsslung der Firmware

Wenn du sowieso kein FAT hast, also ein normales Dateisystem, dann 
beschreib die Karte einfach in einer wilden Sektorreihenfolge und lies 
die Einzelteile auch wieder in dieser Reihenfolge. Schon alleine diese 
einfache Massnahme sorgt dafür, dass es fast unmöglich ist, ohne die 
korrekte Reihenfolge das Programm zu entschlüsseln. Dazu noch ein XOR 
mit einer Konstanten über alle Bytes drüber und das wars.
Aber wahrscheinlich interessiert sich sowieso keiner für das Programm, 
noch nicht mal die Chinesen - vegebene Liebesmühe, viel Aufwand für 
nichts.
Gast #3147121
Lesenswert?

> Dazu noch ein XOR mit einer Konstanten über alle Bytes drüber und das
> wars.

Für jedes Byte die gleiche Konstante ist zu wenig. Sollte schon ein 
wenig länger sein (z. B. 256 Byte) plus Sektor verwürfeln (siehe oben).

> ... noch nicht mal die Chinesen ...

Die sind i. d. R. nicht das Problem. Die eigenen Kunden könnten das 
Problem sein.
#3147242
Lesenswert?

und schnarchlangsam ist das ganze auch noch.

wenn du programme von einem externen medium ohne flashen ausführen 
willst sieh dir die pic32 an, die können program-execution-from-ram.

alles andere schreit nach einem bootloader, der dann immernoch 
verschlüsselte files laden könnte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren