mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik interner Flash-Speicher des Mikrocontrollers


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze einen Freescale Mikrocontroller und da wollte ich mal den 
internen Flash-Speicher testen.
Wenn ich in den Flash schreibe und gleich danach die Adresse auslese, 
bekomme ich den Wert, was in den Falsh geschrieben wurde.

Nun wollte ich sehen, ob der Wert auch nach dem Reset/Neustart erhalten 
bleibt.
Ich habe die Spannungversorgung ausgeschlatet und wieder eingeschaltet. 
Naja jetzt wollte ich aus dem Flash lesen, und zwar aus der Adresse, was 
vor dem Neustart das Datum gespeichert wurde. Das Ergebnis war/ist, dass 
ich ganz andere Werte erhalte.

Wie kann das sein?
Wenn ich doch in den Flash schreibe, müsste es doch solange erhalten 
bleiben bis entweder der Flash gelöscht oder der Inhalt überschrieben 
wird.
Liege ich da vielleicht falsch?

Gruß
Dirk

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn ich in den Flash schreibe und gleich danach die Adresse auslese,

Was heisst "gleich danach"? 1 us?

Wenn deine Schreibprozedur den Herstellervorgaben entspricht, dann steht 
der Wert auch da, bin ich 100% sicher.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was heisst "gleich danach"? 1 us?
gleich danach heißt Stecker raus und wieder rein..
Die Versorgung wird getrennt, um zu sehen ob danach der INhalt immer 
noch erhalten bleibt.

