Mikrocontroller flashen

Gast #5781346
Lesenswert?

Guten Tag Community,
ich beschäftige mich aufgrund meiner Vorlesung mit Mikrocontrollern und 
dessen Aufbau. Nun stehe ich vor der Frage, was beim "Flashen" eines 
Mikrocontrollers geschieht und komme nicht weiter. Ich hoffe hierbei 
kann mir jemand behilflich sein.
Danke und liebe Grüße
Gast #5781366
Lesenswert?

Okay ich verstehe. D.h kann ich auf die Frage, was beim "Flashen" eines 
Mikrocontrollers geschieht mit :

Beim Flashen eines Mikrocontroller wird ein auszuführendes Programm in 
den Speicher des Mikrocontrollers geschrieben. Denn ein Mikrocontroller 
besitzt ein nichtflüchtigen Speicher, der in unserem Fall genutzt wird, 
um das Programm zu speichern.
Nichtflüchtiger Speicher = Daten bleiben nach dem Ausschalten der 
Betriebsspannung erhalten.
Es kann beliebig oft gelesen und beschrieben werden.

antworten?
Gast #5781380
Lesenswert?

Malek schrieb:
> Ich habe es nicht verstanden.
> Tut mir leid Karl.
> Bitte sofort erklären.

Pesch, es gibt auch noch Suchsysteme, die könnte man nutzen.

Oder doch, Du hast ein leeres Papier ohne Löscher.
Nun will man eine "0" kodieren und nimmt einen Locher und takert eine 
Loch an die passende Stelle (Bitposition, Adresse).

Will man den gesamten Speicher "löschen", so muss man ein anderes 
Stückpapier nehmen, da die Löscher nicht wieder auffüllt werden können.

Das ist sehr vereinfacht dargestellt.
#5781405
Lesenswert?

Karl M. schrieb:
> Malek schrieb:
>> Tut mir leid Karl ich habe das nicht verstanden. Kannst du es vielleicht
>> noch einmal erklären ?
>
> Nöö, was ist mit löschen == alles auf 1 Setzen unklar?

Das ist ein vollkommen unwesentliches Detail, das den Fragesteller nur 
verwirrt, anstatt ihm zu helfen.

Das einzige, was man in diesem Zusammenhang erwähnen könnte, ist daß man 
Flash vor dem Beschreiben erst löschen muß. Ausnahme ist das allererste 
Beschreiben des Flash (z.B. in einem fabrikneuen µC) - denn dann ist das 
Flash schon leer.


Malek schrieb:
> Beim Flashen eines Mikrocontroller wird ein auszuführendes Programm
> in den Speicher des Mikrocontrollers geschrieben.

Nicht notwendigerweise. Das Flash eines µC kann auch Daten enthalten. 
Ein Programm, das z.B. Texte auf ein Display ausgibt, muß diese Texte ja 
irgendwo gespeichert haben. Und zwar im Flash.

> Denn ein Mikrocontroller besitzt ein nichtflüchtigen Speicher,
> der in unserem Fall genutzt wird, um das Programm zu speichern.

Nicht jeder µC enthält Flash bzw. allgemein nichtflüchtigen Speicher. 
Aber ein µC, bei dem man vom "flashen" spricht, natürlich schon. Sonst 
würde das Wort ja keinen Sinn ergeben.

> Nichtflüchtiger Speicher = Daten bleiben nach dem Ausschalten der
> Betriebsspannung erhalten.

Das ist die allgemeine Definition des Begriffs.

> Es kann beliebig oft gelesen und beschrieben werden.

Beliebig oft gelesen - ja. Aber beim Schreiben gibt es eine Grenze.
Gast #5781683
Lesenswert?

Beim Flashen passiert ungefähr das gleiche, als wenn du eine Datei auf 
einen USB Stick überträgst. Was ist daran schwer zu verstehen?

Das Programm wird in den Flash Speicher des Mikrocontrollers übertragen. 
Fertig aus, mehr gibt's dazu nicht zu sagen.

