www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Flash_Speicher blockweise lesen und schreiben


Autor: Sandra Sandra (sandra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tag alle,

ich kann C nicht so gut...
habe aber kleine Aufgabe wobei ich den Speicher
Sektorenweise lesen, löschen und schreiben will.
Ich möchte nur pro Datenpacket einen ganzen sektor verwenden und falls 
Daten in sektor zu verändern sind, den kompletten sektor löschen und 
wieder neu
beschreiben.
Sollte jemand einem Code Beispiel haben, würde mich sehr freuen.

mfG.
sandra(sandrametampa@yahoo.fr)

Autor: Peter Diener (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auf welchem Prozessor soll das denn passieren?
Welcher Speicher wird verwendet (Internes Flash, extern seriell oder 
parallel oder Speicherkarten)?

Gruß,

Peter

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht habe ich sowas, nur müsste man auch wissen um was für einen 
Speicher es sich handelt!

Autor: Sandra Sandra (sandra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Timmo,

es geht hier um einem ATmega32 Prozessor
der verwendete Speicher ist "internes Flash"


Gruß,

Sandra

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
du meinst wohl eher internes RAM oder ? Mit dem internen Flash wird das 
nix.


Gruß

Autor: wt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder EEPROM???

die Aufgabe wird immer komplexer!!!

Autor: Sandra Sandra (sandra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tag alle,

mir ist wichtig wie man im Speicher einen sektor  im Speicher lesen und 
schreiben kann...
ein Beispiel mit irgend einem Prozessor X und einem Speicher Y wird mir 
schon helfen...
Sollte jemand irgend einem Code Beispiel mit solche Aufgabe haben, würde 
mich sehr freuen.

mfG.
sandra(sandrametampa@yahoo.fr)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sandra Sandra wrote:
> es geht hier um einem ATmega32 Prozessor
> der verwendete Speicher ist "internes Flash"

Das ist nicht trivial.
Die Aufgabe ist nicht allgemein in C lösbar, da der C-Standard nicht die 
Architektur eines speziellen MCs kennt.
Es hängt also hautpsächlich von Deinem unbekannten Compiler ab.


Eine Möglichkeit wäre, erstmal einen Bootloader mit API-Call 
reinzubrennen.

Die andere Möglichkeit, durch spezielle Linkeranweisungen die 
Flashroutine in den Bootbereich zu plazieren.


Peter

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas steht immer im Datenblatt des Flashspeichers genau beschrieben. 
Die Befehle die an den Speicher geschickt werden müssen musst du halt 
einfach einen Schreibzugriff auf den Flashspeicher machen. Meist muss 
man einfach ein bestimmtes Datum an eine bestimmte Adresse schreiben

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.