>Wenn deine Schreibprozedur den Herstellervorgaben entspricht, dann steht
>der Wert auch da, bin ich 100% sicher.
wie gesagt, wenn in den Flash schreibe und nachdem in den Flash 
geschrieben wurde, den Flash auslese, bekomme ich die richtigen Daten. 
Aber wenn die Spannungsversorgung getrennt wurde und nachdem ich wieder 
die Versorgung einschalte und den Flash auslese, bekomme ich ganz andere 
Werte :-(

Autor: 6639 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie hast in das Flash geschrieben ? per Firmware, per Programmer.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im Quellcode mache ich einen Zugriff auf den Flash-Speicher..
Nach der Initialisierung kann ich mit "SetByteFlash(Adresse, Wert);" in 
den Flash schreiben und mit "GetByteFlash(Adresse, &Wert);" aus dem 
Flash lesen.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir jemand einige Internetseiten über Flash-Speicher geben?

Danke

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.gidf.de

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>www.gidf.de

hahaha..sehr lustig echt jetzt

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann frag bitte konkreter. Du hast ein bischen sehr allgemein gefragt.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mein Problem ist, ich kann aus dem Datenblatt nicht erkennen in welchen 
Bereich ich Daten schreiben kann.

Ich meine der Flash-Speicher wird ja für alles Mögliche benutz. Das 
ganze Programm wird in den Flash geschrieben (denke ich).

Ich habe keine Idee, was so alles mit dem Flash-Speicher gemacht wird.

Naja was auch immer passiert, muss es doch einen extra Bereich geben, 
was der User ohne Gefahr und Bedenken benutzen kann. Mit benutzen meine 
ich irgendwelche Parameter ablegen und nach dem Neustart abholen.

>Dann frag bitte konkreter
Wie konkreter kann ich meine Fragen noch stellen? Für paar Ideen, wie 
man Frage konkret stellen kann, bin ich sehr dankbar

Danke

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast es in diesem Thread auf 6 Postings gebracht ohne irgendwo zu 
verraten, um welchen Controller es überhaupt geht. Freescale hat wohl 
ein Dutzend recht verschiedener Controller-Familien, von den Modellen 
ganz zu schweigen.

Forum-Fragenformulierung

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab das Entwicklungsboard von Freescale, auf dem Board ist der 
56F8037-Mikrocontroller drauf..

Autor: Dirk (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
was ist der Unterschied zwischen RAM und Flash
(damit meine ich wann wird RAM und wann der Flash benutzt)

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk wrote:
> was ist der Unterschied zwischen RAM und Flash
> (damit meine ich wann wird RAM und wann der Flash benutzt)

Autsch... ;) Du solltest wirklich mal die Dokumentation lesen, bevor Du 
solche Fragen stellst.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe ich, wirklich.

Aber ich verstehe es nicht :-(

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt wird's schon konkreter. Sieht mir schwer danach aus, als ob das 
Teil aus der DSP-Sparte stammt. Könnte sein, dass du daher im 
entsprechenden Forum besser aufgehoben bist.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael G. wrote:

> Autsch... ;) Du solltest wirklich mal die Dokumentation lesen, bevor Du
> solche Fragen stellst.

Vielleicht ist die Frage nicht ganz so dusselig wie sie 
zugegebenermassen klingt. DSPs haben manchmal eine sehr eigene 
Vorstellung davon, welcher Teil welchen Speichers mit welchem Operand 
des Befehls erreichbar ist, weil sich das auf mehrere interne Busse 
verteilt.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>welcher Teil welchen Speichers mit welchem Operand
>des Befehls erreichbar ist

wie soll denn ein Anfänger wie ich so etwas wissen

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, aber es steht auch fest dass Flash-Speicher auf MCUs eine recht 
begrenzte Lebensdauer hat. Ich kann natuerlich darueber jetzt auch 
nichts sagen, ich muesste auch im Datenblatt nachsehen, da sollte sowas 
dann aber drinnen stehen. Dirk, Flash-Speicher ist nicht fuer sehr 
haeufige Schreibzugriffe geeignet, da er recht gewaltsam geloescht wird. 
Bei Mikrocontrollern hat man ueberlicherweise nach etwa 10.000 
Schreibzyklen so eine Flash-Speicherzelle erledigt, d.h. sie ist danach 
defekt.

RAM ist erstens quasi verschleissfrei und vor allem beim Schreiben (aber 
auch beim lesen) wesentlich schneller als Flash. Im Gegensatz zu Flash 
ist RAM halt volatil, d.h. fluechtig. Bei den AVRs wird der Flash z.B. 
dafuer benutzt, um den eigentlichen Programmcode zu speichern. Es gibt 
noch einen EEPROM, in dem man z.B. Konfigurationsdaten abspeichern kann. 
Der hat mit etwa 100.000 Schreibzyklen schon eine deutlich hoehere, aber 
dennoch begrenzte Lebensdauer.

Gruss,
Michael

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, jetzt ist mir schon einiges klarer

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk wrote:
>>welcher Teil welchen Speichers mit welchem Operand
>>des Befehls erreichbar ist
>
> wie soll denn ein Anfänger wie ich so etwas wissen

Das Teil sieht mir ja auch recht fett aus zum Anfangen. Warum hast Dich 
denn genau fuer diesen Controller entschieden? Ich denke damit werden 
Dir hier nur wenige helfen koennen, der Hauptteil hier ist AVR und 
einige PIC-Vertreter. Und wie gesagt, sowas sollte in der entsprechenden 
Dokumentation zu finden sein, um Lesen kommt man nicht herum bei solchen 
Themen, glaub's mir ;)

Nochmal zu den Speichern: Such mal nach "Speicherhierarchie". Flash ist 
hier Sekundaerspeicher (bzw. Hintergrundspeicher) und RAM ist 
Primaerspeicher.
Hierbei ist SRAM (statischer RAM) nochmals schneller als DRAM 
(dynamischer RAM). Kleinere Mikrocontroller haben ueblicherweise nur 
SRAM, da dieser um einiges einfacher anzusteuern und zu verwalten ist.

Lg,
Michael

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum hast Dich denn genau fuer diesen Controller entschieden?
hab ich nicht ausgesucht, habe ich als Geburtstagsgeschenk erhalten.

>Ich denke damit werden Dir hier nur wenige helfen koennen
ja das weiß ich, aber was soll ich sonst macht. Wo anders wird nicht mal 
geantwortet. Hier bekommt man zumindest paar Tipps und Ideen

>sowas sollte in der entsprechenden Dokumentation zu finden sein
ja hast recht, vielleicht liegt das Problem bei mir, dass ich es einfach 
nicht verstehen kann.

Ich dachte, die Doku müsste vielleicht sagen können "hey, du Benutzer!Du 
darft/kannst von der Adresse des Flash's xyz biz zu der Adresse vwy 
benutzen."
(Mit "benutzen" meine ich, dass ich da irgendwelche Parameter speichere 
um sie dann einige Tage später abzurufen)

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk wrote:
> (Mit "benutzen" meine ich, dass ich da irgendwelche Parameter speichere
> um sie dann einige Tage später abzurufen)

Hierfuer ist EEPROM deutlich besser geeignet, da langlebiger und fuer 
solche Zwecke extra vorhanden.

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.