www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Code von externem Speicher ausführen


Autor: Michael Stather (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gehört, dass es möglich ist an einen AVR externen
Flash-Speicher anzuschliessen.
Ist es auch möglich Code direkt von diesem auszuführen? Oder vielleicht
sogar direkt von einer SD-Karte? Oder muss aller ausführbare Code im
Bootloader gelesen und dann in den integrierten Flash programmiert
werden? Ich habe schon im Netz gesucht aber leider nichts gefunden.

Vielen Dank für Eure Hilfe!

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der AVR hat die "Harvard-Architektur" (Google) und das hat die
Konsequenz, dass nur aus dem Flash Code ausgeführt werden kann.

Jedoch könntest du versuchen einen Befehlsinterpreter zu bauen, der
dann aber um Einiges langsamer ist.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falscher Controller-Architektur. Wenn du so etwas vorhast, bist du mit
Von-Neumann-Controllern wie MSP430 oder ARM weit besser bedient.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was einzig geht: SD-Karte als Quelle des Bootloaders verwenden, also
statt ISP oder seriellem Bootloader einen SD-Karte verwenden. Beliebig
oft geht das natürlich nicht, irgendwann ist das Flash ausgelutscht.

Autor: Michael Stather (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für Eure Antworten.
Das mit der Harvard-Architektur schliesst ja nicht aus, dass der AVR
Code von externem Flash (also anstatt vom internen) ausführen kann.
Wäre halt praktisch genau wegen der begrenzten Lebensdauer des Flashs.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der AVR kann eben keinen Code vom externen Flash ausführen.
Zugegeben, ungeschickt ausgedrückt; dies ist ja nicht implizit eine
Harvard-Eigenschaft. Theoretisch könnten ja AVRs mit zwei getrennten
nach außen geführten Bussystemen existieren.

Allerdings gibt es (bzw. soll irgendwann geben) AVRs, die anstelle des
Flash internes SRAM verwenden, das nur von einem speziellen Bootloader
beschrieben werden kann und danach hardwaremäßig vor Schreibzugriffen
verriegelt ist.
Abfallprodukt ist die sehr viel höhere erzielbare Geschwindigkeit (48
MHz Taktfrequen).

Damit meine ich die USB-Device-Controller AT76C712/713
(http://www.atmel.com/dyn/products/product_card.asp...)

Autor: hans dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm der avr32 kann das, leider gibts die noch nicht wirklich

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ist auch nicht wirklich ein AVR, sondern eher eine Art lizenzfreier
ARM.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ähm der avr32 kann das, leider gibts die noch nicht wirklich

Das ist ja auch kein "AVR" im klassischen Sinne...

...

Autor: Christoph Kessler (db1uq) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie ist das mit BASCOM? Sitzt da nicht nur der Interpreter im Flash
und das BASIC-Programm steckt im externen Speicher? Oder war das beim
Basic-Stamp so? Ich hab mit beidem noch nicht gearbeitet.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bascom ist ein Compiler.

Nur ein Interpreter kann auf einem AVR Programme aus dem RAM (oder
sonstigem externen Speicher) ausführen.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Abfallprodukt ist die sehr viel höhere erzielbare Geschwindigkeit
> (48 MHz Taktfrequen).

Ich hätte das eher umgekehrt gesehen: Die AVRs sollen schneller werdem,
können dann aber das Programm nicht mehr direkt aus einem Flash-Speicher
lesen, weil der zu langsam ist. Deshalb steigt man notgedrungen auf RAM
um.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wäre halt praktisch genau wegen der begrenzten Lebensdauer des Flashs.

Da stellt sich doch die Frage, wie oft man die Firmware einer Steuerung
ändern will. Wenn man sie konfigurieren will, nimmt man das EEPROM, um
die Parameter zu speichern (hat auch einen höheren
Wiederbeschreinungszyklus).
Wenn man das Flash während des Entwicklungsvorganges schon durch
zuviele Schreibzyklen "schrottet", sollte man seine
Entwicklungsmethode mal überdenken.

Wieso will bloß immer alle Welt auf einem AVR oder dergl. dauernd das
Flash braten? Bei mir laufen in und die selben Anwendungen auf dem
Controller, bis das komplette Gerät entsorgt wird. Vielleicht
zwischendurch noch mal ein Firmware-Update. Aber das tötet nicht das
Flash. Könnte mir jemand eine Anwendung nennen, bei der man dauernd das
Flash ändern muß? (In einem solchen Fall würde ich den Umstieg auf eine
andere Controller-Architektur empfehlen...)

Autor: Rainer Stamm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibt es einen MSP430 mit externem Speicherinterface???

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AFAIK nein. Das ist IMHO das, was die MSP430-Reihe abrunden würde.

Autor: Michael Stather (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir wollen mit nem AVR eine Art Spielekonsole bauen, mit VGA Ausgabe.
Die Spiele sollen von einer Flashkarte ausgeführt werden.
Die AVRs haben für uns einfach den Vorteil dass sie gut dokumentiert,
einfach zu programmieren und vor Allem billig sind.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Classic-Gameboy basiert auf dem Z80...
Dabei wurde IMHO das EPROM mit jedem Spiel ausgetauscht (Atari 800
lässt grüssen).
Da könnte man auch den kompletten AVR in die Spiele-Cartridge packen,
und nur die Anzeige-Elektronik etc. in der Konsole belassen.

Autor: Dirk Dörr (dirkd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schon mal erwähnt könnt Ihr Euch einen Bootloader schreiben.

Beim Reset wird in einen Bootloader gesprungen.

Bootloader wartet auf Einlegen der Speicherkarte.

Der Bootloader ließt von der Speicherkarte welches Spiel gespeichert
ist.

Wenn Spiel auf Karte ungleich Spiel im Flash wird das Spiel als
Applikation ins Flash geschrieben und anschließend gestartet.

Das macht das Flash zwar nicht ewig mit, aber vielleicht genügt es.

Das ganze dauert natürlich auch etwas (Lesen des Spiels und Flashen).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.