PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmcode aus EEPROM laden?



Briegel
27.11.2005, 11:01
Moin,
gibt es eine Möglichkeit, beim Mega32 (Assembler) zusätzlichen Programmcode z.B. aus einem externen EEPROM zu laden und ihn auszuführen?

PicNick
27.11.2005, 11:34
Im Prinzip könnte man wahrscheinlich mit einem Bootloader den Flash aus einem EEPROM oder sonstwas laden.
Aber das würde immer den ganzen Flash betreffen, und ich glaub', das meintest du nicht. Ich nehm an, du möchtest gewissermaßen Overlays nachladen ?

Briegel
28.11.2005, 21:45
Aber du hast recht, ich möchte nicht den ganzen Flash überschreiben, sondern nur einzelne Programmteile nachladen. (heißt das Overlay?)

linux_80
28.11.2005, 23:55
theoretisch könnte es gehen,
denn geflasht wird immer Seitenweise, Seitengrösse abhängig vom AVR, beim M32 wären das 128 Bytes.
Beim flashen muss man die ausgewählte Seite vorher löschen, um dann die gewünschten Daten reinzuschreiben. Die anderen Seiten sind davon nicht betroffen, der Inhalt bleibt erhalten, sonst könnte ein Bootloader auch nicht laufen.

Es wird aber nicht Vorteilhaft für das Flash sein, wenn oft die gleiche Seite geflasht wird, denn es ist nur auf 10000 schreib/lösch Zyklen ausgelegt.

Briegel
29.11.2005, 20:22
Hmm, gibt es da keine "flashlose" Möglichkeit, wie z.B. "Führe das in rx:ry stehende Befehlsword aus" oder so?

Barti
29.11.2005, 20:31
Geht bei AVR's glaub ich nicht. Versuch alternativ ARM-Prozessoren. Billig zu haben, ne Menge Rechenleistung und viel Flash-Speicher. Brauchst Du mehr, so kannst Du evtl. bei diesen Controllern Programmcode(aus EEPROM wie Du es machen möchtest) ins schnelle SRAM laden und von dort das Programm ausführen...nur so ein Ansatz.

linux_80
29.11.2005, 20:33
@Briegel
Der AVR führt Programme nur im Flash aus,
Programme im SRAM geht nicht.