Programm auslagern

Gast #312630
Lesenswert?
• ▲
▼
Hallo
Gibt es eine Möglichkeit den Programmcode, der sonst in den Flash des
AVR geschrieben wird, auszulagern in ein EEprom oder externes Flash.
So das er zur Laufzeit den Code von da holt? Ich würde dafür einen
Meg16 nehmen wollen und den externen Speicher mit dem i2c ansteuern.
Der Speicher müsste > 128kb haben.
Gruss
Frank
Gast #312631
Lesenswert?
• ▲
▼
Geht mit dem AVR nicht, es sei denn, Du würdest quasi einen Interpreter
aus seinem Flash ausführen, der Dein EEPROM-Code interpretiert ->
aufwändig, langsam.

Der AVR kann auch seinen eigenen Flash beschreiben, da könnte man
häppchenweise immer den nötigen Code aus'm EEPROM ins Flash kopieren.
Genauso belämmert, zumal der Flash nicht beliebig oft beschreibbar
ist.

Bleibt Dir fast nix anders übrig, als Dich mi nem µC anzufreunden, der
Deinen vorstellungen näher kommt und Code aus externem Speicher
ausführen kann oder besser genug Flash intus hat.

>128KB Programmspeicher (ATmega128 hat 128KB Flash) mußte erstmal
gefüllt kriegen!! Wenn der wegen Grafiken oder ähnlichen Daten so
vollgestopft wird: Die lassen sich natürlich ganz gut auslagern.
Gast #312634
Lesenswert?
• ▲
▼
eigentlich sind die "Nein" ja richtig, aber "von hinten durch die
Brust ins Knie geschossen" könnte man doch einen bootloader schreiben
der auf neue Daten im externen Flash konntrolliert und gegebenenfalls
den AVR neu programmiert.
Obs Sinn macht sei dahingestellt, aber vielleicht wäre es ein work
around.
@Frank: was ist die Idee hinter der Fragestellung?

grüße leo9
Gast #312635
Lesenswert?
• ▲
▼
Danke für die Antworten aber der Atmega sollte schon in DIP Formbleiben.

Für mich als Anfänger besser zu verarbeiten. Geht es das man z.B. Text
der auf einem LCD erscheinen soll auslagert. Der scheint ja auch viel
Flash in Anspruch zu nehmen?
Frank
Gast #312637
Lesenswert?
• ▲
▼
Aber ich versteh das noch nicht ganz. Du bist Anfänger und schon an der
32k-Grenze des AtMega32?
Puh, ich glaub das größte, was ich bisher geschafft hab, liegt derzeit
so bei 15k...
Gast #312638
Lesenswert?
• ▲
▼
Hallo
Das liegt daran das ich ein relativ grosses Menü habe mit vielen LCD
Textanzeigen. Ausserdem ist mein Code wohl noch nicht so effektiv das
er sich noch sehr aufbläht.  Ich kann nur DIP AVR verarbeiten. Alle
anderen AVR laßt meine "Lötkünste" noch nicht zu.
Frank
Gast #312639
Lesenswert?
• ▲
▼
> Hallo
> Das liegt daran das ich ein relativ grosses Menü habe mit vielen
> LCD Textanzeigen.

Um einen signifikanten Teil von 32k vollzubekommen, ist aber auch schon
eine ziemlich große Menge Text nötig. Wieviele Tausend Menüeinträge hast
du denn?
Generell kannst du aber durchaus Daten auch aus dem EEPROM (welches
aber normalerweise verhältnismäßg klein ist) oder externem Speicher
holen. Nur Programmcode kann von dort nicht ausgeführt werden.

> Ausserdem ist mein Code wohl noch nicht so effektiv das
> er sich noch sehr aufbläht.  Ich kann nur DIP AVR verarbeiten.
> Alle anderen AVR laßt meine "Lötkünste" noch nicht zu.

Es gibt auch Module mit größeren AVRs, die man auf eine normale
Lochrasterplatine stecken kann.
Gast #312640
Lesenswert?
• ▲
▼
Na ja es sind so 15 Menüpunkte, aber es ist noch der soft i2c und eine
DCF integriert und halt noch anderer Funktioncode.Und es fallen mir
noch mehrere Sachen ein die mit rein könnten. So habe ich dann schon
die 32Kb des Meg32 ausgenutzt. Wie ist den das Meg128 Modul zu flashen?
Auch über den ISp? Kann ich dann auch meinen ISP (den ich hier aus den
Shop habe und für den Meg32 nehme) für den Meg128 nehmen?
Gast #312645
Lesenswert?
• ▲
▼
Ich habe mir die Grösse der main angeguckt. Die hat 31kb .
Wie gesagt da ist noch ne DCF und I2c Steuerung, Drehgeber auslesen
u.s.w.! Ich denke manches ist nicht optimal programmiert. Dakönnte man
auch noch Platz einsparen.
Gast #312652
Lesenswert?
• ▲
▼
Ne ich habe nur die Dateien eingebunden die sein müssen.
Notepad sagt 31KB und wenn ich mir die Hex im Verzeichniss ansehe
ist die 32 KB? Ist sie nun so gross oder nicht? wie kann man das
rauskriegen?

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