Es sei denn, die Frage gilt den physikalischen Vorgängen, die sich 
innerhalb des Flasch-Speichers abspielen. Dann müsste man aber nach 
einen ganz konkreten Modell fragen, denn es gibt unterschiedliche 
Varianten dieser Speicher.
#5781788
Lesenswert?

Malek schrieb:
> Nun stehe ich vor der Frage, was beim "Flashen" eines
> Mikrocontrollers geschieht


Zitat:
Quelle: https://de.wikipedia.org/wiki/Flash-Speicher
"...Bei einem Flash-EEPROM-Speicher werden Informationen (Bits) in einer 
Speichereinheit (Speicherzelle) in Form von elektrischen Ladungen auf 
einem Floating-Gate oder in einem Charge-Trapping-Speicherelement eines 
Metall-Isolator-Halbleiter-Feldeffekttransistors (englisch Metal 
Isolator Solid State Field Effect Transistor, MISFET) gespeichert..."
/Zitat

Hi,
zunächst ist der Begriff "Flashen" seit ein paar Jahren gleichgesetzt 
zum "Programmieren" von EPROMs zum Beispiel, deswegen, weil diese 
Flash-Technologie bei Speicherbausteinen so extrem populär geworden ist.

Aber das "Beschreiben" von Speichern geht allgemein so, dass Ladungen 
verschoben werden.
Wie das im einzelnen vonstatten geht, kommt auch auf die 
Speicherbausteine an.
Und was oft vergessen wird: Reine Mikroprozessoren (von damals) haben 
keinen Speicher. Sie müssen immer noch das "Betriebssystem" per EPROM 
extra mitgeliefert bekommen. Alles andere ist "fest".

Dann kommt der Begriff Mikrocontroller ins Spiel.
Die "Controller" haben dann schon Speicher eingebaut.
Bei den ATMEL AVRs sogar drei verschiedene Arten mit jeweils zum Teil 
sogar unterschiedlichen Befehlen und Zugriffszeiten.
Also:
Codesegment  -> cseg
Datensegment -> dseg
Epromsegment -> eseg

Du fragtest jetzt nach dem "cseg".

Hier steht etwas dazu:
https://www.mikrocontroller.net/articles/AVR-Tutorial:_Speicher

https://de.m.wikipedia.org/wiki/Erasable_Programmable_Read-Only_Memory

ciao
gustav

P.S.:
Beim Selbstbau-Eprombrenner konnte ich feststellen, dass bei der 
Organisation der 27xx-Eproms immer 8 Bit auf einer der Adressen 
gleichzeitig "gebrannt" werden. Und wie oben schon gesagt, steht beim 
Leerlauftest am Anfang alle Adressen-Daten auf FF. Die 0 wird also aktiv 
programmiert. Es gibt da auch noch den "Intelli"- Programmiermodus, der 
das Programmieren schneller macht, indem er nur die Adressen, die Nullen 
enthalten, tatsächlich anspringt. Also erst ab Adresse 40 im Beispiel 
wird dann aktiv geprogt.
Angehängte Dateien:
#5781847
Lesenswert?

Karl B. schrieb:
> zunächst ist der Begriff "Flashen" seit ein paar Jahren gleichgesetzt
> zum "Programmieren" von EPROMs zum Beispiel

Ähhm. Nein.

Ein EPROM ist kein FLASH. Und es wird auch nicht "programmiert", 
sondern programmiert. Ja, ohne Anführungszeichen.

EPROM != EEPROM != FLASH

Die Unterschiede zumindest zwischen EEPROM und FLASH sind subtil. Aber 
nachdem die Wikipedia wieder online ist, kann man das dort in epischer 
Breite nachlesen.

Bei EPROMs sagt(e) man statt programmieren früher auch brennen (und 
zum Programmiergerät umgangssprachlich (EPROM-) Brenner). Bei 
EEPROMs sagt man typischerweise nur schreiben. Und bei FLASH halt 
flashen.

Aber das sind alles nur Worte.

Was den TE nun wirklich interessiert, vermag ich nicht zu sagen. Geht 
es ihm darum, wie man den µC dazu bringt, das FLASH zu beschreiben? Oder 
was im FLASH passiert, wenn es geschrieben wird?

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