mikrocontroller.net

Forum: Compiler & IDEs Tabelle in Flash-ROM


Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte eine Tabelle mit Kalibrierwerten im Flash-ROM ablegen. Diese 
Daten müssen dann immer wieder von meinem Programm ausgelesen werden. 
Ich kann ja sicher nicht einfach mit einem C-Programm auf das Flash 
zugreifen, sondern muss mir einen entsprechenden Treiber schreiben, der 
die Protection aufhebt, die Timings einhält etc. Gilt dies für Lese- als 
auch Schreibzugriffe? Wie baut man sich sowas zusammen?

Macht es Sinn, den Inhalt der Tabelle bei Programmstart ins RAM zu 
übertragen, also z.B. ein konstantes Array deklarieren und es dann mit 
den Daten aus dem Flash initialisieren?

Oder soll ich, jedesmal wenn ich Daten aus der Tabelle benötige, den 
Treiber mit einem Lesezugriff bemühen und der Funktion übergeben?

Gruß

TechInfo

Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anmerkung: Es handelt sich nicht um einen AVR, also PROGMEM und co. kann 
ich vergessen.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werte ins RAM schaufeln bringt sehr wahrscheinlich bessere 
Zugriffszeiten. Verbraucht aber ggf. kostbaren RAM. Musst du abwägen, 
was du brauchst.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan B. wrote:

> Werte ins RAM schaufeln bringt sehr wahrscheinlich bessere
> Zugriffszeiten.

Zwei statt drei Takte Zugriffszeit, nicht wirklich der Rede wert.

Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
RAM und Flash sind beide extern.

Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es die Treiber für die Flash-Bausteine irgendwo im Netz, oder muss 
man die sich wirklich selbst coden?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ TechInfo

>ich möchte eine Tabelle mit Kalibrierwerten im Flash-ROM ablegen. Diese
>Daten müssen dann immer wieder von meinem Programm ausgelesen werden.

>Anmerkung: Es handelt sich nicht um einen AVR, also PROGMEM und co. kann
>ich vergessen.

Mach doch mal deinem Namen Ehre und gib mal ein paar Techinfos rüber!
Welcher Prozessor, welcher Compiler.

Und FLASH ist nicht gleich FLASH. Man kann parallels FLASH an den 
exteren BUS hängen, da ist der Zugriff meist genausoschnell wie auf RAM 
(bei "langsamen" Prozessoren bis ca. 20 MHz).
Oder man hat serielles FLASH/EPROM per I2C oder SPI. Klar, DAS ist 
wesenlich langsamer. Für I2C EEPROMs gibst sicher irgendwo Treiber in 
den unendlichen Weiten des Internet.

MfG
Falk


Autor: TechInfo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich (wie immer bei meinen Threads) um den 
MicroBlaze-Softcore samt GCC. Der Flash-Baustein ist ein AMD AM29LV640 
und hängt am On-Chip-Peripheral-Bus. Soweit ich das Datenblatt 
verstanden habe benötigt eine Schreiboperation 4 Taktzyklen (die Sperre 
muss erst "aufgeschlossen" werden).

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.