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.
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.-
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
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!
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.
> 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.
Karlos schrieb: > Wie sollte es funktionieren: > SD Karte hängt am SPI bei einem PIC18 mit externem Memory > Bus(zb.PIC18F85J50). Was jede Menge Hardware braucht nur um ein Programm zu starten / zu flashen. Wo ist der Vorteil zum Bootloader der ja auch noch USB kann?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.